pic18f2420 PWM-Frequenz

Ich erzeuge PWM mit Timer 2 von PIC18f2420. Ich habe einen externen 4-MHz-Taktquarz. Die maximale Frequenz, die ich vom PWM erhalten kann, beträgt 3,9 kHz mit 1: 1-Prescaler und Postscaler. Ich brauche 100 kHz, irgendwelche Ideen? Funktioniert der Wechsel des externen Oszillators auf 20 MHz?

Grüße

Antworten (2)

Sie betrachten einen Kompromiss zwischen Frequenz und Auflösung.

Die Art und Weise, wie diese PWM funktioniert, besteht darin, Ihren Eingangstakt zu nehmen und ihn in einen 8-Bit-Zähler einzuspeisen.
Der dem Zähler zugeführte Takt ist höchstens (für diese PIC-Serie) Ihr Systemtakt geteilt durch 4.
In Ihrem Fall sieht der Zähler also 1 MHz.
Ein 8-Bit-Zähler hat 256 Schritte, und wenn Sie die volle Auflösung für Ihr PWM-Tastverhältnis verwenden möchten, wird dieser 1-MHz-Takt durch 256 geteilt, um die endgültige PWM-Frequenz zu erzeugen - was Ihnen Ihre 3,9 kHz gibt .

Diese PICs ermöglichen es Ihnen auch, 2 zusätzliche Bits Auflösung zu erhalten, indem Sie die 2 Bits vom Systemtaktteiler markieren, um Ihnen eine effektive 10 Bits oder 1024 Schritte PWM-Tastverhältnisauflösung zu geben.

Die einzige Möglichkeit, eine höhere PWM-Frequenz bei gleichem Systemtakt zu erhalten, besteht darin, die Auflösung zu verringern, die der Zähler Ihnen gibt, indem Sie sein Periodenregister auf einen niedrigeren Wert einstellen.
Wenn Sie also beispielsweise das Periodenregister auf 100 einstellen, können Sie eine 10-kHz-PWM erreichen, und wenn Sie das Periodenregister auf 10 einstellen, erhalten Sie eine 100-kHz-PWM.
Sie müssen sich jedoch darüber im Klaren sein, dass Sie anstelle der Auflösung von 1024 Schritten, die Sie hatten, jetzt viel weniger Schritte haben, um Ihr PWM-Tastverhältnis anzupassen.

Das Erhöhen Ihres Systemtakts auf 20 MHz wird sicherlich helfen. Sie müssen Ihr Timer-Periodenregister auf 50 einstellen, um eine PWM-Frequenz von 100 kHz zu erreichen, und Sie haben 200 Schritte der Arbeitszyklusauflösung zum Spielen.

Die PWM-Periodenformel wird durch die Gleichung 15-1 auf Seite 114 des Datenblatts angegeben:

PWM-Periode = [(PR2) + 1] * 4 * Tosc * (TMR2 Prescale Value).

Wenn also der Vorteiler ist 1und PR2 0 ist, erhalten wir die minimale Periode (daher die maximale Frequenz):

PWM Period = [0 + 1] * 4 * Tosc = 4*Tosc

Die maximale PWM-Frequenz kann also bis zu Fosc/4. In Ihrem Fall bis zu 1 MHz (aber je höher die Frequenz ist, desto niedriger ist die PWM-Auflösung). Die angezeigten Zahlen stimmen also nicht. Sie sollten in der Lage sein, die erforderliche Frequenz von 100 kHz problemlos zu erhalten.