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!
>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
>>> ...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?
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
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.
>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.
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
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!
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