Contruire un serveur web pour 30 euros avec un ENC28J60
Ecrit par Administrator, le 27-10-2007 11:44
Pages vues
4795
Présentation
Le ENC28J60 est un controlleur Ethernet complet occupant la taille d'une puce. Il est facile à contrôler avec un microcontroleur muni d'un bus SPI. C'est un petit circuit de 28 broches disponible sous différents paquages dont le SPDIP pratique pour les amateurs.
Parce que la puce est plutôt nouvelle, il est difficile de trouver des informations pour la mettre en œuvre. J'essaie sur cette page de compiler différentes informations récupérées sur la toile et je propose deux prototypes.
Voici une photo de mon prototype, prêt à servir des pages web :) :
Le prototype
Dabord, je vous conseille de regarder le ENC28J60 data-sheet. La figure 2.4 (page 9) représente le schema d'application minimal.
Voici quelques carte d'expérimentation que j'ai trouvé sur le web.
La carte que je présente est compatible avec PICtail(TM) Daughter Board. Il est donc possible d'utiliser la pile TCP/IP Microchip en faisant peu de modification, mais j'utilise un microcontroleur PIC 18F4620 (or 18LF4620 pour fonctionner à 3.3V).
Attention, je rappelle que ce sont des prototypes, il n'est pas assuré qu'ils fonctionnent correctement et des erreurs peuvent s'y être glissés.
Quelques astuces:
Il est difficile de trouver des résistances 50 Ohms/1%. J'ai utilisés deux résistances en série ( 47 and 2.7 Ohm) et les ai sélectionnées à l'ohmmètre.
Quelle ferrite utiliser? Une féritte à usage générale general avec une résistance de 60 Ohm à 100MHz est OK (c'est pour éviter les interférences, donc pour le prototype, ça importe peu).
Le transformateur Ethernet est un autre grand problème. Apparemment, les transformateur conçus pour le RTL8019 doivent être compatibles même si ce n'est pas optimal coté filtrage. J'utilise un P02-102-17C9, c'est un connecteur avec le transformateur intégré acheté chez Lextronic dans le 77)
Le logiciel
Microchip fourni un driver avec une pile IP qui inclue un serveur web. Les pages web sont stoquée sur un eeprom externe ou dans la mémoire du microcontroleur (ma solution). Le firmware est écrit en C (compatible avec le compilateur Microchip C18). Le code est gratuit, mais pas libre. Vous le trouverez ici
Comme je ne peux pas distribuer le code modifié, voici quelque indications pour vos prototypes.
Dans MPLAB, choisissez le projet mpnicpg.mcp pour utiliser la mémoire interne
Selectionner votre controleur( par exemple PIC 18F4620) dans le menu configure de MPLAB,
Changer le Linker Scripts pour votre controleur
Eventuellement changer les broches utilisée dans enc28j60.c (section DEFINITIONS ), n'oubliez pas de configurer TRIS aussi
Voir la configuration IP dans stack_task.h
Changer la fréquence du MPU dans compiler.h
Eventuellement changer le port de la SYSTEM LED dans MainDemo.c
Modifier les pages web. Generer le mpfs C file avec l'utilitaire mpfs (MPFS repertoire MPFSImg.c /c )
Voir HTTPExecCmd et HTTPGetVar
dans MainDemo.c pour contrôler les Entrées/sorties sur controleur.
Quand je branche mon prototype, vous pouvez voir ma demo on line. On line demo
Avertissement
L'ENSEMBLE DES INFORMATIONS DE CE SITE EST FOURNI « EN L'ÉTAT » ET SANS GARANTIE SPÉCIFIQUE OU IMPLICITE, Y COMPRIS, ET C'EST UNE LISTE NON EXHAUSTIVE, LES GARANTIES IMPLICITES DE QUALITÉ COMMERCIALE OU D'ADÉQUATION À UN OBJECTIF PARTICULIER.