Corrector de salida GPIO

Me sugirieron que GPIOlas salidas en Raspberry no se pueden usar como voltaje de referencia: por ejemplo, GPIO TRUEpodría dar solo 3.2V y GPIO FALSEpodría dar 0.1V. Por otro lado, según Explorando el riel de alimentación de 3,3 V, el riel de 3,3 V debería ser bastante estable. Lo que quiero hacer es corregir GPIOla salida de manera que realmente devuelva algo muy cercano al voltaje del riel (3.3V) cuando TRUEy algo realmente cercano al voltaje de tierra (0.0V) cuando FALSE:

ingrese la descripción de la imagen aquí

También estaría satisfecho con la solución de lógica invertida, es decir, que devuelve algo muy cercano al voltaje del riel (3.3V) cuando FALSEy algo muy cercano al voltaje de tierra (0.0V) TRUE. Sé que, en principio , los inversores deberían hacer ese trabajo, pero no sé qué tan precisos son.

tengo varias preguntas:

  • ¿Cuál es el circuito más simple para hacer el trabajo?
  • ¿Los inversores listos para usar serían lo suficientemente buenos para la solución de lógica invertida?

Especificación para el circuito:

  • salida de corriente inferior a 1 mA,
  • TRUE/ FALSEo FALSE/ TRUEvoltajes en OUTmenos de 0.04V de voltaje de riel y voltaje de tierra.

Ya asumí (espero tener razón) que el voltaje del riel está dentro de unos pocos porcentajes de 3.3V.


La solución de @Andy alias:

ingrese la descripción de la imagen aquí

El voltaje de salida de referencia se puede regular entre 0V y 1V. Para GPIO= FALSE, OUTes igual al voltaje de referencia. Para GPIO= TRUE, OUTes (según mis cálculos) menos de 1 uV.

(¿Podría confirmar que esta es su solución propuesta?)

"¿Este circuito hace el trabajo?" más bien depende de cuál sea el trabajo. ¿Qué tan estable necesita que sea esta salida y cuánta carga espera?
Hmm, ¿qué problemas tienes para empezar? ¿Por qué la señal alta del GPIO no es suficiente?
Tus mosfets están mal colocados. El canal P debe estar en la parte superior.
@Finbarr Necesito que la salida sea lo más cercana y estable posible al riel de 3.3V. La salida va al divisor de voltaje con al menos unas pocas docenas de kiloohmios.
@WesleyLee Me dijeron que GPIO no es lo suficientemente confiable, que la señal alta podría ser, digamos, solo 3V.
@Andyaka Esto no es inversor / NO lógica. Todo lo contrario, expliqué en la pregunta.
La respuesta podría ser cualquier cosa, desde usar un N-FET con un pull-up a 3,3 V, medir realmente la salida de su RPi (podría ser 3,3 V y suficiente), hasta tal vez un pin Habilitar en una referencia de 3,3 V. O ajustando su divisor resistivo.
Si eso es un N-fet en la parte superior, ¡en realidad no se encenderá!
@pcj50 facepalm tienes razón. Mi solución apesta. Reformularé la pregunta sin mi "solución".
Si tiene que ser absolutamente de 3,3 V, lo que haría sería tener un LDO separado , con sus propios condensadores de desacoplamiento, accionados desde el riel de 5 V, con una entrada de habilitación (pin EN o ~EN) accionada desde el GPIO.
@pjc50 Suponiendo que GPIO TRUE da 3.2V y GPIO FALSE da 0.1, necesitaría algo que dé 3.3V o 0.0V para GPIO TRUE y 0.0V y 3.3V para GPIO FALSE.
Pero, ¿para qué necesitas exactamente 3,3 V de un GPIO? ¿Estás construyendo un DAC de resistencia o algo por el estilo?
@Pygmalion no, estás equivocado, debe ser un canal P en la parte superior.
@RichardtheSpacecat Necesito un voltaje de referencia relativamente preciso para el controlador actual. Con GPIO ON, el voltaje debe ser, digamos, 0.5V, para GPIO OFF, el voltaje debe ser 0 V, lo que detendría la corriente por completo. La lógica negativa también está bien.

Respuestas (2)

De un comentario del OP: -

Necesito un voltaje de referencia relativamente preciso para el controlador de corriente. Con GPIO ON, el voltaje debe ser, digamos, 0.5V, para GPIO OFF, el voltaje debe ser 0 V, lo que detendría la corriente por completo. La lógica negativa también está bien.

Para mí, esto implica que usaría un divisor de potencial de resistencia para crear 0,5 voltios a partir de 3,3 voltios, así que...

La solución más simple sería conectar la resistencia superior a +3,3 voltios y usar un MOSFET de canal N para sujetar la entrada de referencia (anteriormente 0,5 voltios) a 0 voltios.

Un divisor de resistencia no es preciso, especialmente cuando cambia VCC o la corriente de carga.
@TurboJ Todavía puede ser lo suficientemente bueno, según el trabajo. Como todavía no tenemos ninguna especificación precisa de lo que el OP realmente quiere lograr, supongo que cualquier respuesta cuenta.
@RichardtheSpacecat Esperaría que una mejor precisión signifique un circuito más complejo. Lo que realmente quiero es la solución que cualquier aficionado (como yo) sea fácilmente capaz de construir. Es una gran simplificación si asumimos que la línea de 3.3V es lo suficientemente estable (con, digamos, un pequeño porcentaje de error). Por supuesto, si la salida GPIO es igualmente precisa, entonces la pregunta no tiene sentido.
Sé cómo construir un divisor de voltaje, sin embargo, para mí es muy confuso, cómo encender/apagar la salida del divisor de voltaje al cambiar GPIOla lógica.
@Pygmalion se puede hacer que el MOSFET del canal N funcione como un interruptor de encendido/apagado. Cuando está apagado (circuito abierto), la entrada de referencia en su chip es de 0,5 voltios y, cuando el MOSFET está encendido, actúa como un cortocircuito y reduce la entrada de referencia a 0 voltios. Drenaje a la entrada de referencia, fuente a 0 voltios y puerta al pin IO. Elija un MOSFET con baja resistencia (por ejemplo, por debajo de 0,1 ohmios). Además, ¿cuáles son sus valores de resistencia de los que habla que establecen los 0.5 voltios?
Creo que tengo la idea.
@Andyaka Publiqué su sugerencia porque la entendí como otra respuesta: el voltaje de salida se puede regular entre 0V y 1V, R3 también funciona como protección GPIO (en caso de que el potenciómetro esté atornillado hasta el final). Si te gusta, puedes usar la imagen en tu respuesta. Borraré mi respuesta después de que confirmes.
Sí, esa es la idea, pero use valores más pequeños de resistencia para hacer el divisor potencial y no usaría un potenciómetro.

Creo que su circuito podría funcionar, pero solo en algunos casos seleccionados.

Tienes que tener en cuenta, que tus Fets tienen un R d s o norte , lo que influirá en el voltaje de salida si la carga consume una cantidad significativa de corriente. Por lo tanto, encontrará un voltaje por debajo de 3,3 V dependiendo de la carga.

Recomiendo usar una referencia de voltaje con una entrada de referencia como la TLV431.

esquemático

simular este circuito : esquema creado con CircuitLab

Esto permite una salida de voltaje bastante precisa, que es mucho más estable. Se omiten los condensadores, consulte las notas de aplicación en la hoja de datos. Además, tan pronto como tenga conocimiento sobre la impedancia de su carga, adapte R3 a sus necesidades.

Si tiene el dinero, hay referencias con un pin de habilitación adicional, que podría ahorrarle algunos de los discretos externos.