Forum: Mikrocontroller und Digitale Elektronik PWM Genauigkeit eines µC


von stephan (Gast)


Lesenswert?

wollte fragen wie genau man im allgemeinen bei µC eine bestimmte PWM 
Rate am PWM Ausgang einstellen kann. die Frequenz liege im Bereich 
zwischen 30Hz und 200Hz, also eher niedrig. mit welchen Toleranzen muss 
man rechnen ? Ich habe nämlich eine Schaltung dimensioniert die sich bei 
verschiedenen PWM Raten unterschiedlich verhält. Wird die Schaltung mit 
einer bestimmten PWM Rate gespeist, so darf die Abweichung maximal +/- 
2% betragen (zb. 70% PWM +/-2%). Wäre das machbar ? oder sollte ich im 
Hinterkopf behalten dass manche µCs solche Toleranzen nicht einhalten 
können... ?

mfg

von Kai G. (runtimeterror)


Lesenswert?

2% sollten kein Problem sein...

>Ich habe nämlich eine Schaltung dimensioniert die sich bei
>verschiedenen PWM Raten unterschiedlich verhält.

Sicher, dass die auf unterschiedliche PWM-Raten reagiert und nicht auf 
unterschiedliche Duty-Cycles?

Was genau möchtest du denn genau kriegen?
- stabile PWM-Frequenz? -> Gutes Quarz/guten Oszillator verwenden und 
abgleichen. Einige µCs haben interne Oszillatoren, die sich 
feinjustieren lassen - reicht für viele Fälle aus.
- Den Duty-Cycle? -> Sinnvollen Wert für die Obergrenze festlegen und 
ausreichende Auflösung wählen. Wenn du nur diskrete Duty-Cycles mit 
linearem Abstand erzeugen willst, sind oft nahezu 0% Abweichung drin.

Wenn du nur Die Frequenz änderst und nicht das Tastverhältnis, würde ich 
es eher als Frequenzgenerator als PWM bezeichnen. Wenn es das ist, was 
du willst gib nochmal Bescheid, dann rechne ich das durch.

Sag einfach mal genau, was du brauchst - ggf. mit Beispielen.

Gruß

Kai

von Johannes M. (johnny-m)


Lesenswert?

Was für ein µC? Mit nem 16-Bit-Timer hast Du bis zu 65536 PWM-Schritte. 
Wenn der Takt-Input entsprechend gewählt wurde, dass Du den maximalen 
Zählbereich genau auf die benötigte Periodendauer abbilden kannst, dann 
kannst Du eine Auflösung von 1/65536 = 0,015 Promille erreichen...

von Rolf Magnus (Gast)


Lesenswert?

> wollte fragen wie genau man im allgemeinen bei µC eine bestimmte PWM
> Rate am PWM Ausgang einstellen kann.

Im Allgemeinen hängt das vom µC und davon ab, wie du es programmierst.

> die Frequenz liege im Bereich zwischen 30Hz und 200Hz, also eher
> niedrig.

Bei PWM ist die Frequenz in der Regel fest. Nur das Tastverhältnis wird 
geändert.

> mit welchen Toleranzen muss man rechnen ?

Mit irgendwelchen. Ohne Infos über den µC kann man nicht mehr sagen.

> Wird die Schaltung mit einer bestimmten PWM Rate gespeist, so darf die
> Abweichung maximal +/- 2% betragen (zb. 70% PWM +/-2%). Wäre das
> machbar ? oder sollte ich im Hinterkopf behalten dass manche µCs solche 
Toleranzen nicht einhalten können... ?

Soll deine Schaltung denn nachher von jedem beliebigen µC angesteuert 
werden können? Es gibt bestimmt welche, die das nicht schaffen, wenn man 
Software-PWM macht und die ungünstig programmiert ist. Außerdem hängt es 
von der Taktquelle ab.

von Falk B. (falk)


Lesenswert?

@ stephan (Gast)

>zwischen 30Hz und 200Hz, also eher niedrig. mit welchen Toleranzen muss
>man rechnen ?

Rechnen ist das Stichwort.

>Ich habe nämlich eine Schaltung dimensioniert die sich bei
>verschiedenen PWM Raten unterschiedlich verhält. Wird die Schaltung mit
>einer bestimmten PWM Rate gespeist, so darf die Abweichung maximal +/-
>2% betragen (zb. 70% PWM +/-2%).

???
Kann es sein, dass du PWM-Frequenz und Tastverhältnis in einen Topf 
wirfst?

PWM

> Wäre das machbar ? oder sollte ich im
>Hinterkopf behalten dass manche µCs solche Toleranzen nicht einhalten
>können... ?

Informiere dich über die Funktionswise von PWM bei Mikrocontrollern.

AVR-Tutorial: PWM

Dann wirst du feststellen, dass dort die PWM voll digital erzeugt wird 
und sehr genau ist.

MFG
Falk

von stephan (Gast)


Lesenswert?

danke soweit...

die 30Hz bis 200Hz soll heissen, dass die Grundfrequenz des Signals in 
diesem Bereich liegen soll und nicht darüber hinaus.
d.h. meine schaltung funktioniert bei 30Hz identisch wie mit 200Hz.
Meine Frage bezieht sich nun auf die Duty Cycle.

Ich denke der wesentlische Unterschied der für mich zu beachten wäre, 
ist ob der µC die PWM softwaregesteuert oder über eine feste PWM 
Schnittstelle einstellt. Bei SW Steuerung über Timerinterrupt z.B. hängt 
die Auflösung von der Timerfrequenz und dem Interruptdelay ab.

Meine Schaltung soll universell angesteuert werden können.
Ich denke mit den 2% kann ich mehr als gut leben.

von Kai G. (runtimeterror)


Lesenswert?

Eine 8-Bits-PWM hat eine Genauigkeit von
1 / 2^8 * 100% ~= 0,4%
d.h. du liegst maximal +-0,2% daneben

Bei 16 Bits: 0,0015% bzw +-0,000763%

Willst du nur diskrete Stufen erreichen wie z.B. 10%, 20%, 30%, usw.? 
Dann kann die Genauigkeit ohne Zusatzaufwand noch deutlich gesteigert 
werden.

Wenn möglich würde ich von der Software-PWM aus oben genannten Gründen 
abraten.

von Simon K. (simon) Benutzerseite


Lesenswert?

Kai Giebeler wrote:
> Eine 8-Bits-PWM hat eine Genauigkeit von
> 1 / 2^8 * 100% ~= 0,4%
> d.h. du liegst maximal +-0,2% daneben
>
> Bei 16 Bits: 0,0015% bzw +-0,000763%

Soweit ich das weiß, ist das nicht die Genauigkeit, sondern die 
Auflösung (siehe johnny-m)

von Kai G. (runtimeterror)


Lesenswert?

hehe... ich hatte es befürchtet ;)
danke für die Korrektur.

von Peter D. (peda)


Lesenswert?

Der Witz einer PWM ist, daß die Genauigkeit = Auflösung ist.

Die Anstiegs- und Abfallzeiten sind vernachlässigbar gegenüber der 
Bitzeit.

Die Gesamtgenauigkeit hängt natürlich von der nachgeschalteten 
Schalterstufe, Referenzspannung und Filterstufe ab.

Für 16 Bit Genauigkeit nehme ich vorzugsweise einen 74HC04 als 
Schaltstufe, der von der Referenz versorgt wird.


Peter

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.