Forum: Digitale Signalverarbeitung / DSP / Machine Learning Hochgenauer Impulsausgang mit TMS320C6747


von Johann (Gast)


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

von Jürgen M. (Gast)


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

von Johann (Gast)


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

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.