Hallo, ich versuche gerade mit dem AD5064 mittels eines VHDL Modells eine statische Spannungsausgabe zu realisieren. VDD=5V Vref=5V Hierbei habe ich den DAC auf midscale ausgesteuert sodass bei der angelegten Referanzspannung von 5V also eine Ausgabe von 2,5V zu erwarten wäre, dies geschieht auch, allerdings kommen dazu noch peaks von etwa 3,7V wie im Bild zu erkennen. Dem DAC Ausgang ist nichts weiter "nachgeschaltet". Link Datenblatt:http://www.analog.com/static/imported-files/data_sheets/AD5024_AD5044_AD5064.pdf Hat jemand eine Ahnung für die Ursache der Peaks? Gruß Stefan
Stefan schrieb: > Hat jemand eine Ahnung für die Ursache der Peaks? Als Musiker fällt mit auf: die Abstände sind verdächtig gleich... Wie oft und wie gibst du den Wert an dan DAC?
Oder gibt es etwas was sich mit diesem Muster deckt (LCD Ausgabe etc. )
Im Anhang mein VHDL Modell.. Ich gebe den festen Wert immer wieder drauf, also in dem Abstand wie eben ein Schreibzyklus vom DAC dauert(Taktfrequenz sind 100MHz.. also ist ein Schreibzyklus ca 300µs lang wenn ich mich jetzt nicht verrechnet habe). Gruß Stefan
Stefan schrieb: > Im Anhang mein VHDL Modell..
1 | process(clk) |
2 | variable counter:integer range 0 to 999:=0; |
3 | begin
|
4 | |
5 | if(rising_edge(clk)) then |
6 | if(counter<500) then |
7 | sclk<='0'; |
8 | counter:=counter+1; |
9 | elsif(counter<999) then |
10 | sclk<='1'; |
11 | counter:=counter+1; |
12 | else sclk<='1'; |
13 | counter:=0; |
14 | end if; |
15 | end if; |
16 | end process; |
Hoppla, diese Takterzeugung ist aber aufwendig, wenn man bedenkt, dass SPI nur gekoppelte Schieberegister sind. Und dass darin eigentlich kein Multiplexer vorkommt:
1 | d_in<=dac_data_sequenz(conv_integer(dac_cnt)); |
Stefan schrieb: > wenn ich mich jetzt nicht verrechnet habe. Was sagt das Oszi? Passt dein Timing auf der SPI-Schnittstelle zum Datenblatt?
Hallo Stefan, täusche ich mich, oder ist deine sclk Erzeugung nirgends synchronisiert zum Datenstrom auf d_in? Falls dem so ist, dann sieht der AD5604 im Lauf der Zeit alle möglichen Setup-Zeiten von d_in bezogen auf sclk. Von Zeit zu Zeit könnte es dann zu einer Setup-Zeit Verletzung kommen und der AD5604 interpretiert sein Kommando falsch. Oszi oder Simulation sollten das Problem sichtbar machen. schöne Grüße Achim S.
Ich werde das am Montag nochmal genauer mit dem Oszi überprüfen. Danke für eure Anregungen. Gruß Stefan
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.