PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : Ad7008



Adrian
15.03.2005, 11:50
Servus!

Seit einiger Zeit bemühe ich mich - mehr oder weniger erfolglos - aus einem AD7008 einfache Sinusschwingungen herauszuholen. Das Datenblatt, das Analog Devices zur Verfügung stellt, ist in Bezug auf die Ansteuerung ziemlich dürftig, weswegen meine Ansteuerung noch immer im Versuchsstadium ist

Zur Information: Ich verwende den Parallel-Modus mit 8Bit-Datenbreite, möchte Sinus-Frequenzen im Hörbereich (also 20-20.000Hz) erzeugen und diese dann noch in der Phase verschieben.

Leider kann ich keinen sinnvollen Zusammenhang zwischen den von mir zum Baustein übergebenen Werten, und dem was er ausgibt herstellen. Manchmal komme ich auf die gewünschte Frequenz, dann ändere ich eines der 32 Ansteuerungsbits und die Ausgabe bricht total zusammen. Änderungen im MSB haben weniger Auswirkungen als Änderungen niederwertigerer Bits und die Phasenverschiebung klappt schon gar nicht.

Ich wäre recht dankbar, wenn jemand der mit diesem IC schon erfolgreich gearbeitet hat, mir mit ein paar Tipps und Tricks helfen könnte.

Gruß,

Adrian

Winne
15.03.2005, 13:58
-1. Schaltplan Deiner momentanen Schaltung hochladen.
-2. Link zum Datenbatt hier hereinsetzen, wenn vorhanden.
-3. sollteset Du heute abend noch kene brauchbare Lösung gefunden oder Antworten erhalten haben, dann mache ich mich drüber.

Habe momentan bis 20.00 zu tun dann schau ich wieder rein denke ich.

Adrian
15.03.2005, 16:48
Servus!

Hui, geht ja schnell!
Bei mir gehts nicht ganz so schnell mit Schaltung und Datenblatt, werde das in den nächsten Tagen erledigen. Die Ansteuerung erfolgt übrigens per PC und LPT in Delphi, den entsprechenden Programmteil werde ich auch hochladen.
Bis dann.

Gruß,

Adrian

Winne
15.03.2005, 22:22
o.k.

am besten noch ne PN, damit ich's nicht verpasse.

edgar
16.03.2005, 13:44
komme nicht an das Datenblatt....PC haengt sich daran auf.. ;-)


aber http://www.google.it/search?hl=it&q=ad7008&meta=
vielleicht hast du glueck mit diesem vorschlag...wo allerdings seriell geladen wird.

Habe selbst DDS mit 8051 gemacht.... mangels MC-geschwindigkeit konnte ich
mit einem 24 bit Akkumulator recht brauchbaren sinus erzeugen...aber nur fuer Frequenzen deutlich unterhalb 10kHz.

ad8007 =schoenes Bauteil !
ed


sorry hier: http://www.sprut.de/electronic/pic/projekte/ad7008/ad7008.htm

auszug:
Der Chiphersteller Analog Devices gibt den Preis des AD7008 mit ca. 23 $ an. Das sind garantiert nicht die Endabnehmerpreise. Als ich 1997 das erste Mal mit dem Chip in Kontakt kam, war 90 DM (also 45 €) im Gespräch. Außerdem kenne ich immer noch keinen Lieferanten.
Wer auf die Möglichkeit der Amplitudenregelung/Amplitudenmodulation und der I/Q-Modulation verzichten kann ist warscheinlich mit dem AD9835 für 7 $ besser bedient. Dieser Chip basiert auf dem gleichen Prinzip wie der AD7008, hat aber kein paralleles Interface (was sich mit einem PIC sowieso nicht nutzen läßt) sowie keine I/Q-Multiplikatoren zur Amplitudenregelung in Sin und Cos. Die Frequenzerzeugung (und sogar die Phasenmodulation) entsprechen aber dem AD7008.

Adrian
17.03.2005, 23:12
Servus!

Jetzt habe ich endlich die nötigen Unterlagen zusammenstellen können.

Das Datenblatt des Bausteins AD7008 findet man am besten beim Hersteller unter: www.analog.com/UploadedFiles/Data_Sheets/281210069AD7008.pdf (http://www.analog.com/UploadedFiles/Data_Sheets/281210069AD7008.pdf)

Die Versuchsschaltung ist nur als grobes, aus dem Kopf rekonstruiertes Schma zu sehen, z.B. ist die Spannungsversorgung mehrfach mit Kondensatoren abgeblockt, denn das Original liegt mir momentan nicht vor. Die Parallelansteuerung ist ein absolutes Muß.

Nachfolgend ist ein Ausschnitt des Delphi-Codes, mit dem ich die Versuche zur Ansteuerung durchführte, die Pause setzte ich auf 1ms. Zum Erzeugen einer Ausgangsfrequenz führte ich diese Schrittfolge aus





<DIR><DIR>Registerbutton 0


Datenbutton 0
Registerbutton 8
Datenbutton 5
Registerbutton 8
Datenbutton 30
Registerbutton 8
Datenbutton 184
Registerbutton 8
Datenbutton 82


</DIR></DIR>was zwar den gewünschten Erfolg brachte, aber schon kleine Änderungen der (dezimal angegebenen) Datenbutton-Werte hatten gewaltige Änderungen der Frequenz zur Folge, brachten teilweise sogar die Schwingungen ganz zum Erliegen.



procedure TForm1.RegisterButtonClick(Sender: TObject);
var
RegDaten: Byte;
begin
RegDaten:=StrToInt(RegisterEdit.Text);
PortOut($37A,2);//CS#=1 LOAD=0 WR#=1
Delay(Pause);
PortOut($378,RegDaten);
Delay(Pause);
PortOut($37A,6);// CS#=1 LOAD=1 WR#=1
Delay(Pause);
PortOut($37A,2);//CS#=1 LOAD=0 WR#=1
Delay(Pause);
PortOut($378,0);
Delay(Pause);
end;

procedure TForm1.DatenButtonClick(Sender: TObject);
var
ParDaten: Byte;
begin
ParDaten:=StrToInt(DatenEdit.Text);
PortOut($37A,2);//CS#=1 LOAD=0 WR#=1
Delay(Pause);
PortOut($37A,3);//CS#=0 LOAD=0 WR#=1
Delay(Pause);
PortOut($378,ParDaten);
Delay(Pause);
PortOut($37A,11);//CS#=0 LOAD=0 WR#=0
Delay(Pause);
PortOut($37A,10);//CS#=1 LOAD=0 WR#=0
Delay(Pause);
PortOut($37A,2);//CS#=1 LOAD=0 WR#=1
Delay(Pause);
PortOut($378,0);
Delay(Pause);
end;
Ich wäre äußerst erfreut, wenn mir jemand helfen könnte, und mir sagt, wo mein Fehler liegt.

Gruß,

Adrian

Winne
05.04.2005, 01:50
Ich weiß nicht ob hier der Hase im Pfeffer liegt?
Aber dein Schaltbild scheint zunächst diese Bedingung zu vernachlässigen. Daher dürfte ziehmlich unbestimbar sein in welchem Register welche von dir gesendeten Daten landen. Das kommt Deiner Symptombeschreibung sehr Nahe.

Siehe Datenblatt Page 3 Figure 1


http://www.deviltronic.de/jpgs/adrian1.bmp

Wenn Du Dich meldest werde ich gern noch mal tiefgründiger suchen. Ich war ne weile krank un Dein Thema ist nicht eben nen Spaziergang da will man schon genauer hinsehen. Aber das nächste mal wirds nicht solange dauern.

Adrian
07.04.2005, 18:02
Servus Winnie!

Dieses Diagramm habe ich schon im Datenblatt gesehen, aber da auf der letzten Seite die Schaltung des Entwicklungsboards diesen Aspekt nicht berücksichtigt, habe ich das genauso weggelassen. Mein Kollege macht heute abend weitere Versuche, vielleicht klappts.

Gruß,

Adrian