ADC sauber auf PWm synchronisieren

#4039906
Lesenswert?

Hallo,

ich habe einen ADC der sauber auf ein PWM Signal synchronisiert 
(TimerOverflow, wenn TCNT ~0) werden soll.

Das Sample&Hold soll also bei ~ der steigenden Flanke der PWM 
(non-invertig) erfolgen. Da die PWM mit 10kHz läuft und ich auch 
möglichst kleine Tastgrade samplen möchte (BEMF eines BLDC) ist also ein 
genaues Timing gefragt.

Laut DB, des Mega328, benötigt der ADC 2 ADC-Takte vom Start der 
Wandlung bis zum S&H. Somit muss ich die Wandlung 12,8µs vor dem 
Timeroverflow anstoßen damit die Wandlung synchron erfolgt, wenn der ADC 
mit 20MHz/128 läuft. Ist der Gedankengang richtig?



Ingo
Angehängte Dateien:
#4039962
Lesenswert?

Grundsätzlich ist Deine Überlegung richtig, praktisch wirst Du aber 
Probleme bekommen. Bei solch einer Motor-Ansteuerung ist direkt nach 
jeder Schaltflanke, also auch nach der Fallenden des letzten PWM-Pulses, 
viel Unruhe im System (Habe die letzten Jahre damit zugebracht, solche 
Sachen zu entwickeln), da wird eine ADC-Messung nur Zufallszahlen 
liefern. Für die Messung sollte man sich also einen Zeitpunkt suchen, 
der genügend Abstand zur vorigen Schaltflanke hat. Bei Leerlauf mag das 
noch alles gehen, wenn dann aber Zig Ampere fließen ... Du startest die 
A/D-Wandlung per Auto-Trigger? Wenn ja, ist das gut, wenn nicht, hast Du 
das Problem, daß der Wandler das Startsignal erst beim nächsten ADC-Takt 
erkennt.

Mit freundlichen Grüßen - Martin
(Firma: TravelRec.) Persönliche Seite #4040012
Lesenswert?

Uups schrieb:
> Solche Dinge kann man mit einem schnellen PIC (dsPIC) machen, der einen
> schnellen ADC (2us) hat und per hardware auf den PWM triggern kann. Die
> AVR haben zu langsame ADC fuer solche Konzepte..

Unsinn! Das kommt auf das Projekt an. Per Hardware triggern kann der AVR 
auch. Und der ADC des klassischen AVR liefert bei 500kHz ADC-Frequenz 
(38kHz Abtastung) bei 8Bit noch zuverlässige Werte. Damit wird 
10kHz-PWM-Abtastung kein Problem. Der Triggerzeitpunkt muss nur immer 
synchron zur PWM laufen, wie oben schon erwähnt, leicht hinter dem 
Umschalten.

Ingo L. schrieb:
> und ich auch
> möglichst kleine Tastgrade samplen möchte (BEMF eines BLDC)

Für BEMF eignet sich auch der Analog-Komparator. Bei den nicht ganz 
alten AVRs kann man diesen auf den ADC-Multiplexer legen und somit 
mehrere Punkte in der Hardware sukzessive abtasten.
Gast #4044093
Lesenswert?

True Crypt schrieb:
> Andreas True schrieb:
> Bei sowas nimmt man Center aligned PWM und triggert den ADC genau in der
> Mitte des Dutycycles. Hier sind die PWM Schalteinflüsse am geringsten.
>
> Wie soll die Schaltung in die Zukunft gucken. Unmittelbar vor der
> nächsten Schaltflanke sind die zeitlichen Einflüsse der vorhergehenden
> Umschaltung maximal abgeklungen.

Ich versteh nur Bahnhof!?
#4044200
Lesenswert?

True Crypt schrieb:
> Wie soll die Schaltung in die Zukunft gucken.

Versehe auch nicht, wie du das meinst.

True Crypt schrieb:
> Unmittelbar vor der
> nächsten Schaltflanke sind die zeitlichen Einflüsse der vorhergehenden
> Umschaltung maximal abgeklungen

Du musst bedenken, dass der TE vermutlich nicht mit konstanter PWM Duty 
fahren wird und dass der Motor mit 3 Anschlüssen an drei verschiedenen 
PWMs hängt. Deshalb geht man bei einer Motorsteuerung davon aus, dass 
die Störeinflüsse in der Mitte des Dutys oder der Lowzeit am geringsten 
sind.
#4046343
Lesenswert?

Achso, das ist schon doof dass der ADC/S&H so lange braucht. Dann kannst 
ja wie oben schon geschrieben, nicht unter 24% Duty gehen oder?
Macht es denn bei dir überhaupt Sinn, den ADC mit der PWM zu koppeln? 
Wenn ich es deinem Schaltplan richtig entnehme, vergleichst du die 
Floatende Phase (BEMF) mit der mittleren Spannung der 3 Phasen und bei 
über- oder unterschreiten kommutierst du oder?
Ist der ADC als Komparator konfiguriert auch so langsam?
#4046360
Lesenswert?

Wie ich es mache ist in dem Artikel von TI auf Youtube beschrieben bzw. 
Danach habe ich mich gerichtet.

Der Komparator ist schneller denke ich mal. Die Spannung bzw. das Label 
"Star" ist ungenutzt. Ich habe mir aber die Option der Komparatorlösung 
layoutmäßig offen gelassen.

Ich triggere jetzt die Messung etwa 10us vor der nächsten Periode an, 
damit das S&H kurz nach der neuen Periode beginnt. Damit kann ich Dutys 
unter 5% noch sauber erfassen.

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