Comunicación serial entre dos dispositivos con niveles lógicos separados

3

La pregunta es más acerca del convertidor DC-DC y la velocidad en baudios entre dos dispositivos UART de nivel lógico separados.

Mi dispositivo maestro funciona a un nivel lógico de 3.3v, mientras que mi esclavo funciona a un nivel lógico de 1.8v.

Mi solución propuesta para permitir la comunicación entre los dos dispositivos es bajar la línea tx del dispositivo maestro a tierra y obtener 1.8v de 3.3v con un simple divisor de voltaje. Para obtener una copia de seguridad de mi línea de esclavo tx de 1.8v a 3.3v, un simple impulso pmic.

Los dispositivos se comunican a una velocidad de 921600 baudios. ¿Es viable mi solución? Y si es así, ¿qué consideraciones deben hacerse acerca de las especificaciones de las resistencias en el divisor de voltaje y el convertidor de refuerzo pmic?

Gracias.

    
pregunta Lanet Rino

2 respuestas

3

Las preguntas de "compra" están fuera de tema, así que en lugar de eso explicaré cómo hacer la búsqueda, para que la puedas hacer tú mismo la próxima vez.

Necesitas un chip para convertir niveles de 1.8V a 3.3V, probablemente CMOS. Como lo explica Janka en los comentarios, esto no es un convertidor DC-DC, el nombre correcto es "cambiador de nivel" o mejor "traductor de nivel lógico".

Hay muchos diseños diferentes, los más simples son simplemente transistores de colector abierto o de drenaje abierto, pero estos requieren resistencias pullup que crean un compromiso en la velocidad frente a la corriente de ralentí. Para un cambio más rápido, necesita un pullup de bajo valor, que luego consume mucha corriente incluso cuando no está en uso.

Su alta tasa de bits se manejaría mejor con un chip dedicado a la conversión de voltaje, que será de baja potencia y alta velocidad.

Vaya a allí .

Haga clic en los sospechosos habituales: "en stock", empaque "bulto, cinta cortada, tubo" ya que no quiere un rollo de ellos, luego aplique los filtros.

Ahora necesita un chip con 2 bits, un bit en cada dirección para su puerto serie o 2 chips con un bit cada uno. El problema con la primera solución es que la mayoría de los chips con 2 bits tendrán ambos en la misma dirección. De todos modos, haré clic en:

"número de canales" = 2 (probablemente un canal es una dirección, necesitas las dos direcciones)

"circuitos por canal" = 1 a 4 porque no queremos un paquete con demasiados pines.

Esta aparece, en SOIC fácil de soldar, tiene 2x2 bits y usted puede establecer la dirección de forma independiente para ambos, por lo que podría tener 2 líneas adicionales si lo desea. Si solo desea un bit, intente éste .

    
respondido por el peufeu
1

A casi 1 Mbit / s, es una buena idea usar convertidores de nivel deliberado. Ellos hacen exactamente lo que quieres hacer. Los individuales vienen en paquetes SOT-23, por lo que son pequeños. Usted suministra la alimentación y conecta la señal lógica en cada lado, y el chip hace la conversión. Estos usualmente tienen una entrada de dirección, pero en su caso, puede vincularlo a tierra ya que la dirección es fija y conocida con anticipación.

Probablemente puedas arreglártelas con un divisor de resistencia cuando pases de alto a bajo, pero eso no te ahorrará mucho. De hecho, tomará más espacio, y ciertamente más actual. A esta velocidad, debe pensar en los efectos de la carga capacitiva en la salida del divisor de resistencia y escalar las resistencias en consecuencia.

Para reducir el tiempo de asentamiento, disminuye las resistencias. Sin embargo, eso también aumenta la corriente. Si este es un dispositivo que funciona con batería, entonces un convertidor de nivel es casi seguro que es una victoria.

Por ejemplo, digamos que la peor carga posible es 100 pF. Un divisor de resistencia con una impedancia de salida de 10 kΩ, por ejemplo, tendría un tiempo de subida de 1 µs. Eso es demasiado lento para ser útil a 1 Mbit / s. Me gustaría al menos 3 constantes de tiempo en un poco de tiempo, con 5 siendo mejor. Eso significa que la impedancia de salida del divisor debe ser de 2 kΩ o menos. Eso sí es factible, pero un convertidor de nivel consumirá mucha menos energía, especialmente cuando solo se mantiene en el nivel lógico alto.

    
respondido por el Olin Lathrop

Lea otras preguntas en las etiquetas