Forum: Mikrocontroller und Digitale Elektronik Rechteckgenerator (PWM) mit p89LPC935


von Daniel (Gast)


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

von R. W. (quakeman)


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

von Daniel (Gast)


Lesenswert?

Vielen Dank, jetzt muss ich noch überlegen wie dieser Algorhytmus
aussehen muss. Muss ja linear sein; das verhältnis von reloadwert zur 
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
Noch kein Account? Hier anmelden.