Forum: Mikrocontroller und Digitale Elektronik AVR: PWM und ADC synchronisieren


von Walter T. (nicolas)


Lesenswert?

Hallo zusammen,
vielleicht liegt es an der Hitze, aber mir gehen gerade die Ideen aus. 
Ich habe einen ATmega32 (wird in Kürze, nachdem ich den aktuellen Preis 
bei Reichelt gesehen habe, durch einen ATmega644 ersetzt) und gebe eine 
PWM im Bereich 2...100 kHz mit einem Tastverhältnis von ungefähr 1/3 
aus. Zu der PWM muß ich den Strom messen (die Strecke ist hochgradig 
nichtohmsch und nichtkonstant). Bislang habe ich einen mehrpoligen 
Tiefpaß mit recht niedriger Grenzfrequenz hinter dem Meßshunt angeordnet 
und damit einen Durchschnittswert gemessen.

Nur habe ich aber gesehen, daß für den ADC so 40kHz überhaupt kein 
Problem sind, deswegen will ich nicht mehr den Mittelwert sondern den 
On-Wert messen (damit könnte ich den Meßshunt deutlich kleiner machen). 
Bei höheren PWM-Frequenzen hätte ich eben ein Sub-Sampling, was mich 
aber vermutlich nicht weiter stört.

Nur muß ich für das Ganze den PWM-Takt und den ADC-Takt synchronisieren. 
Zudem brauche ich noch einen kleinen zeitlichen Versatz zwischen 
PWM-Flanke und ADC-Start, damit die Endstufe Zeit hat durchzuschalten.

Ich denke, soetwas ist bei Motoranwendungen eine Standardanwendung. So 
habe ich mir die Application Note AVR447 mal angesehen, kann dort aber 
keine Verzögerung zwischen PWM-Timerüberlauf und ADC-Wandlung entdecken. 
Außerdem wäre es ja auch schön, bei niedrigen PWM-Frequenzen, solange 
der ADC noch mitkommt, auch durchaus mehrere Meßpunkte in einen 
High-Pegel zu legen.

Timer habe ich noch genug übrig, es ist bislang nur einer in Betrieb, um 
Taster und Drehgeber zu pollen. Allein: Es fehlt mir die Idee, wie ich 
PWM-Flanke und ADC-Start mit Verzögerung handhaben kann.

Kann mir jemand derer, die dies schon einmal gemacht haben, verraten 
wie?

Viele Grüße
Nicolas

von Michael (Gast)


Lesenswert?

Nicolas S. schrieb:
> Zu der PWM muß ich den Strom messen (die Strecke ist hochgradig
> nichtohmsch und nichtkonstant)

Kannst du das vielleicht mal etwas weniger verklausuliert ausdrücken? Es 
mach für den Stromverlauf während der PWM einen riesigen Unterschied, ob 
die Strecke induktiv oder kapazitiv ist.

von Walter T. (nicolas)


Lesenswert?

Michael schrieb:
> Es
> mach für den Stromverlauf während der PWM einen riesigen Unterschied, ob
> die Strecke induktiv oder kapazitiv ist.

Ich kenne den Stromverlauf nicht. Deswegen will ich ja auch soviele 
Meßpunkte darauf wie möglich setzen.

Um genau zu sein will ich nicht den Augenblicks- sondern immer noch den 
Durchschnittswert im High-Zustand einregeln- allerdings mithilfe eines 
digitalen Filters im AVR und damit das analoge Filter von der 
Außenbeschaltung vereinfachen.

von batman (Gast)


Lesenswert?

Kannst ja in der Timer-Overflow-ISR des PWM-Timers die ADC-Messung 
starten starten, dann läufts synchron aber das Timing wird schnell eng 
bei 13us Wandlungszeit.

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.