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 se extrajo la tarjeta SD del escudo!
Me tomó días encontrar este error. Con la tarjeta SD instalada, solo funciona la configuración inicial completa :
Ethernet.begin(mac, ip, dns, gateway, subnet);
La documentación oficial deEthernet.begin()
no dice nada sobre este problema. ¿Por qué solo funciona completamente con la tarjeta SD extraída? ¿Es esto un "error de documentación"?
De acuerdo con la página Arduino Ethernet Shield :
Tenga en cuenta que debido a que el 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, las bibliotecas correspondientes deben encargarse de esto. Sin embargo, si no está utilizando uno de los periféricos en su programa, deberá deseleccionarlo explícitamente. Para hacer esto con la tarjeta SD, configure el pin 4 como salida y escríbale un alto. Para el W5100, configure el pin digital 10 como salida alta.
Y si estás usando la primera versión de la placa:
La revisión original del escudo contenía una ranura para tarjeta SD de tamaño completo; esto no es compatible.
Puede informar errores con el código base aquí (parece que se movieron del código de Google a Github).
Según este informe , parece que un tercero agregó la compatibilidad con DHCP, por lo que informaría el problema para asegurarme de que no se trata de un error.
Según este informe , parece que está utilizando una documentación incorrecta .
Kevin Mark respondió muy bien por qué su escudo de ethernet no funciona con SD. Aquí está la respuesta de qué hacer para que funcione.
¿Cómo evitar la confusión entre la tarjeta SD y W1500 SPI en Ethernet Shield?
kevin marca
Kortuk
Polar
tacos
powtac