Me gustaría crear un servidor web desde un AVR uC. Yo uso Atmega168 con el módulo ethernet ENC28J60. He conectado el módulo con mi Atmega usando SPI. Tengo un problema, porque la comunicación no funciona. El LED verde en el módulo ENC es verde continuo, y el amarillo parpadea cuando intento hacer ping al dispositivo ... Desafortunadamente, aparece el mensaje "Destino del host de destino"
Estoy usando el diagrama y el software que se proporcionan en el tutorial de tuxgraphics.com enlace
Traté de conectar todo como está aquí. No conecté el puerto IO. Solo el LED al PB1 de Atmegas (pin15);
La diferencia es que uso el convertidor de 5 V a 3,3 V para suministrar energía al ENC28J60. Los pines de entrada son tolerantes a 5 V, por lo que no usé los 3.3 V para los pines de entrada. Suministro a bordo con el 5V del programador usbasp. Me he dado cuenta de que a veces el LED verde parpadea, pero luego desconecto la alimentación y lo vuelvo a conectar, se enciende en verde continuo.
¿Necesito cambiar el Atmega del 1MHZ? Intenté usar el oscilador de cristal externo del módulo ENC. He establecido el fusible bajo en 0x60 (esa información estaba en el archivo Léame de Tuxgraphics) pero no sé si funcionó ... Cuando uso AVRdude obtengo el siguiente resultado:
avrdude -p m168 -c usbasp -v -q
Output:
avrdude: Version 5.10, compiled on Jan 19 2010 at 10:45:23
Copyright (c) 2000-2005 Brian Dean, http://www.bdmicro.com/
Copyright (c) 2007-2009 Joerg Wunsch
System wide configuration file is "C:\WinAVR-20100110\bin\avrdude.conf"
Using Port : lpt1
Using Programmer : usbasp
AVR Part : ATMEGA168
Chip Erase delay : 9000 us
PAGEL : PD7
BS2 : PC2
RESET disposition : dedicated
RETRY pulse : SCK
serial program mode : yes
parallel program mode : yes
Timeout : 200
StabDelay : 100
CmdexeDelay : 25
SyncLoops : 32
ByteDelay : 0
PollIndex : 3
PollValue : 0x53
Memory Detail :
Block Poll Page Polled
Memory Type Mode Delay Size Indx Paged Size Size #Pages MinW MaxW ReadBack
----------- ---- ----- ----- ---- ------ ------ ---- ------ ----- ----- ---------
eeprom 65 5 4 0 no 512 4 0 3600 3600 0xff 0xff
flash 65 6 128 0 yes 16384 128 128 4500 4500 0xff 0xff
lfuse 0 0 0 0 no 1 0 0 4500 4500 0x00 0x00
hfuse 0 0 0 0 no 1 0 0 4500 4500 0x00 0x00
efuse 0 0 0 0 no 1 0 0 4500 4500 0x00 0x00
lock 0 0 0 0 no 1 0 0 4500 4500 0x00 0x00
calibration 0 0 0 0 no 1 0 0 0 0 0x00 0x00
signature 0 0 0 0 no 3 0 0 0 0 0x00 0x00
Programmer Type : usbasp
Description : USBasp, http://www.fischl.de/usbasp/
avrdude: auto set sck period (because given equals null)
avrdude: AVR device initialized and ready to accept instructions
avrdude: Device signature = 0x1e9406
avrdude: safemode: lfuse reads as 60
avrdude: safemode: hfuse reads as DF
avrdude: safemode: efuse reads as 1
avrdude: safemode: lfuse reads as 60
avrdude: safemode: hfuse reads as DF
avrdude: safemode: efuse reads as 1
avrdude: safemode: Fuses OK
avrdude done. Thank you.
Me preocupa el: "avrdude: auto set sck period (porque dado es igual a nulo)"
Aquí están las fotos de mi circuito:
Y una cosa más sobre la conexión: tengo un interruptor no administrado. Yo uso cables rectos. Así que la topología es: Laptop > Cambiar > ENC28J60. Cuando ejecuto Wireshark no veo ningún tráfico proveniente de 192.16.0.2 (dirección de mi ENC) Mi computadora es 192.168.0.100;
Saludos!