Hallo, ich habe eine Frage bezüglich der PWM Erzeugung bei STM8. Ich brauche ein 350kHz Signal, und möchte aber den Duty Cycle in 1% Schritten erhöhen. Laut dem Formel im ST Sheet, PWm_Freq = Timer_Freq/ARR + 1 Setzte ich als Timer_Freq 16MHz, ungeteilt vom Clock Frequenz hergeleitet und hierbei komme ich auf ca. ARR = 45 um 353kHz zu kommen. 45 entspricht aber eine Auflösung von 2,2% Schrittweite, welches für meine Anwendung nicht brauchbar ist. Gibt es eine Möglichkeit, trotz dieser Tatsache eine feinere Auflösung zu erreichen?
Einen anderen µC nehmen. STM32F030 kann bis 48MHz Clock. Kostet kaum mehr und ist von der Peripherie her sehr ähnlich. Oder einen ATTinyx61. Der kann zwar auch nur 20MHz CPU-Takt, dafür aber bis 64MHz für den High-Speed Timer 1.
Nein, eine Erhoehung einer PWM Aufloesung sollte kein Problem sein. Man produziert dann eben Subharmonische. Wie produziert man zB 48.5 ? Indem man die Haelfte der Zeit 48 und die andere Haelfte der Zeit 49 ausgibt. Das bedeutet man laesst den PWM reload auch gleich auf einem Interrupt, der dann jeweils das Register fuer den uebernaechsten Cycle definiert. Ich hab aus 8 bit so schon 16 bit gemacht. Der PWM Clock von 8MHz ergab eine 8Bit PWM Frequenz von 64kHz. Und die Subharmonischen erreichten einen 256-tel davon, also etwa 250 Hz. Die meisten Prozesse tolerieren das.
@Robert (Gast) >ich habe eine Frage bezüglich der PWM Erzeugung bei STM8. Ich brauche >ein 350kHz Signal, und möchte aber den Duty Cycle in 1% Schritten >erhöhen. Ganz schön hochfrequent. Eine einfache Rechnung sagt dir, daß du dazu 35 MHz Timertakt brauchst. >Gibt es eine Möglichkeit, trotz dieser Tatsache eine feinere Auflösung >zu erreichen? Das beschriebene Verfahren von hacky nennt man Dithering. Damit kann aber nur das MITTLERE Tastverhältnis feiner aufgelöst werden, wenn man den Mittelwert über viele Dutzend bis hunderte PWM-Zyklen betrachtet bzw. mißt. Die echten Einzelpulse haben dann immer noch diese Schrittweite. Gemäß Goethe. Mehr Taktfrequenz!
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.