Convertidor de nivel lógico (3,3 v <-> 5,0 v) que devuelve ALTO para bajo voltaje. y alto voltaje. lados cuando no hay nada enchufado. [Raspberry Pi]

La meta

Tengo una Raspberry Pi con la que me gustaría controlar mi cinta de correr. Los puertos GPIO de Pi emiten 3.3v y el tablero de control del motor de la caminadora solo toma señales de 5v. Por eso, compré un convertidor de nivel lógico bidireccional.

El problema

Puede imaginar lo malo que sería si conectara mi Pi a la cinta de correr y, de inmediato, la cinta de correr estuviera recibiendo 5v sólidos al cable de velocidad. Quiero evitar eso.

Conecté el LV a 3.3v y HV a 5v y conecté terrenos en ambos lados del convertidor de nivel lógico. Ahora, desde el principio, tocando mi multímetro a Tierra + LV1 muestra 3.3v. Peor aún, tocar HV1 muestra 5v (lo que significa que el escenario de pesadilla habría ocurrido si esto estuviera enchufado).

Grabé un video de mí tocando diferentes partes del convertidor y diciendo los resultados.

Cosas que he reunido hasta aquí.

Si el GPIO de Raspberry Pi no está programado explícitamente para emitir una señal ALTA o BAJA, se convierte en una "antena". Afortunadamente, aprendí que configurar un pin explícitamente en BAJO y conectarlo a LV1 generará 0v en HV1. El problema es que la Pi tarda en arrancar e iniciar mi programa, por lo que me temo que si se reinicia, la cinta de correr recibiría 5v completos a la velocidad durante 30 segundos mientras arrancaba.

Detalles adicionales

Para este proyecto, tengo cuatro cables que estoy conectando desde mi Pi a la caminadora: Incline Up, Incline Down (ambos toman una señal sólida de 5v para activarse), Velocidad (señal PWM de 5v) y un cable de tacómetro (?) ( diagrama decía que podría usarse para rastrear pasos). De estos 4 cables, 3 de ellos son salidas y 1 de ellos son entradas.


Cualquier consejo es apreciado, ¡gracias por leer hasta aquí!

Respuestas (1)

Agregue una resistencia pulldown (una resistencia a tierra de aproximadamente 1k) a cada entrada del cambiador de nivel que necesite proteger de una activación errónea. Como resultado, cuando el Pi no está impulsando la línea, su lógica es baja por defecto, y las salidas del cambiador de nivel solo serán altas cuando el Pi esté impulsando activamente las entradas correspondientes a un nivel alto. Cuando está alto, se extraerán alrededor de 3,3 mA de los pines GPIO para superar el pulldown, que está dentro de los límites recomendados .

Nota: El cambiador de nivel incluye sus propios pullups (que hacen que la salida sea alta por defecto), con un valor de 10k. Cuando la señal es baja, ambos pullups en cada canal deben superarse (el pullup LV directamente y el pullup HV porque el FET conducirá). Su resistencia pulldown debe tener un valor que sea lo suficientemente pequeño como para poder superar estos pullups.

Gracias Andrey! Entonces, para aclarar, digamos que quiero generar una salida usando mi Pi en LV1 y el HV1 correspondiente se conectaría a la placa de control de mi cinta de correr. Tendría una resistencia conectada a la tierra de mi Pi y luego conectada a HV1, eso evitaría que el valor predeterminado sea ALTO, ¿sí?
@NessDan No hay problema. Consulte las ediciones posteriores cuando revisé el esquema del cambiador de nivel y ajusté la resistencia desplegable recomendada.
Gracias, también hice una edición en mi comentario anterior :)
@NessDan La resistencia desplegable debe ir entre la tierra de su Pi y LV1. Bajará LV1.
¡Gracias! Conseguiré una resistencia mañana y la probaré, volveré para marcar tu pregunta como respuesta (¡o volveré con más preguntas! Jaja)
Una última pregunta: necesitaría 4 resistencias desplegables, ¿correcto? No puedo usar uno para compartir con varios cables, ¿verdad?
@NessDan Eso es correcto. Necesitarás cuatro.
Una actualización en caso de que alguien encuentre esta discusión: al usar resistencias de 1k Ohm, el lado HV ahora lee 0.66v, lo que con suerte debería ser suficiente para que la caminadora interprete esto como "BAJO". Actualizaré nuevamente si ese no es el caso, pero por ahora, la solución funcionó.