Forum: Mikrocontroller und Digitale Elektronik Brainstorming: ADC Stromsparmodus Interrupt


von Mike (Gast)


Lesenswert?

Hallo

ich möchte meine Platine stromsparend betreiben und werde dem Controller 
zwischendurch eine Ruhepause gönnen (Sleep modus)

Wie kann ich es am geschicktesten anstellen, alle 1,2,3 sekunden 2-3 
analoge Signale abzufragen.

Bisher habe ich einmal vor der WhileSchleife den ADC initialisiert und 
eine analoge Messung im Programm durchgeführt. Das ist im aktuellen Fall 
nicht mehr nötig sondern ein Messintervall von 2,3 Sekunden ist 
ausreichend.

Jetzt mit dem Stromsparmodus suche ich eine eine andere Möglichkeit.
- Soll ich den ADC nach jeder Messung abschalten?
- Muss vor der Messung jedes mal erneut ein Dummy Read-out gemacht 
werden?
- Wie kann ich vorgehen? In der Timer ISR eine ADC Messung auslösen? und 
in der ADC ISR die Messung auswerten?

Bin über hilfreiche Tipps sehr dankbar.

von Thomas E. (thomase)


Lesenswert?

Mike schrieb:
> Hallo
>
> ich möchte meine Platine stromsparend betreiben und werde dem Controller
> zwischendurch eine Ruhepause gönnen (Sleep modus)
>
> Wie kann ich es am geschicktesten anstellen, alle 1,2,3 sekunden 2-3
> analoge Signale abzufragen.
>
> Bisher habe ich einmal vor der WhileSchleife den ADC initialisiert und
> eine analoge Messung im Programm durchgeführt. Das ist im aktuellen Fall
> nicht mehr nötig sondern ein Messintervall von 2,3 Sekunden ist
> ausreichend.
>
> Jetzt mit dem Stromsparmodus suche ich eine eine andere Möglichkeit.
> - Soll ich den ADC nach jeder Messung abschalten?
> - Muss vor der Messung jedes mal erneut ein Dummy Read-out gemacht
> werden?
> - Wie kann ich vorgehen? In der Timer ISR eine ADC Messung auslösen? und
> in der ADC ISR die Messung auswerten?
>
> Bin über hilfreiche Tipps sehr dankbar.

Das geht beides nicht.
Ein Intel MCS-48 hat weder einen AD-wandler noch einen Sleepmode.

mfg.

von Mike (Gast)


Lesenswert?

Ohhh Mist

es geht um Atmel Controller, hier bei mir speziell um den AT90CAN

Sorry für die Informationsvorenthaltung...

von Der Rächer der Transistormorde (Gast)


Lesenswert?

Mike schrieb:
> Jetzt mit dem Stromsparmodus suche ich eine eine andere Möglichkeit.
> - Soll ich den ADC nach jeder Messung abschalten?
> - Muss vor der Messung jedes mal erneut ein Dummy Read-out gemacht
> werden?
> - Wie kann ich vorgehen? In der Timer ISR eine ADC Messung auslösen? und
> in der ADC ISR die Messung auswerten?

Was willst du da brainstormen? Es ist doch alles bekannt.

Schau in das Datenblatt deines Prozessors bei welchem Modus er welchen 
Strom benötigt und entscheide selbst.


Wenn gar nichts mehr hilft kannst du die Stromaufnahme sogar selbst 
messen (z.B. über Kondensatorentladung) ;-).

von Mike (Gast)


Lesenswert?

Der Rächer der Transistormorde schrieb:
> Was willst du da brainstormen? Es ist doch alles bekannt.

Dir ist es vielleicht aus deinen bisherigen Erfahrungen bekannt, mir 
aber noch nicht.
Bisher habe ich den AD-Wandler 1x initialisiert und dann im programm 
Messungen gemacht.
Jetzt würde ich ihn gerne hauptsächlich ausgeschaltet lassen und nur 
alle 2 Sekunden für die Messungen aufwecken. Reicht es ihn einzuschalten 
oder muss der Dummy-Readout gemacht werden, wie geht man da am besten 
vor, ohne das Rad neu zu erfinden...

von Uwe (de0508)


Lesenswert?

Hallo Mike,

wenn Du ihn aus und wieder einschalltest, dann würde ich immer eine 
Dummywandlung machen und das Ergebnis verwerfen.

Auch sollte man sich genügend Zeit zwischen Wechsel des Kanals und dem 
Start einer neuen Wandlung lassen --> Datenblatt.

Für ein Messergebnis verwende ich zwischen 4 - 16 ADC-Werte zur 
Mittelwertbildung.

Dann hat der ADC noch zwei Messungenauigkeiten, einen offset Fehler und 
einen linearitäts Fehler.
Den gleiche ich immer mit einem 2-Punkt Abgleich, bei einer kleinen (~8% 
Vref) und größeren Spannung (~80% Vref) aus.
Die Berechnung kann mit Fix-Point-Arithmetik, also als Long mit einer 
Skalierung mit 65536=2^16 erfolgen.

: Bearbeitet durch User
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.