Zum ersten Mal in meinem Leben verwende ich diesen DDS-Chip (AD9850), um eine Sinuswelle mit einer gewünschten Frequenz zu erzeugen, wobei ich den Nachschlagetabellencode und die gewünschte Frequenz hochlade. Befehl über einen mit Mikrocontroller. Daher ist mein Wissen im Moment sehr begrenzt.
Die Sache scheint bisher in Ordnung zu sein, aber das Problem liegt bei sehr niedrigen Frequenzen. Bei 1Hz und sogar 0,5Hz scheint das in Ordnung zu sein. Ich brauche aber auch bis zu 0,1Hz.
Hier ist die Ausgabe von DDS, wenn ich die Nummer 0.1 über den Mikrocontroller an das DDS sende :
In meinem Code sende ich den Befehl vom PC als String an micro und konvertiere ihn in double. Der Einfachheit halber und zur Überprüfung verwende ich diesen Code und setze für 0,1 Hz sendFrequency (0,1) in der Schleife.
Wie Sie jedoch sehen, beträgt der Zeitraum für 0,1-Hz-Befehle etwa 11,5 Sekunden anstelle von 10 Sekunden.
Ich hoffe, ich konnte das Problem gut erklären. Gibt es eine Möglichkeit, dies zu kalibrieren oder zu optimieren, damit ich ein genaueres Ergebnis erzielen kann? Oder sollte ich mit der Genauigkeit leben? Übrigens, wo im Datenblatt kann man auf eine solche relative Unsicherheit verweisen?
Antworten:
Es ist keine Genauigkeitssache - es ist Auflösung.
Die Vorderseite des Datenblattes gibt eine Abstimmungsauflösung von 0,0291 Hz mit einem 125-MHz-Takt an.
Das sind also ungefähr 30% Ihrer gewünschten Ausgangsfrequenz. Dies ergibt sich aus dem Ergebnis des Hinzufügens des LSB des Abstimmworts zum Phasenakkumulator bei 125 MHz - für eine gegebene Taktfrequenz ist dies dem Chip und der Anzahl der Bits eigen, die sie für den Phasenakkumulator und das Abstimmwort ausgewählt haben.
Sie können versuchen, die Taktfrequenz zu reduzieren - das Minimum beträgt 1 MHz, sodass Sie die Auflösung um mehr als zwei Größenordnungen auf etwa +/- 0,23% bei 0,1 Hz verbessern können sollten.
Leider müssen sich andere Dinge ändern, um eine optimale Leistung zu erzielen (insbesondere das Ausgangsfilter, bei dem es sich normalerweise um ein elliptisches LC-Filter 7. Ordnung bei diesen Modulen handelt).
Wenn Sie beispielsweise 1 Hz nicht überschreiten müssen, können Sie einfach einen RC-Filter mit einem Cutoff von beispielsweise 100 Hz zum vorhandenen Ausgang hinzufügen, der für viele Zwecke akzeptabel ist.
quelle
Was Sie im Datenblatt suchen, ist die Auflösung der Frequenzabstimmung. Für diesen Chip beträgt sie 0,0291 Hz für einen 125-MHz-Referenztakteingang. Ihre Frequenz wird auf ein Vielfaches dieser Zahl gerundet. Diese Zahl basiert auf der Frequenz des Takteingangs des Chips.
Beispielsweise werden 0,1 Hz auf 0,0873 Hz (0,0291 * 3) gerundet. Die Periode für 0,0873 Hz beträgt 11,5 Sekunden, was Sie sehen.
Eine niedrigere Eingangstaktfrequenz führt zu einer höheren Genauigkeit bei niedrigeren Frequenzen. Wenn Sie also eine bessere Genauigkeit bei niedrigeren Frequenzen wünschen, senken Sie die Taktfrequenz.
quelle