Problemas con un circuito de cambio de nivel de dos diodos 3.3V - 5V

0

Estoy tratando de conducir una tira de 57 LED APA102 de un ESP8266.

La conducción de un solo LED directamente (sin cambio de nivel) con un bus muy corto (aproximadamente 10 cm) pareció funcionar, aunque el APA102 espera una lógica de 5V.

Ahora construí lo que realmente necesito:

  • el ESP está a aproximadamente 1 m de distancia de la tira
  • agregados desplazadores de nivel de diodo para reloj y datos según esta respuesta: enlace
  • el circuito está cableado correctamente, verifiqué todas las conexiones dos veces.
  • El ESP y la tira son suministrados por una fuente de alimentación de 5V, 7A, con 5V y GND conectados a ambos lados de la tira.

La tira muestra colores equivocados, sin embargo. Creo que esto se debe al circuito de cambio de nivel, que simplemente no puede conducir las líneas de señal largas con formas de onda adecuadas.

Bajé la frecuencia SPI a aproximadamente 500 kHz (SPI de bit bit con un retraso de 1 microsegundo entre transiciones de reloj), pero el resultado sigue siendo el mismo.

Es difícil para mí obtener muchos de los IC sugeridos para este tipo de cambio de nivel, como el < fuerte> 74AHCT125 . Sin embargo, puedo obtener el 74HCT125 . Puede funcionar con 5V y el voltaje de entrada mínimo de alto nivel es 2V. ¿Sería ese un chip adecuado para este propósito?

¿Alguna otra cosa que deba probar o probar?

Niveles de voltaje:

  • El APA102 tiene un voltaje de entrada de nivel bajo máximo de 0.3 VDD = 1.5V y un voltaje de entrada de nivel alto mínimo de 0.7 VDD = 3.5V.
  • Las salidas ESP max 0.1 VIO = 0.33V o min 0.8 VIO = 2.64V. Parece ser capaz de conducir 12mA.
pregunta Christoph

3 respuestas

2

El cambio de nivel de diodo al que se hace referencia es un diseño sorprendentemente malo e inútil en muchos casos.

Para Vin = 0 / 3V3, Vout ~ = 0V6 / 3V9
Si eso satisface sus necesidades, tiene suerte, hay pocas necesidades que cumpliría.

Alguien señaló que LS Schottky satisfará la necesidad, cualquier puerta, no solo las destinadas a cambiar de nivel.
Sin tener en cuenta las diferentes especificaciones de nivel de familia, parece probable que la mayoría de las familias con TTL satisfagan la necesidad de 3V3 de entrada / 5V de salida.
Por ejemplo, 74HCT244 hoja de datos aquí le ofrece 8 convertidores de nivel por paquete, al igual que 74HCT541 - ambos alrededor de $ US0.45 / 1 Digikey.

Un circuito mucho mejor que el diodo dual es el que se muestra en la pregunta a la que hizo referencia. Consulte a continuación.
Los principales inconvenientes de este circuito son

  • Iout = Iin: no proporciona ninguna ganancia actual.

  • Al ser "de un solo extremo" tiene una transición lenta de baja a alta, ya que el nivel alto es provisto por la resistencia pullup R2. Para valores típicos de carga capacitiva, esto probablemente no sea un problema importante.
    P.ej. con una constante de tiempo de carga de 1 nF = RC = 6k8 x 1 nF ~ = 7 uS, es decir, una operación de quizás 20 uS mínimo por nivel alto para estar seguro; a menudo, más rápido funcionaría. Los valores más bajos de R2 permitirán una operación más rápida siempre que el controlador de entrada pueda bajar la resistencia de carga.

El circuito 2N7000 que se muestra en la misma página no tiene la limitación Iout = Ion. Tiene un problema de tiempo de aumento lento debido a la salida de un solo extremo, pero como la entrada no tiene que suministrar esta corriente, se puede usar un valor más bajo de resistencia de carga sin impacto en la entrada.

Hay varios circuitos de cambio de nivel alrededor, casi todos son mejores que los basados en diodos. Si aún no está seguro, proporcione un requerimiento con cambios de voltaje y cargas documentadas.

respondido por el Russell McMahon
1

El circuito de McMahon funcionará bien si puedes encontrar un BJT con tiempos de tránsito inversos muy rápidos. (Almacenamiento de carga de baja difusión.) Me gusta la idea de conducir, tirando del emisor. Pero me preocupa un poco que no funcione con los BJT habituales que normalmente se pueden encontrar. Así que si quieres probar su circuito, asegúrate de elegir un BJT rápido. Tal vez intente algo como un 2N3391A, en lugar de un 2N2222A o 2N3904. Solo prepárate para probar diferentes hasta que obtengas una salida decente a la frecuencia que desees.

Si el BJT tiene un tiempo de tránsito inverso deficiente, puede averiguarlo observando la tensión de base del circuito de McMahon con una sonda de 100X en el alcance. Busque un voltaje por encima de \ $ 3.3 \: \ textrm {V} \ $. Si ve la base más alta, mientras conduce el circuito rápido, entonces probablemente tenga que encontrar un BJT diferente.

Si desea utilizar prácticamente cualquier BJT, necesitará una topología diferente que sea mucho más compleja. No estoy recomendando lo siguiente. (Creo que estaría mejor con el circuito de McMahon y el BJT correcto). Pero aquí hay una ilustración de lo que podría enfrentar si quiere usar casi cualquier BJT:

simular este circuito : esquema creado usando CircuitLab

Suponiendo \ $ 200 \: \ Omega \ $ de impedancias del controlador (y aún más) debería mantenerse al día fácilmente con \ $ 1 \: \ textrm {MHz} \ $. Las corrientes de la unidad alcanzarán su punto máximo solo por un momento muy corto, pero generalmente estarán en \ $ 3 \: \ textrm {mA} \ $ o por debajo. El circuito utiliza aceleraciones (\ $ R_4 \ $, \ $ R_5 \ $, \ $ C_2 \ $, \ $ C_3 \ $ y \ $ C_1 \ $.)

Ahora, si eso no te convence de usar el enfoque de McMahon, nada lo hará. Pero planea seleccionar un BJT apropiado.

    
respondido por el jonk
1

simular este circuito : esquema creado usando CircuitLab

Cuando se trata de cables de conducción en los que puede producirse un timbre debido a las impedancias no coincidentes y al retardo de propagación, la forma correcta de mejorar la integridad de la señal en lógica no crítica es disminuir la impedancia de terminación hacia la impedancia del cable y mejorar el margen de voltaje en el mismo tiempo.

En este caso, le gustaría mejorar el margen de voltaje Voh (3.3V) a Vih (5V) mientras haya un buen margen en Vol to Vil

Los cables emparejados son de alrededor de 200 ohmios y el controlador está aproximadamente a los 50 ohmios = (3.3-Voh) / Ioh.

Por lo tanto, sugeriría un pullup R solo alrededor de 330 ~ 470 Ohmios a 5V. El único problema es si el 5V se enciende antes de que el encendido de 3.3V pueda causar una situación de bloqueo. por lo tanto, la elección de R debe limitar la corriente interna del diodo ESD a 5 mA. puede agregar un diodo para más desplazamiento de pullup o No! Depende de la calidad del margen de la señal y el diseño.

  

Desplazamiento de salida, reducción de impedancia para menos timbre, nivel lógico   Mejora de márgenes en la línea de transmisión con solo 2 partes simples.   Es un camino por recorrer.

Un solo pullup de R es otra solución.

La solución de controlador lógico acoplado del emisor sigue siendo la mejor para el tiempo de aumento y el margen de voltaje mejor con baja impedancia, baja ganancia y alta velocidad de giro. también conocido como el amplificador CB de Russ

Falstad Sim enlace Para mejorar la baja velocidad de giro lateral, agregue una pequeña tapa de desacoplamiento a la unión BE.

Incluso puede utilizar una entrada 74LSxx ya que el TTL proporciona un margen lógico excelente de 0.8 a 2V, en comparación con los límites de 0.3 a 0.7Vdd o de 1.5V a 3.5V deseados para la entrada (lo cual es aún mejor La solución de Russ y jonk con el margen de voltaje más amplio y las tasas de giro de 10 ns y puede tolerar una resistencia pullup en caso de timbre leve, pero no es necesario.

    
respondido por el Tony EE rocketscientist

Lea otras preguntas en las etiquetas