Hallo Leute, ich beschäftige mich mittlerweile mit PWM bei AVR und habe eine Frage zu der Frequenz. Ich finde leider nicht viele Infos dazu im Internet, obwohl es über PWM viele gute Tutorials gibt. Wenn - F_CPU bei 16MHz liegt - der Prescaller 1 - der Timer0 von 0 bis 255 zählt und wieder bis 0 zurück (also 512 Schritte) dann ergibt sich eine Frequenz von 31250Hz für PWM. Ist meine Rechnung korrekt? Gruß Stefan
Stefan schrieb: > Ist meine Rechnung korrekt? Nein. Formel steht im Datenblatt. 512 Schritte ist ebenfalls nicht richtig.
smoke schrieb: > 512 Schritte ist ebenfalls nicht richtig. Denn dafür müsste er jeweils 2x 0 und 2x 255 hintereinander zählen...
smoke schrieb: > Stefan schrieb: >> Ist meine Rechnung korrekt? > > Nein. Formel steht im Datenblatt. 512 Schritte ist ebenfalls nicht > richtig. Das hättest du auch hilfreicher formulieren können. Z.B. so:
1 | Die Rechnung wäre korrekt, wenn es 512 Schritte wären. |
2 | Es sind aber nur 510 Schritte und die PWM-Frequenz ist |
3 | darum etwas höher, nämlich 31.373 kHz. |
Bei 8-Bit Timer: Frequenz PWM = F_CPU Prescaler TOP (256): Das ergibt 62500 Hz.
A. schrieb: > Bei 8-Bit Timer: > > Frequenz PWM = F_CPU Prescaler TOP (256): > > Das ergibt 62500 Hz. Aber nur bei Fast-PWM ;)
Du teilst den CPU-Takt durch den Teiler, dann kennst du die Frequenz deines Timers. Der Kehrwert davon und du weißt, wie lange der Timer für +1 seines Zählers braucht. Dann multiplizierst du das ganze mit deinen maximalen Zählwert und du weißt die Zeit für einen Takt. Den Kehrwert davon = deine PWM Frequenz. Die Formel von A. stimmt schon. Bei F_CPU = 8.000.000 und einen max. Zählwert von 65536 (0-65535) und einen Teiler von 8 ergibt das: 8.000.000 : 8 : 65536 = 15HZ Ein bisschen wenig. Bei Einem Teiler von 1, wäre die Frequenz: 8.000.000 / 65536 = 122Hz. Dann lassen wir den Timer mal nur bis 12Bit zählen: 8.000.000 / 4096 = 2kHz
Nils H. schrieb: > Die Formel von A. stimmt schon. Bei F_CPU = 8.000.000 und einen max. > Zählwert von 65536 (0-65535) und einen Teiler von 8 ergibt das Nur war das nicht gefragt. Der TE hat zwar (wohl unwissentlich [1]) keine Angaben zum verwendeten Timer, PWM-Modus und TOP-Wert gemacht. Aber aus dem Kontext geht ziemlich klar hervor, daß es ihm um eine phasenkorrekte PWM mit einem 8-Bit Zähler ohne Zählumfangsbegrenzung geht. [1] https://de.wikipedia.org/wiki/Hanlon%E2%80%99s_Razor
Dann gibts da ja noch die "frequenzkorrekte" PWM. Ändert die was an der Frequenz?
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
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.