STM32F4 ADC mehrere Kanäle stromsparend

Gast #3539847
Lesenswert?

Ich habe ein STM32 Discovery vor mir liegen und möchte mal testen, ob 
und wie man den STM32 als leistungsfähigen Ersatz für AVRs verwenden 
kann.
Eine häufige Anwendung ist bei mir, mehrere Kanäle (z.b. 8) mit 
unterschiedlicher Geschwindigkeit abzutasten. Also z.B. zwei Signale mit 
10KSPS, jede Sekunde zwei Temperaturwerte und 1x pro Minute die 
Batteriespannung.
Was ist der sinnvollste Weg für sowas beim STM32? Da es 
batteriebetrieben sein soll, ist ein Stromsparmodus zwischen den 
Messungen notwendig.

Ein anderer Anwendungsfall wäre die Aufnahme eines Signals über z.b. 10s 
und dann eine Verarbeitung (Mittelwertbildung, Extrema suchen etc.). In 
der Zwischenzeit soll das Signal aber weiterhin in einen anderen 
Speicher gesampelt werden.
Das müsste man mit DMA und ADC hinbekommen, aber ich habe nicht 
herausgefunden, wie man damit eine "langsame" (z.B. 1ksps) Messung 
hinbekommt und wie man dann eine Funktion aufrufen lässt, sobald der 
Speicher voll ist. Oder ist DMA in diesem Fall nicht sinnvoll? Auch hier 
soll es möglichst stromsparend sein.
Hat jemand einen Tipp für einen Ansatz für mich?
Gast #3540114
Lesenswert?

Ist eigentlich ganz einfach.

Einen Timer verwenden um den ADC zu starten. Diesen kann man so 
einstellen, dass der ADC die gewünschten Kanäle sequentiell abarbeitet.
Die Daten jedes Samplevorgangs werden per DMA in den Speicher kopiert. 
Wenn der DMA fertig ist gibts einen Interrupt.

Schwierig ist eher, dass du völlig verschiedene Abtastraten haben 
willst. Das kannst du entweder dadurch lösen, dass du dafür verschiedene 
ADCs nimmst, den ADC jedes mal neu konfigurierst oder einfach trotzdem 
die anderne Kanäle sampelst und die Daten wegschmeißt.

Im Datenblatt steht relativ gut beschrieben, was wie viel Energie 
benötigt. Trotzdem sind das nur vage Werte und im Zweifellsfall gilt 
nachmessen.

Der STM ist eigentlich ganz nett. Man kann relativ viel machen, ohne 
dass die CPU gebraucht wird.

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