Así que he estado leyendo algunos hilos aquí y en otros foros. Entiendo que hay varias soluciones para bajar o subir un voltaje. Lo que encontré son los registros de cambio de la serie LVC que brindan una salida constante, MCP1825 que bajará de 5 a 3.3 (y otras versiones que tienen diferentes incrementos), el 74LCX245 que bajará de 2.5 o 3.3 a 5v y quizás algunos otros que estoy olvidando . Luego están las placas listas para usar, como los convertidores Sparkfun o este convertidor de 8 pines a 8 pines . Pero todos estos son de una sola dirección, o bidireccionales conmutados por un puente.
¿Cómo convertiría los voltajes hacia abajo o hacia arriba en ambas direcciones sin necesidad de seleccionar un pin?
5--3.3
5--2.5
5--1.8
Gracias
Sparkfun tiene un tutorial sobre interfaz de sensor/conversión de nivel lógico que podría serle útil.
Maxim tiene un montón de traductores de nivel lógico , la mayoría de los cuales son bidireccionales. Las velocidades varían, la más rápida admite una velocidad máxima de datos de 100 MBit/seg, lo que debería cubrir prácticamente cualquier cosa que quieras hacer como aficionado. Los voltajes van de 0,9 V a 5,5 V.
Estás trabajando con un bus I2C, ¿verdad? Voy a llamar a las líneas del lado de 3,3 V SDA3 y SCL3 ; las dos líneas en el lado de 5,0 V SDA5 y SCL5 .
" MOSFET y dos resistencias"
Como ya señalaron todbot y cyphunk, el circuito "MOSFET y dos resistencias" descrito en el tutorial de "interfaz de sensor" de SparkFun hace lo que usted quiere: el flujo de datos lógico es simétrico: los datos fluyen en ambas direcciones en las líneas SDA, desde el del lado bajo al lado alto y, milisegundos después, del lado alto al lado bajo.
La nota "no funcionará en la otra dirección" indica que el circuito es físicamente asimétrico: su dispositivo I²C de 5,0 V debe estar conectado al "lado alto", su dispositivo de 3,3 V debe estar conectado al "lado bajo". Debido a que el circuito es físicamente asimétrico, ciertamente no es obvio que sea lógicamente simétrico. (Ese tutorial se vincula a una nota de aplicación AN97055 que muestra un circuito de "dos MOSFET y dos resistencias" que es físicamente simétrico y, por lo tanto, obviamente es lógicamente simétrico).
Las líneas etiquetadas como "TX" en los convertidores SparkFun , que señaló el póster original, implementan ese circuito bidireccional "MOSFET y dos resistencias". Entonces conecte SDA3 a TX_LV, SDA5 a TX_HV, SCL3 a TX2_LV y SCL5 a TX2_HV.
Luego, los datos fluyen en ambas direcciones: cuando su dispositivo del lado bajo maneja los pines SDA3 y SCL3, los voltajes apropiados se ven en los pines SDA5 y SCL5 del lado alto. Milisegundos después, cuando el dispositivo del lado alto activa los pines SDA5 y SCL5, se ven los voltajes apropiados en los pines SDA3 y SCL3.
(De manera inconsistente, las líneas etiquetadas como "RX" en esa placa convertidora solo transmitirán datos en la dirección de alto voltaje a bajo voltaje).
Optoaislador bidireccional
Dado que está utilizando I²C, también podría estar interesado en un optoaislador bidireccional para I²C . El circuito de dos optoaisladores es más costoso y más lento que el circuito "MOSFET y dos resistencias", pero funciona cuando un lado tiene señales que oscilan entre 0 V y 5,0 V, y el otro lado tiene señales que oscilan entre 500,0 V y 505,0 v
El circuito de dos optoaisladores también es completamente simétrico físicamente, y por lo tanto lógicamente simétrico, no importa qué lado es el lado alto y qué lado es el lado bajo.
En una de nuestras placas usamos un TXS0104E para traducir entre 3.3V y 5V en un bus I2C (bidireccional).
cyphunk
davr
Kortuk
cyphunk