LusoRobótica - Robótica em Português

Sistemas específicos => PIC => Tópico iniciado por: beirao em 23 de Setembro de 2013, 22:03

Título: Ethernet - W5100
Enviado por: beirao em 23 de Setembro de 2013, 22:03
Boas pessoal,

Já alguém utilizou o W5100?

Estou a utilizá-lo a comunicar com um PIC e estou com umas dúvidas!

Obrigado :)
Título: Re: Ethernet - W5100
Enviado por: tarquinio em 23 de Setembro de 2013, 23:58
Já o utilizei com o arduino de uma forma mais low-level (tive de rescrever parte da library ethernet para poder criar um servidor de http com websockets). Se as perguntas forem especificamente em relação aos pics é que já n te posso ajudar :P
Título: Re: Ethernet - W5100
Enviado por: beirao em 24 de Setembro de 2013, 00:10
Já o utilizei com o arduino de uma forma mais low-level (tive de rescrever parte da library ethernet para poder criar um servidor de http com websockets). Se as perguntas forem especificamente em relação aos pics é que já n te posso ajudar :P

Por acaso é mesmo sobre o W5100 ;)

Já defini os common registers, mas não consigo sequer fazer um ping :P

Nos socket registers, já tentei por UDP e por TCP, mas não consigo fazer a inicialização do socket.

Faço isto (como tá no datasheet):

{
START:
/* sets UDP mode */
Sn_MR = 0x02;
/* sets source port number */
/* ?
The value of Source Port can be appropriately delivered when remote HOST knows it. */
Sn_PORT = source_port;
/* sets OPEN command */
Sn_CR = OPEN;
/* Check if the value of Socket n Status Register(Sn_SR) is SOCK_UDP. */
if (Sn_SR != SOCK_UDP) Sn_CR = CLOSE; goto START;
}

mas ele não sai desse ciclo... nunca recebe o Sn_SR = SOCK_UDP (no caso do UDP)..
Eu não percebo grande coisa de redes... :) Estou a ligar diretamente o PC ao W5100 (sem router e afins) como devo definir a source port?

Obrigado!
Título: Re: Ethernet - W5100
Enviado por: tarquinio em 24 de Setembro de 2013, 00:15
Hummm e a inicialização antes disso tens a certeza que está a ser bem feita? A configuração do IP e MAC address?
Título: Re: Ethernet - W5100
Enviado por: beirao em 24 de Setembro de 2013, 00:18
Hummm e a inicialização antes disso tens a certeza que está a ser bem feita? A configuração do IP e MAC address?

Sim, porque envio os dados e depois leio os mesmos para ver se chegou tudo bem. Fiz o que está aqui: http://www.wiznet.co.kr/UpLoad_Files/ReferenceFiles/W5100_proting_guide(2).pdf (http://www.wiznet.co.kr/UpLoad_Files/ReferenceFiles/W5100_proting_guide(2).pdf) (no ponto 3), e obtenho isto no terminal:


Reading MR: 0

<0>Setting Gateway Address 192.168.2.1
<0>Reading GAR: 192.168.2.1

<0>Setting Source Address 00:16:36:de:58:f6
<0>Reading SAR: 00:16:36:de:58:f6

<0>Setting Sub Mask Address 255.255.255.0
<0>Reading SUBR: 255.255.255.0

<0>Setting IP Address 192.168.2.10
<0>Reading SIPR: 192.168.2.10

<0>Setting Wiznet RMSR and TMSR
<0>Done Wiznet W5100 Initialized!
Título: Re: Ethernet - W5100
Enviado por: beirao em 24 de Setembro de 2013, 00:22
Já agora, outra questão: devo usar um cabo directo ou cruzado entre o portátil e o W5100? Cruzado, certo?
Título: Re: Ethernet - W5100
Enviado por: tarquinio em 24 de Setembro de 2013, 00:33
Eu usei sempre um cabo normal, tanto para ligar ao router, como para ligar directo ao pc, e aquilo funcionou sempre bem...
Quanto à outra dúvida, é melhor mesmo esperares que se manifeste alguem que já tenha mexido na coisa de raíz num pic. Eu nessa parte logo da inicialização abacei por usar bastante código do já do Arduino :p
Título: Re: Ethernet - W5100
Enviado por: maurosmartins em 24 de Setembro de 2013, 09:13
Viva Beirao,

Tens a certeza que o teu computador está nessa rede "192.168.2.xx"?

Se não tens router configuraste um IP manual?

Pergunto isto pq não é muito normal, costuma ser mais 192.168.1.xxx com a mascara de rede como tens 255.255.255.0.

No lado do PC podes utilizar um programa chamado SocketTest para testares a comunicação com o socket.

Nunca usei o W5100 mas já li algumas coisas eles tem também um PDF http://www.wiznet.co.kr/UpLoad_Files/ReferenceFiles/W5100_bootcamp.pdf (http://www.wiznet.co.kr/UpLoad_Files/ReferenceFiles/W5100_bootcamp.pdf) mas creio que não usam SPI para comunicar mas sim o barramento paralelo.

Cumps, Mauro.
Título: Re: Ethernet - W5100
Enviado por: beirao em 24 de Setembro de 2013, 11:21
Viva,

Obrigado por ambas as respostas.

Vou testar o SocketTest para ver o que se passa! :)
Título: Re: Ethernet - W5100
Enviado por: beirao em 24 de Setembro de 2013, 15:40
Já consigo fazer ping :)

Não tinha o PC na rede do W5100 e, por lapso, tinha soldado um cristal de 16MHz (no W5100) ao invés dos 25MHz exigidos no datasheet.

Quando conseguir inicializar a socket, coloco aqui como se faz ;)
Título: Re: Ethernet - W5100
Enviado por: beirao em 25 de Setembro de 2013, 14:18
Socket inicializado!

 Utilizando um router, a coisa funciona! Pelo que li, a firewall do windons não estava a gostar... ;)
Título: Re: Ethernet - W5100
Enviado por: senso em 25 de Setembro de 2013, 14:43
Quanto aos cabos cruzados ou directos, já não se usa, tanto os pc's como routers e afins fazem o cruzamento se necessário.
Título: Re: Ethernet - W5100
Enviado por: beirao em 25 de Setembro de 2013, 17:10
Quanto aos cabos cruzados ou directos, já não se usa, tanto os pc's como routers e afins fazem o cruzamento se necessário.

Certo, thanks.

Tenho uma questão: na inicialização do socket é definido o valor de source port. Alguém me sabe explicar como defino? É que depois é pedido a porta de destino do W5100 e fico na dúvida se é o mesmo valor...