STM32F0x1 comparator (COMP) y ADC en el mismo pin simultáneamente?

8

Estoy armando un proyecto que aprovecha el periférico del comparador 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 de ADC.

¿Puedo usar un solo pin, digamos PA1, como entrada y configurarlo como entrada de comparador de ventana y como entrada de ADC en ADC_IN1?

¿Hay algún problema con esta configuración, como el ruido adicional que debería tener en cuenta?

Hoja de datos (p 19)

Manual de referencia (p. 295)

Una referencia interesante, que sugiere que esto debería ser posible: Tomadode AN4232: Cómo comenzar con comparadores analógicos para la serie STM32F3

    
pregunta Daniel

3 respuestas

4

Esto funciona, obtendrás números de vuelta, así como interrupciones. Lo he comprobado, descargue desde .

La precisión y la glitchiness son indeterminadas, todavía. Pero está bien descrito en las Notas de aplicaciones como lo indica @Bence Kaulics en este hilo (vea results.txt para Notas de aplicaciones adicionales)

Creo que será estable por las siguientes razones.

a) The circuit diagram in RM0091 shows a direct connection from comparator to pin. i.e. it is indicated that the comparator cannot be disconnected with a switch or MUX, and will thus work as soon as the pin is assigned 'analog in'.

b) The comparator is NOT dependent on a 'Clock' to enable it (it is alow power device).

c) ST would not be able to make this level of change without assigning a new part number.


The good news is that one can continue to use the comparator for high-speed events such as over current and emergency stop etc whilst still using the ADC analog window events for other software control.

Esto también funciona con el DAC, es decir, puede configurarlo todo internamente con el DAC o externamente con el DAC y algunas resistencias.

Simplemente mirando el circuito, usarás el ADC en paralelo al comparador, esencialmente un amplificador. Como sabemos, estos son dispositivos de gran ganancia de impedancia muy alta. Los fallos 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, debemos sobredimensionar el ADC y, preferiblemente, rechazar la primera lectura después de un evento de cambio de mux para eliminar los sesgos de los canales adyacentes.

El ADC en el STM tiene algo de impedancia de entrada < 50K // 5pF    Depende de cómo se usen. (DM00039193.pdf pág. 76ss)

La tabla 53 muestra 400- > 50KOhm, que es lo que encontré hace algún tiempo cuando calibré mi F373 ADC.

La página 79 muestra el circuito de ADC.

La página 82 ofrece una breve descripción del pin comparador, leída en concierto con la descripción general de los pines analógicos (pg73ff)

Póngalo en paralelo con la entrada de su comparador y el ADC MUX y modeléelo con especias. Recuerde cargar la tapa del ADC a un voltaje aleatorio regularmente.

Pase lo que pase en el circuito y el software, obtendrá errores técnicos bastante razonables en la entrada del comparador. BAD IDEA, incluso si conecta el pin a un seguidor de baja impedancia y tapa de desacoplamiento (en la línea en movimiento de una entrada de comparador ????).

La tapa utilizada por el ADC es el asesino. Esperemos que los dispositivos futuros muestren utilizando seguidores / aisladores internos tanto en el ADC como en el comparador. Es posible que ya existan como características no documentadas (improbable debido a la interferencia de mux).

Al igual que yo, creo que nos involucramos tanto con el lado digital de las cosas que cuando pasamos a lo analógico e híbrido, olvidamos lo más básico.

Cómo medir ¿Las pequeñas corrientes que usan el convertidor de corriente a voltaje? es una discusión que tuve con alguien más ayer. Sabía la respuesta porque me caí mal. Incluso en el mejor de 3V a 50K, obtenemos un AVO de 16K / voltio. ¿Cuándo fue la última vez que usé un AVO / multímetro?

Todo lo que se dice, un vistazo a los circuitos del F373 muestra que parece que ST y ARM intentaron obtener resultados viables tanto del comparador como del adc que se utilizan simultáneamente en un dispositivo mixto. La adición de opamps en las series 150 y 300 da una idea de 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. Yo diría que los inversores de automoción o HVAC .... y FOC. La biblioteca FOC puede proporcionar información valiosa.

A menos que esté construyendo un instrumento de alta velocidad y alta precisión, tal uso puede ser lo suficientemente estable como para ser utilizado prácticamente (dentro de las advertencias anteriores). Sin duda ahorrará muchos circuitos externos. Probablemente es mejor dejar las pruebas rigurosas a altas velocidades como ejercicio para el estudiante (tiéntame a estudiar).

Solución aquí .

Parece que la biblioteca HAL ADC está un poco dañada para DMA multicanal. He publicado en el sitio web de STM para obtener una respuesta. Soluciones: -

a) IRQ ambos ADC

b) Encuestar ambos ADC

c) DMA un canal y sondea el otro

d) Inicialice los registros de bajo nivel manualmente

Esta es otra advertencia a la solución donde se usan ambos comparadores, hasta que se encuentre una solución mejor.

    
respondido por el ChrisR
3

Creo que deberías preguntar en el foro de STM. También hay (STM32F1) UART RX y TIMx en el mismo pin, ambas entradas, pero no puede usarlas juntas, como detectar el fin de la interrupción del temporizador de transmisión. En su lugar, se debe conectar un pin TIMx diferente en paralelo para tener la función UART RX y el temporizador de interrupción. Supongo que solo una función puede estar activa al mismo tiempo.
Intente descargar MxCube y vea qué configuración se puede construir.

    
respondido por el Marko Buršič
3

La configuración más relevante que pude encontrar es la siguiente, de Uso de comparadores analógicos STM32F05xx en casos de aplicación , (AN4112 ), página 4:

Dice:

  

LaFigura1muestracómoconectarunasalidadesensor(sensordetemperatura,sensordepresión,detectordeinfrarrojospiroeléctrico,sensordefotodiodo)aundispositivoSTM32F05xxenunaaplicacióndemonitoreodevoltajeanalógicousandoelcomparador2(COMP2).COMP2controlalatensiónanalógicaenelmododeparada,mientrasqueelADClomideenelmododeejecución.

Aquí,elADCyelCOMPfuncionanalternativamente,perocreoqueambosestánconfiguradosalmismotiempo.Sicontinuamoseneldocumento,hayundiagramadebloquessobrelaconfiguracióndeCOMP.

Segúnestaimagen,creoqueelADCyelCOMPcompartenelmismocanalADC,laúnicadiferenciaeselnúmerodefuentesdeumbralanalógicohabilitadas.

EltextodebajodelaFigura5enlapreguntaindicaque

  

laentradadelcomparadoresuncanalADC

posiblementelomismoqueADC_IN1.

Elpropósitodetodaestaconfiguraciónesahorrarenergía,elCOMPactivaloscambiosdeestadodelaMCU(STOP<->RUN).Entonces,cuandolaentradaestápordebajodeunciertoumbral,laMCUyelADCseapaganysolofuncionaelcomparador,ycuandolaentradaestáporencimadelumbral,laMCUyelADCseactivan,elADCmideelvoltajedeentrada.Perosilaentradacaedenuevopordebajodelumbral,elCOMPenvíalaMCUalestadoSTOP.

Es una forma de usarlos juntos, espero que esto haga avanzar la pregunta.

    
respondido por el Bence Kaulics

Lea otras preguntas en las etiquetas