Estoy preparando un proyecto que aprovecha el periférico de comparación en el microcontrolador STM32F051. He leído en la documentación que para que el comparador funcione, el pin de entrada debe configurarse para analógico ... que es la misma configuración si estuviera usando el pin como entrada ADC.
¿Puedo usar un solo pin, digamos PA1, como entrada y configurarlo como una entrada de comparación de ventana y como una entrada ADC en ADC_IN1?
¿Hay algún problema con esta configuración, como ruido adicional que deba considerar?
Hoja de datos (p 19)
Manual de referencia (p 295)
Una referencia interesante, que sugiere que esto debería ser posible: Tomado de AN4232: Introducción a los comparadores analógicos para la serie STM32F3
Respuestas:
Esto funciona, obtendrá números de vuelta, así como las interrupciones. Lo he comprobado, descargue de .
La precisión y la falla aún no se han determinado. Pero está bien descrito en las Notas de aplicación como lo indica @Bence Kaulics en este hilo (ver results.txt para Notas de aplicación adicionales)
Creo que será estable por las siguientes razones.
Esto también funciona con el DAC, es decir, puede configurar todo internamente con el DAC o externamente con el DAC y algunas resistencias.
Simplemente mirando el circuito, usará el ADC en paralelo al comparador, esencialmente un amplificador. Como sabemos, estos son dispositivos de gran ganancia de muy alta impedancia. Los problemas técnicos no son nuestros amigos.
Ahora vamos a golpear una tapa descargada en ese pin de vez en cuando para alimentar el ADC.
Como todos sabemos, necesitamos sobremuestrear el ADC y preferiblemente rechazar la primera lectura después de un evento de cambio de mux para eliminar la inclinación desde y hacia los canales adyacentes.
El ADC en el STM tiene una impedancia de entrada algo <50K // 5pF dependiendo de cómo se usen. (DM00039193.pdf pág. 76ff)
La Tabla 53 proporciona 400-> 50KOhm, que es lo que encontré hace algún tiempo cuando calibré mi ADC F373.
La página 79 muestra los circuitos ADC.
Pg 82 ofrece una breve descripción del pin comparador, leído en concierto con la descripción general de los pines analógicos anteriores (pg73ff)
Ponga eso en paralelo con la entrada de su comparador y ADC MUX y modele en especias. Recuerde cargar regularmente la tapa del ADC a un voltaje aleatorio.
Pase lo que pase en el circuito y el software, obtendrá fallas bastante razonables en la entrada de su comparador. MALA IDEA, incluso si conecta el pin a un seguidor de baja impedancia y una tapa de desacoplamiento (en la línea móvil de una entrada del comparador ????).
El gorro utilizado por el ADC es el asesino. Con suerte, los dispositivos futuros tomarán muestras usando seguidores / aisladores internos tanto en el ADC como en el comparador. Es posible que ya estén presentes como características no documentadas (poco probable debido a la diafonía de mux).
Al igual que yo, creo que nos involucramos tanto con el aspecto digital de las cosas que, cuando pasamos a lo analógico e híbrido, olvidamos lo básico.
¿Cómo medir pequeñas corrientes usando el convertidor de corriente a voltaje? es una discusión que tuve ayer con alguien más. Sabía la respuesta porque me caí mal. Incluso con los mejores 3V en 50K, obtenemos un AVO de 16K / voltio. ¿Cuándo fue la última vez que utilicé un AVO / multímetro?
Dicho todo esto, una mirada a los circuitos del F373 muestra que ST y ARM parecen haber tenido la intención de obtener resultados viables tanto del comparador como del adc que se usan simultáneamente en un dispositivo mixto. La adición de opamps en las series 150 y 300 da una pista sobre los requisitos de aislamiento de impedancia.
Estoy seguro de que alguien más inteligente que yo podrá rediseñar el entorno para el que se diseñaron estas interconexiones internas. Pensaría automotriz o HVAC ... inversores y FOC. La biblioteca FOC puede proporcionar información valiosa.
A menos que esté construyendo un instrumento de alta velocidad y alta precisión, dicho uso puede ser lo suficientemente estable como para ser utilizado prácticamente (dentro de las advertencias anteriores). Ciertamente ahorrará una gran cantidad de circuitos externos. Probablemente, lo mejor sea dejar un examen riguroso a altas velocidades como ejercicio para el estudiante (tientame a estudiar).
Solución aquí .
Parece que la biblioteca HAL ADC está un poco rota para DMA multicanal. He publicado en el sitio web de STM para obtener una respuesta. Soluciones alternativas: -
a) IRQ ambos ADC
b) Encuesta ambos ADC
c) DMA un canal y sondear el otro
d) Inicialice los registros de bajo nivel manualmente
Esta es otra advertencia para la solución donde se usan ambos comparadores, hasta que se encuentre una mejor solución.
fuente
La configuración más relevante que pude encontrar es la siguiente, desde Uso de comparadores analógicos STM32F05xx en casos de aplicación , ( AN4112 ), página 4:
Dice:
Aquí el ADC y el COMP funcionan alternativamente, pero creo que ambos están configurados al mismo tiempo. Si continuamos en el documento, hay un diagrama de bloques sobre la configuración COMP.
Basado en esta imagen, creo que el ADC y el COMP comparten el mismo canal ADC, la única diferencia es el número de fuentes de umbral analógico habilitadas .
El texto debajo de la Figura 5 en la pregunta establece que el
posiblemente lo mismo que ADC_IN1.
El propósito de toda esta configuración es ahorrar energía, el COMP activa cambios de estado de la MCU (STOP <--> RUN). Entonces, cuando la entrada está por debajo de un cierto umbral, el MCU y el ADC se apagan y solo funciona el comparador, y cuando la entrada está por encima del umbral, el MCU y el ADC se activan, el ADC mide el voltaje de entrada. Pero si la entrada cae por debajo del umbral nuevamente, el COMP envía la MCU al estado STOP.
Es una forma de usarlos juntos, espero que esto haga avanzar la pregunta.
fuente
Creo que deberías preguntar en el foro STM. También hay (STM32F1) UART RX y TIMx en el mismo pin, ambas entradas, pero no puede usarlas juntas, como detectar la interrupción del temporizador de final de transmisión. En cambio, se debe conectar un pin TIMx diferente en paralelo para que la función UART RX y el temporizador interrumpan. Supongo que solo una función puede estar activa al mismo tiempo.
Intente descargar MxCube y vea qué configuración se puede construir.
fuente