Hallo,
ich würde gerne einen Delta-Sigma DAC mit meinem FPGA "bauen".
Hierzu habe ich zunächst die einfache Version programmiert (im Code
auskommentiert), bei dem einfach der Wert immer aufaddiert wird, und bei
einem overflow der Port eine '1' ausgibt, ansonsten eine '0'.
Da ich dann niederfrequente (im Bereich von 10kHz) Rechtecke im
gefilterten Signal hatte.
Also habe ich im Internet den Code für einen DAC zweiter Ordnung
gefunden und eingebunden (und leicht verändert, damit ich einen
clock-enable habe).
Das sah schon viel besser aus, doch erhalte ich immer Störungen auf dem
Signal.
Für das Signal erzeuge ich ein Dreieck. Je nach Geschwindigkeit des
clock-enables des DAC, erhalte ich öfter oder seltener rauschen.
Das Modulierte Signal sieht im Simulator und auf dem Oszi gut aus, das
gefilterte (10kOhm und 0.2µF = 80Hz) Signal hat regelmäßig Störungen.
Erkennt jemand woran es liegen kann?
Danke schon einmal
Mein Code:
Bin jetzt kein FPGA-Fuzzi, aber das sieht mir doch stark nach Messfehler
aus. Insbesondere nach schlechter Masseverbindung und "Autoset-Infarkt".
Beachte doch mal den Maßstab. Du hast 20mVpp Signal am Ausgang des DAC.
Bist du sicher, dass das das ist, was du ausgeben willst?
Fahr deinen DAC doch mal etwas aus, d.h. den Sinus/Dreieck auf 1Vpp oder
mehr. Das was du da hast sind 20mVpp, da kann man nur raten, was das für
eine Signalform hätte werden sollen.
Die "Haare" auf deinem Signal kommen vermutlich von irgendeinem
Schaltregler. Der muss nicht mal auf deiner Platine sein. 20mV hat man
gleich mal drin. Drum 1Vpp - da stören die 20mV kaum noch.
Du musst die Masse auch direk da abnehmen, wo das Signal drauf ist, dann
wird es etwas besser.
Wenn da ein 80Hz Filter hängt, kann es nicht so aussehen, meine ich.
Für mich sieht das verdächtig danach aus, daß dort irgendwelche Signale
nicht sauber rausgetaktet werden und spike rausgehen. Gfs wird auch der
Loopd nicht richtig eingetaktet oder es ist ein overflow.
Jürgen S. schrieb:> Wenn da ein 80Hz Filter hängt, kann es nicht so aussehen, meine ich.
Warum Nicht? Wenn da "Dreck" auf der Masse wg Schaltregler ist, dann
schaut das genauso aus, da nutz kein 80Hz Filter an den FPGA-Ausgängen.
Miss mal mit kurzer Taskopfmasse.
Noch kurz zur Auflösung.
Mir ist aufgefallen, dass als ich herangezoomt habe, das rauschen
deutlich abgenommen hat. Nach kurzen Oszi-Check habe ich gesehen, dass
die Bandbreite auf 20MHz begrenzt wurde.
Danach habe ich die Ausgabe nur mit 1MHz gemacht, und ich hatte
immernoch diese Schwingungen drauf, die bei einer 20 MHz-Begrenzung
deutlich besser wurden.
Das Ende vom Lied war, dass die Masse des FPGAs mit 50MHz quasi
verseucht ist und durch den Steckbrettaufbau alles eingefangen wurde.
Beim direkten auflöten des Filters auf die Pins war es noch einmal
besser.
Gerald M. schrieb:> Das Ende vom Lied war, dass die Masse des FPGAs mit 50MHz quasi> verseucht ist
Das ist immer so.
Es gibt nicht "die eine Masse", sondern jedes Ende der Platine sieht
seine "eigene" Masse. Und ein an eine FPGA-Platine angeschlossenes
Steckbrett hat nochmal eine ganz "andere" Masse...
Stichworte dazu u.A.: Ground Bouncing und SSO (Simultaneously Switching
Outputs)
Nun ja, im Prinzip ist die Messung damit ja richtig, denn sie zeigt, was
aus den FPGA-Pins rauskommt. Allerdings sind die Spitzen ja im Pegel
auch recht gering.