STM32: mehrere ADC-Werte ohne DMA oder Interrupt auslesen

Gast #3150648
Lesenswert?

Hallo,

ich verwende den Mikrocontroller STM32F105. Er hat zwei ADC's.

ADC_1:
Nur ADC_1 kann laut Spec per DMA verwendet werden. Diesen brauche ich 
bereits für eine größere Folge von schnellen Messungen.

ADC_2:
Hier ist DMA nicht möglich. Trotzdem ist es möglich mehrere Kanäle zu 
einer festen Reihenfolge zu definierten und diese dann automatisch die 
Analogwerte umwandeln zu lassen.
Was ich hier nicht verstehe ist, ob die gewandelten Ergebnisse 
tatsächlich wieder einzeln vom ADC-Register abgeholt werden müssen. An 
dieser Stelle würde dann schließlich wieder zusätzliche Rechenzeit 
benötigt werden, um zu selektieren zu welchem Kanal das Ergebnis gehört 
hat.

Gibt es beim STM wirklich nur Register (pro ADC) für die Ergebnisse, 
oder übersehe ich die anderen ständig? Komme ich also nicht um einen 
IRQ-Aufruf herum (was dann noch Rechenintensiver wäre)?
#3150812
Lesenswert?

Hi brechbunkt,

beim STM32F4 kann mann bis zu vier Kanäle noch zu einer "Injected Group"
zusammenfassen.

die 4 ADC-Werte werden dann alle in getrennten Registern gespeichert
und können von der CPU mit dem Zugriff

ADC_GetInjectedConversionValue(ADC1,ADC_InjectedChannel_1);

bis

ADC_GetInjectedConversionValue(ADC1,ADC_InjectedChannel_4);

ausgelesen werden

ob es das beim STM32F1 auch gibt musst du mal nachlesen

Gruss Uwe

Antwort schreiben

Bitte melde dich an, um einen Beitrag zu schreiben.

oder

Mit Google-Account einloggen

Die Registrierung ist kostenlos und dauert nur eine Minute.

Jetzt registrieren