Voltaje de referencia STM32 ADC

Estoy usando STM32 F7 46 ( manual de referencia ) y estoy un poco confundido acerca del ADC y el voltaje de referencia (VREF).

Si conecto 2,5 V al VREF y 3,3 al AVDD, ¿cuál es el rango de medición del ADC?

  1. ¿El rango de ADC es de 0V a 2.5V?

  2. ¿O se usan 2,5 V para calibrar la referencia ADC (AVDD) y luego el rango será de 0 V a 3,3 V (= AVDD calibrado)?

Sé que en AVR, (1) es correcto, pero estoy confundido acerca de STM32.

Nada cambia. Para todos los ADC del planeta, la medida es de Vref- a Vref+. Para su MCU, Vref- es GND y Vref+ es VREF. Para algunos de los chips ADC, +Vref está en cortocircuito a VDD internamente, pero no en su caso.

Respuestas (2)

Si su voltaje de referencia es de 2,5 V y suministra 2,5 V a una entrada, entonces su ADC (suponiendo una resolución de 16 bits y una medición de un solo extremo contra GND) debería devolver exactamente 65535, por lo que el rango está limitado por el voltaje de referencia.

Hay al menos un "truco". Por ejemplo, puede medir Vdd (p. ej., para averiguar el voltaje de la batería desde el que se ejecuta la MCU): configure el ADC para usar AVDD como referencia y mida la referencia de banda prohibida interna contra él.

"usted configura el ADC para usar AVDD como referencia" para que pueda cambiar entre VREF y AVDD como referencia para el ADC? Sé cómo hacer esto en AVR, pero no pude encontrar esta opción en STM32. Sabes como hacer esto?
Pasar de un AVR a un Cortex-M7 puede ser una sorpresa. Puede seleccionar la referencia de voltaje en AVR entre interna, externa y AVcc. En casi todos los ARM también debería ser posible. Miré el manual de referencia vinculado, pero ni siquiera puedo encontrar cómo seleccionar un canal de entrada. En STM32L011, el registro se llama ADC_CHSELR, pero no puedo encontrar nada parecido en el manual de referencia. Si se trata de una pieza muy nueva, puede pasar algún tiempo antes de que el manual y la hoja de datos se "estabilizan".
Bueno, uso HAL para escribir programas, por lo que el canal se selecciona con "adcChannel.Channel = ADC_CHANNEL_11;", pero tampoco veo esto en la descripción del registro. Pero no estaría tan seguro de que pueda seleccionar el valor de referencia, ya que tampoco veo ese campo en HAL ...

Entendí que el voltaje de referencia siempre es VREF+ (el otro, si el pin está disponible, tiene que estar vinculado a VSSA. El VREF+ puede ser entonces cualquier valor entre 1,8 V y VDDA. Depende de dónde conecte el VREF+. Configurado con soldadura. :-) En algunos paquetes, el VREF+ y el VREF- no salen del chip. Supongo que están vinculados internamente a VDDA y VSSA.