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.
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.
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.