Montée et descente bidirectionnelle (3,3 V <-> 5, etc.)

10

J'ai donc lu quelques discussions ici et sur d'autres forums. Je comprends qu'il existe différentes solutions pour abaisser ou augmenter une tension. Ce que j'ai trouvé sont les regs de décalage de la série LVC qui donnent une sortie constante, MCP1825 qui baissera de 5 à 3,3 (et d'autres versions qui ont des incréments différents) le 74LCX245 qui passera de 2,5 ou 3,3 à 5v et peut-être quelques autres que j'oublie . Ensuite, il y a des cartes prêtes à l'emploi telles que les convertisseurs Sparkfun ou ce convertisseur 8 broches en 8 broches . Mais tous ces éléments ne sont que dans une seule direction, ou dans les deux sens commutés par un cavalier.

Comment pourrais-je convertir les tensions vers le bas ou vers le haut dans les deux directions sans nécessiter de sélection de broche.

5--3,3

5--2,5

5--1.8

Merci

cyphunk
la source

Réponses:

7

Sparkfun a un tutoriel sur l'interfaçage des capteurs / la conversion au niveau logique qui pourrait vous être utile.

todbot
la source
1
Merci. résumé du tutoriel: * Résistance en ligne . Unidirectionnel. Descendre uniquement. - réduit le courant, les diodes de serrage E / S du CI peuvent les limiter à l'entrée maximale. * Résistances série unidirectionnelles. Descente seulement, mais granulaire. * Diode unidirectionnelle. Descendez. Plus sûr. Haute de blocs 5v Diode; Le côté 3.3v se lie alors à haut. Mais, si vous inversez la configuration de la diode, ne pourriez-vous pas aussi augmenter? * Mosfet bidirectionnel. Pas à pas ou Pas à pas. D'après les commentaires: * Exemple d' isolement optique : 4N25. Courant élevé. * Exemple de diode Zener : 1N4728A * 74HC244 / 125 Uni-directionnel
cyphunk
Ah, je ne savais pas que le mosfet fonctionne dans les deux sens, à partir de leur page, il semblait que cela ne fonctionnait que dans un sens, en particulier la ligne sur "Ce circuit ne fonctionnera pas dans l'autre sens (haute tension à basse tension)". Mais après avoir lu le PDF de Phillips Semi, c'est clair pour moi.
davr
Davr, les MOSFET peuvent être utilisés pour créer une direction ou une bi-direction. Un seul MOSFET est une direction. Quelques MOSFET et vous pouvez créer un circuit avec un Vin de chaque côté du levier de vitesses et est entièrement bidirectionnel.
Kortuk
davr. J'ai lu "ne fonctionnera pas dans l'autre sens", ce qui signifie que la connexion basse tension doit être à gauche du MOSFET et haute à droite et, par conséquent, elle n'est pas directement liée à l'uni / bidirectionnalité du schéma. Après avoir lu le PDF Phillips, je suppose que la mise en page MOSFET unique à sparkfun est bidirectionnelle, ou Kortuk, je me trompe?
cyphunk
3

Maxim a un tas de traducteurs de niveau logique , dont la plupart sont bidirectionnels. Les vitesses varient, la plus rapide prend en charge un débit de données maximal de 100 Mo / s, ce qui devrait couvrir à peu près tout ce que vous voudriez faire à un niveau amateur. Les tensions varient de 0,9 V à 5,5 V.

davr
la source
Maxim a totalement glissé mon esprit. De plus, TI a une liste de circuits intégrés de conversion classés par direction (uni / bi): focus.ti.com/logic/docs/translationselection.tsp?sectionId=458
cyphunk
Oui, d'autres fabricants de circuits intégrés fabriquent également des puces similaires, Maxim est juste celui que j'ai utilisé auparavant.
davr
2

Vous travaillez avec un bus I2C, non? Je vais appeler les lignes du côté 3,3 V SDA3 et SCL3 ; les deux lignes sur le côté 5,0 V SDA5 et SCL5 .

" MOSFET et deux résistances"

Comme todbot et cyphunk l'ont déjà souligné, le circuit "MOSFET et deux résistances" décrit dans le tutoriel "Interfaçage de capteurs" de SparkFun fait ce que vous voulez: Le flux de données logique est symétrique - les flux de données dans les deux sens sur les lignes SDA, à partir du côté bas vers le côté haut et, quelques millisecondes plus tard, du côté haut vers le côté bas.

La note "ne fonctionnera pas dans l'autre sens" indique que le circuit est physiquement asymétrique: votre appareil 5,0 V I²C doit être connecté au "côté haut", votre appareil 3,3 V doit être connecté au "côté bas". Parce que le circuit est physiquement asymétrique, il n'est certainement pas évident qu'il soit logiquement symétrique. (Ce didacticiel renvoie à une note d'application AN97055 qui montre un circuit "deux MOSFET et deux résistances" qui est physiquement symétrique, et est donc évidemment logiquement symétrique).

Les lignes marquées "TX" sur les convertisseurs SparkFun - que l'affiche originale soulignait - implémentent ce circuit bidirectionnel "MOSFET et deux résistances". Connectez donc SDA3 à TX_LV, SDA5 à TX_HV, SCL3 à TX2_LV et SCL5 à TX2_HV.

Ensuite, les données circulent dans les deux sens: lorsque votre périphérique bas pilote les broches SDA3 et SCL3, les tensions appropriées sont visibles sur les broches SDA5 et SCL5 côté haut. Quelques millisecondes plus tard, lorsque le périphérique côté haut pilote les broches SDA5 et SCL5, les tensions appropriées sont visibles sur les broches SDA3 et SCL3.

(De manière incohérente, les lignes étiquetées "RX" sur cette carte convertisseur ne transmettront des données que dans le sens haute tension vers basse tension.)

Optoisolateur bidirectionnel

Puisque vous utilisez I²C, vous pourriez également être intéressé par un optoisolateur bidirectionnel pour I²C . Le circuit à deux optoisolateurs est plus cher et plus lent que le circuit "MOSFET et deux résistances", mais il fonctionne quand un côté a des signaux qui oscillent entre 0 V et 5,0 V, et l'autre a des signaux qui oscillent entre 500,0 V et 505,0 V.

Le circuit à deux optoisolateurs est également complètement symétrique physiquement - et donc logiquement symétrique - peu importe quel côté est le côté haut et quel côté est le côté bas.

davidcary
la source
0

Sur l'une de nos cartes, nous utilisons un TXS0104E pour traduire entre 3,3 V et 5 V sur un bus I2C (bidirectionnel).

mjh2007
la source