mikrocontroller.net

Forum: Digitale Signalverarbeitung / DSP Hochgenauer Impulsausgang mit TMS320C6747


Autor: Johann (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hallo,

ich brauche einen hochgenauen Impulsausgang an meinem System mit dem 
TMS320C6747. Die auszugebende Frequenz soll sich im bereich von 5 bis 
50000 Hz bewegen, dabei sollte die Genauigkeit bei 0,01 % sein. Ich habe 
es erstmal mit dem integrierten PWM / HRPWM Modulator probiert. Doch bei 
hohen Frequenzen habe ich einen zu starken Fehler. Desweiteren gibt es 
ein grosses Problem bei der Frequenzeinstellung. Man stellt bei dem 
Modulator die Periodenbreite und Pulsbreite ein, desweiteren kann man 
die Systemfrequenz mit 2 Dividern einstellen.
Ich habe bei verschiedenen Divider Einstellungen und Periodenbreiten die 
Ausgangsfrequenz gemessen und musste festellen, dass der Periodencounter 
(16 bit Counter) relativ ungenau ist, d.h. bei einer niedrigen 
Counterconfiguration (16 bit Periodendauer Regisster) have ich Fehler 
bis zu 3% waehrend im hohen Counterbereich nur ein tausendstel % Fehler 
auftritt.
Die Divider dagegen sind supergenau.
Um immer bei 0,01 % Fehler zu liegen muesste ich also staendig 
zusaetzlich zu dem 16 Bit Periodenbreitenregister auch noch die Divider 
veraendern. Das klingt fuer mich jedoch unsinnig und extrem 
Ressourcenfressend.
Der letzte Ausweg waere fuer mich ein zusaetzlicher DDS Chip (Direct 
Digital Synthesizer) im System.
Vorher wollte ich jedoch noch hier nachfragen ob schon jemand geschafft 
hat hochgenaue Frequenzen mit dem PWM Ausgang hinzubekommen? Vlt. habe 
ich noch was uebersehen. Also wer Erfahrung hat mit dem PWM ausgang der 
DSP.

Gruss
Johann

Autor: Jürgen M. (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hi Johann,
Das Problem ist, so meine Vermutung, der Systemclock. Dieser wird ja 
durch einen Quarz und einer PLL erzeugt. Diese Beiden haben 
selbstverständlich ein "Eigenleben", welches temperaturabhängig und 
vielleicht auch alterungsabhängig ist.
Natürlich geschieht die Erzeugung des Systemclocks in einer 
Regelschleife, doch jeder Regelkreis hat wohl auch eine kleine 
Regelabweichung.
Ob diese sich im Bereich von kleiner 0,01 % bezogen auf den 
eingestellten Systemclock bewegt, wage ich zu bezweifeln.
Warum ist die Abweichung bei der kleinen Frequenz deines Signals also 
geringer als zum Beispiel bei einer Frequenz von 50 kHz?
Der (Frequenz)Fehler des Systemclocks wird durch die Frequenzteiler auch 
heruntergeteilt.
Deswegen ergibt sich bei der Frequenz von 5 Hz eine kleinere Abweichung.
Denke das du auch bei einer Frequenz von 50 kHz die Frequenzteiler 
extrem hochstellen solltest, sodass die Zähler der einzelnen 
PWM-Register immer sehr hoch gezählt werden müssen (kann auch 60000 
sein!).
Dadurch wird der Fehler vom Systemclock "gemittelt" und es könnte sein, 
dass die Abweichung kleiner wird.
Du musst also die Frequenzteiler verändern. Außerdem lächelt dein 
Controller wohl müde, denn in das Periodenbreitenregister kannst du zu 
jedem beliebigen Zeitpunkt einen neuen Wert eintragen, wenn du das 
Shadow-Register verwendest.
Es ist auch noch wichtig deine PWM Pins mit dem Systemclock zu 
synchronisieren, falls du das noch nicht gemacht hast!

Hoffe ich konnte dir ein wenig helfen!

Grüße, Jürgen

Autor: Johann (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Danke für die Antwort Jürgen,

hab verschiedene Systemclocks und Zähler ausprobiert, die Abweichungen 
sind trotzdem zu hoch und vorallem aufwendig immer den richtigen Clock 
und Zähler zu errechnen und dann immer an den Registern rumzuspielen, 
der Controller lächelt wirklich müde :)
Hab mich deshalb entschieden einen externen programmierbaren 
Waveformgenerator zu nehmen, genauergesagt den AD9833. Ich wollte diese 
Lösung zuerst vermeiden um das System kompakt zu halten, aber ich 
brauche unbedingt die hohe Genauigkeit. Angesteuert über SPI entlastet 
es die CPU enorm. Außerdem kann ich den PWM Controller in der DSP 
anderweitig einsetzten.
Freu mich schon den IC auszuprobieren.

Gruß
Johann

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.