Uncategorized

Trabajando con el módulo Ethernet Funduino W5100.


Introducción: Trabajar con el módulo Ethernet Funduino W5100.

Trabajando con el módulo Ethernet Funduino W5100.Trabajando con el módulo Ethernet Funduino W5100.Trabajando con el módulo Ethernet Funduino W5100.Trabajando con el módulo Ethernet Funduino W5100.

Acerca de: Soy médico de profesión. Después de una carrera en el mundo farmacéutico, decidí tomarme las cosas un poco más despacio y hacer las cosas que me gustan. Aparte de mis pasatiempos que involucran la medicina de base en SE&P Asia. He construido …

Más sobre diy_bloke »

Aunque muchas personas hoy en día elegirán un ESP8266 si quieren conectividad Ethernet, puede haber razones por las que aún desee una conexión por cable entre un Arduino y su enrutador. El Ethernetshield puede hacer eso fácilmente por usted, pero si tiene un Arduino Nano o un Promini, un Ethernetshield no es la mejor opción, guárdelo para su UNO o Mega.
Para un Promini o Nano, un pequeño módulo Ethernet es la mejor opción.
Hay muchos módulos ENC28J60 disponibles. Son fáciles de usar, lo más probable es que funcionen directamente desde la caja de la tienda web china, pero el ENC28J60 es un poco ávido de memoria, ya que tiene que construir su pila en software.
La mejor opción es un módulo W5100 ya que deja más memoria para su programa.

Uno de los más populares es el módulo Funduino W5100, pero puede ser un poco complicado de usar.
Si observa un Ethernetshield moderno y luego mira el módulo Funduino W5100 (circuito), queda inmediatamente claro que el primero contiene más componentes que el segundo, y descubrirá que hay una buena razón para ello.

Conexión a su Arduino

El módulo tiene un encabezado de 2×5 pines.

  • V + Este es un pin de 5 voltios
  • Tierra: hay dos
  • NSS: Esta es su ‘selección de chip’. Por lo general, se conecta a D10 en el Arduino
  • RST: Este es su pin de reinicio. No debería estar conectado a tu Arduino
  • MO: Este es tu MOSI debe conectarse al pin MISO de tu arduino (D12)
  • SOK: Este es tu pin de Reloj. Debería conectarse al SCK pon de tu Arduino (D13)
  • MI: Este es tu MISO, debe conectarse al MOSI de tu Arduino (D11)
  • POE – & POE +: Estos son sus pines PowerOverEthernet. Sin embargo, no son la conexión PoE estándar, ya que se derivan de los pines 7 y 8 de su conector RJ45.

Si piensas, bueno, diablos, simplemente conectaré ese pin RST a mi Arduino. Bueno, no ha hecho ningún daño, pero notará que no puede cargar ningún boceto.

Hacer que el módulo funcione

Cuando pruebe su módulo por primera vez con uno de los programas de ejemplo de la biblioteca Ethernet, es probable que no pueda conectarse. Puede haber muchas razones para eso, pero lo más probable es que tenga un problema de reinicio. Si se molesta en verificar el circuito del Ethernetshield, verá que se activa desde el Arduino, a través de un chip de reinicio especial, mientras que el módulo Funduin solo tiene su pin RST elevado a 3V3 con una resistencia de 10k. Esto causa cierta falta de confiabilidad en el reinicio y puede llevar a que Arduino ya quiera inicializar el módulo, mientras no está listo.
Algunas personas lo solucionan restableciendo el bord unas cuantas veces y, mientras tanto, hacen una oración rápida, pero eso no siempre funciona. Podría intentar agregar un capacitor, pero necesita encontrar el valor correcto y aún puede que no sea confiable.
Descubrí que si le doy al Módulo un poco más de tiempo para comenzar, funcionó sin ningún problema. Lo hago agregando un pequeño retraso en la configuración, antes de inicializar el módulo. Como esto:

void setup() {

// setup ethernet communication using DHCP 
delay(250);//<--important for W5100 module 
if (Ethernet.begin(mac) == 0) 
{ 
//Serial.println(F("Unable to configure Ethernet using DHCP")); 
for (;;); 
}

Algunos módulos pueden necesitar un poco más de tiempo, tal vez hasta 750 mS, pruebe lo que funcione para usted.

Compartiendo el SPI

A estas alturas tu módulo debería funcionar correctamente, subes algunos ejemplos, un servidor web o algo y todo va bien. Sin embargo, desea utilizar su Arduino conectado a Ethernet para cosas más significativas, tal vez como una puerta de enlace RFM / LoRa, tal vez incluso con una pantalla LCD pequeña como el Nokia 5110 o un OLED pequeño.
Todos estos dispositivos, (pueden) tener un bus SPI. Bueno, eso no debería ser un problema porque el bus SPI está hecho para compartir, ¿verdad? Bueno, sí lo es, pero supongo que los diseñadores de la placa Funduino o tal vez incluso los desarrolladores del W5100 no recibieron esa nota. El chip W5100 no es Tr-State y mantiene activo el MISO.

«Pero», te oigo decir, «pero funciona con mi Ethernetshield». De hecho lo hace. ¿Recuerdas que señalé que el Shield tenía más hardware que el módulo? Está ahí por una razón.

Para que el W5100 libere el bus SPI, no basta con hacer que el ChipSelect sea ALTO. El W5100 necesita una desactivación completa del bus SPI. Para hacer eso, necesita hacer que el pin SEN (SPI Enable) sea BAJO.
El Shield hace esto invirtiendo la señal CS y alimentándola al pin SEN, de modo que cuando desactive el pin activo LOW CS bij haciéndolo ALTO, posteriormente el pin SEN se hará LOW, lo que deshabilita el modo SPI.
El Shield usa el disparador Schmitt del inversor 74LCV14, pero sin duda otros inversores como el 74LVT14 o 74HC (T) 14 o CD4011 también harán el trabajo y probablemente un 74LC04 o 74LVT04 también estarán bien.

Tenga en cuenta que algunos de esos chips pueden necesitar 5 Voltios en lugar de 3V3, pero ambos están disponibles en la placa Funduino. Sin embargo, el problema es que estos chips son chips DIL de 14 pines y es difícil encontrar espacio para ellos en la placa Funduino. Es por eso que pedí un 74AHC1G04 ya que es solo un chip inversor que mide solo 2×3 mm y puede encontrar fácilmente un lugar en el módulo.

Entonces, ¿dónde encontrar el pin SEN?

El pin SEN es de hecho el pin 31 del W5100. Como un chip 80LQTF podría no ser el chip más atractivo para soldar, afortunadamente existe una solución más sencilla. La resistencia pull up que está conectada al pin SEN es un buen punto de entrada para la señal CS invertida. En la imagen de arriba, debe soldarse al lado derecho de la resistencia ‘103’. La señal CS se puede recoger desde el pin NSS. La señal 3V3 del regulador.

Aunque en realidad no es un problema confinado a la placa funduino, cuando se comparte el SPI, puede ocurrir otro problema porque la biblioteca no protege el W5100 contra interrupciones cuando está activo. Esto se puede solucionar mediante un cambio x en el archivo w5100.h de la biblioteca de Ethernet:

Busque la sección:

#demás
initSS vacío estático en línea () {DDRB | = _BV (2); };
setSS vacío estático en línea () {PORTB & = ~ _BV (2); };
resetSS () {PORTB | = _BV (2) del vacío estático en línea; };
#terminara si

y reemplazar con

#demás
initSS vacío estático en línea () {DDRB | = _BV (2); };
setSS vacío estático en línea () {cli (); PORTB & = ~ _BV (2); };
resetSS () {PORTB | = _BV (2) del vacío estático en línea; sei (); };
#terminara si

Alimentación a través de Ethernet (PoE)

El módulo Funduino tiene pines PoE. Sin embargo, no es el PoE estándar.
En PoE estándar, el par trenzado 4 y 5 transportan potencia positiva y 7 y 8 potencia negativa.
En el módulo Funduino. el pin 7 del conector Ethernet transporta energía negativa y el pin 8 positivo.
Entonces, si desea usar el PoE del módulo, necesitará hacer su propio adaptador, inyectando energía a los pares 7 y 8 de su cable UTP. En el módulo, por supuesto, aún necesitaría convertir esa potencia para decir 5 Voltios o 3V3 y suministrarla al Módulo. Es arriesgado hacerlo a través del estabilizador integrado, ya que puede esperar exactamente 5 voltios en su pin Vin, cuando otros dispositivos de 5 voltios están conectados a él. Lo más seguro sería usar un estabilizador de 5 voltios separado y usarlo para alimentar el módulo y otros dispositivos conectados



Source link

Dejar una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *