STM32 ADC-Referenzspannung

Ich verwende STM32 F7 46 ( Referenzhandbuch ) und bin etwas verwirrt über ADC und Referenzspannung (VREF).

Wenn ich 2,5 V an VREF und 3,3 V an AVDD anschließe, wie groß ist dann der Bereich der ADC-Messung?

  1. Liegt der ADC-Bereich zwischen 0 V und 2,5 V?

  2. Oder werden 2,5 V verwendet, um die ADC-Referenz (AVDD) zu kalibrieren, und der Bereich liegt dann zwischen 0 V und 3,3 V (= kalibrierter AVDD)?

Ich weiß, dass auf AVR (1) richtig ist, aber ich bin verwirrt über STM32.

Nichts verändert sich. Für alle ADCs auf dem Planeten reicht die Messung von Vref- bis Vref+. Für Ihre MCU ist Vref- GND und Vref+ ist VREF. Bei einigen ADC-Chips ist +Vref intern mit VDD kurzgeschlossen, in Ihrem Fall jedoch nicht.

Antworten (2)

Wenn Ihre Referenzspannung 2,5 V beträgt und Sie 2,5 V an einen Eingang liefern, sollte Ihr ADC (unter der Annahme einer 16-Bit-Auflösung und einer Single-Ended-Messung gegen GND) genau 65535 zurückgeben, sodass der Bereich durch die Referenzspannung begrenzt ist.

Es gibt mindestens einen „Trick“. Sie können beispielsweise Vdd messen (z. B. um die Batteriespannung herauszufinden, mit der die MCU betrieben wird) - Sie konfigurieren den ADC so, dass er AVDD als Referenz verwendet, und messen die interne Bandlückenreferenz dagegen.

"Sie konfigurieren den ADC so, dass er AVDD als Referenz verwendet", damit ich als Referenz für den ADC zwischen VREF und AVDD wechseln kann? Ich weiß, wie man das auf AVR macht, konnte diese Option aber nicht in STM32 finden? Wissen Sie, wie das geht?
Der Wechsel von einem AVR zu einem Cortex-M7 kann ein Schock sein. Sie können die Spannungsreferenz in AVR zwischen intern, extern und AVcc wählen. Auf fast jedem ARM sollte es auch möglich sein. Ich habe mir das verlinkte Referenzhandbuch angesehen, aber ich kann nicht einmal finden, wie man einen Eingangskanal auswählt. In STM32L011 heißt der Regiter ADC_CHSELR, aber im Referenzhandbuch kann ich nichts dergleichen finden. Wenn dies ein sehr neues Teil ist, kann es einige Zeit dauern, bis sich das Handbuch und das Datenblatt "stabilisieren".
Nun, ich verwende HAL, um Programme zu schreiben, also wird der Kanal mit "adcChannel.Channel = ADC_CHANNEL_11;" ausgewählt, aber ich sehe dies auch nicht in der Registrierungsbeschreibung. Aber ich wäre mir nicht so sicher, dass Sie Referenzwert auswählen können, da ich ein solches Feld in HAL auch nicht sehe ...

Ich habe verstanden, dass die Referenzspannung immer VREF + ist (die andere, wenn der Pin verfügbar ist, muss an VSSA gebunden werden. Die VREF + kann dann zwischen 1,8 V und VDDA liegen. Hängt davon ab, wo Sie die VREF + anbinden. Konfiguriert mit löten :-) In einigen Gehäusen kommen VREF+ und VREF- überhaupt nicht außerhalb des Chips. Ich denke, sie sind intern mit VDDA und VSSA verbunden.