Communication Ethernet entre PC et Microcontrôleur

Lesquels choisir ? Comment les utiliser ?

Postby malomaluile » Tue Jan 14, 2014 12:00 am

Bonjour,

Je souhaiterais créer un système intelligent avec micro-contrôleur pour piloter des entrées/sorties numériques. J'ai choisis un PIC18F4550 comme micro-contrôleur.
Je souhaiterais communiquer avec le PIC via une liaison Ethernet.
Le PIC n'ayant pas l'option de pouvoir communiquer en Ethernet, J'avais pensé utiliser un ENC28J60 "Ethernet Controller with SPI Interface" de la famille Microchip afin de pouvoir communiquer en Ethernet avec le PIC en passant par une liaison SPI.
Par contre j'utilise déjà les broches SDA et SCL pour communiquer avec autre chose.
J'ai cherché l'équivalent de l'ENC28J60 pour passer de l'ethernet vers l'USB. C'est à dire de passer par les broches de l’USB du PIC, afin de communiquer en Ethernet via une interface pour adapter les signaux.
j'ai trouvé le LAN7500/LAN7500i ou le LAN9500/LAN9500i mais je ne pense pas que cela soit adapté à mon cas d'utilisation.
Pourriez vous me dire si il existe un moyen de passer de l’Ethernet vers l'USB ?
malomaluile
 
Posts: 3
Joined: Thu Mar 13, 2014 10:19 am

Postby loblick » Tue Jan 14, 2014 12:00 am

Bonjour "malomaluile",

Voici quelques points supplémentaire à prendre en considération, je te laisse regarder et tirer les éventuelles conclusions... ou poser d'autres questions!

Communiquer en Ethernet nécessite de se poser au préalable quelques questions :
- est-ce que mon µC aura de la ressource pour intégrer la pile TCP/IP?
- est-ce que la pile TCP/IP a déjà été codée pour mon µC (sinon, c'est beaucoup, beaucoup de travail!

Même remarque pour l'USB, comment est vu le périphérique USB par le µC? VCP? Cela peut compliquer le code si le driver USB est à réécrire côté µC

Note : SDA/SCL sont les broches d'un bus I2C... Plusieurs périphériques peuvent communiquer sur un même bus I2C, dans la mesure ou ils n'ont pas la même adresse.

Je te conseille d'explorer la piste des passerelles Ethernet vers UART (Digi connect doit en faire) plutôt que Ethernet vers USB.

De quel protocole et quel débit as-tu besoin sur l'Ethernet?

A+,
Loïc

l
loblick
 
Posts: 596
Joined: Fri Jan 17, 2014 4:35 pm

Postby jeanpierre » Tue Jan 14, 2014 12:00 am

Bonjour,
je ne connais pas les pic mais SDA et SCL sont habituellement les broches réservées au port I2C
le port SPI c'est Miso, Mosi SCK et ss.
En effet un rapide coup d’œil sur la data sheet me fait préférer les AVR ou LES 3 ports de communication série, I2C et SPI sont possibles sur le même micro avec le même nombre de broche.

pourquoi ne pas utiliser des cartes et modules Arduino ?
les Shields Ethernet existent déjà et sont validées.
JP
jeanpierre
 
Posts: 321
Joined: Fri Jan 17, 2014 4:38 pm

Postby loblick » Tue Jan 14, 2014 12:00 am

Sur ce PIC, SPI et I2C sont sur les mêmes ports.

Par contre, j'ai lu un peu vite. Le ENC28J60 est sur SPI et non I2C donc ma remarque le fait de mettre plusieurs périphériques n'a rien à faire ici!!!
loblick
 
Posts: 596
Joined: Fri Jan 17, 2014 4:35 pm

Postby malomaluile » Tue Jan 14, 2014 12:00 am

Merci pour vos réponses rapides.

Normalement les PIC de la famille PIC18F doivent avoir la ressource nécessaire pour intégrer la pile TCP/IP et USB. Du moins c'est ce que je crois comprendre d'après Microchip : http://www.microchip.com/stellent/idcplg?IdcService=SS_GET_PAGE&nodeId=2680&dDocName=en547784

Après comme jutilise déjà le BUS I2C je ne sais pas si je peux utiliser le BUS SPI (car se sont les mêmes broches).

"Loblick" je vais essayer de faire comme tu dis et d'explorer la piste d'une passerelles Ethernet vers UART. Je ne sais pas si placer un max 3100 entre le PIC et le ENC28J60 serait électriquement correct.

"jeanpierre" je n'ai pas envie d'utiliser de modules Arduino pour diminuer un maximum le prix du système et aussi avoir le plaisir de faire par moi même
malomaluile
 
Posts: 3
Joined: Thu Mar 13, 2014 10:19 am

Postby obdh » Tue Jan 14, 2014 12:00 am

Les passerelles DiGi LanTronix et autres sont vites pénibles et plus une verrue, pour ceux qui ne peuvent pas utiliser une vraie pile. Avec la pile Tcp/Ip Microchip, on peut faire beaucoup plus de choses. Mais je ne répéterai jamais assez que le PIC18 n'est pas terrible, il vaudrait mieux partir sur du PIC24 ou PIC32, pour une différence de prix dérisoire mais une différence de performances énorme. Gagner quelques centimes, 2€ max, est valable pour un fabricant de machines à laver. C'est stupide pour quelqu'un qui manque toujours de temps. Et du coup, plus de problème avec les I/O. L'ENC28J60 fonctionne bien mais est limité à 10Mb/s et chauffe un peu. Pas trop gênant. L'ENC424J600 est mieux, mais peut-être moins adapté au bricolage pour le boîtier. Le choix ici est beaucoup moins critique qu'entre PIC18 (beurk...) et PIC24 ou PIC32.
obdh
 
Posts: 487
Joined: Fri Jan 17, 2014 4:39 pm

Postby loblick » Tue Jan 14, 2014 12:00 am

Effectivement, Microchip fournie une stack TCP/IP pour le 18F.
Si le 18F que tu as choisi à assez de RAM et de flash, ça doit pouvoir le faire.

Pour l'I2C, est-ce que tu as la possibilité de trouver le même périphérique en SPI? Comme ça, tu passes tout en SPI!
loblick
 
Posts: 596
Joined: Fri Jan 17, 2014 4:35 pm

Postby jeanpierre » Tue Jan 14, 2014 12:00 am

"jeanpierre" je n'ai pas envie d'utiliser de modules Arduino pour diminuer un maximum le prix du système et aussi avoir le plaisir de faire par moi même


justement si tu veux dépenser moins, il faut mettre tout dans la balance : temps+ réalisation des protos, des circuits imprimés+recherche de bugs..

Arduino est open source, et ça c'est un sacré avantage va voir

http://www.gotronic.fr/art-shield-ethernet-en-kit-ka04-20846.htm
Qui fonctionne avec le circuit microchip que tu as choisi.
jeanpierre
 
Posts: 321
Joined: Fri Jan 17, 2014 4:38 pm

Postby jeanpierre » Tue Jan 14, 2014 12:00 am

évidemment si c'est un devoir...
mais si c'est pour une société, il n'y a pas photo.
Ancien gérant de société , un gars m'aurai présenté les deux solutions : bricolage maison et donc propriétaire ou solution du commerce, ma réponse aurait été quoi ? à ton avis ?
jeanpierre
 
Posts: 321
Joined: Fri Jan 17, 2014 4:38 pm

Postby malomaluile » Tue Jan 14, 2014 12:00 am

Mes recherches et toutes vos réponses m'ont fais changer d'avis. je pense que je vais changer de PIC (surement un PIC32 comme a proposé "obdh"). Je pensais toute de même garder le ENC28J60 mais si il a tendance à chauffer je vais peut être utiliser le ENC424J600.
Je passerais tout en SPI pour gagner en vitesse de transmissions par la même occasion.

Merci encore pour vos réponses, maintenant je n'ai plus qu'à potasser tout ça plus en détail.
malomaluile
 
Posts: 3
Joined: Thu Mar 13, 2014 10:19 am

Next

Return to Microcontrôleurs & microprocesseurs

Who is online

Users browsing this forum: No registered users and 2 guests