¿Puedo controlar la salida de voltaje de un microcontrolador?

8

Tengo que generar valores entre 0 V y 0.8 V para un circuito y tomar el valor de la salida de voltaje del sistema y analizar los datos. ¿Puedo generar valores de voltaje automáticamente usando un microcontrolador? (Por ejemplo: 0.05 V, 0.1 V, 0.15 V ...)

Si la respuesta es sí, ¿qué microcontrolador debo usar y qué técnicas recomendaría?

Si la respuesta es no, ¿puede sugerir algún otro medio?

usuario26136
fuente

Respuestas:

8

Sí, todos los microcontroladores tienen alguna forma de producir señales de voltaje controladas por el firmware. El método de fuerza bruta es que el micro incluya un convertidor digital a analógico (D / A). El firmware escribe un número en el D / A y produce un voltaje proporcional a ese número.

Una especificación importante de D / As es cuántos bits tiene el número. Esto determina su resolución. El D / A puede producir 2 N valores diferentes cuando hay N bits en el número. Por ejemplo, un D / A de 8 bits puede producir 256 niveles de voltaje diferentes. Tenga en cuenta que un pin de salida digital común puede considerarse un D / A de 1 bit. El número tiene dos estados, 0 y 1, y el voltaje de salida es alto o bajo.

La mayoría de los micros no vienen con D / As multibit incorporado porque hay poca demanda para esto. Por lo general, tratamos de convertir los valores analógicos a digitales lo antes posible en el proceso, hacemos las manipulaciones digitalmente y luego controlamos las cosas con pulsos. Es inusual querer un micro para producir un voltaje analógico. Incluso en aplicaciones como el audio, que puede considerarse inherentemente sobre una señal analógica, las cosas a menudo se manejan digitalmente o con pulsos al final. Eso es básicamente lo que es un amplificador de clase D.

Si no desea utilizar uno de los conjuntos limitados de micros que tienen un D / A incorporado, puede agregar uno externamente. Hay muchos D / As disponibles que el micro puede manejar sobre un bus SPI, por ejemplo.

Sin embargo, a menos que necesite una salida de alta velocidad, el filtrado de paso bajo de la salida PWM de un micro da como resultado una buena señal analógica. Los micros son buenos para producir secuencias de pulsos bien controladas, y muchos tienen hardware incorporado para este propósito. Por ejemplo, considere una salida digital que se puede cambiar cada 1 µs (a una velocidad de 1 MHz). Suponga que agrupa los segmentos de tiempo de 1 µs en bloques de 1023. Para cada bloque, puede tener de 0 a 1023 de los segmentos que son altos. Si promediara esto, obtendría un valor analógico con 1024 niveles posibles, que es lo que obtendría de un D / A de 10 bits. La señal sin formato contendrá el valor promedio que desea, más las frecuencias altas que comienzan en 1 MHz / 1023 = 978 Hz. Al aplicar unos pocos polos de filtrado de paso bajo (una resistencia y un condensador por polo),

Este tipo de A / D tiene algunas buenas propiedades, ya que es muy lineal, monótono y no tiene potencia de dos salidas de falla. El único inconveniente suele ser el ancho de banda. Para unas pocas resistencias y condensadores simples que forman el filtro de paso bajo, probablemente no pueda obtener una señal analógica más rápido que unos 10s de Hz.

Tenga en cuenta que usar 1023 cortes por bloque fue una elección arbitraria que hizo. Si desea más resolución, haga que los bloques sean más grandes, pero luego la salida filtrada tendrá que cambiar más lentamente. Sin embargo, muchos micros pueden hacer la generación PWM en hardware con una velocidad de corte mucho más rápida que 1 MHz.

Intentaría ver si el método PWM puede funcionar antes de pasar a un D / A externo.

Olin Lathrop
fuente
Como un novato completo, fue útil ver el espectro de filtros disponibles: analog.com/designtools/en/filterwizard
user391339
3

Lo que está tratando de diseñar es un sistema de adquisición de datos

Si tiene un convertidor de digital a analógico (DAC), puede hacerlo. De lo contrario, obtenga un DAC externo y haga que el microcontrolador se comunique con él a través de lo que pueda (I2C, SPI, UART, etc.)

Noté que etiquetó el microchip, tienen microcontroladores con un DAC desde los simples (pic12f752, pic16f753,782) hasta los avanzados (dsPIC33fj16GS504,502,302) y varios más. puede encontrarlos aquí http://www.microchip.com/maps/microcontroller.aspx

Iancovici
fuente
Entonces podría usar el 12F752, por ejemplo, usar su CDA para generar un voltaje y usar un CAD para tomar los valores del sistema y analizar, ¿verdad?
user26136
@ user26136 si CDA = DA del microcontrolador y CAD = AD del microcontrolador, entonces sí. Recomiendo también mirar las notas de la aplicación de calibración
Iancovici
Jaja sí, lo es.
user26136
1

Dependiendo de la corriente utilizada por el sistema, puede hacer esto con una escalera de resistencia como un DAC: http://en.wikipedia.org/wiki/Resistor_ladder

Si desea un pequeño número de valores de voltaje específicos, incluso podría diseñar la escalera de resistencia para emitir esos valores exactamente en lugar del sistema normal de 2 ^ n valores espaciados uniformemente.

Si consume corriente no trivial, querrá un amplificador operacional en la salida configurado como un búfer. Asegúrese de que su amplificador operacional funcione con una linealidad adecuada cerca de 0V; Es posible que necesite una fuente de alimentación negativa para esto.

pjc50
fuente
1

Además de las otras respuestas, la mayoría de los microcontroladores tienen una función PWM (y, de lo contrario, siempre puedes usar una). Si alimenta PWM en un filtro RC simple, puede hacer un DAC primitivo sin muchos componentes o costos adicionales.

Phil Frost
fuente
1

Si está de acuerdo con PWM, entonces la salida analógica de Arduino haría el trabajo bien. También puede considerar agregar un filtro de paso bajo, ya que los pulsos pueden ser muy ruidosos.

Si necesita una solución más limpia, busque microcontroladores que vienen con módulos DAC. Algunos de los microcontroladores MSP430 tienen DAC ( consulte la página 23 ) que puede usar. Necesitas mirar sus hojas de datos.

Si se encuentra limitado a un microcontrolador sin DAC, puede considerar obtener un chip DAC. Estos chips se pueden controlar fácilmente a través de SPI o I2C, y son baratos. Aquí hay un DAC de 12 bits que cuesta un poco más de un dólar.

Espero que esto ayude.

bot3663369
fuente