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 he encontrado son las reglas de cambio de la serie LVC que ofrecen un rendimiento constante, MCP1825 , que bajará de 5 a 3.3 (y otras versiones que tienen diferentes incrementos), el 74LCX245, que pasará de 2.5 o 3.3 a 5v y quizás algunos otros que estoy olvidando . Luego están las tarjetas preparadas, 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 requerir una selección de pin?
5--3.3
5--2.5
5--1.8
Gracias
fuente
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 de datos máxima de 100 MBit / seg, que debería cubrir casi cualquier cosa que desee hacer a nivel de hobby. Los voltajes van desde 0.9V a 5.5V.
fuente
Estás trabajando con un bus I2C, ¿verdad? Voy a llamar a las líneas en el lado 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 todbot y cyphunk ya señalaron, el circuito "MOSFET y dos resistencias" descrito en el tutorial de "interfaz de sensor" de SparkFun hace lo que desea: el flujo de datos lógico es simétrico: los flujos de datos en ambas direcciones en las líneas SDA, desde el lado bajo al lado alto y, milisegundos después, del lado alto al lado bajo.
La nota "no funcionará en la otra dirección" señala que el circuito es físicamente asimétrico: su dispositivo de 5.0 V I²C 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 enlaza con 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 "TX" en los convertidores SparkFun , que el cartel original señaló, implementan ese circuito bidireccional "MOSFET y dos resistencias". Por lo tanto, 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 acciona los pines SDA3 y SCL3, los voltajes apropiados se ven en los pines SDA5 y SCL5 del lado alto. Milisegundos más tarde, cuando el dispositivo del lado alto acciona los pines SDA5 y SCL5, los voltajes apropiados se ven en los pines SDA3 y SCL3.
(Inconsistentemente, las líneas etiquetadas "RX" en esa placa del convertidor solo transmitirán datos en la dirección de alto voltaje a bajo voltaje).
Optoaislador bidireccional
Como 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 caro 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.
fuente
En una de nuestras placas, usamos un TXS0104E para traducir entre 3.3V y 5V en un bus I2C (bidireccional).
fuente