Visiteurs :

 
 
.: http://kudelsko.free.fr :.
 

 

Google
 
Navigation :

 Page d'accueil


Programmateurs :
 Prog PIC / EEPROM Centronic
 Prog PIC / EEPROM RS232
 Prog PIC / EEPROM USB V2
 Prog 68HC11F1

Instruments de mesure :
 Oscilloscope pour PC  
 Testeur de composants  
 Inductancemètre USB 
 Isolateur optique oscilloscope
 Capacimètre USB 
 Analyseur logique 30MHz
 Loupe vidéo 
 Générateur de fonctions DDS
 Volt / Amp. Mètre LCD USB
 Oscillateur 1kHz - 68MHz  

Projets Divers :
 Horloge / Calendrier
 Serrure à iButton
 Serrure à transpondeurs
 Décodage trame UM3750

 
Commutateur IR dual
 Gradateur IR dual
 Récepteur IR/PC 16 canaux
 Déport IR à courant porteur  

 Décodeur 2 ou 4 canaux HF
 Récepteur HF pour K6706B
 Disjoncteur différentiel  

Interfaces Réseau WIFI :
 Module ESP8266

Domotique :
 Présentation des dispositifs
 Interface PC domotique
 Contrôleur Telis 4 Dual
 Contrôleur Velux Trio
 Emetteur HF - RS232
 Récepteur HF
 Contrôleur Ethernet

Ensemble domotique :
 Présentation des dispositifs
 Power Switch IR - 3 canaux
 CPL émetteur
 CPL récepteur
 Power Clock USB 

Interfaces Réseau Ethernet :
  ENC, Configuration, Indy
     ENC28J60
     Configuration ENC28J60
     Configuration routeur
     Indy sous Delphi 7
     Applications Android
 Interface Ethernet 8 in 8 out
 Interface Ethernet 16 sorties 
 Interface Ethernet LCD
 Interface Eth. n°1 multi IN-OUT
 Interface Eth. n°2 multi IN-OUT
 Interface Eth. LCD Graphique 

Interfaces USB :
 Interface USB à 16 sorties
 Interface LCD USB
 Récepteur IR USB
 Interface Therm/Hygro USB
 Interface universelle USB
 Interface USB 16 out, 8 in
 Interface LCD graphique USB
 Timer USB programmable 

Interfaces RS232 :
 LCD - RS232
 CAN 12 bits - RS232 et //
 Clavier RS232 et //
 LCD 4 x 40 - RS232
 OSD - RS232
 Interface universelle RS232
 Afficheurs 7 seg. RS232
 Interface LCD graphique
 Interface OSD - RS232 V2

Applications Vidéo :
 Stabilisateur de recopie vidéo
 Générateur de mires
 Transcodeur PAL-RVB / SECAM
 Distributeur audio-vidéo 1-3  
 Commutateur Péritels 4 / 2  
 PiP Box  

Applications Audio :
 Commutateur audio 4 voies

Téléphonie :
 Sélecteur lignes téléphoniques
 Sélecteur lignes téléphoniq. V2
 Sélecteur lignes téléph. V3  

Mesures dans l'environnement :
 - température;
 - pression;
 - humidité relative;
 - orientation...
 Thermo-PC Dual
 Thermomètre
 Baromètre
 Météo OSD
 Thermomètre pour PC
 Boussole électronique 

Chargeurs/déchargeurs accus :
 Chargeur Accus R6 - 6F22

Logiciels :
 Atténuateurs HF
 Réseau d'adaptation résistif

Articles de la presse :
 Mipot HF
 Transformateur
 Radiateur
 Mosfet
 Alimentation
 AOP
 AOP2
 Applications des régulateurs
 Convertisseurs de tension
 Convertisseurs DC -DC
 Les filtres électroniques
 Le NE555
 Le triac
 Le réglage offset des AOP
 Les régulateurs
 
Les multiplieurs

L'indispensable :
 Code couleur résistances
 Valeurs normalisées résistances
 Code couleur condensateurs

Publicité :

 

 

Contrôleur Ethernet ENC28J60


  Communication Ethernet avec la puce ENC28J60 :

    En 2004, Microchip présente le premier contrôleur Ethernet 10BASE-T (10Mbits/s) référencé ENC28J60 se laissant facilement piloter via un bus SPI (Serial Programming Interface) par un microcontrôleur et ne comportant que 28 broches pour un boitier au format DIL.

   Ce contrôleur Ethernet dispose d'un module MAC et PHY intégrés et de 8ko de mémoire tampon permettant de minimiser la complexité de la mise en oeuvre et le coût. Les applications visées sont : la VoIP, l'automation industrielle, l'automation de bâtiment, l'instrumentation, la sécurité et la domotique.

   Jusqu'à lors, on ne trouvait sur le marché que des contrôleurs Ethernet tels que le
RTL8019AS de Realtek. Ce circuit n'existait qu'au format CMS (boitier PQFP) composé d'une centaine de broches dont le tiers étaient destinées au bus de communication parallèle (adresses et données). Bref, sa mise en oeuvre était pour le moins ardue que ce soit sur le plan du routage du circuit imprimé que pour la soudure du composant.

     Ainsi, grâce à son
faible nombre de broches faciles à souder, le ENC28J60 permet une intégration sensiblement facilité dans votre réseau domestique en lui couplant un microcontrôleur afin de piloter les fonctionnalités Ethernet. Disponible en boitier DIL (DIP), il reste la solution la moins chère pour la mise en oeuvre d'un projet connecté au réseau Ethernet.

 [ Datasheet du ENC28J60 ]

 

    Note :  Deux frères au ENC28J60 existent affichant de meilleures performances, le ENC624J600 et le ENC424J600 en T-BASE100 (100Mbits/s) mais nécessitent un microcontrôleur très performant afin d'assurer les cadences élevées de transfert sur le réseau. De plus ce circuit n'existe qu'en boitier CMS ne simplifiant guère leur mise oeuvre pour l'amateur.


 

  Présentation de l'interface matérielle du ENC28J60 :

   Principales entrées et sorties :

    Le circuit ENC28J60 dispose comme nous l'avons vu précédemment, d'un bus de communication nommé SPI. Ce bus est désormais un standard industriel reconnu permettant la transmission synchrone de données séries entre un maître et un ou plusieurs esclaves (pas de limitation dans le nombre d'esclaves en théorie). La communication s'effectue en Full Duplex et peut monter jusqu'à 20MHz pour le ENC28J60 permettant aux données de circuler simultanément dans les deux sens contrairement au bus I²C de Philips (Half  Duplex) beaucoup plus lent.

    Représentation graphique en boitier
DIL du circuit ENC28J60 (d'autres types de boitiers sont disponibles chez Microchip) :


 

   Représentation des principales connexions électriques du circuit ENC28J60 :

      Le bus SPI du ENC28J60 est composé de 4 liaisons principales :
          
SCK (entrée) : Clock. Ligne d'horloge.
          
SO ou MISO (sortie) : Master Input - Slave Output. Ligne de données séries en sortie.
          
SI ou MOSI (entrée) : Master Output - Slave Input. Ligne de données séries  en entrée.
          
CS (entrée) : Chip Select. Ligne de sélection de l'esclave.

    
  Le ENC28J60 dispose également de 2 liaisons électriques optionnelles associées au bus SPI :
          
INT (sortie) : Ligne d'interruption pouvant être activée pour détecter différents états de l'interface réseau comme par exemple, une condition de dépassement de capacité de type overflow du buffer de réception.
          
WOL (sortie) : Ligne d'interruption permettant d'implémenter la fonction Wake-On-Lan. Notez que cette sortie n'est pas officiellement décrite par Microchip dans la datasheet initiale du circuit mais on la retrouve sur d'autres documents du constructeur.

       Les connexions différentielles TPout et TPin sont reliées au réseau Ethernet via un
transformateur réseau d'isolement conçu spécifiquement pour ce type d'application. Toutefois, aujourd'hui bons nombres de constructeurs intègrent directement le transformateur au sein même de l'embase RJ45 simplifiant ainsi la mise en oeuvre du circuit.

       Deux leds permettent de connaitre le statut ainsi que l'état de la connexion Ethernet sur le réseau.


     
Note : Dans les applications présentées sur ce site à base de ENC28J60, nous n'utiliserons pas les deux sorties INT et WOL.

 

   Principaux  blocs fonctionnels intégrés au ENC28J60 :


      Le ENC28J60 dispose de plusieurs
blocs fonctionnels que nous allons décrire succinctement :

       Une interface SPI permettant la communication avec l'extérieur.

       Une série de registres permettant de contrôler et de surveiller le fonctionnement global du circuit.

       Une mémoire RAM de 8ko permettant la mémorisation momentanée des octets reçus ou à envoyer sur le réseau Ethernet.

       Un circuit aiguilleur pour l'accès à la mémoire RAM. Cet aiguilleur permet de sélectionner un des trois éléments : la logique de réception, la logique d'émission ou le contrôleur DMA (Direct Memory Acces). Le DMA permet d'accéder aux octets enregistrés en RAM pour par exemple, en calculer la somme de contrôle (checksum)...

      Un module MAC répondant aux spécifications Ethernet IEEE 802.3 représentant un sous niveau du Data Link nécessaire au partage du canal de transmission.

      Un module PHY matérialisant la logique du niveau physique, c'est à dire du plus bas niveau prévu dans le modèle ISO/OSI. Il se charge de traduire les signaux électriques provenant du câble réseau en fonction de la codification utilisée, c'est à dire le codage Manchester
           Pour mémoire ce codage utilisé depuis de très nombreuses années est caractérisé pour
chaque temps de bits d'une transition du signal. Dès lors, on peut retrouver très facilement la fréquence d'horloge ayant engendrée les paquets de bits sérialisés transmis sur le réseau.

 

   Interconnexion physique avec l'extérieur :

        Régulateur et oscillateur du ENC28J60 :

            
Le
régulateur est utilisé afin de stabiliser la tension en interne à 2,5V qui est dispatchée ensuite sur l'ensemble des modules du circuit le tout à partir d'une alimentation électrique externe de 3,3V.

           
L'oscillateur est cadencé par un quartz externe de 25MHz oscillant sur sa fondamentale. Si ce n'est pas le cas, il est impossible d'établir un lien sur le réseau Ethernet. Dans ce cas, il faudra légèrement jouer sur les valeurs des deux condensateurs céramiques de part et d'autre du quartz, tout en mesurant la fréquence de l'horloge sur la broche 24 du circuit.

Oscillogramme présent sur la broche 24 du ENC28J60
pour une fréquence d'horloge de 25MHz.

Cliquez sur l'image ci-dessus pour l'agrandir  



     
  Sections analogiques associées au circuit ENC28J60 :

            L'amplificateur à sorties différentielles TPout+/- nécessite une résistance de polarisation externe Rbias qui détermine l'amplitude du signal de sortie. Une valeur incorrecte peut empêcher l'ENC28J60 de communiquer avec d'autres périphériques sur le réseau.
          
Les recommandations de Microchip indiquent que la broche 14 référencée Rbias doit être reliée à une résistance externe à 1%. Toutefois la valeur de cette résistance diffère selon la révision du silicium du circuit ENC28J60 que vous aurez entre vos mains.

          Ainsi, afin de ne pas
transgresser les spécifications Ethernet IEEE 802.3, Microchip recommande d'utiliser :

                    Pour les révisions
B1 et B4 => Rbias = 2,74k à 1%.
                    Pour les révisions
B5 et B7 => Rbias = 2,32k à 1%.

 

Rev B1

Rev B4

Rev B5

Rev B7

Valeurs en binaire
(Registre EREVID)

%0000 0010

%0000 0100

%0000 0101

%0000 0110

Valeurs en décimal
(Registre EREVID)

2

4

5

6

Datasheets Errata

 [ Rev B1 ] 

 [ Rev B4 ] 

 [ Rev B5 ] 

 [ Rev B7 ] 

Valeur de Rbias (1%)

2,74k

2,74k

2,32k

2,32k


          Malheureusement il n'existe
aucun marquage sur le corps du ENC28J60 vous permettant de déterminer à vu d'oeil la valeur de Rbias à employer. Le seul moyen consiste à lire le numéro de révision stocké dans le silicium au sein du registre EREVID.

Table de contrôle d'une partie des registres du ENC28J60
 

         Dans le cadre des applications présentes sur le site internet, le logiciel "Configuration du ENC28J60" librement téléchargeable à la page [ Configuration ENC28J60 ] vous permet très simplement de connaitre la valeur du numéro de révision du silicium stocké dans le registre EREVID.

       
  En pratique, l'influence de la valeur de Rbias joue un rôle déterminant sur la stabilité de la connexion Ethernet établie sur votre réseau local. En effet, si vous utilisez une valeur de Rbias inadaptée, votre application sera néanmoins reconnue par votre réseau lors de sa mise sous tension, mais en revanche, elle risque de ne plus être détectée par votre routeur au bout d'un certain laps de temps (quelques minutes à quelques heures selon les cas). Ceci a été confirmé par de multiples essais sur quatre exemplaires du ENC28J60. D'où l'intérêt de connaitre le numéro de révision afin de placer la valeur de la résistance Rbias recommandée par Microchip.

        De plus sur le plan du
circuit imprimé, il faut apporter un soin tout particulier au routage en positionnant la résistance Rbias le plus près possible de la broche 14 du ENC28J60 afin de minimiser le bruit sur les sorties TPout.
 

         Le condensateur de filtrage de 10µF relié à la broche 1 référencée Vcap est lui aussi positionné le plus près possible du circuit intégré lors du routage du circuit imprimé afin de minimiser également le bruit.


        Microchip recommande également d'utiliser
quatre résistances de 50ohms à 1% aux bornes de Tpout et Tpin reliées au transformateur réseau. Dans la pratique nous utiliserons préférentiellement quatre résistances de 49,9 ohms à 1% afin de ne pas déséquilibrer l'adaptation d'impédance du transformateur réseau.

En gros plan les quatre résistances de 49,9 ohms à 1%

                 

       
  Transformateur réseau et embase MAGJACK :

           Les quatre lignes différentielles Tpout+/- et Tpin+/- sont reliées au module PHY du circuit, elles-mêmes connectées au transformateur réseau. Ces dernières doivent avoir une isolation en mesure de protéger le dispositif des décharges électrostatiques (2kV ou supérieur) et posséder des bouchons (appelés aussi "terminators") adéquats constitués par des résistances de précision.

Structure interne d'un transformateur réseau.


Aspect d'un transformateur réseau. Ici le FB2022.


          Dans le cadre des projets présentés sur ce site, nous avons fait appel à une
embase RJ45 isolée 10BASE-T intégrant directement le transformateur réseau (embase appelée aussi MAGJACK). Les caractéristiques de cette embase RJ45 avec transformateur sont compatibles avec les spécificités du ENC28J60, distribuée en France par [ Lextronic ] sous la référence "Embase RJ45 Isolée BS-RB10072".

   

Aspect de l'embase avec transformateur intégré.

Schéma électrique interne équivalent de l'embase avec transformateur.


           
Note : Un MAGJACK équipé des 2 leds intégrées n'a pas été retenu dans les applications présentées sur le site internet de part leur faible disponibilité chez [ Lextronic ]. Toutefois, rien ne vous empêche d'utiliser une telle solution mais il vous faudra revoir sensiblement le routage du circuit imprimé des applications proposées sur le site.

         Enfin sur le plan pratique, il importe de monter un petit bobinage sur le point central du transformateur relié à la paire Tpout (+ et -). Ce  petit bobinage à noyau de ferrite relié à la tension d'alimentation en 3,3V doit pouvoir supporter un courant minimum de 100mA, avec pour tâche
de réduire les perturbations hautes fréquences véhiculées par la liaison Ethernet.
         
Dans le cadre des projets présentés sur le site internet nous avons eu recours à une self de choc de type VK200. Cette self disponible chez la plupart des distributeurs a donné d'excellents résultats.



        
 Interfaçage d'un ENC28J60 alimenté en 3,3V avec un microcontrôleur fonctionnant sous 5V :

        C'est l'un des points les plus critiques du ENC28J60 car ce dernier ne peut fonctionner qu'à partir d'une tension d'alimentation de 3,3V. Ainsi, il convient de prendre certaines précautions sur l'interconnexion du circuit avec un microcontrôleur fonctionnant sous 5V au risque de transformer votre ENC28J60 en plaque de cuisson au bout de quelques instants !

        Microchip décrit dans sa datasheet toutes les lignes d'entrée de l'interface SPI comme "5V tolérant". Ainsi, nous pouvons relier directement ces broches au microcontrôleur alimenté sous 5V mais il est néanmoins plus prudent d'ajouter une résistance comprise entre 100 et 300 ohms (pour R10, R11 et R7 du schéma ci-dessous)  sur chacune des entrées CS, SCK et SI afin d'en limiter le courant.
        En revanche, les sorties
INT, WOL et SO devront passer au travers d'un translateur de niveaux en technologie TTL rapide (74HCT). Microchip propose deux solutions utilisant soit un 74HCT08 (quad AND gate) ou bien un 74HCT125 (quad 3-state buffer). Après plusieurs recherches sur internet, une autre solution consiste à utiliser un 74HCT245 (Octal bus tranceiver). C'est finalement le 74HCT245 qui a été retenu dans la mesure où nous disposions dans nos tiroirs de cette référence en grand nombre. Bref, ce choix est purement arbitraire et vous pouvez employer l'un de ces trois circuits pour effectuer la translation des niveaux 3,3V vers 5V.  Attention toutefois, ces trois références ne disposent pas du même brochage.

       Ci-dessous, voici un exemple d'interfaçage entre un microcontrôleur quelconque alimenté sous +5V et un ENC28J60 alimenté en +3,3V. Dans le cadre de cet exemple, les trois broches INT, WOL et SO ont été reliées au 74HCT245. Pour l'ensemble des projets présentés sur ce site, seule la broche SO est reliée au 74HCT245 car nous n'utilisons pas les broches INT et WOL.

Cliquez sur l'image ci-dessus pour l'agrandir  
 

 
 

        
 Alimentation en 3,3V du ENC28J60 :

       Le plus simple et le plus sûr est d'alimenter l'ENC28J60 au moyen d'un régulateur dédié délivrant du 3,3V. Dans le cadre des projets proposés sur le site, le LM2937-3,3 en boitier TO220 a donné d'excellents résultats.

LM2937-3,3V disponible en autre chez [ Sélectronic ].



        Si vous désirez vous passer d'un régulateur spécialisé, vous pouvez également employer la structure classique présentée ci-après. Elle est composée d'une diode
zéner de 3,9V,  d'un transistor Darlington TIP122 (ou modèle équivalent).  Il faudra ajouter à ce schéma des capacités de découplage....  

 

         En respectant ces quelques recommandations précédentes, votre ENC28J60 doit à peine chauffer (tiède) au bout de plusieurs minutes de fonctionnement. Si vous constatez un échauffement anormal, coupez immédiatement l'alimentation et vérifiez vos tensions et votre circuit imprimé.  

 

  Implémentation logicielle du ENC28J60 :

       Le ENC28J60 comporte une série de registres et d'instructions décrites dans la datasheet de Microchip et relativement difficiles à appréhender.
      Afin de faciliter la tâche,
 [ Microchip ] propose une pile logicielle  (Stack) TCP/IP écrite en langage C fonctionnant sur les microcontrôleurs de la série PIC18, PIC24, dsPIC et les PIC32.

      Nul besoin aux développeurs de connaître
la complexité du TCP/IP pour l'employer car Microchip la subdivisée en niveaux (ou couche) dont chacun permet d'accéder à un ou plusieurs autres niveaux de cette pile.


Aspect de la pile logicielle TCP/IP élaborée par Microchip

      
      Totalement libre de droits, les
principaux protocoles implémentés dans la pile Microchip sont :

        TCP [ Wikipedia ]
        UDP
[ Wikipedia ]
        IP
[ Wikipedia ]
        ICMP
[ Wikipedia ]
        DHCP
[ Wikipedia ]
        ARP
[ Wikipedia ]
        SMTP
[ Wikipedia ]
        SNTP
[ Wikipedia ]
        HTTP
[ Wikipedia ]
        FTP
[ Wikipedia ]
        TFTP
[ Wikipedia ]


  
       La famille des PIC16 ne peut pas supporter la pile Microchip car un minimum de 12k de mémoire programme est nécessaire pour l'utiliser.
            
 

  Protocoles employés dans le cadre des applications logicielles présentées sur le site :

     Nous avons retenu le protocole UDP (User Datagram Protocol) car il permet d'envoyer et de recevoir des données très facilement, que ce soit sur le plan du microcontrôleur gérant le circuit ENC28J60, mais aussi sur le plan logiciel sous Windows ou Android avec des applications écrites sous Borland Delphi 7 ou bien sous Basic4Android.

        Ces programmes sous Delphi 7 et Android librement téléchargeables sont disponibles pour chacune des applications Ethernet avec le code source commenté permettant à tout un chacun de les adapter selon vos besoins.
       Consultez la page
[ Indy sous Delphi 7 ] pour télécharger la version de Borland Delphi 7 Personnel et d'installer le composant logiciel Indy.
       Consultez la page
[ Applications Android ] pour connaitre les spécificités du compilateur Basic4Android.
 

  En conclusion :  

     Grâce au réseau Internet, vous pouvez récupérer vos données à distance provenant par exemple de capteurs de température, de pression, etc... mais aussi d'agir à distance sur l'environnement distant en actionnant des relais, des triacs, etc.... Bref, les applications domotiques ne manquent pas !     
 

 


 


 

 

 


 


 


 



Copyright © 2000 - 2016. F.KUDELSKO. Tous droits réservés.
Reproduction interdite sans autorisation.