Estoy armando un proyecto que aprovecha el periférico 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 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 ruido adicional, que deba considerar?
Hoja de datos (pág. 19)
Manual de referencia (pág. 295)
Una referencia interesante, que sugiere que esto debería ser posible: Tomado de AN4232: Primeros pasos con comparadores analógicos para la serie STM32F3
Esto funciona, obtendrá números de vuelta, así como interrupciones. Lo he comprobado, descargar desde .
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 resultados.txt para obtener Notas de aplicación 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 configurar todo internamente con el DAC o externamente con el DAC y algunas resistencias.
Con solo mirar 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 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, necesitamos sobremuestrear el ADC y, preferiblemente, rechazar la primera lectura después de un evento de cambio mux para eliminar la desviació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 da 400->50KOhm, que es lo que descubrí hace algún tiempo cuando calibré mi F373 ADC.
La página 79 muestra el circuito ADC.
La página 82 ofrece una breve descripción del pin del comparador, leída junto con la descripción general de los pines analógicos anterior (pg73ff)
Póngalo en paralelo con la entrada de su comparador y ADC MUX y modele en especias. Recuerde cargar la tapa del ADC a un voltaje aleatorio con regularidad.
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 de comparador????).
La gorra utilizada por el ADC es el asesino. Es de esperar que los dispositivos futuros muestreen utilizando seguidores/aisladores internos tanto en el ADC como en el comparador. Es posible que ya estén allí como características no documentadas (poco probable debido a la diafonía mux).
Al igual que yo, creo que nos involucramos tanto con el lado digital de las cosas que cuando pasamos a lo analógico y lo híbrido nos olvidamos de los conceptos básicos.
¿Cómo medir pequeñas corrientes usando un convertidor de corriente a voltaje? es una discusión que tuve con otra persona ayer. Sabía la respuesta porque yo mismo me enfadé con ella. Incluso en los mejores 3V a 50K obtenemos un AVO de 16K/volt. ¿Cuándo fue la última vez que usé un AVO / multímetro de este tipo?
Dicho todo esto, una mirada a los circuitos del F373 muestra que ST y ARM parecen haber tenido la intención de poder obtener resultados viables del comparador y el adc que se usan simultáneamente en un dispositivo mixto. La adición de amplificadores operacionales 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. Yo pensaría en automoción 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 para ser utilizado en la práctica (dentro de las advertencias anteriores). Ciertamente ahorrará una gran cantidad de circuitos externos. Probablemente sea mejor dejar las pruebas rigurosas a altas velocidades como un 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) Sondear ambos ADC
c) DMA un canal y sondear el otro
d) Inicializar manualmente los registros de bajo nivel
Esta es otra advertencia para la solución donde se usan ambos comparadores, hasta que se encuentre una solución mejor.
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:
La Figura 1 muestra cómo conectar una salida de sensor (sensor de temperatura, sensor de presión, detector infrarrojo piroeléctrico, sensor de fotodiodo) a un dispositivo STM32F05xx en una aplicación de monitoreo de voltaje analógico usando el comparador 2 (COMP2). COMP2 monitorea el voltaje analógico en modo Stop mientras que el ADC lo mide en modo Run.
Aquí el ADC y el COMP funcionan alternativamente pero creo que ambos se configuran al mismo tiempo. Si continuamos en el documento hay un diagrama de bloques sobre la configuración de COMP.
Según esta imagen, creo que el ADC y el COMP comparten el mismo canal ADC, la única diferencia es la cantidad de fuentes de umbral analógico habilitadas .
El texto debajo de la Figura 5 en la pregunta establece que el
la entrada del comparador es un canal ADC
posiblemente lo mismo que ADC_IN1.
El propósito de toda esta configuración es ahorrar energía, el COMP activa los cambios de estado de la MCU (STOP <--> RUN). Entonces, cuando la entrada está por debajo de cierto umbral, la MCU y el ADC se apagan y solo funciona el comparador, y cuando la entrada está por encima del umbral, la MCU y el ADC se activan, el ADC mide el voltaje de entrada. Pero si la entrada vuelve a caer por debajo del umbral, COMP envía la MCU al estado STOP.
Es una forma de usarlos juntos, espero que esto haga avanzar la pregunta.
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 el final de la interrupción del temporizador de transmisión. En su lugar, se debe conectar un pin TIMx diferente en paralelo para que la función UART RX y el temporizador se interrumpan. Supongo que solo una función puede estar activa al mismo tiempo.
Intente descargar MxCube y vea qué configuración se puede construir.
David
Daniel
jaskij
Daniel
jaskij
Daniel
Daniel
jaskij
jaskij