Hallo @ all FPGA User, ich benötige einen Takt so um die 4000kHz den ich per SPI verstellen kann. Der Takt soll z.B. 4000,123kHz oder 4000,432kHz besitzen. Bis jetzt habe ich leider nichts gefunden. Die Bauteile die ich gefunden hatte waren zu ungenau. Ich hatte schon drüber nachgedacht den DCM vom FPGA zu benutzen. Jedoch halte ich das für etwas übertrieben. Ich weiß auch nicht ob dieser DCM in so feinen Schritten verstellbar ist. Kennt vielleicht jemand einen über SPI verstellbaren Takt der für mich geeignet ist? Ich habe erste gedacht das sollte kein Problem sein. Man nehmen einen 32Mhz Talkt z.B. und benutzt einen Counter zum herunterteilen. Jedoch stellt man sehr schnell fest das man einen GHz Takt benötigt um solch eine feine Verstellung hinzubekommen.
Johann schrieb: > ich benötige einen Takt so um die 4000kHz den ich per SPI verstellen > kann. Der Takt soll z.B. 4000,123kHz oder 4000,432kHz besitzen. Du gibst (mindestens) 8 signifikante Stellen an, soll der Takt tatsächlich auf 1/4000000 genau eingestellt werden können? Wie genau ist deine Referenz? Welchen Jitter darf der Takt haben? Wie schnell muß die Umschaltung erfolgen? Worauf kommt es bei diesem Takt an? Wofür ist dieser Takt?
Wenns auch I2C sein darf, schau mal hier: http://www.silabs.com/products/clocksoscillators/xo/Pages/default.aspx
Der Takt muss nur einmal pro Sekunde verstellt werden. Es ist der Takt für eine Regellung und sollte schon recht genau und vor allem stabil sein.
Danke auf jedenfall schon mal für den Hinweis. Die sind schon sehr gut habe noch nicht geschaut woe man die ICs kaufen kann. Jedoch wäre mir ein SPI Bus lieber da ich bereits damit schon mal gearbeitet habe.
Der AD9832 hat doch ein SPI Interface. Und durch die 32Bit Frequenzregister wird der angelegte Masterclock auf extrem kleine Schrittweiten heruntergeteilt.
Ich werde mir mal den AD9832 anschauen. Dieser schein ja etwas complexer zu sein. Vielleicht kennt jemand ja noich andere Hersteller oder andere Modelle.
complex ist relativ. Wird der Chip mit z.B. 20MHz Masterclock versorgt, so ergibt sich durch den 32Bit Teiler eine Schrittweite von: 0,0000000046566MHz also 4,6566 mHz. Also sehr fein justierbar. Um den gewünschten Takt 4000,123MHz zu erzeugen, musst du ihm die 32Bit in Form von je einem Kommando und einem Datenbyte übermitteln (also 8Byte senden) com/data h33/h33 h22/h33 h31/h9A h20/h61 ergibt 4000,1229988MHz am Ausgang. com/data h33/h33 h22/h34 h31/h9D h20/h96 ergibt 4000,4319977MHz am Ausgang. Der Chip teilt einfach den Masterclock in 4294967296 Schritte. Sendet man FF FF FF FF so liegen bei 20MHz Masterclock 20MHz am Ausgang. Sendet man 7F FF FF FF so liegen bei 20MHz Masterclock 10MHz am Ausgang. usw...
Generator schrieb: > Sendet man FF FF FF FF so liegen bei 20MHz Masterclock 20MHz am Ausgang. Nicht ganz: es liegen dann rechnerisch (2^32-1)*20MHz/2^32 = 19,99999999953 MHz an. Tatsächlich ist das dann aber ein Decrement um 1 und damit eine Frequenz von 20MHz/2^32. Shannon lässt grüßen... > ergibt 4000,1229988MHz am Ausgang. > ergibt 4000,4319977MHz am Ausgang. So einfach geht das aber nicht! Mit 20MHz Eingangstakt ergibt das einfach ein Signal mit 4MHz, das immer wieder mal "jittert", weil ein "Korrekturtakt" eingefügt werden muß. Im Anhang ist das zu sehen: aus den 20MHz werden mit 33349d96 genau 4 MHz erzeugt, die ab&zu mit einem "kürzeren" Impuls auf die 4000,4319977MHz "aufgebhohrt werden (Screenshot)... :-o Im "langjahrigen Mittel" passt die Frequenz, kurzzeitig betrachtet ist sie auf ganzzahlige Teile von 20MHz beschränkt. Deshalb meine Fragen nach dem Jitter aus dem Beitrag "Re: Suche SPI verstellbaren Takt"
Stimmt ! Deshalb wird der Sinus-Ausgang des AD9832 hinterher per RC-Glied und Komparator zu einem jitterfreien Rechteck mit der gewünschten Frequenz geformt.
Generator schrieb: > Deshalb wird der Sinus-Ausgang des AD9832 hinterher per RC-Glied und > Komparator zu einem jitterfreien Rechteck mit der gewünschten Frequenz > geformt. Das hast du aber jetzt nicht so ganz durchdacht, oder? Wenn schon der Sinus unterschiedlich lang ist, ist der Rechteck nach dem Komparator auch unterschiedlich lang. Und "unterschiedlich lang" bedeutet Jitter... Kurz: mit einer DDFS wirst du aus 20MHz niemals einen richtig sauberen 4,000xxx MHz Takt gewinnen können.
Das hab nicht ich durchdacht sondern der Hersteller. Das RC-Glied muss natürlich an die gewünschten Ausgangsfrequenzen angepasst sein. Dieser Tiefpaß filtert den Jitter weg. Siehe App-Notes des Herstellers: "A Technical Tutorial on Digital Signal Synthesis" Dass dabei eine Phasenverschiebung entsteht ist bei meinen Anwendungen egal.
Generator schrieb: > Das RC-Glied muss natürlich an die gewünschten Ausgangsfrequenzen > angepasst sein. Dieser Tiefpaß filtert den Jitter weg. Das RC-Glied ist der Anti-Alias-Filter nach dem DAC. Bei den Gegebenheiten DAC Frequenz 16 MHz -> Nyquist 8 MHz, ZielFrequenz ca 4 MHz ist ein einfacher RC meiner Ansicht schon nicht mehr gut genug. Was mir auch aufgefallen ist, dass im Datenblatt nur ganzzahlige Teiler (1/7) in den Referenzspektren verwendet wurden. Insgesamt viel (analoger!) Aufwand nur um SPI statt I2C und einen dedizierten Clockgenerator einzusetzen. So viel Aufwand ist I2C nun auch wieder nicht, wenns nur um die Ansteuerung eines bestimmten ICs geht, kann man da viel vereinfachen. (z.B. es ist kein Clickhandshake nötig).
Ich finde den Silab SI514 sehr schön. Dieser ist sehr klein schon fast wie ein 0805 Widerstand. Dieser scheint auch sehr genau zu sein. Vlleicht kennt noch jemand einen anderen Hersteller da der SI514 schlecht zu beschaffen ist.
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
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.