Blogelectro - Mot-clé - pic18F2024-03-29T09:08:31+01:00urn:md5:d0d032610bee64ee091b556cc613ffeeDotclearPIC avec ethernet : second runurn:md5:91b3244cf3a4225bc345df823a0716be2010-08-22T21:39:00+02:002011-02-06T20:20:58+01:00guillaumeElectroniqueethernetpic18F<p><img src="http://blogelectro.free.fr/blog/public/images/.18F67J60_s.jpg" alt="18F67J60" style="float:left; margin: 0 1em 1em 0;" title="18F67J60,aou. 2010" />
Après avoir essayer avec succès l'ENC28J60 sur une carte, je me suis lancé dans une seconde carte à base de 18F67J60.
<br />
<br />
L'intérêt de ce PIC est l'interface Ethernet 10 Base-T qui est intégrée dans le micro-contrôleur. Ceci permet de faire un design très compact.
<br />
<br />
De plus il dispose de 128Ko de mémoire flash et 3808 octets de ram, ce qui le rends la programmation plus confortable compte tenu de l'espace nécessaire pour la stack TCPIP (surtout si on active beaucoup de services).
<br />
<br /></p> <p>La carte que j'ai réalisée est relativement petite car autour du 18F67J60 il n'y a pas besoin de beaucoup de composants.
<img src="http://blogelectro.free.fr/blog/public/images/.carte_18F67J60_top_s.jpg" alt="carte 18F67J60 top" style="display:block; margin:0 auto;" title="carte 18F67J60 top, aou. 2010" /></p>
<p>La carte est faite en simple face avec quelques straps. Elle est un peu moche mais fonctionnelle (de toutes façons c'est un prototype).
<br /></p>
<p><img src="http://blogelectro.free.fr/blog/public/images/.carte_18F67J60_bot_s.jpg" alt="carte 18F67J60 bot" style="display:block; margin:0 auto;" title="carte 18F67J60 bot, aou. 2010" /></p>
<p>L'élément principal se trouve sous la carte!!
<br />
Le micro en boitier TQFP64 se soude sans trop de difficultés avec un fer à souder standard (20 à 30W) et du flux de soudure.
<br />
<br />
<img src="../blog/themes/default/smilies/warning.png" alt=":w" class="smiley" />
<br />
Le 18F67J60 dissipe jusqu'à 1 Watt d'après le datasheet, c'est 3 fois plus que l'ENC28J60 pour un boitier plus petit donc autant dire que le composant chauffe beaucoup!
<br />
<br />
Malgré la quantité de mémoire relativement élevée pour un PIC 18F, il faut faire attention aux services inclus dans la stack Microchip car on a vite fait de saturer la mémoire.</p>http://blogelectro.free.fr/blog/index.php?post/2011/01/16/PIC-ethernet-%3A-seconde-carte#comment-formhttp://blogelectro.free.fr/blog/index.php?feed/atom/comments/32Ethernet sur un PICurn:md5:0348a741a0d3f442270d83bc3427f9112010-06-19T15:21:00+02:002012-05-24T22:29:34+02:00guillaumeElectroniqueENC28J60ethernetpic18F<p>Il y environs 4 ans de cela, Microchip a sorti l'ENC28J60 : un contrôleur Ethernet 10BASE-T interfacé par SPI. Ce composant a l'avantage d'exister en boitier DIP 28 broches, ce qui le rend facilement utilisable sur des cartes faites "maison".
<br />
De plus, Microchip nous mâche le travail en fournissant un frameworks ethernet: la stack TCP/IP ansi que quelques exemples d'utilisations!
<br />
Depuis, la famille Ethernet s'est agrandie chez Microchip:</p>
<ul>
<li>Le contrôleur a été intégré dans des PIC18F : PIC18F67J60, 18F97J60 ...</li>
<li>Les contrôleur 10/100 Base-T ont vu le jour : ENC424J600, ENC624J600</li>
<li>Et depuis peu, des puces Wifi.</li>
</ul>
<p><br />
Dans tous ces choix possibles de composants, l'ENC28J60 me semble un point d'entrée pour s'initier à l'Ethernet et "se faire la main" sur la stack TCP/IP de microchip.
<br />
<br /></p> <p>Je souhaitais tester l'ENC28J60 depuis un bon moment. Voila qui est chose faite avec cette carte:
<br />
<img src="http://blogelectro.free.fr/blog/public/images/.pic_ENC28J60_m.jpg" alt="Carte ENC28J60" style="display:block; margin:0 auto;" title="Carte ENC28J60" /></p>
<p>Le montage est basique : ENC28J60 + PIC18F4620 + EEPROM 25LC256 + SDCARD. Le tout est alimenté en 3V3 à cause de la SDCARD car l'ENC28J60 tolère le 5V sur ses pins d'I/O.</p>
<p><br />
<br /></p>
<h2>Hardware</h2>
<p>Electriquement, le montage ne pose pas de problèmes, le câblage du composant est donné dans le datasheet.
Par contre il faut correctement découpler le circuit (j'ai rajouté quelques capa CMS sous la carte car je perdais de temps en temps la connexion réseau).
<br />
<br />
Le régulateur utilisé est un LM317 (régulateur variable)
<img src="http://blogelectro.free.fr/blog/public/images/.regulo_m.jpg" alt="regulateur3V3" style="display:block; margin:0 auto;" title="regulation 3V3" />
Le rapport de résistance donne une tension de sortie de 3.333V. Un dissipateur thermique est à prévoir compte tenu de la consommation de l'ENC28J60 (180mA).
<br /></p>
<p><br />
Le schéma de câblage basique de l'interface Ethernet que donne Microchip utilise des transformateurs d'isolements entre le composant et le connecteur.
<a href="http://blogelectro.free.fr/blog/public/images/schema_ENC28J60.jpg" title="ENC28J60"><img src="http://blogelectro.free.fr/blog/public/images/.schema_ENC28J60_m.jpg" alt="ENC28J60" style="display:block; margin:0 auto;" title="ENC28J60" /></a>
<br />
J'utilise un connecteur RJ45 avec isolation magnétique (transfo d'isolement intégrés): c'est plus compact!
<br />
<img src="../blog/themes/default/smilies/warning.png" alt=":w" class="smiley" /> Attention aux brochages de ces connecteurs, il n'est pas identique d'un fabriquant à l'autre.
<br />
<br />
Le câblage de l'ENC28J60 peut se tester en connectant le montage sur un réseau Ethernet, le composant établi la connexion et allume la led sur la pin LEDA.
Cette partie se passe de manière totalement hardware, pas besoin de soft.
<br />
<br /></p>
<p>L'EEPROM permet d'enregistrer des variables ou même les pages web, la stack TCPIP gère un petit Filsystem propriétaire (le MPFS) dans ce but.
<br />
<br /></p>
<p>Les transferts sur une SDCARD se font par bus SPI, une carte mémoire peut théoriquement remplacer l'EEPROM SPI!
<br />
Le système de fichier est à modifier car je pense pas que le MPFS fonctionne (une SDCARD accepte seulement le FAT32), ça peut même rendre la carte inutilisable si le bootsector est écrasé.
<br />
<br /></p>
<h2>Software</h2>
<p>J'ai fait mes essais la stack TCPIP Microchip 4.51. L'application note AN833 donne des infos de base sur la stack mais n'est pas à jour par rapport à la version 4.51!
les 2 fichier à modifier pour exécuter correctement les exemples sont :</p>
<ul>
<li><strong>Hardwareprofile.h</strong>
<ul>
<li>Pour definir la carte utilisée : les I/Os, la fréquence du PIC, la PLL ...</li>
</ul></li>
</ul>
<ul>
<li><strong>TCPIPConfig.h</strong>
<ul>
<li>Pour choisir les services à inclurent dans le programme (TCP, UDP, ICMP, DNS, DHCP...)</li>
</ul></li>
</ul>
<p><br />
Après cet ajustement du programme, le soft peut être chargé et lancé sur la carte.
<br />
A la connexion sur la carte, j'ai eu la bonne surprise de découvrir que le serveur HTTP gère l'ajax (ce qui le rend super pour une IHM <img src="../blog/themes/default/smilies/smile.png" alt=":-)" class="smiley" /> ).
<br />
<br />
Malheureusement, le 18F4620 ne possède pas assez de mémoire pour contenir tout les services Ethernet. Ceci ne le rend pas super pratique pour du test et du développement. Après ces premiers essais concluants, je vais en rester là avec cette carte et me tourner vers le PIC18F97J60 qui a une interface Ethernet intégrée et plus de mémoire!
<br />
<br />
<br /></p>http://blogelectro.free.fr/blog/index.php?post/2009/08/21/ethernet-sur-un-PIC#comment-formhttp://blogelectro.free.fr/blog/index.php?feed/atom/comments/6