www.mikrocontroller.net

Forum: Digitale Signalverarbeitung / DSP Runterteilen der SYSCLK zu einer kleinen TBCLK bei epwm modul funktioniert beim TMS320F2808 nicht


Autor: Thomas Schermer (cheesie)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
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

Autor: Peter Diener (pdiener) Benutzerseite
Datum:

Bewertung
0 lesenswert
nicht lesenswert
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

Die Angabe einer E-Mail-Adresse ist freiwillig. Wenn Sie automatisch per E-Mail über Antworten auf Ihren Beitrag informiert werden möchten, melden Sie sich bitte an.

Wichtige Regeln - erst lesen, dann posten!

  • Groß- und Kleinschreibung verwenden
  • Längeren Sourcecode nicht im Text einfügen, sondern als Dateianhang

Formatierung (mehr Informationen...)

  • [c]C-Code[/c]
  • [avrasm]AVR-Assembler-Code[/avrasm]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] - Link zu Artikel
  • Verweis auf anderen Beitrag einfügen: Rechtsklick auf Beitragstitel,
    "Adresse kopieren", und in den Text einfügen




Bild automatisch verkleinern, falls nötig
Bitte das JPG-Format nur für Fotos und Scans verwenden!
Zeichnungen und Screenshots im PNG- oder
GIF-Format hochladen. Siehe Bildformate.
Hinweis: der ursprüngliche Beitrag ist mehr als 6 Monate alt.
Bitte hier nur auf die ursprüngliche Frage antworten,
für neue Fragen einen neuen Beitrag erstellen.

Mit dem Abschicken bestätigst du, die Nutzungsbedingungen anzuerkennen.