entonces, ¿por qué ATMega88 y su familia son más adecuados para este proyecto?
"AVR ethernet" ?!
La familia ATMega88 se adapta bien a este proyecto porque el autor ha proporcionado una implementación ya probada y depurada.
No hay nada intrínsecamente diferente acerca de ATMega8 que afecte este proyecto.
Me enfrenté a un problema con el preescalado de la frecuencia muchas veces, y algunos
otros problemas .. no pude alcanzar un código .hex de este proyecto que
trabaja en ATMega8
El problema al que te enfrentas es el de trasladar software integrado a un nuevo dispositivo. Su problema es que ha subestimado la tarea y espera que funcione sin cambios.
Debe rastrear exactamente dónde está fallando su código, resolver ese problema y luego pasar al siguiente problema. Una pila TCP / IP en un microcontrolador no es una cosa simple.
Si estuviera emprendiendo este proyecto, lo desglosaría así:
- Escriba un programa para hacer parpadear un LED
- Extiéndalo para enviar y recibir bytes en la UART (esto será invaluable para la depuración)
- Extiéndalo para usar la interfaz SPI, verificando las formas de onda con un analizador de alcance / lógica
- Conecte el ENC28J60 a la interfaz SPI, sin olvidar la selección de chip (dejaría la línea de interrupción desconectada por ahora)
- Extienda el software para leer el registro de id / versión de chip y verifique el resultado
- Extienda el software para escribir en un registro y volver a leerlo
- Conecte un cable Ethernet, verifique que el estado del enlace Ethernet esté cambiando en los registros ENC28J60s
- Conecte la línea de interrupción ENC28J60 a una entrada en mi microcontrolador y pruebe (habilitar interrupciones en los cambios de estado del enlace parece una buena prueba)
Ahora, estoy seguro de que mi hardware funciona.
- Traiga las funciones del controlador de Ethernet (accesos a registros de 16 bits, acceso de fifo, etc.) a mi proyecto y verifíquelos mediante el acceso a los registros
- Configure el ENC28J60 para el modo promiscuo y descargue los paquetes entrantes al UART, verifique comparando con Wireshark / tcpdump
- Observe cómo gestionó el tiempo el autor original, en particular la frecuencia con la que sondean la pila de IP y el controlador de Ethernet. Implementar un bucle principal para dar servicio a estas rutinas
- Tire del resto de la pila de IP en la parte superior de la capa de mi controlador
- Configurar la pila de IP para mi red (comenzando con una IP estática)
- Ping it
- Introduzca el resto del código de la aplicación (servidor web / etc.) en mi proyecto.