Wie generiere ich ein PWM mit 100Hz?
Dienstag, 22. Mai 2012
 
 

PIC Mikrocontroller Forum  |  PIC Mikrocontroller  |  CCS Compiler  |  Timer (CCS)  |  Wie generiere ich ein PWM mit 100Hz? « vorheriges nächstes »
Seiten: [1] Nach unten Drucken
Autor Thema: Wie generiere ich ein PWM mit 100Hz?  (Gelesen 2957 mal)
 
OelC
Newbie
*
Offline Offline

Beiträge: 10


Profil anzeigen
« am: September 10, 2007, 08:31:51 »

Hallo,

ich habe folgende Frage bzgl. PWM.

Wie generiere ich ein PWM mit 100Hz?

Die Einstellungen:
------------------

setup_timer_2( T2_DIV_BY_1, 0xFF, 1 );

würde ein PWM mit der Grundfrequenz von 4095,7Hz erzeugen.

Berechnung:
-----------

PWMfre = Crystal Frequency / ( (PR2 + 1) * PRESCALER * 4 )
PWMfre = ( 4194000 1/s ) / ( ( 255 + 1) * 1 * 4 )
PWMfre = 4095,7Hz = 4kHz


Wenn ich jetzt den Vorteiler auf T2_DIV_BY_16 (=PRESCALER) setze erhalte ich als Grundfrequenz 255,9 Hz.

Leider erkenne ich nicht, wie man die Frequenz auf 100Hz reduzieren kann, ohne den Oszillator auszutauschen.

Kann mir jemand helfen?

Gruß, Oelc
Gespeichert
Bernd
Globaler Moderator
Hero Member
*****
Offline Offline

Beiträge: 3815



Profil anzeigen
« Antworten #1 am: September 10, 2007, 22:57:58 »

Zitat
Leider erkenne ich nicht, wie man die Frequenz auf 100Hz reduzieren kann, ohne den Oszillator auszutauschen.

Deine Berechnung ist korrekt. Bei Verwendung eines 4,194MHz Oszillators kann man 100Hz PWM-Frequenz mit dem CCP-Modul nicht erreichen. Es bleibt nur eine Software-Lösung. Ein denkbarer Weg wäre es, den TMR2 so zu konfigurieren, daß er alle 100µs überläuft. In der Timer2 ISR wird dann der PWM-Ausgangspin in Abhängigkeit vom Timerwert entsprechend gesetzt:

Code:
if (TMR2 < duty_cycle)
{
    pwm_ausgang = 1;
}
else
{
    pwm_ausgang = 0;
}

Damit wäre eine Auflösung der PWM von 100µs möglich, d.h. der Duty-Cycle kann im Bereich von 0 bis 100 liegen (was einer Auflösung von etwas mehr als 6,6 Bits entspricht).

Die Prozessorlast ist bei diesem Ansatz (insbesondere mit dem CCS) schon relativ hoch, da zwischen den Interrupts nur gut 100 Befehlszyklen zur Verfügung stehen. Wenn eine höhere Auflösung benötigt wird oder der PIC umfangreichere Aufgaben zu bewältigen hat, wäre es bei niedrigen PWM-Frequenzen (die das CCP-Modul nicht erreichen kann) ratsam, die Oszillator-Frequenz des PICs zu erhöhen.


Viele Grüße

Bernd
Gespeichert

OelC
Newbie
*
Offline Offline

Beiträge: 10


Profil anzeigen
« Antworten #2 am: September 20, 2007, 20:35:25 »


Hallo Bernd,

erstmal vielen Dank für deine schnelle Antwort.
(.....bzw. deinen immer schnellen Antworten!)

Leider konnte ich bisher deinen Vorschlag noch nicht testen. Werde mich am Wochenende damit nochmal näher auseinander setzen - sofern es die Zeit zulässt.

Gruß,
OelC

Gespeichert
Seiten: [1] Nach oben Drucken 
« vorheriges nächstes »
Gehe zu:  

Powered by MySQL Powered by PHP Made for Mozilla (Firefox) Made for Internet Explorer
Seite erstellt in 0.036 Sekunden mit 19 Zugriffen.
 
Top! Top!