Forum: Mikrocontroller und Digitale Elektronik STM32H7 ADC optimierung


von Diode (Gast)


Lesenswert?

Hallo zusammen

Ich habe etwas verwirrung bezüglich der ADCs beim H7.

Was ich bisher gem. ST Doku herausgefunden habe:

1. full range nutzen
2. stabiler quarz clk
3. bga version nutzen nicht tqfp
4. fadc max 20mhz, boost aus
5. adc convertierung mit timer starten
6. Vanalog sowie Vref sauber versorgen (+ klassische layoutempfehlungen)
7. differentiel anstatt single ended
8. wenn alles geklappt hat, sollte 16 bit mit 0.5LSB error mit bis zu 
800kSps pro ADC möglich sein.

Von intresse sind hier insbesondere die SW seitigen Aspekte. 
Insbesondere die ADC Einstellungen (triggerung per timer?), boost modus, 
conversion timing etc, s&h timing etc. offset calibration etc sind mir 
nicht so klar. Kennt sich hier diesbezüglich jemand aus?

von Falk B. (falk)


Lesenswert?

Diode schrieb:
> Ich habe etwas verwirrung bezüglich der ADCs beim H7.
>
> Was ich bisher gem. ST Doku herausgefunden habe:
>
> 1. full range nutzen
> 2. stabiler quarz clk
> 3. bga version nutzen nicht tqfp
> 4. fadc max 20mhz, boost aus
> 5. adc convertierung mit timer starten
> 6. Vanalog sowie Vref sauber versorgen (+ klassische layoutempfehlungen)
> 7. differentiel anstatt single ended
> 8. wenn alles geklappt hat, sollte 16 bit mit 0.5LSB error mit bis zu
> 800kSps pro ADC möglich sein.

Na, das glaub ich erst, wenn das jemand mit gescheiten Test bewiesen 
hat!
Sowas mit einem SEHR guten, einzelnen ADC hinzukriegen ist schon SEHR 
sportlich bis unmöglich! Das Ganze integriert in einem Mikrocontroller 
bedeutet noch viel mehr Aufwand!

von Diode (Gast)


Lesenswert?

Bin auch weit davon entfernt. Kämpfe erheblich mit dem Offset:

Single ended ca 1000 (bei 64k range)
Diff ca 500

Hatte zuerst das devboard im verdacht. (Aber alle meine Versuche die auf 
ein layoutproblem deuten würden blieben erfolglos (keine Auswirkungen).

Kann das sein, dass dieser 16 bit adc bereits 10bit offset hat?!?
Ich kenne offsetkompensation eher als nice to have; bei so einem 
massiven offset wäre dies wohl ein must have damits überhaupt brauchbar 
wird.

von Falk B. (falk)


Lesenswert?

Diode schrieb:
> Bin auch weit davon entfernt. Kämpfe erheblich mit dem Offset:
>
> Single ended ca 1000 (bei 64k range)
> Diff ca 500

Klingt jetzt nicht sooo dramatisch. Kann man kalibrieren.

> Hatte zuerst das devboard im verdacht. (Aber alle meine Versuche die auf
> ein layoutproblem deuten würden blieben erfolglos (keine Auswirkungen).
>
> Kann das sein, dass dieser 16 bit adc bereits 10bit offset hat?!?

Kann sein, muss nicht.

> Ich kenne offsetkompensation eher als nice to have; bei so einem
> massiven offset wäre dies wohl ein must have damits überhaupt brauchbar
> wird.

Kann sein.

von udok (Gast)


Lesenswert?

Diode schrieb:
> 8. wenn alles geklappt hat, sollte 16 bit mit 0.5LSB error mit bis zu
> 800kSps pro ADC möglich sein.

Datenblatt gelesen?  Nein?
ENOB = 12.2 Bits unter best case Bedingungen.

von Diode (Gast)


Lesenswert?

Falk B. schrieb:
> Klingt jetzt nicht sooo dramatisch. Kann man kalibrieren.

kann ich aus der Aussage schliessen, dass dies normal bei diesem ADC 
ist? (Beruhigt und beunruhigt mich gleichzeitig)

Falls ja:
Danke erstmal!

1. Wie kalibrieren? (genügt lediglich beim powerup bezüglich interner 
spannungen? ist ein periodischer refresh nötig?)

2. Gibts evtl eine einfache externe SPI ADC alternative die ohne 
kalibration etc. gleich auf anhieb ca 14 bit genau die werte liefert? 
(Bandbreite Signal max 100kHz)

von Falk B. (falk)


Lesenswert?

Diode schrieb:
>> Klingt jetzt nicht sooo dramatisch. Kann man kalibrieren.
>
> kann ich aus der Aussage schliessen, dass dies normal bei diesem ADC
> ist? (Beruhigt und beunruhigt mich gleichzeitig)

Keine Ahung, ich kenn mich mit dem Ding nicht aus.

> 1. Wie kalibrieren? (genügt lediglich beim powerup bezüglich interner
> spannungen?

Vermutlich.

>ist ein periodischer refresh nötig?)

Vermutlich nicht.

von Diode (Gast)


Lesenswert?

HAL_ADCEx_Calibration_Start macht den Job, danach habe ich bei 
stichproben max 4.5mV Abweichungen gefunden single ended.

Naja nicht perfekt aber ok

Wichtig: Offset und linearity kalibrieren lassen

von m.n. (Gast)


Lesenswert?

Diode schrieb:
> 2. Gibts evtl eine einfache externe SPI ADC alternative die ohne
> kalibration etc. gleich auf anhieb ca 14 bit genau die werte liefert?
> (Bandbreite Signal max 100kHz)

LTC1864 - allerdings mit 5 V.
Es wird auch neuere Typen geben.

Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.