Fuga de LCD a través de los cables I2C

1

Fondo

Tengo un NodeMCU y dos dispositivos LCD y un ADS1115 en un bus I2C. Los dispositivos LCD tienen mochilas I2C. La NodeMCU está conectada a una alimentación USB de 5V y opera internamente a 3.3V. Los otros dispositivos están en el segundo poder compartido de 5V. El terreno es compartido.

La NodeMCU está utilizando un convertidor de nivel lógico en SDA / SCL para hablar con el resto del bus I2C.

Tengo resistencias de 10K ohmios en SCL / SDA para acceder a VCC (el suministro no USB 5V).

Ahora he configurado un transistor NPN 2N2222 para interrumpir o salvar la línea de tierra de una de las pantallas LCD (LCD1). Eso enciende o apaga la pantalla LCD y funciona.

Lo que noté

Ahora, lo que noté es que cuando tengo LCD1 apagada usando NPN, la luz de fondo de la LCD1 a veces parpadea (una vez por segundo).

Después de algunos problemas encontré que el parpadeo está relacionado con la comunicación del bus I2C entre NodeMCU y LCD2 o ADS1115. Simplemente tuve un poco de tráfico de bus I2C a LCD2 una vez por segundo (para escribir la hora) y algo de tráfico ocasional al ADS1115, una vez cada nueve segundos. Todos aquellos hacen que la luz de fondo del LCD1 parpadee cuando se apaga con el transistor NPN.

Pensé que tal vez esto se debía a una fuga de corriente a través del transistor NPN, pero si desconecto completamente la línea GND en LCD1, la luz de fondo aún parpadea. Para indicar esto claramente: LCD1 tiene VCC y SCL y SDA conectados pero no GND y la luz de fondo parpadea.

De alguna manera, los cables SCL / SDA que entran en la función LCD1 son breves líneas GND que parpadean en la luz de fondo de la pantalla LCD. Entiendo que la comunicación SCL / SDA requiere un dispositivo para bajar la línea del reloj a GND, por lo que supongo que en ese momento está conectando a tierra la alimentación de 5 V que ingresa a LCD1, lo que causa un breve parpadeo en LCD1.

Preguntas

  1. ¿Se espera que la retroiluminación de la pantalla LCD (con la mochila I2C) filtre la corriente de VCC hacia las líneas SCL / SDA?
  2. ¿Cómo puedo solucionar esto?

He visto una mención de la resistencia de 33 ohmios en el bus SCL / SDA (en línea), pero dudo que eso ayude, excepto para disminuir la fuga del parpadeo.

Tengo dibujos parciales, pero no hay nada completamente dibujado para mostrar la situación anterior. Todavía lo estoy sacando de quicio.

Adjuntando un dibujo muy básico hecho con Falstad, espero que sirva para ilustrar lo básico: diagrama

    
pregunta John

2 respuestas

0

No necesita una traducción de nivel para I2C, ya que funciona solo con el menú desplegable, solo necesita configurar su resistencia de levantamiento a 3.3V.

En general, a menos que la hoja de datos especifique lo contrario, el pin I2C no puede ser más alto que VCC, y si apaga su pantalla LCD, lo será. La razón es el diodo de protección esd integrado que alimentará su lcd a través de la línea I2C.

No es fácil apagar un dispositivo en un bus como este, necesitará un chip I2C especializado para este propósito.

Prefieres verificar si el lcd tiene un modo de suspensión como la mayoría.

    
respondido por el Damien
0

No es convencional encender la compuerta de un componente cambiando su línea GND. En su lugar, debe intentar cambiar la línea VCC en su lugar. Será más fácil administrar las rutas actuales desde las líneas de señal a un componente que puede perder corriente a GND que al revés.

    
respondido por el Michael Karas

Lea otras preguntas en las etiquetas