AD9833 Programmieren

OP #7736337
Lesenswert?

...danke für die Antworten Es geht bei mir um Folgendes. Ich baue zur Zeit einen Kurzwellenempfänger, und ich benötige noch dafür mindestens einen Lo,je nach Konzept. Der Oszillator soll mit einer fixen Frequenz von 5685 Kilohertz laufen und ich dachte dabei an ein preiswertes DDS Modul. Gibt es eine Möglichkeit der Realisierung.

#7736338
Lesenswert?

Jens G. schrieb:

Wenn es um minimale HW und Applikation geht, nimmt man keinen Arduino&Co und dicke Bibliotheken.

Doch, wenn man im Sinne des TO denkt, dass er mit minimalem Aufwand zu Ziel kommt.

Man braucht dafür keine Bibliotheken sondern nur eine. Und eine Bibliothek für den AD9833 ist übrigens nicht "dick".

Aber am wichtigsten ist, klar, dass du hier deinen Senf dazu gibst.

#7736354
Lesenswert?

Wastl schrieb:

Aber der TO kann das erst mal nicht. Machst du das für ihn?

Weist du, ob das Konzept überhaupt funktioniert?

Das Ausgangssignal des AD9833 bei 5.7MHz sieht ziemlich versaut aus. Da ist die erste Frage, ob der überhaupt den Anforderungen an die spektrale Reinheit des LO genügt? Da musst entweder ganz kräftig gefiltert werden oder er kann nur benutzen werden, um einen separaten Oszillator per PLL damit zu synchronisieren.

#7736360
Lesenswert?

Wastl schrieb:

Brauche ich gar nicht zu wissen. So einfach ist das.

Bloß nicht über den Tellerrand blicken ...

In der heutigen Elektronik steht jemand ohne Minimalfähigkeiten/-kenntnisse im Bereich µC oft ziemlich im Regen. Da kann es nicht schaden, seinen Kompetenzbereich in der Richtung etwas zu erweitern. Das fängt mit dem Lesen von Datenblättern an und hört bei Abtasttheorem und DSS gewiss noch nicht auf. Mehr als 25MHz MClk verträgt der AD9833 nicht und entsprechend dreckig sieht dann ein dort heraus kommendes 5.7MHz-Signal aus.

#7736433
Lesenswert?

H. H. schrieb:

Motopick schrieb:

H. H. schrieb:

Sonderlockenquarze waren und sind nicht billig.

Dafuer reicht es aber, den "Bestellknopf" zu finden.

Sicher nicht.

Sicher doch.

Viel mehr darf man ja heute nicht erwarten.

Von dir?

Ich kenne noch einige Methoden/Verfahren, auch solche scheinbar "krumme" Frequenz ohne D.D.S. in spektral vorzueglicher Qualitaet zu erzeugen. Das ist nicht notwendigerweise weniger aufwendig, als ein speziell gefertigter Quarz.

Persönliche Seite #7736497
Lesenswert?

Motopick schrieb:

Ich kenne noch einige Methoden/Verfahren, auch solche scheinbar "krumme" Frequenz ohne D.D.S. in spektral vorzueglicher Qualitaet zu erzeugen. Das ist nicht notwendigerweise weniger aufwendig, als ein speziell gefertigter Quarz.

Es kommt darauf an, wie krumm die Frequenz ist. Wenn das Durchlaufen durch die DDS nach 2..3 Zyklen stimmt, ist das Störspektrum entsprechend hoch und gut zu filtern. Bei der krummen Zielfrequenz ist es natürlich kaum möglich, das mit einem gängigen Quarz zu machen. Der saubere Weg wäre hier, ein Quarz zu nehmen, das zu einem ganzzahligen Teiler in der DDS führt. Also 22,7400... MHz und Teiler 4000.

Die Frage ist dabei, wie genau diese Frequenz sein muss: Ein 24,40000 MHz mit Teiler 4292 würde noch bis auf einige ppm passen. 24,9000 und 4380 ginge gfs auch noch. Wieder etwas besser 20,0000 MHz und 3518. So würde ich das bauen.

Es gibt noch ein paar tiefere Kombis aber die machen von der PLL im Chip nicht mehr soviel Sinn.

#7736506
Lesenswert?

H. H. schrieb:

Helmut -. schrieb:

H. H. schrieb:

Sonderlockenquarze waren und sind nicht billig.

Na, so teuer sind die auch wieder nicht. Für 32 Euronen incl. Porto gibt's die hier: http://www.andyquarz.de/quarze.html

Das DDS Platinchen kostet nicht mal 1/10 davon, ebenfalls incl Porto.

Die Preisrelation entspricht in etwa der Qualitaet des erzeugten Signals. Ich wuerde an der Stelle keinen "unaufbereiteten" D.D.S. haben wollen.

Da der TO "nuex" brogrammieren kann, wird der Wunschquarz die wohl fuer ihn einfachere Loesung sein.

Er koennte das "Codewort" natuerlich auch per Schieberegister in den AD8933 "reinschieben". Mit DIP-Switchen waere das dann sogar frei programmierbar. :)

#7736571
Lesenswert?

auch per Schieberegister reinschieben

Es war einmal vor langer langer Zeit (1992/93?), da habe ich dieses Schieberegister gebaut, um eine seriell programmierbare PLL einzustellen. 6* MC74HC589, das sind je 8 Bit par-zu-ser. also insgesamt 48 Bit. Ein Siemens PMB2306: https://www.alldatasheet.com/datasheet-pdf/view/45544/SIEMENS/PMB2306.html (Die Startsequenz stand in einem Eprom mit CD4060 als Taktgeber und CD4040 zum Adressenzählen.) Wir hatte in der Firma die Hex-Codierschalter 0-F im Lager, daher konnte ich so verschwenderisch damit umgehen. Mikrocontroller waren in der Firma noch fast unbekannt, einen HD6303 oder so ähnlich hatte ein Kollege schon benutzt, Assembler dazu lief auf einem DOS-Rechner.

Wäre immer noch eine Möglichkeit, aber der DDS hat noch mehr Register zu füllen als damals die PLL. Das wird ziemlich umfänglich.

Angehängte Dateien:
#7736607
Lesenswert?

Ihr seid heute wieder mal nett zueinander.

Der Oszillator soll mit einer fixen Frequenz von 5685 Kilohertz laufen

Der saubere Weg wäre hier, ein Quarz zu nehmen, das zu einem ganzzahligen Teiler in der DDS führt. Also 22,7400... MHz und Teiler 4000.

Das musst Du mir mal näher erklären. Es geht nicht um 22740/4000=5,685 kHz, sondern um 5685 kHz.

Ganzzahlige Teiler sind bei mir in diesem Fall Potenzen von 2. Das FTW (frequency tuning word) wäre: 5685/200002^28=76302778,37 0x048C49BA 5685/227402^28=67108864,00 0x04000000 5685/244002^28=62543260,95 0x03BA559D (aufgerundet) 5685/249002^28=61287372,18 0x03A72BCC 5685/25000*2^28=61042222,69 0x03A36E2F (aufgerundet) Fast alle krumme Hexzahlen.

Es gibt Quarze mit 5,6448 MHz (128*44100), das ist -40,2 kHz daneben. https://en.wikipedia.org/wiki/Crystal_oscillator_frequencies Ist das für den TO genau genug?

#7736622
Lesenswert?

Christoph db1uq K. schrieb:

auch per Schieberegister reinschieben

...

(Die Startsequenz stand in einem Eprom mit CD4060 als Taktgeber und CD4040 zum Adressenzählen.)

Ein einsames Bit eines durchgezaehlten EPROMs, waere natuerlich die naechste einfache :) Moeglichkeit. Ein Byte-Wide EPROM, wuerde so Platz fuer 8 solcher Sequenzen bieten.

Mein Ur-Z80 hatte seinen 1. Urlader auch in einem 74154 und einer Sammlung Dioden...

Es gibt Quarze mit 5,6448 MHz (128*44100), das ist -40,2 kHz daneben.

...

Ist das für den TO genau genug?

Die fehlenden kHz koennte er ja "nachschleifen". :)

#7736644
Lesenswert?

Ein einsames Bit eines durchgezaehlten EPROMs

Wenn Klemens die Möglichkeit hat, ein Eprom zu programmieren, wäre das eine der vielen Varianten.

Arduino Modul ... Overkill

Es geht um den Aufwand, das Arduino-Biotop einzurichten und zu erlernen.

Ich habe auch schon die Quarzfrequenzen, die Mouser anbietet durchgerechnet, aber keine geeignete Frequenz gefunden. https://www.mouser.de/c/passive-components/frequency-control-timing-devices/crystals/

Vielleicht wäre für 5,6 MHz eine schnellere PLL besser. Der AD9833 hat dafür nur noch vier bis fünf Abtastpunkte pro Schwingung, das wird ein ziemlich eckiger Sinus. Ein ADF4350/51 oszilliert bis 4 GHz und teilt sie dann herunter, das wäre jedenfalls höher aufgelöst. Ich sehe gerade https://www.analog.com/en/products/adf4350.html der fängt erst bei 137 MHz an, das ist zuviel. Aber damit einen DDS zu füttern... wir kommen vom hundertsten ins tausendste.

#7736706
Lesenswert?

von Falk B. (falk) 15.09.2024 13:50 Das Ding hat eine SFDR von ca. -65dB. Das ist nicht wahnsinnig gut aber auch nicht abgrundtief schlecht. Für den OP wird's reichen.

Die -65dB gelten nur bei Frequenzen unter 500kHz (MCLK/50). Weiter hinten ist die Rede von -60 dB. Bis 3,570 MHz (25/7) sind es nur noch -53 dB. Bei 5,685 (25/4,397) sind es nur noch -52 dB. Figure 10. Wideband SFDR vs. f OUT /f MCLK for Various MCLK Frequencies

Der AD9833 hat dafür nur noch vier bis fünf Abtastpunkte pro Schwingung, das wird ein ziemlich eckiger Sinus.

Da die Frequenz fest ist, kann man ihn mit einem schmalbandigen Filter gut "glätten".

Ich habe auch schon die Quarzfrequenzen, die Mouser anbietet durchgerechnet, aber keine geeignete Frequenz gefunden.

Gab es nicht mal von Epson? programmierbare Oszillatoren, die sich die Frequenz merken? Ich schau schnell nach, moment bitte, nichts posten.

#7736717
Lesenswert?

programmierbare Oszillatoren von Epson

https://www.epsondevice.com/crystal/en/products/crystal-oscillator/programmable/ Die darf man sich aber nicht als ideale Quarzoszillatoren vorstellen. Da war auch irgendeine PLL drin, die Jitter verursacht. Ein Bestücker hat uns mal sowas eingebaut, das hat nicht funktioniert.

Ja klar, mit einem steilen Tiefpass kann man das Problem bekämpfen. Solange es keine sehr niederfrequente Störung ist. Die kriegt der Tiefpass auch nicht weg.

#7736742
Lesenswert?

Christoph db1uq K. schrieb:

Vielleicht wäre für 5,6 MHz eine schnellere PLL besser. Der AD9833 hat dafür nur noch vier bis fünf Abtastpunkte pro Schwingung, das wird ein ziemlich eckiger Sinus.

Du solltest nochmal die Grundlagen der digitalen Signalverarbeitung und DDS durchgehen, dann wird dir hoffentlich einiges klarer . . . Der Sinus ist hier NICHT eckig, auch bei so wenigen Stützstellen!

#7736811
Lesenswert?

Falk B. schrieb:

Du solltest nochmal die Grundlagen der digitalen Signalverarbeitung und DDS durchgehen, dann wird dir hoffentlich einiges klarer . . . Der Sinus ist hier NICHT eckig, auch bei so wenigen Stützstellen!

Bei 25MHz Clock besteht ein 5MHz Signal am Ausgang aus 5 Abtastpunkten. Da brauchst du ein anständiges Rekonstruktionsfilter, damit das ein hübscher Sinus wird.

#7736857
Lesenswert?

andere DDS-IC Datenblätter

https://www.analog.com/media/en/technical-documentation/data-sheets/AD9835.pdf Das Evalboard hat einen 0,1 µF-Kondensator parallel zu 300 Ohm, wenn das kein Tiefpass ist?

https://www.analog.com/media/en/technical-documentation/user-guides/UG-272.pdf auch das Evalboard zum AD9833 hat 0,1 µF, der Parallelwiderstand ist nicht bekannt.

#7736890
Lesenswert?

Wie wäre es, einen Ad9850 zu verwenden? Gibt’s auch als „blaue Platine“, ist aber ein ganz klein wenig größer, wenn man sich das mit zwei Transistoren (die Temperaturstabilität ist tatsächlich ne kleine Herausforderung) nicht zutraut. Der muss zwar auch programmiert werden und braucht etwas mehr Strom. Aber Nunja… Man könnte da n serielles Interface basteln, wo man (dauerhaft) die Frequenz übergibt und gut. Ein Bandpassfilter würde ich ja trotzdem dranbasteln. https://www.analog.com/media/en/technical-documentation/data-sheets/AD9850.pdf

#7736910
Lesenswert?

Man kann halt auch eine WinAVR-Installation und "ProgrammersNotepad" nehmen (ist halt dort mit dabei), wenn man nun unbedingt einen großen Bogen um Arduino machen möchte. Man muss ja trotzdem nicht alles selbst programmieren (und sich nicht mit C++ rumschlagen): https://github.com/InvincibleFrog/AVR_AD9833/tree/main/src Aber es bleibt dabei: unser TO hatte damit augenscheinlich noch keine Berührungspunkte und hatte gehofft (verständlich), dass der AD9833 seine Werte beim Start behält und jemand das "schnell" für mal für ihn da reinprogrammiert/einstellt. Hinsenden, einstellen, zurückschicken. Haut leider nicht ganz hin, eben WEIL sich der AD98xx das halt nicht "merkt". Ein ATTiny2313 hat ne USART und n bissl Flash. Wäre so mein Kandidat. Ein "kleiner" Tiny45 mit USI-Usart ginge sicher auch. Wäre mir persönlich aber zu fummelich. Ich würde wahrscheinlich auch als zweites einen Arduino Pro Micro nehmen, nachdem mit der diskret aufgebaute VFO beim bloßen Anhauchen in der Frequenz um mehrere Kilohertz wegelaufen wäre.

Würde ich ja schnell zusammenklöppeln, hab aber nichts passendes (doch: einen einzigen AD9850 hab ich noch hier) zur Hand.

#7736918
Lesenswert?

Wozu sollte man eine USI brauchen?

Es ist doch voellig egal ob das Schreiben der Konfiguration nun 1 ms oder 100 ms braucht. Man kann also ohne Verlust das Protokoll auch per Bittoggle von "Hand" bedienen.

Ist hat d00f wenn man immer nur den eigenen Sandkasten vor dem Auge hat. Jeder 8 Pinner kann das.

#7737145
Lesenswert?

Motopick schrieb:

Wozu sollte man eine USI brauchen?

Es ist doch voellig egal ob das Schreiben der Konfiguration nun 1 ms oder 100 ms braucht. Man kann also ohne Verlust das Protokoll auch per Bittoggle von "Hand" bedienen.

Ist hat d00f wenn man immer nur den eigenen Sandkasten vor dem Auge hat. Jeder 8 Pinner kann das.

Mir gigns eher um die USART als Schnittstelle zur "Aussenwelt". Ich hab das damals mit dem USI nicht hinbekommen, bzw. wohl den Sinn nicht verstanden.

Das man die Bits Richtung DDS da irgenwie per Soft-SPI im Mode2 reintakten kann, ist ja klar. Und ja; das konnte seinerzeit auch ein Tiny12. der musste eine PLL einstellen (irgendwas aus nem CT1+ Telefon, wo ich da mal was gebastelt hatte). Da haben wa das aber alles brav in Assembler programmiert. Musste ja alles in 1K Fash und in die Register passen. Ist aber 20 Jahre her - ach kieck an - da issa ja :) Beitrag "Re: Radio mit TV/FM-Tuner von Philips"

#7737185
Lesenswert?

Klemens schrieb:

Ich baue zur Zeit einen Kurzwellenempfänger, und ich benötige noch dafür mindestens einen Lo...

Der TO ist also des Bauens mächtig und kann löten! Zu AD9833 kann ich nichts sagen.

Warum nicht etwas mit AD9850? Z.B:

https://de.aliexpress.com/item/1005006221365470.html?

Billiger geht es nimmer. Das auf Lochraster, einen ATiny45 dran, ein bisschen Verdrahtung -> fertig. Z.B: https://www.elektronik-labor.de/AVR/dds/AD9850.html oder https://technik.katzenjens.de/2013/03/billiger-selbstbau-frequenzgenerator.html

Bei BASCOM reicht die Free-Version, hat 4kb.

So habe ich eine WSPR-Bake für 10MHz aufgebaut. DCF77 gesteuert, ein AD9850-Modul von einem Atiny45 gesteuert und eine 200mW PA dahinter. Das Ding läuft seit ca. 2016 permanent 7/24 in dem auf dem Bild gezeigten Aufbau (*) auf der Fensterbank. Auf dem Foto rechts in der Mitte ist die AD9850-Baugruppe. Man sieht die gelben Ringkerne, das ist ein Tiefpass für 10MHz und dahinter noch eine (nicht sichtbare) Verstärkerstufe. Meinen Quellcode stelle ich gerne zur Verfügung und hülfe bei der Adaption. Das Problem ist eben, wie bekommt er das Prg in den Tiny.

73 Wilhelm

(*) Ich hab es nicht so mit Mechanik und Gehäuse.. Läuft, und keiner meckert. ;-)

Angehängte Dateien:
#7737236
Lesenswert?

aaaber der Staub... wenn meine Platinen so lange rumliegen hilft nur eine Ausblaspistole. Jedenfalls sitzt auf dem Modul ein anständiger Ausgangstiefpass. Drei Parallelkreise und vier C nach GND, alles in SMD.

wie bekommt er das Prg in den Tiny

Für AVR habe ich den "mySmartUSB light" bei Conrad gekauft, als es hier noch eine Filiale gab: https://shop.myavr.de/index.php?sp=pages/programmer.htm Software Atmel-Studio, STK500-Mode.

und für anderes (Quartus) den Waveshare USB-Blaster.

#7737246
Lesenswert?

Christoph db1uq K. schrieb:

Jedenfalls sitzt auf dem Modul ein anständiger Ausgangstiefpass. Drei Parallelkreise und vier C nach GND, alles in SMD.

Ist richtig, aber der ist nach der allgemeinen Meinung im Netz fehldimensioniert.

Christoph db1uq K. schrieb:

aaaber der Staub... wenn meine Platinen so lange rumliegen hilft nur eine Ausblaspistole.

Hallo Christoph,

zum Staub nur folgendes: Rhein Braun sorgt täglich für reichlich Nachschub

Ich sitze das aus. Bin 75 und meine Nachfahren sollen sich mit meiner Hütte rumärgern. Sie wissen noch nicht, was auf sie zukommt, ua. Abbau der Antennen. ;-). Mein daran hängendes Herzblut wird niemanden kümmern, das geht eh alles in die Tonne. Tel Aviv...

73 Wilhelm

#7737322
Lesenswert?

der ist nach der allgemeinen Meinung im Netz fehldimensioniert.

Hier ein Text dazu von David F4HTQ (auf französisch) http://alloza.eu/david/WordPress3/?p=84

Er hat das Filter erst mit LTSPICE simuliert und zeigt Verbesserungen. Kurve erst ohne Verluste, dann mit einer Güte von 50 und schließlich mit dem 1:1 Tastkopf am Oszi gemessen, mit stark fallender Kurve. Er schreibt das Tastkopfkabel hat 100pF pro Meter. Alle Messungen auf 200 Ohm bezogen, wie es schon im Datenblatt steht. Die Kurve sieht deutlich besser aus, wenn er zwischen Tastkopf und Filterausgang einen Breitbandtrafo schaltet, der von 200 auf 50 Ohm heruntertransformiert. Eine Antwort von F6FKN darunter sagt, man solle besser die gegenphasigen Ausgänge des DDS benutzen und einen Ferrit-Doppellochkern als Übertrager 2*25 zu 50 Ohm dahinter setzen, erst anschließend ein ordentliches 50 Ohm-Filter, und das chinesische Originalfilter weglassen.

Eine japanische Seite zum Thema Ausgangsfilter: https://ja9ttt.blogspot.com/2012/03/smd-lc-filter.html man kann eine englische Übersetzung aufrufen.

Beitrag "Re: einfacher 20m-CW-Sender mit AD9850 und MOSFET" hier gab es auch mal eine Diskussion dazu Beitrag "Modifikation von chinesischem AD9850 6 Bands 0-55 MHz DDS Modul" dito

https://www.qsl.net/d/dh7uaf/forum/VIEWTOPICD67C.HTM "...sah ich bei den China-DDS-Modulen mit AD9850 auf einem Foto statt der hier vormals kritisierten schwarzen SMD-Drosseln doch richtig gute Multilayer-Induktivitäten! Sollten die Chinesen ihren Fehler selber bemerkt haben??"

#7737448
Lesenswert?

Und das war eine Aussage von 2013, 11 Jahre alt. Ich denke Wilhelms "allgemeine Meinung" ist längst überholt. Das muss natürlich nicht auf alle chinesischen Module zutreffen.

Dass man ein 42MHz-Filter nicht mit einem 1:1 Tastkopf misst gehört zum messtechnischen Grundwissen. Die 100pF pro Meter sind zwar keine konzentrierte Kapazität, aber bezogen auf die Wellenlänge von etwa 7m doch noch eine gute Näherung. Verglichen mit den Filterkondensatoren 1...22pF schon ziemlich viel. Aber das scheint dem Autor schon klar gewesen zu sein.

#7737477
Lesenswert?

Wilhelm S. schrieb:

Klemens schrieb:

Ich baue zur Zeit einen Kurzwellenempfänger, und ich benötige noch dafür mindestens einen Lo...

Der TO ist also des Bauens mächtig und kann löten! Zu AD9833 kann ich nichts sagen.

Warum nicht etwas mit AD9850? Z.B:

https://de.aliexpress.com/item/1005006221365470.html?

Billiger geht es nimmer. Das auf Lochraster, einen ATiny45 dran, ein bisschen Verdrahtung -> fertig. Z.B: https://www.elektronik-labor.de/AVR/dds/AD9850.html oder https://technik.katzenjens.de/2013/03/billiger-selbstbau-frequenzgenerator.html ……… Das Problem ist eben, wie bekommt er das Prg in den Tiny.

73 Wilhelm

Dann schickt man ihm eben rasch einen programmierten per Post zu. Sehe ich jetzt nicht als Problem an. Andererseits: man muss doch, auch bei anderen Dingen, ab und an mal so‘n Mikrocontroller einsetzen. Oder nicht? Kann ich mir nur schwer vorstellen, nach 20Jahren, nachdem die Dinger aufkamen, (noch) nichts damit gemacht zu haben.

Was stehen denn dem TO für Möglichkeiten offen? Ist das jetzt ein KW-Trx nach „Baumappe“ oder was eigenes? Gibt’s da n paar Anregungen für uns? Wie weit und in welchem Umfang ist das alles denn schon fest in Stein gemeißelt?

Antwort schreiben

Bitte melde dich an, um einen Beitrag zu schreiben.

oder

Mit Google-Account einloggen

Die Registrierung ist kostenlos und dauert nur eine Minute.

Jetzt registrieren