Tag Archives: enc28j60

Modules Ethernet Arduino et Microchip ENC28J60

Module Ethernet Microchip ENC28J60

Si vous souhaitez connecter votre Arduino à un réseau local filaire, plusieurs possibilités s’offrent à vous :

L’avantage de la dernière option est qu’elle permet de se passer d’une board Arduino, si l’on souhaite réaliser son propre circuit à base d’ATMega328 par exemple, ce qui est mon cas.

Tout comme le chip WIZnet W5100, qui équipe également les shields Ethernet, le chip Microchip ENC28J60 utilise SPI pour communiquer avec un microcontrôleur.

Le branchement à un Arduino Uno ou ATMega328 se fait comme suit :

Microchip ENC28J60 Arduino Uno ATMega328
CLKOUT Non connecté Non connecté
INT D2 Pin 4
WOL Non connecté Non connecté
SO D12 Pin 18
SI D11 Pin 17
SCK D13 Pin 19
CS D8* Pin 14*
RESET RESET Pin 1
VCC +3.3V +3.3V
(via régulateur de tension)
GROUND GND Pin 8

* = CS devrait logiquement être connecté à D10 sur un Arduino Uno ou au pin 16 sur un ATMega328 (Slave Select), mais la librairie ci-après utilise le D8 / pin 14 par défaut.

Malheureusement, ce module Ethernet n’est pas compatible avec la librairie Ethernet standard fournie avec l’IDE Arduino. Heureusement, une librairie Arduino (compatible > 1.0) existe, EtherCard.

Pour l’installer, rien de plus simple : téléchargez le ZIP de la librairie, décompressez le dans le dossier « libraries » de votre dossier d’installation Arduino, et renommez le en « EtherCard ».

(Re)lancez votre IDE Arduino, vous devriez désormais voir EtherCard apparaître dans Fichier / Exemples.

Vous pouvez tester le bon fonctionnement de votre module en prenant l’exemple « backSoon », qui ne compile toutefois pas dans sa version de base. Si comme moi vous n’utilisez pas DHCP  (STATIC à 1, ligne 6), vous pouvez commenter le code suivant lignes 60-63 :

if (!STATIC && ether.dhcpExpired()) {
Serial.println("Acquiring DHCP lease again");
ether.dhcpSetup();
}

Téléversez le sketch sur votre Arduino Uno ou ATMega328, et vous devriez accéder à une page « Back Soon » en visitant l’adresse IP configurée dans votre code.

Edit du 21/04/2013 :

Le bug DHCP de la librairie est désormais corrigé.