Dave schrieb:
> TX_Done hab ich nicht angeschlossen, da ich vom DAC keine Rückmeldung
> bekomme
Der TX_Done bedeutet, dass das Senden fertig ist und du mit einem
TX_Start das nächste Wort senden kannst.
Wenn du bisher den TX_Start noch nie bedient hast, dann wurde sicher
noch nichts abgeschickt...
> Ich denke mein Hauptproblem ist, das ich nicht weiß, wie ich TX_Start
> anschließen soll.
Sieh dir den VHDL Code und/oder das Bild dort an:
http://www.lothar-miller.de/s9y/categories/45-SPI-Master
Und beantworte dann die Frage:
Was macht der TX_Start und wozu brauchst den?
> Wenn ich es richtig sehe, müsste ich doch alle 4,2 MHz
> (so schnell läuft mein Sägezahn_DDS) ein Startsignal erzeugen, oder?
Kann dein DAC so schnell?
Nein, man findet schon ganz am Anfang des Datenblatts zwei wichtige
MAXIMALWERTE:
Settling Time 4.5us und SPI Clock 20MHz
Und vor Allem: du brauchst es gar nicht so schnell. Denn das ist ja
schnarchlangsame NF:
> An TX_Data geht mein Sägezahn DDS (der mir aktuell einen Sägezahn mit 1
> kHz ausgibt)
Ich fahre mit dem Ferrari ja auch nicht laufend 280, nur weil er es
kann. Sondern ich fahre so schnell, wie ich es brauche.
Für deinen DAC bedeutet das: du müsstest bestenfalls dann einen neuen
Wert ausgeben, wenn sich der Wert ändert (beim Ferrari: Stadtfahrt)
und schlimmstenfalls kannst du so schnell Werte ausgeben, wie dein DAC
es hergibt (beim Ferrari: freie neue gerade Autobahn).
Also sag dir: es reicht CD-Qualität und deshalb eine Abtastrate von
44kHz für den Sägezahn. Und dann zupfst du mit 44kHz am TX_Start. Weil
sonst im FPGA alles synchron ist, musst du dir um den dann jeweils
aktuellen DDFS Wert keine Gedanken machen.
Die SPI-Taktfrequenz würde ich nicht höher als 1MHz machen. Das reicht
für die 44kHz locker aus und du musst dich nicht um das TX_Done kümmern,
weil der SPI vor dem nächsten Start sicher mit der vorigen Übertragung
fertig ist.