Olá PessoALL,
Estou utilizando o PIC 18F66J60 com MAC/PHY (ethernet) integrado e a pilha TCP/IP da Microchip.
Estou tendo sucesso em partes.
Configurei os arquivos do perfil de hardware (HardwareProfile.h) e configuração da TCP/IP (TCPIPConfig.h) para a minha placa e aplicação.
Depurando o código vejo que a aplicação executa os comando de escrever na ethernet (MACPut e MACPutArray). O LED associado ao envio dos dados até pisca neste momento. MAS nada acontece na rede. Estou tentando visualizar tudo pelo Wireshark (tudo ligado em um hub). Mas nada aparece. O PIC também não recebe pacotes endereçados a ele.
A montagem da minha placa difere em dois aspectos da sugerida da Microchip:
1) Ao invés de um resistor de Rbias 2.26k 1% (de 2237,4 a 2282,6) foi montada uma associação série de um resistor de 2k2 1% e 56R 5% (2231,2 a 2280,8). Considero que esteja aceitável.
2) Não foi colocado o chip ferrite na linha da ethernet. Até porque o datasheet (em uma nota de rodapé) cita que este componente é opcional para evitar ruídos.
Estou usando um cristal de 25MHz.
Outra coisa estranha que eu reparei é que a serial não transmite dados coerentes. Depurando, verifiquei o registrador da baudrate e de transmissao (SPBRG, TXSTA), e aparentemente está ok. Ele está configurado para 19200, mas utilizando um software de porta serial (o SIOW) os dados capturados não conferem com os transmitidos.
Aí vai a pergunta: vocês poderiam dar alguma idéia de qual é o problema com a Ethernet? A resposta está relacionada aos itens citados (1 ou 2)?
Com relação à serial, eu imagino que seja problema do clock. É possível que ajustando o clock eu resolva os dois problemas?
Vou fazer um teste mais tarde que é colocar um timer piscando um LED e monitorar isto no osciloscópio, para ter certeza de que as temporizações estão sendo contadas corretamente.
Desde já agradeço.