Runterteilen der SYSCLK zu einer kleinen TBCLK bei epwm modul funktioniert beim TMS320F2808 nicht

OP #1674674
Hey zusammen,

ich habe jetzt 4 pwm module, 3 sind zur berechnung von comparewerten, 
und mit dem 4 möchte ich eine Zeitbasis zu dieser berechnung 
bereitstellen. also ich nimm den counterwert des counters, und berechne 
mir daraus in den interruptmethoden der anderen 3 immer wieder neue 
comparegrößen.
Jetzt zu meinem Problem:
Ich möchte das der 4 Counter seine Werte so langsam wie nur möglich 
ändert, umso für die berechnung in den 3 anderen counter nicht zu 
schnell zu sein.

Jetzt habe ich mit den Bits TBCTL.CLKDIV und TBCTL.HSPCLKDIV versucht 
den Teilungsfaktor für die TimeBaseClock des 4 Counters den maximalen 
wert von

 TBCLK = SYSCLKOUT/(CLKDIV*HSPCLKDIV) = SYSCLKOUT/128*14 = 
100MHz/1792=55,8 kHz

zu geben, um somit ganz langsam zählen zu können.

Wenn ich jetzt jedoch ein Oszi dranhäng, wird hier maximal der Wert 4 
als Faktor verwendet, auch wenn ich in beide 0x111; reinschreibe!?

Hatte evtl. schon mal jemand das Problem mit dem runterteilen der 
Frequenz?

Wäre um jede Hilfe dankbar!

Grüße, tom
Persönliche Seite
Das mit dem falschen Teilen des Taktes kann ich ohne Quellcode nicht 
nachvollziehen.

Das Konzept mit den 4 Timern kann ich nicht ganz verstehen.

Normalerweise setzt man einen Timer auf und dieser macht PWM auf einem 
oder zwei Portpins und die Zeitbasis für die Berechnung.
Die Softwarezeitbasis wird vom Timer über das "Event trigger and 
Interrupt (ET)"-Modul abgeleitet.

In der epwm-Beschreibung
http://focus.ti.com/lit/ug/spru791f/spru791f.pdf

auf Seite 82 ist ein Beispiel wie man das löst, wenn man zwei 
Dreiphasenwechselrichter ansteuert.
Da bleibt kein epwm Modul mehr übrig, wenn man nur 6 davon hat.
Die Erzeugung der Softwarezeitbasis für alle Berechnungen passiert 
genauso mit den bereits für PWM benutzten Modulen.

Wenn man niedrigere Frequenzen für die Interrupts benötigt, kann das 
ET-Submodul noch etwas weiter runterteilen. Und sonst kann man noch 
problemlos im Interrupt selbst mitzählen und damit niedrigere 
Zykluszeiten erzeugen.

Grüße,

Peter

Antwort schreiben

Eine eigene Frage? Dieser Thread ist über 16 Jahre alt. Stell sie in einem eigenen Thread – dort lesen mehr Leute mit, und sie wird öfter und schneller beantwortet.

Neuen Thread starten

Eine Lösung, Ergänzung oder Rückmeldung zu diesem Thread? Dann antworte hier.

Formatierung
  • [c]C-Code[/c]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] – Link zu einem Artikel
  • Verweis auf einen anderen Beitrag: Rechtsklick auf dessen Beitrags-ID (#8078628), „Adresse kopieren“, in den Text einfügen

Mehr zur Formatierung

Längeren Sourcecode als Anhang, nicht in den Text. JPG nur für Fotos und Scans; Zeichnungen und Screenshots als PNG oder GIF. Siehe Bildformate.

Schon registriert? Anmelden

Wird nicht angezeigt. Wir schicken dir einen Link; sobald du damit bestätigst, erscheint dein Beitrag.

Mit dem Abschicken legst du einen kostenlosen Account an und erkennst die Nutzungsbedingungen und die Datenschutzerklärung an.