Forum: Mikrocontroller und Digitale Elektronik STM32 Sample&Hold


von Andreas T. (skycurve)


Lesenswert?

Hallo,

ich habe einige Fragen zum Ablauf von ADC Messungen auf einem STM32 MC.

Folgendes Szenario:
Es sollen 6 anliegende Spannungen zum Zeitpunkt t=0 gemessen werden, 
also gleichzeitig.

Dies soll von ADC1 übernommen werden.
Die Spannungen sind mit ADC1_IN0 bis ADC1_IN5 verbunden.
1
ADC_InitStructure.ADC_NbrOfRegChannel = 6;
2
ADC_Init(ADC1, &ADC_InitStructure);
3
    
4
ADC_RegularChannelConfig(ADC1, ADC_Channel_0, 1, ADC_SampleTime_7Cycles5);
5
(..)
6
ADC_RegularChannelConfig(ADC1, ADC_Channel_5, 6, ADC_SampleTime_7Cycles5);

Zum Zeitpunkt t=0 wird ADC1 durch einen Timer getriggert.

Ist es richtig, dass genau bei t=0 Spannungen an ADC1_IN0..5 jeweils in 
6 Kondensatoren gespeichert werden, dann geht der ADC1 von Channel zu 
Channel und holt die gespeicherten Spannungen ab?
So, dass ich am Ende, nach 6 * Sample_Dauer, also zb bei STM32F4 nach (6 
* 1uS=) 6uS die 6 Spannungen zum Zeitpunkt t=0 erhalte?

Was genau sagt dann ADC_SampleTime_7Cycles5?

Hintergrund: Ich habe mehrere synchronisierte center aligned PWM Signale 
und die Spannungen sollen genau dann gemessen werden, wenn alle PWM 
Ausgänge LOW sind. PWM_Duty wird nie auf 100% gesetzt, damit es eine 1uS 
OFF_TIME zum Messen bleibt.
Deshalb die Frage, ob ich für 6 Messungen 1uS oder 6uS übrig lassen 
soll.

Gruß
Andreas

von holger (Gast)


Lesenswert?

>Ist es richtig, dass genau bei t=0 Spannungen an ADC1_IN0..5 jeweils in
>6 Kondensatoren gespeichert werden,

Nein, die Werte werden nacheinander gesampelt.

von Little B. (lil-b)


Lesenswert?

Jeder ADC hat nur eine Sample&Hold Hardware, kann also immer nur eine 
Spannung zu jeder Zeit halten und messen.

Da der STM32 bis zu 3 ADCs besitzt, kannst du also bis zu 3 Spannungen 
gleichzeitig Samplen, aber auch nur dann, wenn du alle drei ADCs 
geschickt konfigurierst

von Dennis Heynlein (Gast)


Lesenswert?

Da hätte ich auch mal ne Frage.

Wenn ich dann die Samplerate versechsfachen würde und der ADC in meinem 
Verständis ja eh nur einen Bruchteil der Zeit des Sampling fürs Laden 
der Kondensatoren benutzt müßte es doch möglich sein 6 Eingänge 
"gleichzeitig" zu samplen mit der Bedingung das es diese 
Phasenverschiebung gibt.
Aber theoretisch wäre es doch quasi-zeitgleich im Rahmen der Samplerate 
(*1).

von Helmut S. (helmuts)


Lesenswert?

> "gleichzeitig"

Das hängt davon ob es reicht, dass der 6. Kanal erst 10us später 
abgetastet wird. Wenn nicht, dann benötigt man 6 genaue S/H Schaltungen. 
Da stellt sich dann schon die Frage ob es nicht besser wäre 3 echte 
Dual-ADC ICs nu nehmen.

von m.n. (Gast)


Lesenswert?

Little Basdart schrieb:
> Da der STM32 bis zu 3 ADCs besitzt, kannst du also bis zu 3 Spannungen
> gleichzeitig Samplen, aber auch nur dann, wenn du alle drei ADCs
> geschickt konfigurierst

Dann schafft man beim F4 womöglich auch sechs Messungen in 1 µs ;-)

von Andreas (Gast)


Lesenswert?

m.n. schrieb:
> Dann schafft man beim F4 womöglich auch sechs Messungen in 1 µs ;-)

Wenn ich die ADCs in Tripplemode messen lasse, kommt der ADC_EOC 1uS 
nachdem die ADCs getriggert werden.
Wie kann ich da 6 Spannungen messen in 1us?

Gruß

von m.n. (Gast)


Lesenswert?

Laut Datenblatt wandelt beim F4 jeder der drei ADCs mit max. 2,4 MSP/s. 
Das heißt, die ersten drei Messungen brauchen 420 ns. Auf die nächsten 
drei Kanäle weitergeschaltet, brauchen diese auch wieder 420 ns.
Benötigen Kanalumschaltung und Neustart nicht mehr als 160 ns, so ist 
die genannte Geschwindigkeit erreichbar.

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.