Ich habe eine MCU, die einen 16-Bit-DAC über SPI steuert (und einen zusätzlichen LDAC-Ausgang, der die Aktualisierung des DAC-Ausgangs auslöst). Die MCU hat eine vorberechnete 1120-Hz-Sinuswelle in einem 364 Byte langen Puffer (alle Berechnungen in Float32, gerundet auf uint16 für die DAC-Ausgabe), abgetastet bei 29120 Hz. Bei einem Timer-Interrupt wird das Update des DAC per LDAC angestoßen und anschließend ein neuer Wert aus dem Buffer geladen und per SPI gesendet. Die Aktualisierung auf den letzten Wert wird am Anfang ausgelöst, um Jitter aufgrund von Speicherzugriffsrennen gegen DMA zu reduzieren. Interrupt hat eine ausreichend hohe Priorität, um nicht verzögert zu werden.
Obwohl der Sinus optisch gut aussieht , zeigt die FFT meines Rigol DS1054Z hinter dem DAC (vor dem Rekonstruktionsfilter) eine deutliche Verzerrung:
Die höchste Spitze sind die erforderlichen 1120 Hz, andere haben einen gleichen Abstand von 260 Hz. Die rechte Spitze scheint nur 5dB unter der Hauptspitze zu liegen!!
Der Jitter am LDAC-Pin liegt in der Größenordnung von +/- 0,25 us, was ich bei einer Abtastzeit von 34,3 us für akzeptabel halte. Der Timer selbst läuft vom Kristall der MCUs und sollte stabil genug sein.
Was für ein Problem würde zu einem solchen Verzerrungsmuster führen? Was könnten die Möglichkeiten sein, es zu diagnostizieren und zu reduzieren?
Nur für den Fall relevant: Der DAC ist ein AD5686, die Vollskalenreferenz beträgt 5 V, die Sinusamplitude beträgt 25 mV, was dazu führt, dass ungefähr die unteren 10 Bit "umgeschaltet" werden.
Ich habe einen Laborsignalgenerator an den Eingang des Oszilloskops angeschlossen, um es mit dem gemessenen Signal zu vergleichen, und überraschenderweise genau das gleiche Spektrum in seiner FFT gesehen. Beim Erhöhen der Frequenz verschwanden die Subharmonischen bei 1250 Hz. Das Ändern der Speichertiefe in den "Erfassen"-Einstellungen von Auto auf 6K entfernte den Effekt. Es scheint, als würde in der FFT des DS1054Z eine Art Aliasing-Problem auftreten.
===
BEARBEITEN: Wenn Sie sich das Bild genau ansehen, sehen Sie eine Abtastrate von 5 kHz, die über dem FFT-Fenster angezeigt wird. Es wäre zu wenig gewesen, den DAC-Ausgang vor dem Filter abzutasten. Es ist überraschend, dass es immer noch genauso aussieht, wenn es mit einem sauberen 1120-Hz-Signal versorgt wird, da es immer noch unter der Niquist-Frequenz liegt.
David Tweed
Andi aka
Andi aka
Neil_DE
Mav
Mav
David Tweed
Mav
Nils Pipenbrink