Rechteckgenerator (PWM) mit p89LPC935

Gast #1223518
Lesenswert?

Hallo,
ich würde gerne einen Rechteckgenerator mit einem P89LPC936 (NXP) 
entwickeln.
Er soll Frequenzen von 1Hz bis 1kHz können. Zusätzlich will ich das 
Verhältins von ti u. tp verändern können. Ich benutze den internen 
Oszillator des LPC und den Timer2. ti soll bis max. 50% der Impulsdauer 
eingestellt werden.  Mein Problem ist das ich für jede Frequenz bzw. 
ander ti's andere Reloadwerte benötige.Diese müsste ich ja ausrechnen 
und ablegen.
Auch der Vorteiler für die CCU-Frequenz ändert sich ab einer bestimmten 
Frequenz.
Ist die Herangehensweise völlig falsch? Wie kann ich es am besten 
realisieren?
Gruß, Daniel
#1223789
Lesenswert?

Falls du die Frequenzen so exakt wie möglich haben willst, mußt du den 
10Bit Prescaler der CCU je nach Frequenzbereich anpassen. Falls du nicht 
100% exakte Frequenzen brauchst, vor allem im oberen Bereich um die 
1kHz, dann könntest du auch mit einem festen Prescaler von 64 arbeiten.
Bei internem Takt von 7,3728MHz beträgt PCLK genau die Hälfte 
(3,6864MHz). Nach dem Prescaler von 64 wird der CCU Timer noch mit genau 
57600Hz getaktet. Damit kannst du zwischen 1Hz und 1kHz alles 
einstellen. Für 1Hz lässt du den Timer per Reload von 57600 bis 0 laufen 
und für 1kHz von 57 (1010,5Hz) oder 58 (993,1Hz) bis 0 laufen.
Das Tastverhältnis kannst du dann über die vier Compare Register 
einstellen. Aber je nach Frequenz (Reload Wert des Timers) musst du die 
Compare Register (OCRxL und OCRxH) anpassen um das gleiche 
Tastverhältnis zu erreichen. Das ganze kannst du aber durch eine 
einfache Rechnung erreichen und brauchst deshalb auch keine Lookup 
Tabellen zu benutzen dafür.

Ciao,
     Rainer

Antwort schreiben

Bitte melde dich an, um einen Beitrag zu schreiben.

oder

Mit Google-Account einloggen

Die Registrierung ist kostenlos und dauert nur eine Minute.

Jetzt registrieren