Collegare una scheda ethernet WIZ850 ad Arduino MKR

Arduino dispone di diverse shield che permettono di collegarci a una rete lan cablata come ad esempio la MKR ETH. Esistono sul mercato altri dispositivi che svolgono la stessa funzione con costi contenuti e form factor molto piccoli. Uno di questi e la scheda WIZ850io prodotta da WIZnet, dotata di chip wiznet w5500 lo stesso utilizzato per la MKR ETH.

Questa scheda ha una dimensione del pcb di 25mm X 23mm e un costo di circa 20 euro. Di seguito la pin function della scheda:

wiz850 form factor and pinfunction
wiz850io pins function

Come possiamo vedere l’alimentazione della scheda richiede una tensione di 3.3V, è quindi consigliato utilizzare schede con tensione di funzionano di 3.3v, questo per avere i livelli logici con questa tensione. Il bus di comunicazione è affidato all’interfaccia SPI. La figura seguente mostra i collegamenti tra una Arduino MKR Zero e la scheda WIZ850io:

MKR Zero connect to WIX850io

in dettaglio i collegamenti descritti nella tabella seguente:

Pin Arduino Pin WIZ850io
VCC 3.3V
GND GND
Reset RSTn
MISO (10) MISO
SCK (9) SCLK
MOSI (8) MOSI
SS (7) SCNn

Per verificare se tutti i collegamenti sono stati eseguiti correttamente possiamo utilizzare il codice seguente (esempio linkstatus della libreria Arduino ethernet):

#include <SPI.h>
#include <Ethernet.h>

void setup() {
  //inizializzo la wiz850io
  //il pin chip select è stato collegato al pin 7
  //della scheda arduino. se lo collegate in un altro pin dovete
  //modificare il numero del pin all'interno del metodo init()
  Ethernet.init(7);
  
  //inizializzazione seriale
  Serial.begin(9600);
}

void loop() {
  //verifico se il cavo lan è collegato e se esiste un link
  //con una periferica ethernet
  auto link = Ethernet.linkStatus();
  Serial.print("Link status: ");
  switch (link) {
    case Unknown:
      Serial.println("Unknown");
      break;
    case LinkON:
      Serial.println("ON");
      break;
    case LinkOFF:
      Serial.println("OFF");
      break;
  }
  delay(1000);
}

Questa scheda permette di implementare una interfaccia di rete cablata in tutte le schede Arduino dotate di porta SPI.