Solución para aceptar 3-24v como alta digital para microcontrolador

Busco sugerencias para convertir una entrada digital en el rango de 3-24vdc a una señal de 3.3v para un microcontrolador.

Necesito manejar un total de 32 entradas (cada una de las cuales podría variar entre esos voltajes), por lo que la densidad es más importante que el costo.

Alguien sugirió que un búfer hexadecimal no inversor como el CD4050 de TI ( http://www.ti.com/lit/ds/symlink/cd4050b.pdf ) podría ser la solución, pero no estoy completamente seguro de si manejará múltiples voltajes de entrada

Gracias por adelantado por tus sugerencias.

EDITAR: Las entradas se conectarán a:

  1. Varios interruptores mecánicos que pueden tirar de la línea a GND o a un voltaje en cualquier lugar dentro del rango dado de 3-24v

o

  1. Sensores de varios tipos con salidas digitales. Esas salidas pueden ser bajas (gnd) o altas con voltajes que pueden estar en cualquier lugar dentro del rango dado de 3-24v, según el tipo, la marca y el modelo del sensor.

Cualquiera de las entradas podría conectarse a cualquier tipo de interruptor o sensor dentro de los límites especificados anteriormente.

EDICIÓN 2: Desafortunadamente, los multiplexores y similares no son posibles ya que los tiempos son MUY ajustados y las interrupciones de prioridad variable deben usarse ampliamente, lo que requiere conexiones directas a los pines del microcontrolador.

¿Leíste esa hoja de datos?
Sí. Varias veces.
¿Qué tipo de carga necesitas? es decir, ¿estás buscando alta impedancia?
¿Qué tal un divisor de voltaje 10:1 y un comparador?
Sí, un divisor. Si se trata de una señal de alta velocidad, el ancho de banda del divisor se puede mejorar utilizando un divisor de voltaje capacitivo y un divisor de voltaje resistivo. El condensador superior debe ser de unos pocos pF. Baje uno elegido para producir la proporción correcta.
¿No sería un poco de preocupación un divisor y comparador 10: 1 si la entrada fuera solo de 3 voltios?
El umbral del comparador se establecería en 0,3V. Tendrá que usar algunas resistencias del 1% y realizar los cálculos de esquina. Pero sospecho que es factible.
Sí, carga de alta impedancia.
Puede usar un comparador sin divisor y simplemente sujetar la entrada para protegerla. Pero eso podría ser un poco abusivo para la fuente, dependiendo de lo que sea. En ese caso, el umbral se establecería en 3V.
Sería útil saber más sobre los voltajes de entrada y los umbrales que desea para determinar el nivel lógico. Por ejemplo, ¿los niveles de cruce son siempre los mismos? ¿Y qué son?
Podría haber muchos problemas de diseño del sistema aquí. ¿Cómo se alimentan los sensores? ¿Podrían ser alimentados cuando el micro no lo es? Porque eso requerirá un tratamiento especial si ese es el caso. Etc.
¿Qué tal una resistencia de gran valor y un diodo de caída baja al riel de 3.3 v? Esto dará una lectura alta para cualquier voltaje > 2,5 V. Utilice una resistencia desplegable mucho más grande para que incluso la entrada de 3 V supere el umbral lógico.
@mkeith ¿Podría explicar por qué eso es relevante?
Realmente se requiere más información aquí ... ¿qué significa exactamente la señal de 3-24V?
@Trevor, ¿podría aclarar exactamente qué más información necesita?
Um... ¿eso es un rango... es eso un mínimo máximo? Son esos niveles lógicos... dices que tienes muchos, son todos iguales... ¿Cuáles son los valores de lógica baja máxima y lógica alta mínima... También cuál es la impedancia de la fuente de las señales... .
(cada uno de los cuales podría variar en cualquier lugar entre esos voltajes),... ¿qué quiere decir exactamente con eso... son en realidad señales analógicas?
@Trevor muchas gracias por los comentarios. Por favor, vea la edición anterior. Espero eso conteste tu pregunta. Gracias de nuevo.
La opción 1 se puede manejar con la mayoría de las respuestas a continuación, sin embargo, la opción 2 aún necesita que defina el voltaje de bajo nivel de los sensores. Usted dice GND... pero ese rara vez es el caso... Algunas salidas de 24 V tienen algunos rangos de voltaje cero de lógica de nivel bastante alto y la impedancia de salida puede ser un problema.
Asumiendo que es... tierra en el sensor = tierra en el receptor...
@Trevor, no puedo decírtelo porque depende del sensor exacto, y eso no se determina de antemano. Ese es realmente el punto de mi pregunta. Si todos los parámetros exactos fueran fijos y conocidos de antemano, simplemente podría diseñar el circuito a la medida. El punto de la pregunta es cómo diseñar un circuito que acepte una amplia gama de posibles tipos de sensores.
Sin embargo, @LachlanFletcher ese es mi punto. Puede ser imposible idear una solución genérica simple que satisfaga todas sus necesidades sin usar un circuito que el micro, o el usuario, pueda adaptar para ajustarlo al sensor conectado.
¿Necesita medir este voltaje o es solo una señal digital?
Dichos sensores son comunes en los PLC. Las entradas optoaisladas son la solución robusta más común para la tarea que ha descrito. El requisito de entrada de 3V requiere una cuidadosa selección de componentes. 5V es más común y mucho más fácil de lograr. Siga algunos de los enlaces en esta búsqueda de imágenes. - google.com/search?q=3V+24V+opto+aislador&tbm=isch
Si tiene un circuito que no está alimentado y conduce una entrada a un alto voltaje, eso conducirá a un comportamiento impredecible del circuito sin alimentación. Si ese es un caso posible, entonces las entradas deben protegerse para que permanezcan en alta impedancia hasta que se encienda el circuito local.

Respuestas (4)

Puede usar transistores prepolarizados duales (se requieren 16). Si la MCU tiene pullups internos adecuados, no necesitaría ninguna otra pieza. R1/R2 de 22K/22K o 47K/47K podría ser adecuado. La clasificación de voltaje de entrada es de -10 V a +40 V para esos valores.

ingrese la descripción de la imagen aquí

Miden aproximadamente 2 mm x 2 mm, por lo que no ocupan mucho espacio en la placa.

Gracias por la sugerencia @spehro-pefhany. Creo que esto probablemente hará lo que busco. Los componentes han sido ordenados y comenzaré a probar mañana. Gracias de nuevo.

esquemático

simular este circuito : esquema creado con CircuitLab

Con la resistencia pull-up, el voltaje de entrada del microcontrolador es ALTO. No importa cuál sea el voltaje en la entrada de 3-24 V. Excepto en voltaje de entrada de 3-24 V por debajo del umbral de entrada del microcontrolador. (incluyendo el voltaje directo a través del diodo). En este caso, el diodo pasa corriente y la entrada del microcontrolador es BAJA.

El principal problema aquí es que la entrada de MCU tendrá un Vinput (bajo) de <0,8 V por lo general, por lo que para llevar la entrada a un mínimo garantizado, debe tener un voltaje extremadamente bajo (incluso si usa un diodo Schottky) de <0,6 V o menos en el lado del sensor. Eso será difícil de lograr.
@Jack Creasey, tienes razón. Si entiendo la pregunta estos requisitos se cumplen. Y la versión de diodo Schottky con menos exigencia que la versión del FET. Y diodo para proteger el microcontrolador cuando no hay tensión de alimentación.

Dado que su rango de voltaje es tan alto, creo que podría lograr un buen resultado con un solo FET de canal N. Hay FET disponibles que tienen clasificaciones V(GS) superiores a 24 V... aquí hay uno que tiene una clasificación de 40 V: 2n7002 . Incluso puede obtener FET en una matriz, aunque es un poco más difícil encontrarlos con clasificaciones V (GS) altas.
También podría usar los FET más nuevos, como el NTJD5121NT1G , estos tienen diodos de protección Gate ESD incorporados y podría usarlos para sujetar la entrada con solo una resistencia en serie. Puede ver en la hoja de datos que la protección ESD comienza a funcionar en la clasificación de puerta de 20 V.

esquemático

simular este circuito : esquema creado con CircuitLab

La curva de transferencia V(GS) es:

ingrese la descripción de la imagen aquí

Esto debería proporcionar una entrada alta de aproximadamente 1,5 a 24 V. La entrada baja debería estar por debajo de 1 V.

No importa lo que haga para 32 entradas, necesitará al menos 32 resistencias (si desea entradas de alta impedancia) y probablemente 16-32 paquetes SMD, por lo que se requerirá un espacio de placa significativo. Podría considerar un HV5622 y usar un método de lectura serializado como lo propuse aquí . La entrada de sentido podría reorganizarse para usar un solo comparador. Esto reduce la complejidad de la PCB, pero sigue siendo un trabajo de diseño con muchas pistas. Lo bueno de la adquisición en serie es, por supuesto, que es fácil separar la placa de adquisición y aislarla de la MCU.

Gracias por el excelente detalle en tu respuesta Jack. Creo que esta solución definitivamente funcionaría, sin embargo, para 32 entradas individuales, creo que el circuito podría complicarse un poco y ocupar demasiado espacio en la placa.
@LachlanFletcher También puede obtener transistores prepolarizados que tienen las resistencias integradas en el paquete. Estos vienen en paquetes dobles para que puedas arreglártelas con 16 de estos. Mire algo como la gama NXP PUMH.
Este, por supuesto, puede no funcionar si V O L max > 1.022V que no es atípico para sensores de 24V y definitivamente no funcionará si V O L max> 2.555 que tampoco es inaudito.
Agregue a la respuesta de Jack la posibilidad de un multiplexor de 16 canales de 36 V y simplemente puede escanear las entradas. Sin embargo, eso requeriría que la potencia sea igual o superior al voltaje de entrada máximo esperado; ti.com/product/mux36s16
@Trevor. Por supuesto, puede seleccionar los FET con cualquier umbral de V (GS) que desee, simplemente seleccioné uno de los dispositivos de umbral muy bajo más nuevos.
@JackCreasey Sí, lo sé, pero una variante "genérica" ​​para una amplia gama de sensores puede no ser realista. Sin embargo, prefiero esta respuesta para un conjunto de sensores más controlado.
Gracias por el comentario Pedro. Consulte mi edición anterior para obtener detalles sobre multiplexores y similares.

lo más simple sería usar una resistencia grande para cada una de las entradas. el diodo de sujeción en el pin de entrada + esa resistencia hará un buen trabajo.

alternativamente, use una resistencia + un zener de 3.3v.

también existen respuestas más complejas.

Ciertamente, esto proporcionaría un nivel alto en la MCU, pero es poco probable que proporcione un nivel bajo garantizado (a través de esta resistencia de alto valor). Considere un ejemplo... una entrada de puerto de 3,3 V con la resistencia pull-up interna (47k) activada. Para llevar esta entrada a un valor bajo válido (<0,8 V) se requiere un pulldown de 15k o menos (y a 0 V). 15k dará como resultado un flujo de corriente en el diodo de sujeción de MCU de 1,3 mA cuando esté alto. Consideraría que es de mala educación hacer esto (un potencial de 43 mA en total a través de las abrazaderas MCU). Quizás un TL431 común y 32 diodos podrían ser más aceptables.