Forum: Mikrocontroller und Digitale Elektronik DDS AD9958 - Probleme mit dem extrahieren des Chips


von Walter (Gast)


Lesenswert?

Guten Tag zusammen,

ich arbeite gerade an einer Kostengünstigeren Variante eines DDS-Boards. 
Momentan steht mir das Evulation Board AD9958 von Analog Devices zur 
Verfügung. Wie bereits angesprochen möchte ich eine selbst angefertige 
DDS-Platine ätzen, da ich viele Funktionen des Evulation Boards nicht 
benötige.

Ich habe auch schon einen Testprint gefertigt welcher leider nicht 
funktioniert hat. Ich glaube ich habe einen Fehler beim extrahieren des 
Chips gemacht - sprich ich habe vermutlich Bauteile für nicht wichtig 
genug betrachtet.

Ich hoffe mir kann jemand ein paar entscheidende Tipps geben.

Datenblatt:
http://www.analog.com/static/imported-files/eval_boards/57241686299254AD995EB_0.pdf

Kurz:

Ich benötige 2 Outputs (max 200MHz), verwende einen 25MHz Quarz. Ich 
verwende zusätzlich einen EXTERNEN µC (SPI Übertragung) wobei die 
Initalisierungs Software zu 100% funktioniert (weil bei dem Evulation 
Boards funktioniert der Code).
Nach dem ersten Test erkannte ich folgendes. Der Quarz schwingte 
hervorragend auf seinen 25MHz. Auch die Filter am Ausgang passen zu 
100%. Jedoch klappte die Initialisierung nicht, ich bekam nicht meine 
Startfrequenz am Output heraus..

Um jetzt den Fehler suchen zu können benötige ich ein paar Informationen 
die ich dem Datenblatt leider nicht wirklich entnehmen konnte. Und zwar 
benötige ich den µC (vom Evulation Board), auch zum Speichern meiner 
Werte die ich über die SDIO_0 Leitung hineinschreibe, bzw gibt es 
irgendwo einen Speicher oder nimmt der DDS-CHIP die geschickten Bits 
Intern auf?(vermute ich)

Einfacher ist meine Frage eventuell zu beantworten anhand der 
Beschaltung im Datenblatt. Besonders Interessant für mich ist Page 26/28 
da die Seiten 24,25 kein Problem darstellten.

U2,U13 - Headers (SDIO_0, SCLK, CSB, Reset, PWR_DOWN,IO_Update - werden 
verwendet der Rest nicht.

U5,U6 - I/O Buffers (Die Buffers wurden von mir weggelassen, das ich das 
so auffasste das ich diese nur bentötige falls ich Bits vom "OnBoard" µC 
zum DDS-Chip schicke. Oder benötige ich diese doch?)

µC - Komplett weggelassen, alles um den µC herum wurde von mir nicht 
beachtet.


Mir ist bewusst das diese kurze Formulierung sicherlich keinen 
sonderlich guten Überblick gibt, ich hoffe jedoch das jemand mit ein 
paar Guten Tipps, Tricks und Erfahrung mir bei dem Problem weiterhelfen 
kann.



Vielen Dank im voraus!

von Felix B. (e-b)


Lesenswert?

>Wie bereits angesprochen möchte ich eine selbst angefertige
>DDS-Platine ätzen
Ganz schön sportlich.. Wahrscheinlich willst du das mit 2 Layer machen?
Wie lötest du den AD9958?

>da ich viele Funktionen des Evulation Boards nicht
>benötige.
Was ist dann zuviel auf dem Eval Board?

>Ich hoffe mir kann jemand ein paar entscheidende Tipps geben.
Was sind deine Grundlagen? DDS mit 200Mhz Output sind nichts für 
Anfänger

>wobei die Initalisierungs Software zu 100% funktioniert
>Jedoch klappte die Initialisierung nicht, ich bekam nicht meine
Was jetzt klappt es oder nicht? Oder nicht zu 100%?

>Um jetzt den Fehler suchen zu können benötige ich ein paar Informationen
>die ich dem Datenblatt leider nicht wirklich entnehmen konnte.
Da hilft meistens mehrmals (kann bis zu 20 mal oder mehr sein) 
durchlesen.

>Einfacher ist meine Frage eventuell zu beantworten anhand der
>Beschaltung im Datenblatt. Besonders Interessant für mich ist Page 26/28
>da die Seiten 24,25 kein Problem darstellten.
Oder besser Page 9,10 und 31-43

>U5,U6 - I/O Buffers (Die Buffers wurden von mir weggelassen, das ich das
>so auffasste das ich diese nur bentötige falls ich Bits vom "OnBoard" µC
>zum DDS-Chip schicke. Oder benötige ich diese doch?)
Schade, brauchst du SCLK nicht? (U6,7-13)

>µC - Komplett weggelassen
Wie sprichst du dann mit deinem AD9958?

>Mir ist bewusst das diese kurze Formulierung sicherlich keinen
>sonderlich guten Überblick gibt, ich hoffe jedoch das jemand mit ein
>paar Guten Tipps, Tricks und Erfahrung mir bei dem Problem weiterhelfen
>kann.
Ist das nicht eine Schuhnummer zu gross?

>Vielen Dank im voraus!
Cheers

von Lothar M. (Firma: Titel) (lkmiller) (Moderator) Benutzerseite


Lesenswert?

>>> ...ich habe vermutlich Bauteile für nicht wichtig genug betrachtet.
>>> Ich hoffe mir kann jemand ein paar entscheidende Tipps geben.
>> Besonders Interessant für mich ist Page 26/28
>> da die Seiten 24,25 kein Problem darstellten.
> Oder besser Page 9,10 und 31-43
Das Datenblatt vieleicht?
Aber bitte nicht das Datenblatt des Eval-Boards, sondern das des 
DDS-Chips (darauf beziehen sich die Seitenangaben von Felix ;-)
http://www.analog.com/static/imported-files/data_sheets/AD9958.pdf
Denn du mußt nicht einen Chip aus einem EVAL-Board extrahieren. 
Sondern einen in dein Design integrieren. Und deshalb ist die erste 
Literatur das Datenblatt des Chips, nicht das Datenblatt des 
EVAL-Boards.


Wie sieht denn dein Layout aus?
Bei dem Chip sind doch einige Vcc-GND-Pins.
Sind die sauber abgeblockt und gut versorgt?

BTW:
> Der Quarz schwingte hervorragend auf seinen 25MHz.
schwingt, schwankte, schminkte, schwang?

von nides (Gast)


Lesenswert?

Hallo!

Arbeite selber an einem Design mit dem AD9958 und hatte erhebliche 
Schwierigkeiten ihn zum Laufen zu bringen, mittlerweile hab ich ihn aber 
halbwegs im Griff.

Beim Layout und bei den Umgebungs-Bauteilen (Abblock-C, div. 
Widerstände) würd ich keinesfalls sparen.
Wenn dann nämlich was nicht funktioniert findest du nie raus, ob der 
Fehler vom Layout verursacht wurde oder nicht.
Wenn du das Hühnerfutter minimieren willst, dann sieh zuerst am Layout 
alles vor. Wenns erst mal läuft kannst du ja schrittweise die 
Kondensatoren reduzieren und testen ob noch alles ordentlich 
funktioniert.

Eine große Schwachstelle des AD9958 ist das serielle Interface.
Ich hatte (und hab nach wie vor) das Problem, dass sich das Interface 
manchmal "aufhängt". Dann reagiert der DDS auf keine Programmierung 
mehr. Dann ist RESET angesagt.
Die Häufigkeit der Abstürze hab ich minimieren können, indem ich bei 
jeder Übertragung das IO_SYNC Signal verwende (vor dem /CS auf low, 
nachher wieder auf high).
Lesen vom DDS ist nicht zu empfehlen, irgendwo (errata, faq oder so) hab 
ich auch gelesen dass die Geschwindigkeit beim Lesezugriff nicht von ADI 
getestet ist !!
Auch das CLK-Timing ist beim Lesezugriff anders!

Der AD9958 ist jedenfalls kein IC den man mal eben auf eine Platine 
pappt.

Nides

von Walter (Gast)


Lesenswert?

Hi danke für die Posts.

@ FELIX
>Ganz schön sportlich.. Wahrscheinlich willst du das mit 2 Layer machen?
>Wie lötest du den AD9958?
Natürlich mit 2Layer da es auf einem Layer sogut wie nicht zu schaffen 
ist. - mit Lötpaste wurde gelötet, das funktioniert da ich ein 2tes 
Board zur Verfügung hatte welches defekt war. So konnte ich austesten ob 
es mit normalen Löten funktioniert.


>Was sind deine Grundlagen? DDS mit 200Mhz Output sind nichts für
>Anfänger
HF bezüglich habe ich einen guten Beistand der mir hilft, verwende eine 
0,7mm Platine mit Mikrostreifenleitungen ;)

>Was jetzt klappt es oder nicht? Oder nicht zu 100%?
Sorry das drückte ich missverständlich aus. Ich will damit sagen die 
Software (Assembler) funktioniert 100% da die Initialisierung mit dem 
EVAL Board funktioniert hat. Bei MEINER gefertigten Platine jedoch hatte 
die INIT nicht funktioniert -> meine Platine ist defekt.

>Wie sprichst du dann mit deinem AD9958?
Über einen externen µC.

@Lothar Miller

Das Datenblatt des Chips direkt habe ich natürlich auch schon 
begutachtet. Jedoch fehlen in diesem Datenblatt Schaltpläne wie man 
diesen Chip verwenden kann. Es stehen die Grundlagen im Datenblatt drin, 
mehr jedoch auch nicht..


@ nides

Ich würde gerne mehr über dein Layout erfahren wie du den Chip zumindest 
zum Laufen gebracht hast. Wäre super wenn du mir die Schaltung irgendwie 
zu kommen lassen könntest. (uploaden zB).

Es würde mir auch sehr helfen wenn du nur Grob sagst welche IC's ich 
benötige? Ich bin total unsicher bei dem µC der sich auf dem EVAL Board 
befindet, da ich eigentlich vorhabe den Chip über die Steckleisten (U2) 
extern anzusprechen.

Ich würde mich sehr für deine Schaltung interessieren wäre äußerst nett 
wenn du sie mir zukommen lassen könntest.


Vielen Danke für alle die hier gepostet haben, wünsche einen guten 
Rutsch ins neue Jahr.

von aha (Gast)


Lesenswert?

>Das Datenblatt des Chips direkt habe ich natürlich auch schon
begutachtet. Jedoch fehlen in diesem Datenblatt Schaltpläne wie man
diesen Chip verwenden kann. Es stehen die Grundlagen im Datenblatt drin,
mehr jedoch auch nicht..


Die Grundlagen sollten genuegen um was rauszubekommen. Eine externe CPU 
ueber SPI... ist keine gute Idee. Die Frage mit den 2 Layern war eher 
ein Witz, bei diesen Frequenzen sollte man auf 4 Lagen gehen.

von nides (Gast)


Angehängte Dateien:

Lesenswert?

Hallo!

Anbei der Schematic von meinem ersten Board.
Da sind noch einige Fehler drin, die ich noch nicht umgezeichnet hab.
(Hab daher einige Drähte auf der Platine ;-)

1. SDIO_3 wird auch für die Kommunikation verwendet (IO_Sync)
2. Die Widerstände am DAC_Rset müssen gegen GND, nicht gegen 1V8 
geschaltet werden.
3. Bauteilwerte teilw. falsch (vor allem die L)
4. Abblock-Cs: Sortierung enthält 4u7, 2u2, 1u, 470n, 220n, 100n, 10n, 
2n2. Die Verteilung hab ich nach Anordnung im Layout gemacht.

Ansteuerung über einen ADSP Signalprozessor (3V3).


nides

von Walter (Gast)


Lesenswert?

Hi nides,

Vielen Dank! Ich habe soeben gesehn das mein Schematic nicht sonderlich 
von deinem Abweicht. Jedoch hab ich noch zwei kleine Fragen.

- Warum hast du bei "LoopFilter" (Pin27) nach dem Kondensator 1,8V? Im
  Datenblatt geht der Pin gegen Masse. Würde mich interessieren 
wieso/woher
  diese 1,8V kommen.

- Wie hast du es mit der Analogen/Digitalen Masse am Print gelöst. Mir 
wurde
  empfohlen mehrere "Masseflächen" zu layouten und diese dann alle nur 
auf
  einem Punkt miteinander zu Verbinden um eventuelle Kreisströme zu
  vermeiden.

- Der Widerstand zwischen SYNC_IN - SYNC_Out ist schlussendlich eine
  Unterbrechung und beide Pins bleiben daher offen richtig?

Auf den ersten Blick schauen unsere Schematic's ident aus, daher ist 
mein Verdacht das ich den IC durch einen Fehler im 1.Testprint bereits 
in das jenseits geschickt habe vermutlich bestätigt.

Nochmals vielen Dank ich hoffe das ich mit deiner Hilfe zu dem 
gewünschten Ergebniss komme wäre nett wenn du mir diese Fragen noch 
beantworten könntest, danach hoffe ich keine Fragen mehr zu haben :D

Vielen vielen Dank!

von nides (Gast)


Lesenswert?

Hallo!

Das mit dem Loop-Filter ist eine echt gute Frage :-)
Ich hab die ganze Sache nicht zur Hand (bin zu Hause), aber ich glaube 
mich zu erinnern dass der Filter nur ein Kleinsignal-Ground braucht. 
Möglicherweise hab ich ihn aus Layout-Gründen auf die +1V8 gelegt.
Ich werd am Layout nachsehen ob die Vermutung stimmt!

Widerstand zw. Sync-In und Sync-out dient nur dazu, um Testflächen am 
Print zu haben, der ist nicht bestückt.

Zur Layout-gestaltung: ich versuch nächste woche mal den betreffenden 
Layout-Teil zu posten.

Derweil,

nides

von nides (Gast)


Angehängte Dateien:

Lesenswert?

Hi!

loop-filter: in meinem Datenblatt geht der gegen AVDD !!

Anbei Layer 1 und 2 des Schaltungsteils.

3 und 4 kommen gleich.

von nides (Gast)


Angehängte Dateien:

Lesenswert?

Achtung!
Die oben beschriebenen Fehler sind in diesem Layout noch drin!
Hab noch keine neue Version geroutet!

von nides (Gast)


Angehängte Dateien:

Lesenswert?

Und der bottom Layer noch mal alleine.

Hoffe geholfen zu haben,
und wenn noch jemand Fehler findet, bitte schreiben :-)

nides

von Dirk (Gast)


Lesenswert?

Moin,
könntest du eventl. die .sch und .brd bzw target3001
Dateien uploaden?

Vielen Dank

Dirk

von nides (Gast)


Lesenswert?

Kann ich leider nicht, da das
1. nicht Target ist!
2. kein privates Projekt ist!

nides

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
Noch kein Account? Hier anmelden.