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
la source
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.
la source
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.
la source
Sur l'une de nos cartes, nous utilisons un TXS0104E pour traduire entre 3,3 V et 5 V sur un bus I2C (bidirectionnel).
la source