Cómo cambiar la señal lógica de 3V3 a 5V para NeoPixel [duplicado]

0

Estoy trabajando con una tira led NeoPixel y un microcontrolador que funciona a 3.3V. Como puedes leer en la documentación de NeoPixel utilizando un micro con 3.3V en el pin, requiere DATA la señal debe cambiarse de 3.3V a 5V para evitar comportamientos inesperados. En la página de Adafruit, sugieren utilizar un convertidor IC 74AHCT125.

¿Es posible lograr el mismo resultado evitando IC? (por ejemplo, con mosfet o similar).

El protocolo de datos de NeoPixel es muy estricto con respecto al tiempo (señal de 800 KHz), por lo que creo que la solución necesita un tiempo de encendido / apagado rápido.

    
pregunta Noisemaker

2 respuestas

7

Aquí es bastante simple y también es bidireccional: -

Cuando la entrada de datos desde el lado de 3.3 voltios es baja, U1 se enciende y conecta el pin de datos de la mano derecha al pin de datos de entrada, por lo que la salida también es de 0 voltios. Cuando el pin de entrada es alto, el transistor se apaga y la salida de la derecha se eleva a 5 voltios.

Lo único que hay que tener en cuenta es la velocidad de los datos: el tiempo de subida en el lado de salida de 5 voltios se limita un poco al alcanzar 5 voltios desde 3,3 voltios. El primer 3.3 voltios está bien porque la capacitancia del MOSFET acopla la señal de entrada de datos ascendente de 3.3 voltios a la salida pero, una vez que el lado de entrada se ha establecido en 3.3 voltios, los 1.7 voltios restantes solo se logran a través de R3 cargando la capacitancia parásita interna del BSS138 (aproximadamente 20 pF, incluida la capacidad de transferencia inversa). Por lo tanto, el tiempo RC es 200 ns, lo que será bueno para velocidades de datos de hasta 1 o 2 Mbps.

Si crees que necesitas más rápido, entonces puedes bajar el R3 a 1 kohm. Entonces, el único factor limitante son los tiempos especificados de aumento y caída del propio MOSFET y estos son máximos de 18 y 14 ns respectivamente, pero tenga cuidado con el tiempo de retardo de apagado (es de 36 ns en comparación con 5 ns para el encendido). hora. El efecto de esto será alterar ligeramente la proporción de espacio de marca de sus datos. Podría ser un problema, pero sospecho que no a 2 Mbps si baja R3 a 1 kohm.

    
respondido por el Andy aka
0

simular este circuito : esquema creado usando CircuitLab

Este sería un simple circuito impulsado por FET que cambiará de nivel su línea de datos. Necesita dos FET para mantener la señal 'polaridad'. El primer FET "M2" invertirá la señal y "M1" se invertirá nuevamente.

    
respondido por el Babber

Lea otras preguntas en las etiquetas