SPI over RJ45

Bonjour !

alors voil=E0, je me retrouve encore dans un projet dingue o=F9 j'ai besoin d'envoyer des donn=E9es en protocole SPI (3 signaux) sur longue distance (10aine[s] de m=E8tres) donc je me tourne naturellement vers le RJ45 (4 paires font l'affaire).

Pour ce coup, =E7a convient : c=E2ble dispo, standardis=E9, bien connu et appr=E9ci=E9, paires torsad=E9es et connecteurs bon march=E9. en plus je n'ai pas besoin d'une grande vitesse, qqs centaines de kbp/s ou au pire Mbps.

seulement voil=E0, je voudrais faire un truc simple (avec un b=EAte optocoupleur) mais mes connaissances th=E9oriques des lignes de transmissions me disent qu'il faut plus qu'une r=E9sistance 49,9 ohms en amont et en aval. Cependant je travaille =E0 des fr=E9quences plus faibles qu'Ethernet, et m=EAme avec du continu, et je ne peux pas travailler avec des impulsions trop courtes (bande passante de l'opto oblige).

Me trompe-je ?

=E7a m'arrangerait de n'avoir qu'un optocoupleur en parall=E8le avec 49 Ohms du c=F4t=E9 r=E9cepteur, et 49 Ohms c=F4t=E9 =E9metteur mais quelle serait la vitesse de transmission maximale et la tension et imp=E9dance du driver ? 5V ou 3.3V ? est-ce que =E7a tient la route =E0 100-500KHz ?

est-ce que =E7a vaut le coup de "pr=E9biaser" l'optocoupleur (genre ajouter un offset DC de 0,5V par exemple) pour acc=E9l=E9rer la transmission, quitte =E0 avoir un peu plus de consommation ? (=E7a sent la mauvaise id=E9e bien foireuse =E7a)

yg

--=20

formatting link
/
formatting link

Reply to
whygee
Loading thread data ...

Bonjour, Si vous voulez que cela ait une chance de marcher de manière fiable sur 10m à des débits de >500Khz et sans dépasser de quelques ordres de grandeur les normes CEM en vigueur vous n'avez en pratique qu'une solution : utiliser les paires torsadées en mode différentiel. La technologie la plus simple : transmettre chacun des signaux SPI en RS422. Voir du coté des transceivers (LV)TTL/RS422 chez Maxim ou autre, une isolation galvanique n'est pas forcément nécessaire.

Cordialement,

-- Robert Lacoste ALCIOM - The mixed signal experts

formatting link

"whygee" a écrit dans le message de news: ijhpr5$vgg$ snipped-for-privacy@speranza.aioe.org... Bonjour !

alors voilà, je me retrouve encore dans un projet dingue où j'ai besoin d'envoyer des données en protocole SPI (3 signaux) sur longue distance (10aine[s] de mètres) donc je me tourne naturellement vers le RJ45 (4 paires font l'affaire).

Pour ce coup, ça convient : câble dispo, standardisé, bien connu et apprécié, paires torsadées et connecteurs bon marché. en plus je n'ai pas besoin d'une grande vitesse, qqs centaines de kbp/s ou au pire Mbps.

seulement voilà, je voudrais faire un truc simple (avec un bête optocoupleur) mais mes connaissances théoriques des lignes de transmissions me disent qu'il faut plus qu'une résistance 49,9 ohms en amont et en aval. Cependant je travaille à des fréquences plus faibles qu'Ethernet, et même avec du continu, et je ne peux pas travailler avec des impulsions trop courtes (bande passante de l'opto oblige).

Me trompe-je ?

ça m'arrangerait de n'avoir qu'un optocoupleur en parallèle avec 49 Ohms du côté récepteur, et 49 Ohms côté émetteur mais quelle serait la vitesse de transmission maximale et la tension et impédance du driver ? 5V ou 3.3V ? est-ce que ça tient la route à 100-500KHz ?

est-ce que ça vaut le coup de "prébiaser" l'optocoupleur (genre ajouter un offset DC de 0,5V par exemple) pour accélérer la transmission, quitte à avoir un peu plus de consommation ? (ça sent la mauvaise idée bien foireuse ça)

yg

--

formatting link
/
formatting link

Reply to
Robert Lacoste

Attention, la paire torsadée que l'on utilise pour ethernet avec des connecteurs RJ45 a une impédance caractéristique de 120 ohms et non 50.

Reply to
cLx

  1. ah zut, j'ai bien fait de demander :-/ alors pourquoi on trouve des r=E9sistances de 49,9 sur les C.I. de tranceivers Ethernet RJ45 ?

bon de toute fa=E7on il semblerait que je devrai finalement passer par du vrai ethernet et tant pis pour la latence... au moins la partie transmission sera irr=E9prochable.

yg

--=20

formatting link
/
formatting link

Reply to
whygee

C'est parce qu'en fait les câbles ont une impédance de 100ohm, pas 120. et 50+50=...

formatting link

Reply to
Jean-Marc Lienher

Ah au temps pour moi, j'ai du confondre avec l'impédance de la paire torsadée du DMX qui elle est bien de 120 ohms (j'espère :).

Reply to
cLx

120.

\o/ ma bobine de 49.9 va pouvoir servir ;-)

torsad=E9e

haha d'accord :-)

bon en tout cas changement de programme : je reviens =E0 une connexion s=E9rie bidirectionnelle, moins de contraintes de bande passante.

56kbps devrait suffir (=E9ventuellement 115.2k, qui peut le plus peut le moins).

Je reste en Cat5-STP-RJ45, donc 4 paires torsad=E9es, sur des distances de 5 =E0 30 m=E8tres, et je tiens absolument =E0 l'isolation galvanique. donc optopcoupleurs ? ou j'ai encore rat=E9 un truc ? :-D

yg

--=20

formatting link
/
formatting link

Reply to
whygee

=20

SPI c'est 3 signaux : data, clock et frame (et =E9ventuellement un retour)

mais bon l=E0 j'ai r=E9solu le souci : je passe en protocole s=E9rie oldschool :-) donc plus qu'une paire (dans chaque sens).

=E7a reste quand m=EAme d=E9licat pour le medium (quel driver ? quelles tensions ? comment isoler galvaniquement ?) mais au moins je peux commencer =E0 prototyper avec un PC sous nunux et un dongle USB-s=E9rieTTL.

je m'inspire un peu de la norme MIDI mais je ne sais pas comment rendre compatible un optocoupleur avec une paire torsad=E9e 100 Ohms. Je vais avoir des longueurs probablement jusque 30m. La bonne nouvelle c'est que je suis descendu en vitesse de transmission.

yg

--=20

formatting link
/
formatting link

Reply to
whygee

as tu essayé de cabler directement le spi en utilisant simplement les deux paires, une pour chaque signal ?

ça ne marche pas?

JJ

Le 17/02/2011 00:41, whygee a écrit :

Reply to
jj

oui, moi j'ai fait du spi en local avec seulement ck et data.

une facon de te rendre indépendant de la longueur ce serait de moduler une porteuse, on revient au bon vieux modem, mais ce sera efficace!

le soucis c'est qu'il faut toute une électronuque pour moduler/demoduler avant l'isolation galvanique. ceci il existe des ci specialisés qui font ça.

sinon, plus simple, c'est le rs422 ou le rs485 ? maxim a de bons ci pour cela.

JJ

Le 19/02/2011 00:42, whygee a écrit :

Reply to
jj

On Feb 19, 1:06=A0pm, jj

Oui, un bon vieux RS485 sur une paire diff=E9rentielle :

formatting link

Reply to
Jean-Christophe

Bonjour

pour l'isolation galvanique parfaite, pourquoi ne pas se tourenr vers une liaison via fibre optique

Claude

whygee a écrit:

Reply to
Claude

Il y aurait de l'id=E9e, sauf que bonjour les soucis de certification et d'approvisionnement =E0 long terme. Je ne dis pas que c'est pas certifi=E9, juste qu'il est plus facile de trouver X fournisseurs de Cat5 r=E9pondant/ob=E9issant aux normes du chantier.

Le Cat5 c'est standard, quasi universel, il y a 4 paires, c'est certifi=E9 de partout, n'importe qui pourra resertir la prise dans 20 ans, et si le projet =E9volue vers de l'Ethernet, il n'y aura aucun c=E2blage =E0 refaire. Avec un peu de chance il n'y aura m=EAme pas =E0 se procurer de rouleau puisque je suppose que ce sera aussi install=E9 dans d'autres parties voisines.

Il faut s'imaginer le projet qui devra fonctionner de 10 =E0 40 ans, int=E9gr=E9 dans l'architecture d'un nouveau b=E2timent public. Un c=E2bleur peut faire/r=E9parer du Cat5, la fibre optique c'est ... chaud :-/ Il faut s'imaginer que je ne serai probablement pas l=E0 s'il y a un souci et la maintenance doit =EAtre la plus simple possible.

Le RS422/RS485 semble int=E9ressant mais l'imp=E9dance ne semble pas la m=EAme (je vois des terminaisons en 100 Ohms au lieu de 50) et ce n'est pas isol=E9 galvaniquement (je pourrais utiliser une paire pour alimenter le r=E9cepteur et l'optocoupleur, cependant).

Je suppose qu'on peut changer les r=E9sistances pour l'adapter au Cat5 car les tranceivers RS485 sont con=E7us pour supporter pas mal de charge. Par contre je tiens absolument =E0 l'isolation pour une raison tr=E8s simple : si jamais un appareil claque, par exemple un court-circuit avec une haute tension, il ne faut pas que cette tension se propage et claque les autres appareils au travers des fils de transmission.

Ne me demandez pas pourquoi mais un truc comme =E7a m'est d=E9j=E0 arriv=E9. Heureusement j'avais une LED sur un chemin d'alimentation, servant normalement comme t=E9moin d'activit=E9 (=E7a scintillait en fonction du courant consomm=E9 par le uC) qui a servi de fusible. Il a quand m=EAme fallu changer la carte... Cette fois-ci j'ai 3KW r=E9partis sur 15 points et je ne veux donner aucune chance =E0 la Loi de Murphy de s'appliquer :-)

bon je vais tenter des exp=E9rimentations avec un patch de 10m en Cat5e.

yg

--=20

formatting link
/
formatting link

Reply to
whygee

bon alors : je viens de mettre en place un c=E2ble patch 10m Cat5E, avec environ 1,6 Ohm de r=E9sistance par conducteur

j'ai un 74AHC00 aliment=E9 en 4V qui envoie une impulsion de 500ns bien carr=E9e dans une paire (termin=E9e en 49.9 Ohms).

=E0 l'entr=E9e de la premi=E8re r=E9sistance 49,9 Ohms, donc =E0 la broche de sortie du AHC00, l'impulsion est de 3V (donc on peut voir l'imp=E9dance de sortie du circuit), et =E0 la sortie de la r=E9sistance (juste avant le connecteur) on n'est plus qu'=E0 1.5V (forc=E9ment).

L'impulsion de sortie fait environ 1,2V d'amplitude au niveau de la terminaison, sans d=E9formation particuli=E8re (sauf qqs petites suroscillations de qqs ns).

Je peux donc envoyer sans autre proc=E8s des impulsions de 50 ou 100ns et avoir une bonne marge signal-bruit. je peux m=EAme r=E9duire les oscillations avec une petite capa pour ralentir les fronts : 100pF avant la 49 Ohms r=E9duit beaucoup les oscillations au niveau de la terminaison. Et m=EAme l=E0 je peux facilement faire passer 1Mbps.

bon maintenant comment faire pour isoler =E7a ? un transformateur ne peut pas faire passer de courant continu et un opto a besoin de courant et de plus de tension pour se d=E9clencher...

yg

--=20

formatting link
/
formatting link

Reply to
whygee

Tu peux utiliser des encodeurs, sans pour autant utiliser toute la pile logicielle qui va avec.

Tu peux n'utiliser que l'encodeur de ligne, sans m=EAme pretter attention =E0 la couche MAC.

J'ai toujours pas regard=E9, mais il me semble que l'ENC28J60 fait pr=E9cis=E9ment =E7a: convertir un signal SPI en MAC pour ethernet; il y a des modules tous faits sur Ebay =E0 10, avec l'ENC, le trafo, et la prise. Y a juste =E0 rentrer le SPI en TTL, une alim, et basta.

Apr=E8s, faut aussi faire attention =E0 la tol=E9rance aux parasites, aux bits perdus. Si la couche logicielle qui cr=E9e le SPI n'a pas de checksum, c'est la d=E8che.

Une autre puce pour faire du HVD simplement, utilis=E9 en RS485, pour le DMX512: SN75176, qui a plusieurs =E9quivalents, dont un chez Maxim (pin compatible). Par d=E9finition du DMX512: 250kBaud, sur une paire torsad=E9e, sur 150m.

NB: RJ45, c'est une prise. Le cable, c'est FTP, SFTP, ou UTP, ou ... du c=E2ble plat. Toi, il te faut au minimum un UTP cat1. Grosse nuance; la moiti=E9 de mes cables RJ45en stock sont des plats !!!

Reply to
Benoit-Pierre DEMAINE

Modules ENC28J60 tout faits: 10=80; double isolation galvanique, une de chaque cot=E9, certifi=E9e au moins 1000V; probablement 10kV.

Avoir une isolation galvanique avec des opto coupleurs obligent =E0 une chose passablement fatigante: il faut que le transfo d'alimentation fournisseur DEUX sorties: si tu veux un opto, il sera suivi d'un encodeur, ou au moins d'un r=E9p=E9teur, m=EAme si tu reste en TTL. Du coup= , ton appli devra avoir une alim double, ce qui veut dire aussi, deux ponts redresseurs, et deux r=E9gulateurs de tension. C'est un surcout consid=E9rable pour une production de masse. Ce n'est acceptable que pour des petites productions, =E0 petite =E9chelle. C'est ce que je repproche au DMX512: c'est du HVD, mais d=E8s qu'on a un soucis de masse, il faut utiliser des amplis avec triple isolation (voir plus, jusqu'=E0 10 isolations pour les r=E9p=E9teurs =E0 8 sortie), qui coutent u= ne fortune.

Les trafos pour ethernet =E9vitent ce soucis.

Reply to
Benoit-Pierre DEMAINE

Cas typique de BTP: le cable de l'application se retrouve =E0 cot=E9 d'un c=E2ble d'alim (il devrait pas, mais, n'oubliez pas, on est dans le BTP: tout ce qui est cens=E9 ne pas arriver, arrive ! ). Une pince coupante, ou un couteau traine dans le coin; ou juste une poutrelle qui tombe dans une goulotte =E9lectrique ... on pince en m=EAme temps un cable 380, avec le cable data, et pouf, du 380 dans le cable FTP ...

Reply to
Benoit-Pierre DEMAINE

donc faut isoler en entr=E9e et en sortie, des 2 c=F4t=E9s du c=E2ble...

je me demandais toujours pourquoi Ethernet a un transfo de chaque c=F4t=E9...

yg

--=20

formatting link
/
formatting link

Reply to
whygee

je connais, j'en ai et j'y ai song=E9 :-) mais hors de question car =E7a fait encore de la programmation et donc du= d=E9lai. ma solution actuelle est =E0 base de FPGA Flash. C'est de la programmatio= n en VHDL mais c'est que de la circuiterie, il n'y a pas de programme s=E9quentiel dans le matos, donc aucun risque de souci de synchronisation. sans oublier la finesse et la flexibilit=E9 =E9norme pour le contr=F4le, et le FPGA peut impl=E9menter un UART.

ma solution : fournir l'alimentation par un DC/DC au travers d'une bobine de mode commun, ou un truc comme =E7a.

souci, j'ai besoin pour un syst=E8me simple et efficace d'une bobine =E0 enroulement triple... mais sinon c'est juste un bipolaire,

2 capas, 1 r=E9sistance, 1 diode et une Zener.

l=E0 je peux me d=E9brouiller, je crois qu'il existe des minimodules tout= faits pour =E7a. j'ai besoin de quoi, 20mA sous 5V ? 100mW =E7a prend presque p= as de place.

je sais, mais =E7a aime pas le DC, un seul de mes bits "lents" saturerait la ferrite...

yg

--=20

formatting link
/
formatting link

Reply to
whygee

je sais. mais ensuite =E7a pose tout plein de soucis logiciels, non seulement en aval mais aussi en amont :-/

pas s=FBr du tout. mes souvenirs du datasheet me rappellent que =E7a reste une b=EAte compliqu=E9e. et on ne peut pas passer outre le MAC, on peut juste le configurer. ce qui en soit est une grosse prise de t=EAte.

rat=E9. lis bien la doc ! le SPI de l'ENC est esclave d'un uC qu'il faut programmer etc.

j'en ai plusieurs (cf article r=E9cent dans HS linux mag) et presque depuis que ce circuit a =E9t=E9 lanc=E9. tr=E8s sympa d'ailleurs. mais ce n'est PAS un bridge Ethernet/SPI.

ux

de toute fa=E7on j'ai laiss=E9 tomber SPI, j'en suis au plan C : FPGA et =E7a va tout de suite mieux !

e

nickel

pour le projet, je sp=E9cifie du Cat5 (ou plus) et basta, c'est pas moi qui vais c=E2bler.

yg

--=20

formatting link
/
formatting link

Reply to
whygee

ElectronDepot website is not affiliated with any of the manufacturers or service providers discussed here. All logos and trade names are the property of their respective owners.