Wer hat Erfahrungen mit diesem Modul ? http://www.ebay.com/itm/1HZ-100MHz-AD9854-DDS-Function-Signal-Generator-Module-PC-Control-Software-/151006544962 Ich möchte mit diesem I/Q- Generator a) einen SDR- Empfänger b) einen VNWA (Vector Network Analyzer) bauen. Problematisch an der Sache ist die Steuerung durch den eingebauten ATMEGA32, dessen Programmierung nicht offengelegt ist. Ich kann also nur versuchen, das vorhandene PC- Steuerprogramm zu analysieren. Ziel ist die Steuerung durch einen Mikrocontroller, vorzugsweise PSoC5LP. Also, wer kann helfen??
Ich habe mir gerade so ein Modul gekauft und per email das dazugehörige Entwicklungkit bekommen. 1. Das Entwicklungkit war mit Viren verseucht und alle exe und dll sind gleich von der Platte geflogen. Die Treiber für den UART wurden auch alle gelöscht und vom USB-Serial Wandler Hersteller heruntergeladen und die sind sauber. 2. Quellcodes für den ATMEGA32A und ein Schaltplan ist dabei. An den ATMEGA kommst du über die herausgeführte JTAG Schnittstelle. 3. Die PC-Software habe ich nicht ausprobiert. Der auf der Platine verbaute USB-Seriell Wandler kann bis 115 Kbaud. Ich Schreib mir gerade neue Treiber und auch ne neue PC-Software, weil mir der China code zu caotisch und die chinesischen Kommentare auch nicht wirklich weiterhelfen. 4. Default gibt das Modul nach dem Einschalten ein 1MHz Signal aus und das sieht nicht schlecht aus. Über die Qualität der Filter kann ich noch nichts sagen. 5. Der Takt wird über einen Wald und Wiesen Oszillator erzeugt. Gekauft habe ich ihn hier: http://www.ebay.de/itm/AD9854-100Mhz-Sine-Wave-DDS-Signal-Generator-with-PC-Software-Control-FSK-BPSK-/200983169202?pt=UK_BOI_Electrical_Test_Measurement_Equipment_ET&hash=item2ecb87c8b2
Einigermaßen interessant ist diese Teil schon, aber zwei Dinge finde ich, die mir nicht gefallen: 1. daß es da einen µC gibt, dessen Innenleben wohl nicht offengelegt ist. OK, so einen AVR kann man notfalls auslöten und durch was Eigenes ersetzen, aber ist DAS der Sinn des Ganzen? 2. daß mir die Filter an den HF-Ausgängen (soweit auf den Bildern zu sehen) ausgesprochen lausig vorkommen. Das läßt auf ein nicht wirklich reines Signal schließen. Reizvoll ist schon, daß der Chip 2 Ausgänge hat, I/Q läßt grüßen. Aber weniger angenehm ist, daß die DAC's nur 12 Bit breit sind. Der AD9951 läuft mit 14 Bit DAC. Bei AD wird ein EInstiegspreis von ca. 20 Dollar angegeben, Mouser hat die Dinger für rund 25 Euro auf Lager. Die AD9951 gibt's dort für ca. 21 Euro. Du willst ja sowieso was Eigenes bauen, also wäre es nach meinem Gefühl eher besser, das Chinateil sausen zu lassen (106 Dollar bzw. ca. 77 Euro sind ja auch nicht nichts) und dir einen solchen Chip woanders zu kaufen und dann dir ne eigene Baugruppe selbst zu entwerfen. Auf alle Fälle braucht es am Ausgang zwei wirklich gute Filter, um die Signale so sauber zu kriegen, wie das vom DDS her eigentlich möglich ist. Aber Filter haben immer je nach Frequenz und Bauteiltoleranzen leicht unterschiedliche Phasendrehungen. Das beeinträchtigt deine angedachte Verwendung als I/Q-Generator für nen SDR-Empfänger und es beeinträchtigt erst recht einen vektoriellen Wobbler. (das Wort "Netzwerkanalysator" ist mir eigentlich zu geschwollen, "Wobbler" finde ich besser) Mir ist in diesem Zusammenhang schon vor langer Zeit ein ganz anderer Gedanke gekommen: Stell dir einen einfachen DDS-Generator vor, der eben einen Sinus liefert. Hinter dem Filter sitzt ein linearer Detektor von AD, der wiederum den DAC.Strom des DDS so nachregelt, daß der Ausgangspegel trotz Filter gleich bleibt. An derselben Stelle tasten 2 schnelle ECL-Komparatoren (auch bei AD zu kriegen) das DDS-Signal ab. Einer bei +0.71 der Ausgangsamplitude, der andere bei -0.71 der Ausgangsamplitude. Das entspricht einem Ansprechen der Komparatoren bei 45° bzw. 135° und 225° bzw. 315° womit deren Ausgänge zwar asymmetrisch umschalten, aber mit einer ECL-Verknüpfung hinter den Komparatorausgängen würde man 2 um 90° versetzte Schaltsignals bekommen. Im Empfangstrakt müßten dann 3 Detektoren sein: Ein normaler logarithmischer Detektor, der die Amplitude ohne Phasninformationen mißt und zwei Schaltmischer (CMOS o.ä.), die mit den 2 o.g. Signalen angesteuert werden und also phasenempfindlich bei 45° und 135° gleichrichten. Aus diesen 3 Stücken kann man rein rechnerisch Amplitude und Phasenwinkel berechnen. Das reicht für einen vektoriellen Wobbler. W.S.
In dem Controller steckt nichts wildes ... Er empfängt "nur" die Daten vom PC und schreibt sie in die Register des AD9854 über Paralell Ports. Der AD Chip könnte die Daten mit 100Mhz abnehmen, aber da ist der ATMEGA aber etwas überfordert ;) Ansteuerung: MEGA32 AD9854 PD2 A0 PD3 A1 PD4 A2 PD5 A3 PD6 A4 PD7 A5 PA0 D0 PA1 D1 PA2 D2 PA3 D3 PA4 D4 PA5 D5 PA6 D6 PA7 D7 PB0 MASTER_RESET PB1 SP_SELECT PB3 SHAPED_KEYING PC0 FSK_BSK_HOLD PC1 RD_CS PC6 WR_SCLK PC7 IO_UD_CLK
Vielen Dank für Eure Beiträge und Hinweise. Das beiliegende Visual Basic- Steuerprogramm hat mir ein freundlicher Student samt Quellprogramm übermittelt. Daraus konnte ich zumindest die wichtigsten Kommandos entnehmen, z.B. die Übermittlung des Frequency Tuning Words: $WR ... Präambel 02 ... Registernummer des AD9854 B1 ... 6 Byte FTW B2 ... FTW = 2 ^ 48 / Taktfrequenz . . B6 KS ... Kontrollsumme * ... Abschluß Im Erfolgsfalle kommt keine Rückmeldung vom Modul. Er nimmt nur 9600 Baud an. Dieses Protokoll habe ich in C auf den PSoC programmiert und konnte damit erfolgreich die gewünschten Frequenzen einstellen. Das Interface besteht lediglich aus einem seriellen Schutzwiderstand... @ W.S. : ... Sicher eine interessante Möglichkeit, den 90° Zweiphasentakt zu erzeugen. Allerdings wollte ich keine Rechteck- sondern Sinussignale erzeugen, um sie den Mischstufen mit 2* AD831 zuzuführen. Und es ist zu befürchten, dass die Komparatoren ziemlich starken Phasenjitter hervorrufen. @ Hans- Georg : An der Quelle des Atmega32 hätte ich großes Interesse! Schönen 1. Mai noch, Wolfgang
Hallo Wolfgang Gestern hatte ich kurz einen Link zu der besagten Software reingestellt, den Beitrag aber wegen dem oben erwähnten Trojaner wieder gelöscht. Jemand würde bestimmt in die Falle tappen. Kaspersky meldet nur eine verseuchte Datei, aber das ganze Paket ist leider 40 MByte groß. Ich bin mir auch nicht sicher, ob ein Anbieten des gesamten Codes ein rechtliches Problem darstellt. Gruß, Bernd
B e r n d W. schrieb: > Hallo Wolfgang > > Gestern hatte ich kurz einen Link zu der besagten Software reingestellt, > den Beitrag aber wegen dem oben erwähnten Trojaner wieder gelöscht. > Jemand würde bestimmt in die Falle tappen. > > Kaspersky meldet nur eine verseuchte Datei, aber das ganze Paket ist > leider 40 MByte groß. Ich bin mir auch nicht sicher, ob ein Anbieten des > gesamten Codes ein rechtliches Problem darstellt. > > Gruß, Bernd Hallo Bernd, bei dem Paket, das mir angeboten wurde war auch ein IAR Compiler dabei. Wenn der Illegal ist würde ich es nicht posten.
DH1AKF K. schrieb: > > @ Hans- Georg : > An der Quelle des Atmega32 hätte ich großes Interesse! > > Schönen 1. Mai noch, Wolfgang Hallo Wolfgang, kein Problem wenn ich fertig bin werde ich das auch veröffentlichen. Der China Code arbeitet lt. Quelltext mit 9600 Kbaud ist das bei dir auch so? Ich habe die USB Version von dem Board und da müsste 115K Baud gehen. Der AD9854 ist zwar über das parallel Interface angeschlossen arbeitet aber seriell. Weiterhin wollte ich noch die SPI Schnittstelle zu einem 2. Controller aktivieren für lokalen Betrieb. Vielleicht bau ich auch das ganze Board noch um ... Also ATMEGA herunter und eine schnelle Anbindung damit müsste auch ein arbiträrer Betrieb über den Q_DAC und Frequenz 0 beim I_DAC mit einer Samplerate von 100MHz möglich sein. Den Oszillato will ich auch entfernen und extern 300Mhz einspeisen. Die Buchse dafür ist ja bereits eingelötet.
B e r n d W. schrieb: > Hallo Wolfgang > > Gestern hatte ich kurz einen Link zu der besagten Software reingestellt, > den Beitrag aber wegen dem oben erwähnten Trojaner wieder gelöscht. > Jemand würde bestimmt in die Falle tappen. > > Kaspersky meldet nur eine verseuchte Datei, aber das ganze Paket ist > leider 40 MByte groß. Ich bin mir auch nicht sicher, ob ein Anbieten des > gesamten Codes ein rechtliches Problem darstellt. > > Gruß, Bernd Hallo Bernd, in dem VC Ordner fehlt der Quellcode von der Lib. Im VB ordner gibt es noch einen weiteren Unterordner mit weiterem Quellcode .... Was da ins EE-PRom geschrieben bzw. gelesen wird und was der Timer mit dem Update Pin treibt ist mir im Moment auch noch nicht so klar ...
:
Bearbeitet durch User
Hallo, ich hab versucht, aus dem umfangreicheren Quellcode ein compilierbares Studio4 Projekt zu erstellen. Es erscheint noch 1 Error: ../main.c:105: undefined reference to `BIT' Bei BIT() handelt es sich vermutlich um ein Macro eines anderen Compilers. Direkt darunter hab ich mal meine Variante für den Mega8 als Kommentar eingefügt. Ob dann der Code auch tatsächlich funktioniert?
Die BIT(x) Funktion (bzw. als Makro) sollte so etwas wie 1 << x sein. So was ähnliches hat GCC auch drin. Der 2. Punkt wo man wohl noch was anpassen müsste wären wohl die Interrupts. Die sind auch compilerspezifisch. Es gibt aber auch in GCC mehr als 1 erlaubte Möglichkeit - ggf. geht es ja auch mit dem #pragma. Sonst sieht der Code recht einfach aus.
Seltsam!
1 | UCSRC = BIT(URSEL) | 0x06; |
2 | ???
|
3 | UCSRC = (1 << 7) | 0x06; |
4 | ???
|
5 | #define URSEL_bm 0x80
|
6 | UCSRC = URSEL_bm | 0x06; |
7 | |
8 | // Aus iom32.h
|
9 | /* UCSRC */
|
10 | #define URSEL 7
|
11 | #define UMSEL 6
|
12 | #define UPM1 5
|
13 | #define UPM0 4
|
14 | #define USBS 3
|
15 | #define UCSZ1 2
|
16 | #define UCSZ0 1
|
17 | #define UCPOL 0
|
Hallo Forum, dank Wolfgang, DH1AKF, konnte ich auch mein DDS_Modul zum Laufen bringen. Da ich zur Ansteuerung einen Linux-Rechner verwende, habe ich das zugehörige Testprogramm von Wolfgang auf Linux umgeschrieben. Ich hoffe es hilft Euch bei den Ersten Schritten mit diesem sehr vielversprechenden Teil. Es hat /dev/ttyUSB0 als Schnittstelle fest kodiert und erzeugt eine Serie von Frequenzen beginnend bei 10 MHz mit einer Schritt- weite von 10MHz und endet bei 110MHz. Das C-Programm ist eigentlich selbsterklärend, nur der Aufbau des Frequenzwortes muss verstanden werden. Siehe die Beiträge weiter oben und die zugehörige AD Dokumentation zum AD9854. Gruß Markus DL8MBY
Hallo Forum, kleiner Nachtrag zu meinem Beitrag! An einem weiteren Linux-Rechner mit OpenSuse 12.3 trat beim Aufruf meines Programms zur DDS Ansteuerung folgendes Problem auf: Nach Prog-Start meldet das OS folgenden Fehler: stty: /dev/ttyUSB0: Unpassender IOCTL (I/O-Control) für das Gerät ls -l /dev/ttyUSB0 liefert -rw-r--r-- 1 root root 20 May 3 17:21 /dev/ttyUSB0 Abhilfe schaffte das Anlegen einer neuen udev-Regel Datei in /etc/udev/rules.d/ mit dem Namen 11-usb-serial.rules und folgendem Inhalt: (eine einzige Zeile!) KERNEL=="ttyUSB*", SUBSYSTEM=="usb", ATTR{idVendor}=="1a86", OWNER="markus", GROUP="users", MODE="0600", NAME="ttyUSB0" wobei der OWNER entsprechend Eurem Account angepasst werden muss. Danach noch den Aufruf von udevadm control --reload und nach wideranstecken des DDS_Moduls war ich in der Lage es anzusprechen. Gruß Markus DL8MBY
Hallo Forum, habe noch vergessen zu erwähnen, das in dem Programm für Linux der Multiplikator von 4 auf 8 gesetzt werden muss, um die Frequenzfolge 10,20,30, ... 100,110 MHz zu erhalten. Zumindest ist das bei meinem Model (USB-Version) so der Fall. Gruß Markus DL8MBY
Hi, Ich muss mal ein paar Fragen loswerden - das Teil ist wirklich spannend. Könnt ihr mal den Schaltplan posten ? Was mein ihr - kann man das AVR Zeugs - wie auch immer - deaktivieren und via SPI an den AD9854 ran ? Habt ihr eine Idee warum die Auflösung nur 1 Hz beträgt - laut Datenblatt sollten doch eigentlich 1uHz (bei 300Mhz clock) möglich sein? Gibt es schon Erkenntnisse über die Filterqualität ? Gruss Hainewaldi
> Habt ihr eine Idee warum die Auflösung nur 1 Hz beträgt
Weil dann die Berechnung einfacher wird. In der Regel reich 1Hz auch.
ok danke: also eine Frage der SW - keine HW Restriktion. Ich vermute mal da ist auch die 200Mhz Variante verbaut (AD9854ASTZ) - sonst kämen man mit dem 1A Netzteil nicht zurande - korrekt ?
Andre S. schrieb: > Was mein ihr - kann man das AVR Zeugs - wie auch immer - deaktivieren > und via SPI an den AD9854 ran ? ja, ATMEGA auslöten ... >Ich vermute mal da ist auch die 200Mhz Variante verbaut (AD9854ASTZ) - >sonst kämen man mit dem 1A Netzteil nicht zurande - korrekt ? Im Schaltplan steht ASQ und durch die Vias sieht man den metallischen Boden des Chips aber 100% sicher bin ich mir auch nicht.
Laut ADI Datenblatt: 7/07—Rev. D to Rev. E: Changed AD9854ASQ to AD9854ASVZ Also doch die 300 Mhz Variante (laut Schaltplan - Frage ist was tatsächlich auf der Platine ist). Der Stromverbrauch der 300Mhz Variante ist ja riesig, wenn alles an ist: 1200mA.
Hmm .. ich sehe gerade, das der Schaltplan und die Leiterplatte / Bestückung nicht mit meinem Board übereinstimmen. Es fehlt bei mir der ICS533 Treiber für den Rechteckausgang, dafür habe ich noch einen Platz für eine zusätzliche SMA Buchse mit FSK/BPSK beschriftet.
Ich hab das Modul eben mal mit 300Mhz Taktfrequenz und 100 MHz Ausgangssignal laufen lassen und 2 Bilder direkt ohne Tastkopf aufgenommen. Der Sinus ist mit 1 MOhm und das Rechteck mit 50 Ohm belastet. Die Dellen im Rechteck kommen von der endlichen Bandbreite meines Osci. Stromaufnahme war 1,2 A und die Temperatur am Kühlkörper geschätzte 60°. Das ganze lief ca. 15min ohne abzurauchen ;) Die Ansteuerung habe ich über die Parallelschnittstelle gemacht also dürfte der Schaltplan an dieser Stelle stimmen. Verbindung zum PC läuft mit 38,5 KBaud.
Erste Ergebnisse. Habe dem Modul ein Gehäuse verpasst und die Frequenzeingabe per Drehgeber programmiert. Der Cursor ändert seine Position, wenn man schnell Klick-klack dreht. (Also hin- und herdreht.) Die anderen Fotos zeigen einen Mischer mit 2* AD831 (Bausatz vom Funkamateur). Bei mir ist die Stromaufnahme max. 650 mA.
DH1AKF K. schrieb: > Bei mir ist die Stromaufnahme max. 650 mA. Bei welcher Takt und Ausgangsfrequenz hast du die 650mA gemessen. Sind alle internen Optionen eingeschaltet ?
DH1AKF K. schrieb: > Erste Ergebnisse. > Habe dem Modul ein Gehäuse verpasst und die Frequenzeingabe per > Drehgeber programmiert. Respelt fuer die bisherige Arbeit. Sehe ich da einen PSoC5 Borad verbaut?
... Respekt ... Board ... (Sorry, Hirn-Hand Koordination funktioniert noch nicht so richtig heute ...)
Die Stromaufnahme des Moduls (max.650 mA) bei 300 MHz Takt (Multiplikator =10, Quarztakt 30 MHz) bei ca. 150 MHz Ausgabefrequenz. Es wurde das fertige PC-Programm (siehe Post vom 1.5.2014) benutzt. Ja, hier werkelt ein PSoC 5LP von Cypress. Er soll demnächst auch die I/Q- Demodulation , also A/D- Wandlung, Tiefpass, 90° Phasenschieber, D/A- Wandlung übernehmen. Ein Beispielprogramm dazu fand ich hier: http://hightower.com/SimpleSDR.html
Hallo Wolfgang, Die 1,2A sind lt. Datenblatt normal, wenn alles eingeschaltet ist. Ich nehme an bei dir ist mindestens der inv Sinc Filter abgeschaltet dann kommt das mit den 650mA auch hin. Siehe Datenblatt: Figure 62. Current Consumption vs. Clock Frequency.
:
Bearbeitet durch User
DH1AKF K. schrieb: > Die Stromaufnahme des Moduls (max.650 mA) bei 300 MHz Takt > (Multiplikator =10, Quarztakt 30 MHz) bei ca. 150 MHz Ausgabefrequenz. Zeig mir mal ein Bild von den 150Mhz.
Geduld bitte, die Multiplikator- Umschaltung muss ich noch in den PSoC programmieren. Ich hatte die Stromaufnahme mit dem PC- Programm (1.5.14) getestet. Möchtest Du davon ein Bild? Was soll das bringen?
:
Bearbeitet durch User
Hallo Allerseits, inzwischen habe ich auch den DDS AD9854 China-Modul und möchte mit dem geringsten Aufwand zu einem halbwegs komfortablen Signalgenerator kommen. Was ich mir dabei vorstelle ist: Drehencoder-gesteuerte Menüsteuereung, Drehencoder-gesteuerte Frequenzeingabe bzw. Frequenzschritteingabe Amplitudenkontrolle z.B. 100mV - 500mV analog über 10k-Poti. Digital ließe sich der Bereich erweitern, allerdings mit Aufläsungsverlust. und Frequenz-sweep-funktion, die einen vorgegebenen Bereich F1 – F2 in 100 Frequenzen linear aufteilt und diese sequentiell für jeweils (z.B.) 1ms einstellt, so dass Frequenzverläufe auf einen Oszi mit 100ms Horizontal-Ablenkung bequem abgelesen werden können. Die Menü-Eingaben sollen über einen LM052L (alternativ TC1602A-09) Modul mit 2 Zeilen à 16 Zeichen (HD44780 Industriestandard) angezeigt werden. Dazu habe ich mir einen Aufbau überlegt, der sehr günstig wäre (Materialkosten ca. 20€), wenn die beschriebenen Funktionen in dem bereits vorhandenen ATMEGA32A einprogrammiert werden können. Die Frage ist, ob es genug freie IO-Pins gibt (Schnittstellen JP2 und JTAG auf dem China-Modul?), die für Ein/Ausgabe genutzt werden können – leider habe ich noch keinen Schaltplan von dem Modul und bitte an dieser Stelle um Zusendung wer einen hat. Falls die Idee realisierbar ist, suche ich nach einem/mehrere Gleichgesinnte, der die SW für den ATMEGA32A schreiben kann und biete im Gegenzug den Hardware-Aufbau doppelt auszuführen (Laser-geschnittenes 2-Schalen-Edelstahlgehäuse welches die SMA-Ausgänge frei gibt, 2x Drehencoder, 1xAmplituden-Potentiometer, LM052L-Display-Modul und Verkabelung der Ein/Ausgänge). Mir kommt es auf die schnelle Verfügbarkeit eines Geräts mit den erwähnten Grundfunktionen an, später könnte es aber auch als Startpunkt eines anspruchsvolleren Konzepts werden. Die Konstruktionsdaten, Bezugsquellen und Beschaltung wären natürlich für alle zugänglich – es könnte auch ein schönes Gemeinschaftsprojekt werden. Wie sieht es aus, jemand interessiert?
Hier ist die Variante mit RS232- Schnittstelle als PDF, die andere habe ich eingescannt. Aber Vorsicht: die Werte der Ausgangs- Tiefpässe können nicht stimmen, jedenfalls beim PDF!
:
Bearbeitet durch User
Danke für die Schaltpläne! Die Schnittstelle JP2 ist offensichtlich vorbereitet, um eine Master/Slave Kommunikation mit einem anderen µC zu ermöglichen. Das von mir oben beschriebene Konzept benötigt mindestens 7 Leitungen für die Anzeigen-Steuerung (oder 11 in 8-bit Mode), weitere 4 Leitungen für das Auslesen der Drehencoder und 4 für die Master/Slave Verbindung. Alternativ wäre auch ein Interface mit Schieberegister möglich, jedoch aufwendiger zu programmieren. Von der Hardwareseite sehe ich nicht viel Unterschied. Falls mein Vorschlag jemandem zusagt, bin ich offen für die Auswahl des 2. µC und würde dann eine entsprechende Platine entwerfen, herstellen und bestücken.
Hier hat jemand (Achim Döbler) gezeigt, dass man an den Atmel Chip herankommt. http://www.youtube.com/watch?v=QRz87_P2xlg Vielleicht kontaktiert man ihn wegen der Software? Ich selbst bin nur mit PSoC vertraut.
An den Atmel Chip, zum Programmieren und debuggen, kommst du über den Jtag Stecker. An dem JP2 liegt die SPI Schnittstelle des ON-Board Atmega. @Walter Du kannst einen 2 Conroller an die SPI Schnittstelle hängen und die Firmware so umschreiben, das die Ansteuerung sowohl über Uart als auch über SPI funktioniert. Sweepen kann der DDS Chip von alleine im Ramped FSK Mode. F1,F2,Diff(Schrittweite) und Schrittfrequenz Programmieren und dann FSK DATA von 0 auf 1 dann Steppt er hoch auf F2, FSK wieder auf 0 dann Steppt er wieder runter auf F1. Oder du setzt das Triangle Bit, dann Steppt er von alleine kontinuierlich hoch und runter auf. (Figure 37,38 im Datenblatt). Du kannst den QDac als Amplitudenkontroller für den IDAC schalten und dann kannst du auch über die QDAC Register digital 12Bit die Amplitude steuern. Wenn du schon die Amplitude einstellen willst musst du auch den Inverse SINC Filter einschalten sonst hast du Amplitudenabfall mit zunehmender Frequenz (Figure 51 Datenblatt) und dann wird der Chip richtig heiss und das Modul zieht 1,2A. Ich habe schon 70°C am Kühlkörper gemessen dann habe ich ein Alublech unter die Leiterplatte geschraubt und die Massefläche unter dem DDS Chip und den beiden Spannungsreglern über Alu Abstandsröllchen und Wärmeleitpaste thermisch angekoppelt. Damit blieb die Temperatur am Kühlkörper auf 60°C und das Alublech handwarm. Ich hatte eigendlich mehr Umverteilung der Wärme erwartet, denn der "thermally enhanced" Chip sollte doch seine Wärme über die Massefläche unter dem Chip abgeben. Ein Kühlkörper auf dem Chip ist von TI auch nicht vorgesehen. Aber vielleicht ist doch der billigere Chip auf dem Modul verbaut.
Danke für die Hinweise! Ich habe Achim Döbler angeschrieben, leider ohne Antwort bis jetzt. Wolfgang, hast Du etwas von Ihm gehört? Die Idee von Hans-Georg, das SPI (JP2) als alternativen Eingabe zu nutzen finde ich gut. Es könnte vielleicht doch einfacher mit 2 8bit-Schieberegister aufgebaut werden, so dass alle 8 SPI clocks jeweils 1 byte ausgegeben wird (zu der Anzeige) und 1 byte eingelesen wird (von den Drehencodern). Den Rest sollte ein passendes Programm auf dem ATMEGA32A erledigen. Ich bin bereits dabei, ein HW-Aufbau vorzubereiten und werde dann Fotos davon posten. Die Leiterplatte werde ich später machen, wenn sich Gleichgesinnte finden, die entsprechende SW schreiben können. Ein kleiner Lüfter ist übrigens auch vorgesehen entsprechend dem Hinweis von Hans-Georg. Eine Frage an alle: Hat jemand den original source code von dem ATMEGA32A als Ausgangspunkt für die Modifikation?
Walter Marton schrieb: > Ein kleiner Lüfter ist übrigens auch vorgesehen entsprechend dem Hinweis > von Hans-Georg. Ich habe in der Zwischenzeit den Kühlkörper auf meinem Modul entfernt und es ist lt. Aufdruck tatsächlich ein ASQ also "thermal enhanced" Gehäuse verbaut. Ich versuche gerade so einen Kühlkörper mit integriertem Lüfter zu finden. Die Spannungsversorgung sollte möglichts 5V betragen weil der 3,3V Low Drop Spannungsregler auch zur Wärmeentwicklung beiträgt. > Eine Frage an alle: Hat jemand den original source code von dem > ATMEGA32A als Ausgangspunkt für die Modifikation? Der source code wird auf Anfrage zu dem Modul mitgeliefert und wurde hier schon gepostet. Die Chinesen steuern den DDS Chip seriell an, aber die paralle Schnittstelle ist voll verdrahtet. Allerdings bringt die parallele Ansteuerung auch nicht so viel weil der ATmega zu langsam ist. Für alles was der DDS Chip intern schon kann reicht die serielle Ansteuerung aus. Aber AM oder arbiträre Signale über den QDAC und alles was schnelle Registermanipulation des DDS Chip benötigt, kann man mit dem ATmega vergessen.
Hallo zusammen, ich finde dieses Projekt hier wirklich klasse - der AD9854 ist ein leistungsfähiger Käfer und vielleicht können wir hier zusammen eine ganz netten DDS entwerfen! @Walter: Sorry für die späte Antwort, ich jabe den angeforderten Code angehängt. Mit diesem Code kannst du den onboard uC flashen und erhälst dadurch eine SPI-Bridge zum AD9854. BITTE BEACHTEN: Der Code ist alles andere als ausgereift, funktioniert aber einwandfrei! Gruß Achim Döbler
Hopla ! DH1AKF K. ist sicherlich NICHT in dieser Menge, er ist kreativ und findet immer neue Ideen und Lösungsmöglichkeiten für seine Aufgabenstellungen. > Das wäre eine nette Idee, jedoch wage ich zu bezweifeln, dass das zum > derzeitigen Zeitpunkt in diesem Forum überhaupt noch möglich ist. > Momentan pendelt sich das Niveau auf unterem Level ein und ich glaube > nicht, dass es jemals wieder besser wird.
JA Herbert, deshalb wickeln wir die mit Brandis auch direkt ab. Und meine Projekte landen dann in anderen Foren und über andere Verteilerschienen bei den AFU Freunden.
D. V. schrieb im Beitrag #3675218: > Das wäre eine nette Idee, jedoch wage ich zu bezweifeln, dass das zum > derzeitigen Zeitpunkt in diesem Forum überhaupt noch möglich ist. > Momentan pendelt sich das Niveau auf unterem Level ein und ich glaube > nicht, dass es jemals wieder besser wird. Ok, teilweise muss ich Dir Recht geben. Egal welchen Beitrag man sich hier durchliest - nach ein paar Zeilen trifft man entweder auf a) Labertaschen, die große Ideen haben, aber nichts davon realisieren können bzw. gar nicht das Durchhaltevermögen für so ein Projekt haben. b) Leute, die nicht bereit sind, auch nur eine Zeile Code selbst zu schreiben oder sich eine Schaltung zu überlegen - nein, das dauert ja viel zu lange. Alles muss denen auf dem Silbertablett geliefert werden! Ich bin absolut dafür, dass man Know-How austauscht - aber sicher nicht so! c) Besserwisser, die sämtliche Fragen grundsätzlich erst mal (beleidigend) ins Lächerliche ziehen. Dennoch: Ich bin der Meinung, dass es hier auch etliche freundliche, kompetente und vor allem interessierte User gibt. Und für genau diese schreibe ich die folgenden Zeilen. Meine Ideen - Vorschläge - Gedanken zum Projekt: • Es wird sicher nicht möglich sein, mit dieser Ebay-Platine jemals einen arbiträren DDS zu realisieren. Hierfür ist der Atmel uC viel zu langsam. Das kann man aber immernoch nachrüsten! Sobald der Rest läuft (z.B. Analog Front End) kann man hier eine neue Platine mit dem AD9854 entwerfen und ich spreche ihn dann parallel mit 100 MHz über einen FPGA an. Als Zielplatform wäre z.B. das DE0 Nano absolut ideal (klein, günstig, schnell). (DE0 Nano: https://www.youtube.com/watch?v=j1NWPiHdMv0) Als nicht HF-ler traue ich mich aber nicht an das Filternetzwerk vor dem AD9854 ran! --> Wer hat hier Erfahrung? • Als Display würde ich (zumindest in meinem Gerät) für die nicht-arbiträre Version ein OLED verwenden. Dieses kann die Signalform darstellen, bietet einen hohen Kontrast und ist flexibel genug für ein Menu. z.B. https://www.youtube.com/watch?v=2OGCEupoPzI https://www.youtube.com/watch?v=0aLbv2_fo08 In der arbiträren Version kann nur ein TFT geeignet sein, da hier die Signalform eben konplexer wird. z.B. 4.3" TFT https://www.youtube.com/watch?v=xilpcTZjL88 mit einer ähnlichen Darstellung wie hier https://www.youtube.com/watch?v=CEXnhd9WO9o • Als Frequenznormal würde ich (zumindest optional) einen Rubidium-Standard vorschlagen: http://www.ebay.de/itm/FE-5680A-Rubidium-Atomic-Frequency-Standard-10MHz-OUT-/271309154373?pt=LH_DefaultDomain_0&hash=item3f2b492845 --> Hat jemand so einen? Erfahrungen damit? • Für mich wäre eine präzise Einstellmöglichkeit der Duty Cycle (min 10 Bit) sehr interessant (zumindest bis 10MHz Rechteckausgang). Man könnte hierfür z.B. einen der beiden Ausgänge des AD9854 mit seinem internen high speed comparator verbinden. Die Poti-Variante auf der Platine taugt meiner Meinung nach jedenfalls nichts. Ich möchte die Duty Cycle "digital" vorgeben können. --> Hat hier jemand evtl. eine andere Idee? Wie kann man bei einem schnellen Rechnecksignal die DC möglichst hochauflösend (bekannt) variieren? Mir fallen dazu nur Zähler (im FPGA) und DAC+Comparator ein. Hier muss es doch noch was anderes geben?! Gruß Achim Döbler
:
Bearbeitet durch User
Hallo allerseits, hier bin ich wieder nach einem sehr konstruktiven Gespräch mit Achim Döbler. Wir haben die Möglichkeiten besprochen, unter geringstem Aufwand zu einem brauchbaren Signalgenerator auf der Basis des AD9854 China-Moduls zu kommen, der einfach und günstig nachzubauen wäre. Im Sinne dieser Entscheidung (Achim bitte um Korrektur wenn ich etwas nicht korrekt wiedergebe) soll der Aufbau vorerst aus dem China-Modul, einem Display-Modul mit 2 Zeilen à 16 Zeichen (HD44780 Industriestandard), 2 Drehencoder und einem 10k-Potentiometer. Die Eingabe der 4 Leitungen der 2 Drehencoder soll über paralel-in/seriel-out Schieberegister (74HC166) erfolgen, die Ausgabe über seriel-in/paralel-out Schieberegister (74HC595) Achim Döbler hat bereits Erfahrung in der Programmierung ähnlicher SW, siehe auch http://embedded-lab.com/blog/?p=30 Dazu wollen wir die vorhandene SPI-Schnittstelle JP2 benutzen, also vorerst keine Hardwareänderungen auf dem China-Modul. Die SW wird auf dem vorhandenen ATMEGA32A über die JTAG Schnittstelle einprogrammiert. Der Potentiometer ist für feine Amplitudenkontrolle vorgesehen z.B. 100mV - 500mV indem er anstelle des Widerstands Rset (s. AD9854 Datenblatt) eingesetzt wird. Später kann man zusätzliche digitale Amplitudenregelung implementieren. Für die Schieberegister ist ein PCB Design vorgesehen sobald die Beschaltung und die SW feststehen. Wir haben die Hoffnung, dass der so definierte Aufbau einfach und ansprechend genug ist um mehrere Nachfolger zu interessieren. Trotzdem ist der Aufbau offen für spätere Verbesserungen und Erweiterungen sowohl von der SW-Seite wie auch als HW.
Hallo, ich schließe mich Walter Marton und Achim Döbler an und bin bereit, meinen Teil zu dem Projekt beizusteuern. Mein ursprüngliches Ziel, einen SSB- Empfänger nach dem Direktmischprinzip zu bauen, ist fast erreicht. Die Software von M. Hightower (KF6SJ) konnte fast unverändert übernommen werden. Als Eingangsstufe habe ich zunächst einen fertigen FA-SDR (wird von der Zeitschrift Funkamateur als Bausatz vertrieben) verwendet, die Verarbeitung der I/Q- Signale im NF- Bereich übernimmt ein PSoC5LP. Das funktioniert nun prinzipiell. Der DDS- Generator wird im nächsten Schritt eingesetzt. Es sollen verschiedene Mischer erprobt werden, z. B. 2* AD831, (kann mit Sinus angesteuert werden,) und der Schaltermischer mit CBT3253 (wie FST3253), der die Oszillatorsignale als Rechteck benötigt. Frage: Welchen Chip würdet Ihr empfehlen, um bis 70 MHz die Rechtecke mit möglichst wenig Jitter zu erzeugen?? (Der AD9854 liefert 11 dbm.)
Das würde ich diskret erledigen. Eine Entkoppelstufe deiner Wahl mit ausreichend Spannungsverstärkung über ein C auskoppeln und anschließend an 2 antiparallelen Dioden begrenzen, noch mal auf Eingangspegel der Mischer verstärken. Und gut ist es. Ginge es um NF würde einen OPamps dafür nehmen. aber nicht bei 70 MHz da ist mir diskret einfach sympahtischer und alles leichter anzupassen.
So, mein Teil ist nun auch endlich eingetroffen. Die SW fehlt noch für die ersten Tests. Also in der Zwischenzeit Schaltplan studieren und Datenblätter lesen. Die Logik der Stromversorgung erschliesst sich mir nicht so recht. - Was soll der Schalter S1 ? - was soll passieren wenn sowohl an JP1 5V anliegt als auch über USB 5V geliefert werden ? Strecke JP4 (USB_VCC) -> U2 (VDD) -> S1 (s. rote Markierungen)
Ich schlage fuer Rechteck-Signale mal Si570 oder Si504 vor http://www.ov-selbstbau.de/wiki/index.php?title=Flexibler_Quarz-Oszillator_auf_Basis_Si504
Vergessen: Der Treiber U6 auf meiner Platine ist im Layout nicht mehr vorgesehen. Es gibt also damit mindestens 3 Versionen der Platine: USB mit U6, parallel Port, USB ohne U6
Walter Marton schrieb: > Der Potentiometer ist für feine Amplitudenkontrolle vorgesehen z.B. > 100mV - 500mV indem er anstelle des Widerstands Rset (s. AD9854 > Datenblatt) eingesetzt wird. Später kann man zusätzliche digitale > Amplitudenregelung implementieren. Hm, ich weiss nicht so recht, ob das reicht. Das ist ein zentraler Regelpunkt. Damit kompensiert du nicht die Toleranzen der 100 Ohm Lasten R6, R7, R9, R13 im Tiefpass. Dh. du kannst mit einem Poti an Stelle von Rset nur einen der Tiefpässe ausregeln. Und da ist noch kein Ton über frequenzabhängigen Toleranzen der folgenden LC Glieder gesprochen worden.
Hallo zusammen, ich habe jetzt mal die Sachen in die Firmware eingebaut, die ich u. a. bereits mit Hr. Marton besprochen hatte: --> 74xx595 wird unterstützt (dient zur Ansteuerung des LCD). --> Passender LCD Treiber. --> 74xx166 wird unterstützt (bietet 8 digitale Eingänge, z.B. für Quadratur-Ecoder). --> Alle Schieberegister werden interruptgesteuert aktualisiert (z.Z. mit ca. 3,9kHz, damit Quadratur-Ecoder "flüssig" gelesen werden können). --> Alle "Basisfunktionen" des AD9854 sind implementiert. --> Eine kleine Testroutine testet beide Schieberegister auf Funktion. Bei mir funktioniert alles soweit super! Bitte informiert mich über Fehler! ACHTUNG: Beide Schieberegister werden äußerst "giftig" angesteuert. Um Leitungen einzusparen, werden alle CS-Leitungen fest verdrahtet. Daher darf zu keinem Zeitpunkt etwas in die Leitung "spucken", sonst fällt das LCD aus und/oder es wird nur Schrott empfangen! Die Leitungslängen von SR_DO, SR_DI, SR_CLK und SR_LAT MÜSSEN(!!) daher so kurz wie möglich gehalten werden, damit die Sache funktioniert! Das macht man normalerweise nicht so, aber wir haben hier einfach keine Pins zum asen frei. Schaltplan und Testbild anbei. Gruß A. Döbler
BIG is Beautilful schrieb: > Mach die Bilder doch noch GRÖßER Sorry - gibt es hier ein Max. für Dateigrößen? Muss man JPGs hier generell runterskalieren?
Falk Brunner schrieb: > Siehe Bildformate! Solange diesem "Wünsch' Dir 'was" nicht die Ernsthaftigkeit einer Forensoftware zur Seite steht, die Uploads ab der Schmerzgrenze des Forenbetreibers abbricht, und bereits gesendeten "illegale Exporte in dieses Baord" in den Trog "Nulldevice" kippt... ...genügt den BigPack-Uploadern fortgesetzt ein Mindestmaß an Nervenstärke, um glücklich und gelassen über dem ständig klagenden Grundrausche der hiesigen Öko-Kleinbildfreunde zu schweben.
Ach du mein kleiner, höchst eloquenter Freund! Es wäre mir bedeutend lieber, du würdest hier etwas Konstruktives zum Projekt beisteuern. Frag doch mal beim Admin nach, ob er evtl. noch einen Hilfssheriff braucht. Herzlichst, A. Döbler PS: Danke an "falk" für den Link!
Hallo zusammen, hier bin ich wieder, toll was in der Zwischenzeit alles auf die Beine gestellt wurde, ich dachte ich muss den Schaltplan noch zeichnen und Achim hat es schon fertig und ausprobiert… Danke Achim! Ich habe inzwischen ein erstes Blech-Chassis fertig (s. Foto) Und doch noch eine Frage an Achim – welche Eingänge des 74xx166 werden für den Menüwahl-Drehencoder bzw. Wertwahl- Drehencoder von Deiner SW benutzt? @ Andre S. – die vorgeschlagene Amplitudenregelung soll keine Toleranzen oder Tiefpässe ausregeln, sondern ist nur als feine Justierung gedacht. Für die Kompensation der von Dir angesprochenen Toleranzen bzw. Tiefpässe wird kein Potentiometer behilflich sein, diese sind eben Teil des Modul-Designs und können nur da verbessert werden. Für so eine Aufgabe würde aber den Meisten hier die Ausrüstung fehlen. Aber mit dem vorgeschlagenen Poti ließe sich die Amplitude in einem konkreten Mess-Szenario ausregeln. Gruß Walter
Hi Walter, der Rahmen sieht echt gut aus! Walter Marton schrieb: > Und doch noch eine Frage an Achim – welche Eingänge des 74xx166 werden > für den Menüwahl-Drehencoder bzw. Wertwahl- Drehencoder von Deiner SW > benutzt? Die Encoder habe ich noch nicht implementiert, d. h., dass die Pinbelegung noch frei ist. Wahrscheinlich werde ich die A-B-Signale der Encoder im µC erstmal durch einen digitalen Filter schicken, so dass eine präzise (schnelle und dennoch störungsfreie) Auswertung möglich wird. Um hier mit genügend "Fleisch" in den Filter reinzugehen, lese ich die SR mit 3.9kHz aus. Das sollte dicke reichen und kann später bei Bedarf reduziert werden (siehe hierzu meine alternative Konfiguration des Timers). Da ich die nächsten Wochen sehr wenig Zeit habe, wollte ich den Code unbedingt schon mal so zur Verfügung stellen. Jeder der Interesse hat, kann jetzt die HW testen / aufbauen, sich mögliche Funktionen überlegen und - bei Bedarf - die eine oder andere Zeile Code schreiben. Sobald ich dann wieder Luft habe, werde ich die angefallenen Ideen - Wünsche - Konzepte in Code gießen. Folgende Punkte sind mir noch eingefallen: • die Anzahl der 595er bzw 166er könnte jederzeit (ohne zusätzliche Leitungen) erhöht werden. • Hierdurch könnte man z.B. einen Relais-basierten Stufenabschwächer steuern (brauchbar?) • Über einen Piezo-Piep könnte bei jeder Encoderbewegung ein "Tick" ausgegeben werden • Oder ein paar Status-LEDs... • Ich würde dringend vorschlagen auf ain 4x16 / 4x20 LCD umzusteigen (bietet mehr Infos --> weniger Untermenus notwendig!) • Walter, evtl kannst du schon mal ein paar Versuche bzgl. der Elektronik für die variable Duty Cycle durchführen? Gruß Achim
:
Bearbeitet durch User
Hi Achim, bezüglich 4x16 LCD – TC1604A-01 ca.15€ bei Pollin hat die Abmessungen (BxHxT): 87x60x13,5 mm und würde ein größeres Chassis benötigen. Das momentan von mir vorbereitete Chassis hat die Frontabmessungen 84x75x61, und die Rückseite ist entsprechend dem China-Modul 100mm breit, so dass es rechts absteht und bequemen Zugang zu den SMA-Buchsen bietet. Je nach benutzte Gummifüße muß man auch die 75mm Höhe aufrechnen. Das sind die möglichen Minimal-Abmessungen. Wenn Dein Vorschlag den meisten zusagt, müssten wir uns auf ein bestimmtes LCD festlegen –nicht zu groß, nicht zu teuer… BTW, die Drehencoder von Pollin funktionieren auch als Drucktaster, somit kämen wir auch mit einem aus. Wollen wir uns darauf einigen? Deine Idee, die 595er zu kaskadieren finde ich super! Vor allem für einen Relais-basierten Stufenabschwächer, den wir später einbauen können (es wird allerdings nicht einfach den Frequenzgang nah an die 100MHz über Relais flach zu halten – Alternativ könnte man z.B. ADG918 einsetzen). Auch der Piezo-Piep (hast Du Bezugs-Vorschlag?) und Status-LED (Anzeige Hauptmenü/Untermenü bei nur einem Drehencoder) gefällt mir solange die Steuerung nicht zu langsam wird. Bezüglich variablen Duty Cycle muss man sich auf einige Randbedingungen einigen. Aus unserem Gespräch weiß ich dass es Dir sehr auf Präzision bis <10ns Pulslängen ankommt, möglichst geringem Jitter und Reprodizierbarkeit. Die vermutlich beste Lösung wäre, die 2 differenziellen Analog-Out-Signale direkt von dem China PCB (DDS-pins 48+49 sowie 61+62) per Drähtchen auszufüren und an 2 schnelle 3.3V-Komparaturen (in einem IC, gleicher Temperaturgang – z.B. MAX962 oder LMV762) anzulegen. Die Komparatorausgänge sollten dann NAND-verknüpft werden, so dass die resultierende Pulslänge (entspr. Duty Cycle) exakt der Phasendifferenz beider Signale entspricht. Der Ausgangs-Rechteck hätte dann 3.3V Amplitude, belastbar wie der verwendete NAND-Logik-Gatter. Die beschriebene Schaltung hat einen bestimmten Schwierigkeitsgrad und Kostenfaktor, sowie u.U. eingeschränkte Verwendbarkeit (welcher Frequenzbereich / Duty Cycle-Einstellbereich ist gewünscht?). Wenn es so OK ist, dann werde ich das PCB entsprechend vorbereiten (z.B. mit SMA? – der Ausgang muß aber 50 Ohm fähig werden, z.B. mit Widerstands-Teiler, die Amplitude würde dann auf ca. 500mV reduziert werden…), bestücken kann es wer es braucht. Funktionieren wird es mit Sicherheit, aussagekräftige Experimente über die erreichbare Genauigkeit lassen sich aber nur mit einem sauberen Aufbau auf dem PCB durchführen. @ Andre S. – es gibt eine Möglichkeit den Amplitudengang eines Ausgangs aktiv flach zu halten, indem ein Amplitudendetektor wie der AD8307 in einer Regelschleife den Rset steuert (leider mit entsprechender Zeitkonstante). Alle anderen Ausgänge wären aber von Toleranzen der Bauteile abhängig. Viel Aufwand und großer Schwierigkeitsgrad nach meiner Meinung, schlecht zum Nachbauen geeignet. Gruß Walter
Schön, das es mal wieder Leute gibt die an einem Projekt arbeiten und nicht nur alles nieder machen :) Ich selbst habe mir das Ding als einfachen und mit dem PC einstellbaren Generator gekauft. Das tut er und es reicht mir im Moment. Langfristig wollte ich den Chip gerne etwas mehr ausreizen was aber mit dem China Modul in der bisherigen Form nicht möglich ist. Dafür braucht man die schnelle 100Mhz Anbindung und Ram für Kurvenformen ... Aber da wäre eine neue Platine wahrscheinlich sinnvoller und würde den Rahmen eures Projektes sicher sprengen. Walter Marton schrieb: > BTW, die Drehencoder von Pollin funktionieren auch als Drucktaster, > somit kämen wir auch mit einem aus. Wollen wir uns darauf einigen? Hmm, ich kann mir im Moment nicht so richtig vorstellen wie man mit einem Drehencoder benutzerfreundlich 109.843.443 Hz von 0 an hochdreht. Ich werd mir mal ein paar Encoder bestellen und es ausprobieren. > Deine Idee, die 595er zu kaskadieren finde ich super! Ich würde da schon einen 2. MC nehmen. > Bezüglich variablen Duty Cycle muss man sich auf einige Randbedingungen > einigen. Aus unserem Gespräch weiß ich dass es Dir sehr auf Präzision > bis <10ns Pulslängen ankommt, möglichst geringem Jitter und > Reprodizierbarkeit. Die vermutlich beste Lösung wäre, die 2 > differenziellen Analog-Out-Signale direkt von dem China PCB (DDS-pins > 48+49 sowie 61+62) per Drähtchen auszufüren und an 2 schnelle > 3.3V-Komparaturen (in einem IC, gleicher Temperaturgang – z.B. MAX962 > oder LMV762) anzulegen. Die Komparatorausgänge sollten dann > NAND-verknüpft werden, so dass die resultierende Pulslänge (entspr. Duty > Cycle) exakt der Phasendifferenz beider Signale entspricht. Wenn ich dich recht verstehe, würdest du gerne die Phasendifferenz der Beiden DA Wandler zur Pulslängen Einstellung verwenden. Das geht aber nicht weil die Phasenlagen von I und Q fix 90° sind. Das Phasenregister ändert daran nix. > es gibt eine Möglichkeit den Amplitudengang eines Ausgangs > aktiv flach zu halten, indem ein Amplitudendetektor wie der AD8307 in > einer Regelschleife den Rset steuert (leider mit entsprechender > Zeitkonstante). Alle anderen Ausgänge wären aber von Toleranzen der > Bauteile abhängig. Viel Aufwand und großer Schwierigkeitsgrad nach > meiner Meinung, schlecht zum Nachbauen geeignet. Die SINC Korrektur regelt den prinzipbedingten Abfall des DAC und die Ausgangsfilter sollten bis zur Maximalen Ausgangsfrequenz noch keinen nennenswerten Abfall haben. Das ist dir zu ungenau ? @alle hat irgendwer schon mal die Ausgangsfilterqualität vermessen ?
Hans-Georg Lehnard schrieb: > Hmm, ich kann mir im Moment nicht so richtig vorstellen wie man mit > einem Drehencoder benutzerfreundlich 109.843.443 Hz von 0 an hochdreht. > Ich werd mir mal ein paar Encoder bestellen und es ausprobieren. Das macht man z.B. so (siehe Anhang). Gruß Achim
Hallo Hans-Georg, Du hast Recht, die Phasendifferenz beider Signale kann nicht verändert werden, mir war das nicht bewusst. Damit ist die beschriebene Idee leider hinfällig… Die Alternative für programmierbaren Duty Cycle über die Umwandlung sinus->rechteck->rampe und Vergleich mit programmierbaren DC-Pegel ist leider ungenau und jitter-anfällig. Wäre da ein separat programmierbarer Zähler am DDS-Modul-Ausgang nicht besser/genauer? „…die Ausgangsfilter sollten bis zur Maximalen Ausgangsfrequenz noch keinen nennenswerten Abfall haben. Das ist dir zu ungenau ?“ Je nachdem was man als nennenswert betrachtet… von 3-Stufigen Filtern würde ich nicht viel erwarten, habe aber leider keine Messgeräte dabei für genauere Aussagen. Hab auch nicht vor, das Ding jenseits 50MHz zu betreiben, die Worte waren an Andre S. in Bezug auf seine Fragen gerichtet. Wer aber auch mit den präzisen 90° zwischen I und Q nach den Filtern und jenseits 50MHz rechnet sollte es vielleicht zuvor überprüfen… Falls Du virenfreie PC-Software hast (USB-version), wäre ich daran interessiert und bitte darum... Gruß Walter
Ich habe mir auch erst das Modul gekauft und dann das Datenblatt richtig gelesen ;) Wenn die interne Updatefunktion jedesmal den Accumulator bei Phase 0 neu starten würde könnte man den Ausgang als Start und den I Ausgang mit dem Komparator als Stop Signal verwenden. Dann sollte sich das Tastverhältnis über die Phasenregister einstellen lassen ... aber das ist nur Theorie. An Software habe ich leider nichts fertiges sondern nur Baustellen. Wäre auch nur für Windows, sind noch andere Sachen mit drin und ist sehr dynamisch. Passt auch nicht zu der Original Firmware auf dem Modul.
Was haltet ihr von diesem Board: http://www.aliexpress.com/item/High-speed-dds-module-ad9854-evaluation-board-signal-generator-ad9854/1712569933.html Müsste doch zur Ankopplung an FPGA oder schnellen Prozi, ich denke da an den STM32F407, gut geeignet sein. Gruß Stefan
mal angenommen, den Duty Cycle wollen wir in 1024 digitalen Schritte aufteilen. Die maximal mögliche Auflösung pro Schritt ist ca. 3.3ns (Kehrwert von den 300MHz sampling Frequenz). Also beträgt die minimal mögliche Periodendauer bei der der Duty Cycle so genau gesteuert werden kann 3.3µs (max 300kHz). Wenn das OK ist, dann könnte man 600kHz Ausgabefrequenz programmieren und jede Periode einen Phasensprung (bei der Frequenz mit dem Atmel locker zu schaffen) mit wechseldem Vorzeichen einprogrammieren, der der gewünschten Duty Cycle-Abweichung von 50% entspricht. Mit einem anschließenden Teiler /2 erhält man dann die 300kHz mit dem gewünschten Duty Cycle. Der Teiler muss per Reset synchronisiert werden, um nicht den Kehrwert vom Duty Cycle auszugeben. Was denkt Ihr, ist der Vorschlag brauchbar?
Unglaublich: Nach 7 Tagen Diskussion mit Verkäufer habe ich endlich den Link zur SW erhalten. Laut Virenscanner sauber. So, wenn ihr nix mehr von mir hört, hatte sich der Virenscanner geirrt .... :-)
Chinesische Datenblätter in rauhen Mengen, 4 exe Dateien, eine 1000 zeilige C-Quelle und ein paar libs.
Frage in die Runde: Tauscht jemand 45 Mb chinesche version der SW gegen englische Version ?
Stefan V. schrieb: > Was haltet ihr von diesem Board: > http://www.aliexpress.com/item/High-speed-dds-module-ad9854-evaluation-board-signal-generator-ad9854/1712569933.html > > Müsste doch zur Ankopplung an FPGA oder schnellen Prozi, ich denke da an > den STM32F407, gut geeignet sein. Sehr interessant! Das Board hänge ich im nächsten Projekt an ein DE0-Nano! Sammelbestellung? Walter Marton schrieb: > mal angenommen, den Duty Cycle wollen wir in 1024 digitalen Schritte > aufteilen. Die maximal mögliche Auflösung pro Schritt ist ca. 3.3ns > (Kehrwert von den 300MHz sampling Frequenz). Also beträgt die minimal > mögliche Periodendauer bei der der Duty Cycle so genau gesteuert werden > kann 3.3µs (max 300kHz). Wenn das OK ist, dann könnte man 600kHz > Ausgabefrequenz programmieren und jede Periode einen Phasensprung (bei > der Frequenz mit dem Atmel locker zu schaffen) mit wechseldem Vorzeichen > einprogrammieren, der der gewünschten Duty Cycle-Abweichung von 50% > entspricht. Mit einem anschließenden Teiler /2 erhält man dann die > 300kHz mit dem gewünschten Duty Cycle. > Der Teiler muss per Reset synchronisiert werden, um nicht den Kehrwert > vom Duty Cycle auszugeben. > Was denkt Ihr, ist der Vorschlag brauchbar? Super Idee! Aber der Teiler darf unter keinen Umständen aus der Synchronisation laufen. Gruß Achim
Hallo allerseits, interessante Neuigkeiten, aber noch eine andere Baugruppe ist mir eben untergekommen: ein Doppel- VFO mit 2 * AD9951. Fertige Baugruppe für 167€: http://www.funkverleih.de/shop/index.htm Den müsste man nur anders ansteuern, und schon hätte man die gewünschte wählbare Phasenverschiebung mit 14 Bit Auflösung. Allerdings gibt er keine Rechteckimpulse aus. Bestechend ist die geringe Verlustleistung (je 171 mW). Datenblatt AD9951: http://www.analog.com/static/imported-files/data_sheets/AD9951.pdf
Hallo, Ich muss jetzt doch noch mal fragen: Gibt es überhaupt eine englische Version der Software oder ist bei euch auch alles auf chinesisch ? Gruss
Hallo Andre, hier ist ein Link auf die bei mir laufende englische Software: http://www.wkiefer.de/x28/AD9854/SoftwareAD9854.7z Und noch ein paar Quellen: http://www.wkiefer.de/x28/AD9854/DDS_AD9854_mega32.zip Gruß Wolfgang
Hallo Zusammen,kann iemand mir helfen?ich brauche die Schaltplan fuer DDS-AD9854 china module mit 5 BNC socked outputs -120Mhz sine. Danke-LZ1ISG 73.
Hallo Achim, wo bekommt man die(Streifenraster-)Platine mit dem Steckbrett-Schema, die auf dem Bild Aufbau.jpg vom 06.06.2014 18:11 zu sehen ist ? Gruß Arno
Hallo Arno, die Platine habe ich irgendwo mal aus China bestellt. Suche mal bei Ebay - evtl. gibt es die noch?! @ Wolfgang & Walter: Gibt es bei euch Updates? Gruß Achim
This question may be related to one that Jan Wagner posted awhile back. > Jan was having trouble with excessive output jitter > > PLL-like nature of these graphs suggested a problem with the chip's > clock multiplier. I was able to confirm that indeed, the problem > occurred ONLY with the DDS chip's internal PLL-based clock multiplier > engaged, with a 10 MHz external clock being multiplied to frequencies > between 80 and 120 MHz. With an unmultiplied 100 MHz external clock, > the DDS works perfectly with no 'ears', spurs, or instability. > > At this time I don't understand what's going on with this assembly. > It's not a complicated circuit; the AD9854 is a very robust, hard-to- > screw-up chip, and in general there's very little to go wrong. I have a > good deal of experience with the AD9852 / AD9854 parts, and have never > seen this behavior before. > > Has anyone else run into this weirdness? > > -- jm > > ------------------------------------------------------ > ------------------------------------------------------ TALISIN reply : JIM .. phase jitter in this device is certainly due to the clk multiplier, what did u do to pin 22 , spec is to decouple it to Analog Ground , bet u couple it to Dig GND . U also need 2 regulated supplies not the lazy single u have. AND not a 10MHz clock. That is outside the spec of min 20MHz .. Regardless, of those 2 or 3 failures , a 4:1 balun ought be used for ext single to differential input for such a critical issue. Little wonder amateur radio is called by the name. Go on.. get out of joint as all English take offence at rainfall.. Cheee !! https://groups.google.com/forum/#!topic/rec.radio.amateur.homebrew/5_uNE0_T33k WOLFGANG : GOOD post if only GooG can translate this, so far NOT @*##% I was searching for issues in the Chinese boards.. have bought the parallel port with mezzanine controller and the only USB single board with JTAG and dual regulators .. Anyone used either of these $100 boards ? its 2016 , sure is hard to find peop outside of China AD using the good oil .. this is actually a great digital PLL for a Rx digital radio ..Rus Talisin on g+ OK Wolfgang is using todays board with JTAG socket + 2 x V. Regs.. jus buy one ALSO the STM32103 and the X1 (that has better dual voltage regulators on the controller mezzanine board (its the only other dual board system) ANYONE have experience with serial port X1 board .. & software (pls email) .. NOW : working with an AD engineer to interfce SPI controller thru JTAG i see a russian project engineer works with FPGA Core to control DDS thru JTAG . Have u interest to do something phenomenal ? The 9854 is the perfect digital demodulator when inside the main frequency converter of A/D front end AD6676 : https://wiki.analog.com/resources/eval/ad6676-wideband_rx_subsystem_ad6676ebz Rus Talisin look me up on G+
Thread wiederbeleb Ich benötige für ein Experiment einen kostengünstigen Signalgenerator der in der Lage ist ein TTL-Rechtecksignal mit ca 10KHz bei einer sehr hohen Auflösung, möglichst 1µHz, zu erzeugen. Dementsprechend sieht das AD9854-Modul sehr gut aus für mich. Aber es steht die Frage im Raum ob eine der hier geposteten Softwarelösungen in der Lage ist das Signal mit 1µHz zu erzeugen?
> ca 10KHz bei einer sehr hohen Auflösung, möglichst 1µHz
Bei einem 48Bit Frequenzregister wäre das vorstellbar. Das Ausganssignal
kann zusätzlich z.B. durch 1024 dividiert werden.
Echo schrieb: > Ich benötige für ein Experiment einen kostengünstigen Signalgenerator > der in der Lage ist ein TTL-Rechtecksignal mit ca 10KHz bei einer sehr > hohen Auflösung, möglichst 1µHz, zu erzeugen. Ich glaub es einfach nicht. Hier wird verarscht was das Zeug hält. Ein Signal von xx Khz mit einer Auflösung von yyy zu erzeugen macht keinen Sinn. Schon die Aussage nicht. Ein festes Signal hat keine Auflösung in der Frequenz, nur eine Genauigkeit.
Okay, umformuliert: Ich möchte ein Rechtecksignal mit ca 10KHz erzeugen und es im µHz-Bereich variieren können.
Echo schrieb: > Okay, umformuliert: Ich möchte ein Rechtecksignal mit ca 10KHz erzeugen > und es im µHz-Bereich variieren können. Gut. Und welche Anforderungen hast du an die Nebenlinien des Signals? Nebenlinien sind nichtharmonische Frequenzanteile des Grundsignals (Grundwelle) und die erzeugen dir einen Phasenjitter, was also eine temporäre Frequenzverschiebung bedeuted. Wenn du schon so genaue Frequenzen haben willst dann musst du darüber vielleicht auch nachdenken. Auf jeden Fall bräuchtest du einen DDS mit hoher Registerbreite, 32 Bit reichen nicht aus, 40 Bit gibt es wohl nicht, dann sollten es also 48 Bit sein (ich kenne noch den AD9956 der diese Eigenschaft hätte).
Und genau wegen der 48Bit Registerbreite, die mir 1µHz Auflösung ermöglicht interessiere ich mich für das AD9854-Modul. Leider habe ich keine Ahnung von Jitter und weiß auch nicht wie groß er beim AD9854 im Endeffekt sein wird und ob er sich im µHz-Bereich deutlich bemerkbar macht. Natürlich kann man einen 1024-Teiler nehmen um damit mit der bestehenden Software eine µHz-Variation zu bewirken. Aber ich würde gerne die Umweg vermeiden, zumal ich nicht weiß ob der Teiler zusätzlichen Jitter produziert. Vermutlich werde ich mir erstmal den AD9850 ansehen, der zwar nur 232µHz Auflösung schafft (32Bit Registerbreite bei 1MHz Eingangsfrequenz), aber günstiger und einfacher meinerseits zu konfigurieren ist. Mit dem sollte es auch erstmal möglich sein abzuschätzen ob meine zugehörige Schaltung ausreichend gut ist.
> einen 1024-Teiler nehmen > zumal ich nicht weiß ob der Teiler zusätzlichen Jitter produziert. Wenn ich mich recht erinnere, halbiert sich Jitter bei jedem dividieren durch Vier. Bei einer zu hohen Frequenz erzeugt allerdings die DDS deutlich mehr Jitter.
Duerften wir etwas mehr von der Anwendung erfahren ? Denn die Specs machen wenig Sinn. Absolute Genauigkeit, Stabilitaet ? Wird schwierig. Denn 10kHz sind 5 Stellen, und uHz sind nochmals 6 Stellen. Eine Frequenz mit 11 dezimalen Stellen, sind naja .. sportlich. Also was soll's ?
Oh D. schrieb: > Eine Frequenz mit 11 dezimalen Stellen, sind naja .. sportlich. Nicht nur das, bei einer derartigen Anforderung braucht man auch eine stabile Referenzfrequenz, z. B. einen Rubidiumoszillator, ansonsten sind uHz uninteressant. A. Döbler
achimdoebler@gmail.com schrieb: >> Eine Frequenz mit 11 dezimalen Stellen, sind naja .. sportlich. > > Nicht nur das, bei einer derartigen Anforderung braucht man auch eine > stabile Referenzfrequenz, z. B. einen Rubidiumoszillator, ansonsten > sind uHz uninteressant. Selbst ein Rubidiumoszillator stößt da bereits an seine Grenzen. Hier kommt man bereits in die Größenordnung bei der ein Cäsiumnormal das angesagte Teil wäre, aber nur wenn das Gerät Tag und Nacht durchläuft. Es garantiert nämlich nur die Langzeitstabilität. Die Kurzzeitstabilität müsste der Quarzoszillator bzw. der angebundene Rubidiumoszillator leisten. Echo schrieb: > Ich benötige für ein Experiment einen kostengünstigen Signalgenerator > der in der Lage ist ein TTL-Rechtecksignal mit ca 10KHz bei einer sehr > hohen Auflösung, möglichst 1µHz, zu erzeugen. Dementsprechend sieht das > AD9854-Modul sehr gut aus für mich. Es stellt sich mir schon die Frage wozu man so eine kleine Schrittweite benötigt. Ich kenne auch kein Frequenzzähler der diese 10KHz mit dieser Genauigkeit bis auf die letzte Stelle stabil anzeigen würde. Da spielen nämlich das Jitter sowohl in dem DDS Synthesizer als auch in der Signalverarbeitung des Frequenzzählers schon eine erhebliche Rolle. Ralph Berres
Ralph B. schrieb: > Selbst ein Rubidiumoszillator stößt da bereits an seine Grenzen. > > Hier kommt man bereits in die Größenordnung bei der ein Cäsiumnormal das > angesagte Teil wäre, aber nur wenn das Gerät Tag und Nacht durchläuft. > Es garantiert nämlich nur die Langzeitstabilität. Die Kurzzeitstabilität > müsste der Quarzoszillator bzw. der angebundene Rubidiumoszillator > leisten. Das sehe ich genauso. Das ist eine hochgradig schwierige Anforderung, die man nicht "mal eben schnell" realisiert. Die dahinter stehende Anwendung würde mich sehr interessieren. Ich habe auf Basis des DDS ICs schon einen Generator realisiert (https://youtu.be/8bkFkVVpOZQ) aber das war NICHTS gegen diese Anforderung. Gruß A. Döbler
Im Prinzip gehts darum mit den 10 KHz einen Frequenz/Spannungs-Konverter anzusteuern, um damit einen extrem stabilen (Absolutgenuigkeit des Konverters irrelevant durch nachfolgende Kalibration) einstellbaren Ratio-Spannungsteiler zu realisieren, ohne die Verwendung von vielen Widerständen und DACs. Der F/U-Konverter, DDS-Generator und der zugehörige TCXO oder OCXO würden alle in einem kleinen temperaturgeregelten Ofen sitzen um Temperaturdrift auszuschließen. Ausgehend davon dass eine Frequenzänderung von 1KHz Ansteuerfrequenz eine Ausgangsspannungsänderung von 1V hervorruft, ermöglicht die Auflösung von 1µHz Spannungsschritte im nV-Bereich. Jetzt ist eben fraglich wie alterungsstabil der Konverter und ist, wie langzeitstabil z.B. ein OCXO wäre und wie stark sich Jitter auswirken. Siehe Seite 13: http://cds.linear.com/docs/en/datasheet/1043fa.pdf "F/V-Converter"
Dann gibt es weitere Fragen: - Wie genau ist die Referenzspannung inclusive Ripple/Rauschen? - Wie soll das 10 kHz Signal gefiltert werden, damit diese Nanovolts als DC-Signal übrig bleiben? - Welche Schaltung kann das Signal weiterverarbeiten, ohne nicht mindestens 50-100nV als Rauschen zu addieren.
:
Bearbeitet durch User
Echo schrieb: > Im Prinzip gehts darum mit den 10 KHz einen Frequenz/Spannungs-Konverter > anzusteuern, um damit einen extrem stabilen (Absolutgenuigkeit des > Konverters irrelevant durch nachfolgende Kalibration) einstellbaren > Ratio-Spannungsteiler zu realisieren, ohne die Verwendung von vielen > Widerständen und DACs. Soll man das so verstehen das du einen Kalibrator für Multimeter entwickeln willst? Echo schrieb: > Der F/U-Konverter, DDS-Generator und der zugehörige TCXO oder OCXO > würden alle in einem kleinen temperaturgeregelten Ofen sitzen um > Temperaturdrift auszuschließen. > Ausgehend davon dass eine Frequenzänderung von 1KHz Ansteuerfrequenz > eine Ausgangsspannungsänderung von 1V hervorruft, ermöglicht die > Auflösung von 1µHz Spannungsschritte im nV-Bereich. Schnappsidee! Echo schrieb: > Jetzt ist eben fraglich wie alterungsstabil der Konverter und ist, Vermutlich längst nicht stabil genug. Echo schrieb: > wie > langzeitstabil z.B. ein OCXO wäre und wie stark sich Jitter auswirken. Das sollte das geringste Problem sein. 10exp-7 / Jahr ist mit einen Agilent Quarzofen zu erreichen ( HP10544 ). Viel genauer sind auch Fluke Kalibratoren nicht. Nebenbei bemerkt. Die Fluke Kalibratoren sind nicht umsonst so teuer. Das Geheimnis liegt nämlich in der Art wie sie über so einen weiten Bereich die Spannungsschritte so genau und langzeitstabil einhalten. Wenn du schon in diese Gefilden einsteigen willst, das Stichwort heist josephson spannungsnormal siehe https://www.ptb.de/cms/de/ptb/fachabteilungen/abt2/abt2-josephson.html Den Aufwand wirst du nicht treiben wollen können. Ralph Berres
Echo schrieb: > Ausgehend davon dass eine Frequenzänderung von 1KHz Ansteuerfrequenz > eine Ausgangsspannungsänderung von 1V hervorruft, ermöglicht die > Auflösung von 1µHz Spannungsschritte im nV-Bereich. Meiner Ansicht nach ist das mit der Frequenzgenauigkeit noch zu machen (wenn auch richtig schwierig). Das mit den einzelnen Nanovolt kannst du jedoch vollkommen vergessen. Präzise und stabil Schritte von 1µV zu realisieren ist schon kein Kinderfasching mehr. Was du möchtest, ist lediglich um den Faktor 1000 genauer. Ich meine außerdem, dass man da bereits im Bereich des thermischen Rauschen liegt - somit kann in diesem Bereich alles nur noch statistisch beschrieben werden. Wie Berndw bereits formuliert hat: Welche Schaltung (auf diesem Planeten) gibt es, die nicht ein höheres Eigenrauschen besitzt? Verstehe mich bitte nicht falsch - ich bin immer ein Fan von schwierigen Projekten, allerdings scheint mir dieses Projekt was für einen theoretischen Physiker im LHC zu sein. Gruß A. Döbler
Natürlich kann man mit keiner bei Raumtemperatur betriebenen Schaltung das Johnson-Rauschen aushebeln, aber man kann versuchen eine Spannung zu erzeugen die unter 1µV stabil ist. Das setzt natürlich sehr gutes Schaltungsdesign, Temperaturstabilisierung usw. voraus. JJAs sind mir wohlbekannt und auch die Simulation des 23-Bit-PWM-DAC in einem Fluke 5700A-Kalibrator läuft bei mir bereits in LTSpice einwandfrei. Mein Überlegung war bloß ob man die notwendige hochaufgelöste PWM (mehr als 16Bit zur Umgehung eines 2-stufigen Designs) eventuell ersetzen kann durch eine hochstabile und hochauflösende Frequenz, um damit zum gleichen Ergebnis zu kommen: aus einer 7,1V Zenerreferenz (LTZ1000) 10V zu erzeugen bei Vermeidung einer driftenden Widerstandsteilerkombination. Natürlich kann man hochstabile Widerstandsteiler von Vishay verwenden, aber wo bleibt da der Spaß...zumal man in den 3 Monaten Lieferzeit sicherlich auch gute Schaltungen entwickeln kann. Hier übrigens der Schaltplan eines Datron 4910, der mittels PWM das macht, was ich über Frequenz versuche: https://doc.xdevs.com/doc/Datron/4910_4911/4910%20c20090120%20%5B8%5D.pdf Hier der Schaltplan des Fluke 5700A, PWM-DAC auf Seite 514, Filter auf Seite 519: https://xdevs.com/doc/Fluke/5700a/Fluke_5700A_5720A_Multi-Function_Calibrator_Service_Manual.June_1996.pdf @ Bernd W: Referenz LTZ1000 7,1V ca 1,3µVpp Rauschen Filter: wie im Datron 4910 ein Tiefpassfilter hoher Ordnung oder eventuell Sallen-Key-Filter, wobei der Datron-Filter schon sehr gut ist wie meine Fluke PWM-DAC-Simulation zeigt (natülich sind Simulationen nur idealisiert...). Ein paar hundert nV-Rauschen wird man nicht vermeiden können und die sollen mich auch nicht stören. Da ich mich aber wie gesagt nicht mit aktuell verfügbaren Zeitbasen und Jitter auskenne, wollte ich hier mal reinhorchen ob sich das Konzept machbar anhört.
Sobald man mit PWM und Frequenzen Spannungen erzeugen will kommt die Speisung/Spannungsreferenz rein. Bei einem PWM geht die speisung linear rein. Dh 1ppm Wackel an der Speisung/Spannungsreferenz bringt auch 1ppm Wackel am PWM Ausgang.
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.