Ethernet.begin () solo funciona con la tarjeta SD retirada, ¿por qué?

7

Cuando ejecuto este código en mi W5100 Ethernet Shield :

byte mac[] = { 0xDE, 0xAD, 0xBE, 0xEF, 0xFE, 0xED };  

void setup() {
  Ethernet.begin(mac);
}

¡solo funciona cuando la tarjeta SD se retiró del escudo!

Me tomó días encontrar este error. Con la tarjeta SD instalada, solo funciona la configuración de inicio completa :

Ethernet.begin(mac, ip, dns, gateway, subnet); 

La documentación oficial de Ethernet.begin() no dice nada sobre este problema. ¿Por qué solo funciona completamente con la tarjeta SD extraída? ¿Es este un "error de documentación"?

    
pregunta powtac

3 respuestas

7

De acuerdo con la página de Arduino Ethernet Shield :

  

Tenga en cuenta que debido a que la tarjeta W5100 y la tarjeta SD comparten el bus SPI, solo uno   Puede estar activo a la vez. Si está utilizando ambos periféricos en su   Programa, este debe ser atendido por las bibliotecas correspondientes.   Sin embargo, si no está utilizando uno de los periféricos en su programa,   Tendrá que deseleccionarlo explícitamente. Para hacer esto con la tarjeta SD,   establezca el pin 4 como salida y escriba un alto en él. Para el W5100, coloque   Pin digital 10 como salida alta.

Y si está utilizando la primera versión del tablero:

  

La revisión original del escudo contenía una tarjeta SD de tamaño completo   espacio; esto no es compatible.

    
respondido por el Kevin Mark
3

Puedes informar de errores con el código base aquí (parece que pasaron de Código de Google a Github).

Basado en este informe Parece que un tercero agregó el soporte de DHCP, así que informaría el problema para asegurarme de que no es un error.

Parece que tal vez esté utilizando documentación errónea, basado en este informe .

    
respondido por el taco
-1

Kevin Mark respondió muy bien por qué tu escudo Ethernet no funciona con SD. Aquí está la respuesta que hacer para que funcione.

< para evitar la mezcla de la tarjeta SD y la SPI W1500 en el Ethernet Shield?

    
respondido por el user46609

Lea otras preguntas en las etiquetas