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
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
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...
> 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.
@ 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
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.
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.
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)
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