Atmega168 y ENC28j60 - No se puede comunicar

1

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!

    
pregunta reybanger

1 respuesta

-1

En realidad el circuito funcionó por un tiempo. Creo que todo está bien, pero hay algo de inestabilidad ...

    
respondido por el reybanger

Lea otras preguntas en las etiquetas