Themabewertung:
  • 0 Bewertung(en) - 0 im Durchschnitt
  • 1
  • 2
  • 3
  • 4
  • 5
DDS AM Modulator mit Arduino
#21
Hallo Darius,

das Projekt hatte ich auf einem Arduino Nano am laufen. Ob es mit anderen Varianten geht habe ich nicht getestet. Ich müsste mal in meinen Unterlagen kramen und das wieder hervor holen. Hast Du alle Bibliotheken dazu mit eingebunden? Es müsste eine für das LCD und eine für den AD9850 eingebunden werden sonst geht es nicht..
Viele Grüße
Semir
---------------------------------
"Alle sagten: Das geht nicht. Dann kam einer der wußte das nicht, und hat es gemacht."
(Prof. Hilbert Meyer, Uni Oldenburg)
Zitieren
#22
Hallo Darius,

hast Du diesen Thread schon gesehen? dieses Projekt habe ich für meine Stereo Modulatoren gemacht. Der Arduino Mini Pro erzeugt direkt per PWM die 25Hz für den Pilotton und steuert gleichzeitig den AD9833 auf dem DDS Modul an um diverse Frequenzen zu erzeugen. Damit habe ich quasi eine Lösung die mich von Quarzen unabhängig macht:

https://radio-bastler.de/forum/showthread.php?tid=9265

Es gibt dafür auch eine Platine. Wenn Du möchtest bestücke ich Dir eine und programmiere sie mit deinen Wunschfrequenzen. Ich würde die Dir das zum Selbstkostenpreis €8 machen.
Viele Grüße
Semir
---------------------------------
"Alle sagten: Das geht nicht. Dann kam einer der wußte das nicht, und hat es gemacht."
(Prof. Hilbert Meyer, Uni Oldenburg)
Zitieren
#23
(24.05.2019, 23:32)Semir schrieb: das Projekt hatte ich auf einem Arduino Nano am laufen. …  Hast Du alle Bibliotheken dazu mit eingebunden? Es müsste eine für das LCD und eine für den AD9850 eingebunden werden sonst geht es nicht..

Ich bekomme das am Rechner schon nicht kompiliert, habe auch schon andere Boards ausgewählt.
Das mit dem Einbinden kenne ich nicht. 
Habe Sketche mit dem Display geschrieben, gibt gute Tutorials dafür, die Funktionieren auch alle. 
"Einbinden" musste ich da bisher nichts. Bin bisher davon ausgegangen, dass sich eine ino
ohne Klimmzüge kompilieren lassen muss und wenn nicht, sie fehlerhaft ist.

Ich mache mal auf einem anderen Rechner das Arduino Update. Vielleicht läuft der
Sketch nur auf der neuesten Version.

Ich möchte den vfo von dem om gerne selbst nachbauen und dabei lernen.

LG
old.
Zitieren
#24
Also nach dem Update, scheitert es am Rotary.
Was mir auffällt, der ist nicht rot hinterlegt.

Bevor ich das Update auf meinem Werkstattrechner mache, schaue ich mal
ob die aktuelle Weichware auch meine alten Sketche kompiliert.

LG
old.
Zitieren
#25
Hallo Darius,

Ich werde das Am WE Mal kompilieren und schauen was geht.  

Heute hat meine liebe Frau Geburtstag, da werde ich aber nicht zum Basteln kommen. Es ist gut, dass Du das Projekt wieder ausgegraben hast das ist auch noch ne Baustelle die ich fertig stellen muss...
Viele Grüße
Semir
---------------------------------
"Alle sagten: Das geht nicht. Dann kam einer der wußte das nicht, und hat es gemacht."
(Prof. Hilbert Meyer, Uni Oldenburg)
Zitieren
#26
Ja dann feiert schön. Cocktail 

Ich habe das Update nun auf allen Rechnern. Werde ein Rotaty Tutorial machen,
erstmal eine Trockenübung, weil ich den noch bestellen muss, und dann mal sehen
was mit dem Sketch los ist.

LG
old.
Zitieren
#27
(24.05.2019, 23:32)Semir schrieb:  Hast Du alle Bibliotheken dazu mit eingebunden? Es müsste eine für das LCD und eine für den AD9850 eingebunden werden sonst geht es nicht..

Offensichtlich nicht. Die für das Display ist einfach da wie eine 1N4148 in LTspice einfach da ist.
Das Einbinden der Bibliotheken ist für mich sehr umständlich im Gegensatz zu LTspice.
So ist mir das irgendwie gelungen mit der rotary, aber dann kommt schon die nächste
Fehlermeldung. Mit dem Sketch komme ich vom Regen in die Traufe.
Ich habe keine Ahnung wozu Ihr da eine Lib einbinden müsst.
Schau mal da ab Minute 8.

Ich suche mal im Netz Lehrfilmen für den AD9850 am arduino.

LG
old. (gefrustet)
[url=https://www.xgadget.de/anleitung/arduino-bibliothek-einbinden-so-gehts/][/url]
Zitieren
#28
Diese Seite ist gut:
https://wiki.funkfreun.de/projekte/arduino-ad9850-dds

Die Bibliotheken sind in einzelnen zip Ordnern.
Die kann man jeweils als .zip importieren.
Das schaffe ich sogar und der Sketch der Funkfreunde lässt sich
dann kompilieren.

Ich kann den nicht verwenden, weil mein Display parallel ist.

Jetzt muss ich zusehen, dass ich das auch mit dem AD7C Sketch
auf die Reihe bekomme.  Rolleyes 

LG
old. (vorsichtig optimistisch)
Zitieren
#29
Hallo Darius,

Ich habe das letzte von mit geschriebene .ino File gerade kompiliert und auf einen Arduino Nano programmiert - Geht.

Im Anhang findest Du diese Datei. Als Bibliotheken benötgst Du:

- Rotary für den Encoder
- EEPROM für den Speicher auf dem Nano. Damit die Speicherung und Stationstasten funktionieren.

Dieses Programm hat eine Batterieüberwachung und einen Abschaltpin der bei zu niedrigem Akku das Gerät abschaltet. Die Bedienung ist wesentlich angenehmer gelöst als im Original, da Du nun die Schrittweite bei herunter gedrücktem Encoder ändern kannst. Es sind 8 Stationstasten vorhanden um Frequenzen abzuspeichern...

Ich muss mal den Schaltplan zu ende Zeichnen und den hier posten. Da fehlt noch die Batterieüberwachung/Abschaltung und die Filterung des Ausgangssignals mit Treiber.

Ich habe die Entwicklungsumgebung übrigens hier unter Linux Mint laufen. Es kann sein, dass unter Windows etwas zusätzlich gemacht werden muss, glaube ich aber nicht.

Einen Rotary Encoder könnte ich dir schicken wenn Du einen Brauchst...
Viele Grüße
Semir
---------------------------------
"Alle sagten: Das geht nicht. Dann kam einer der wußte das nicht, und hat es gemacht."
(Prof. Hilbert Meyer, Uni Oldenburg)
Zitieren
#30
Hier der Sketch...


Angehängte Dateien
.zip   AD9850_LCD_ROTARY_WMENUS_SN_09.ino.zip (Größe: 4,91 KB / Downloads: 20)
Viele Grüße
Semir
---------------------------------
"Alle sagten: Das geht nicht. Dann kam einer der wußte das nicht, und hat es gemacht."
(Prof. Hilbert Meyer, Uni Oldenburg)
Zitieren
#31
(25.05.2019, 16:49)Semir schrieb: Hier der Sketch...

Ja danke. Was ich brauche, sind die gezipten lib Dateien.
Ich fange dann erstmal klein an mit dem Sketch von dem OM.

LG
old.
Zitieren
#32
Hallo Darius,

anbei die Rotars und falls Du irgendwann den AD9833 nutzen möchtest die AD9833 Library.

Die EEPROM Lib. ist schon in der Entwicklungsumgebung enthalten. Ich habe übrigens so ca. 3 Monate gebraucht bis ich in der Lage war Programme zu schreiben und habe viel hier gelesen:

http://arduino.cc/en/Guide/Libraries

Die Guides dort sind gut und es gibt viele Foren wo man nützliche Code Auszüge findet. Nicht alles ist verwendbar und funktioniert aber hier kann man ja beliebig oft den Arduino programmieren und testen...


Angehängte Dateien
.zip   Rotary.zip (Größe: 2,5 KB / Downloads: 17)
.zip   AD9833.zip (Größe: 28,93 KB / Downloads: 19)
Viele Grüße
Semir
---------------------------------
"Alle sagten: Das geht nicht. Dann kam einer der wußte das nicht, und hat es gemacht."
(Prof. Hilbert Meyer, Uni Oldenburg)
Zitieren
#33
(25.05.2019, 18:12)Semir schrieb: anbei ..

 Ich habe übrigens so ca. 3 Monate gebraucht bis ich in der Lage war Programme zu schreiben ...

Danke, Dein Sketch kompiliert jetzt, der von dem OM nicht.
Du bist ein Naturtalent. Ich tue mich mit Software sehr sehr schwer,
habe ein paar Sketche für smart home mit viel if und else geschrieben.
Dann ist bei mir schon Ende der Fahnenstange.

Jedenfalls ist so ein Sketch ohne die verwendete lib wie
eine Simulation ohne das spezielle Modell. Muss immer dabei sein.

LG
old.

PS:
Einen Rotary habe ich doch noch gefunden:

.jpg   rotary_alps.jpg (Größe: 55,79 KB / Downloads: 322)
Zitieren
#34
Ich habe den Fehler bei AD7C gefunden. Der Sketch hat komischerweise zwei Tabs.
Wenn ich den Code eines Tabs mit /* Code */ deaktiviere, wird der andere Teil kompiliert.


.jpg   20190525_Display_VFO.jpg (Größe: 132,93 KB / Downloads: 310)

.jpg   20190526_Rotary_Pushbutton.jpg (Größe: 135,4 KB / Downloads: 300)

LG
old.
Zitieren
#35
(24.05.2019, 23:44)Semir schrieb: Hallo Darius,

dieses Projekt habe ich für meine Stereo Modulatoren gemacht. Der Arduino Mini Pro erzeugt direkt per PWM die 25Hz für den Pilotton und steuert gleichzeitig den AD9833 auf dem DDS Modul an um diverse Frequenzen zu erzeugen. Damit habe ich quasi eine Lösung die mich von Quarzen unabhängig macht:

https://radio-bastler.de/forum/showthread.php?tid=9265

Feine Sache. Ich habe mal das Datenblatt vom AD9850 überflogen. Der kann auch PM.
Vorausgesetzt man kann den passenden Analogdigitalwandler-Sketch dafür schreiben.
Wer schafft das?
Für einen solchen C-QUAM-DDS-Modulator ist mein Konzept mit dem aufbereiteten
Differenzsignal genau das Richtige.

LG
old.


.jpg   20190526_AD9859.jpg (Größe: 132,42 KB / Downloads: 289)
Zitieren
#36
Hallo Darius,

soweit ich die PM Funktion des AD9850 verstanden habe geht die nur in diskreten Schritten um eine Digitale PSK zu machen. Es stellen sich dazu zwei Fragen:

1. in welchen Schritten lässt sich das Phasenregister programmieren? Oder anders formuliert welche Bitbreite hat es? Ich erinnere mich, dass es 8 Bit breit war, kann mich aber irren. Bei 8 Bit würde sich ein theoretischer Rauschabstand von 6x8 also 48dB für das Phasenmodulierte Signal ergeben. Das könnte gerade noch reichen ist aber nicht besonders gut.

2. In welcher Geschwindigkeit kann man das Phasenregister beschreiben? Die Phasenmodulation muss ja den Signalveränderungen des L-R Signals folgen. Bei einer Bandbreite von 10kHz (wie in den USA im AMax Standard üblich) wäre laut Shannon'schem Abtasttheorem mindestens eine Rate von 20kHz für die Updates des Phasenregisters nötig. Das ist aber nur der Theoretische Minimalwert. Praktisch wäre 30-50kHz nötig um Verzerrungen durch Aliasfrequenzen zu vermeiden.

Ich hatte, als ich den AD9850 gefunden hatte die gleichen Überlegungen wie Du angestellt, und war zu dem Schluss gekommen, dass der Chip dazu nicht geeignet ist, aber das war nur meine Schlussfolgerung.

Ich überlege allerdings das Ganze mit einem FPGA wie z.B. dem Altera Cyclone II EP2C5

https://www.intel.com/content/dam/www/pr...cii5v1.pdf

zu realisieren. Das erfordert aber das ich mich in eine Programmiersprache wie VHDL einarbeite was ich im Moment langsam tue. Der Anstoß war das "Hedghog" Projekt von Frank Cuffe in den UK Foren "Vintage Radio Repair" und "Golborne". Das wird aber ein langer steiniger Weg. Über die Foren habe ich auch Kontakt zu Jeffrey Borinsky der viel Erfahrung mit FPGAs hat und werde Ihn wenn ich etwas fitter geworden bin konsultieren. Die FPGAs sind eigentlich prädestiniert für CQUAM weil sie folgenden Funktionsblöcke enthalten:

- PLLs für beliebige Takte.
- Addierer und Multiplizierer z.B. um per DDS Sinus und Cosinus Träger zu erzeugen
- Logische Blöcke wie in GALs/PALs
- FPGA EP2C5 auf Entwicklerboard mit Takterzeugung und EEPROM für den FPGA-Code kostet nur ca. 10€.
- Programmierer "USB Blaster" Klon kostet in China €3,00.
- Die Entwicklungsumgebung "Quartus" gibt in der "Web Edition" bei Intel kostenlos

Mir schwebt eine Implementierung in ca. 12-14 bit vor das ergäbe einen Rauschabstand von 72-84dB und sollte für Audio im AM Bereich reichen was den Rauschabstand anbelangt. Als Samplingfrequenz Audioseitig würde ich eine im Audiobereich übliche wie 48kHz o.ä. verwenden. Am Ausgang wäre das Signal dann nach Modulation als 12-14 Bit Wort mit einem Samplingtakt von 4x-8x Trägerfrequenz auszugeben, also bei einem Träger von z.B. 1440kHz wären das 5,76 oder 11,52 MHz Abtastrate. Das schafft der FPGA im Schlaf. Das Signal müsste dann noch per R2R Netzwerk in die analoge Form gebracht und mit einem Tiefpassfilter geglättet werden, durch das 4-fach bzw. 8-fach Oversampling ein einfacher Prozeß mit wenigen LC Bauteilen . Auch eine Ausgabe als L+R (mit einstellbarer Verzögerung) und Exciter-Träger wäre denkbar wenn wir unseren 1kW Sender (Späßlein) bauen...
Viele Grüße
Semir
---------------------------------
"Alle sagten: Das geht nicht. Dann kam einer der wußte das nicht, und hat es gemacht."
(Prof. Hilbert Meyer, Uni Oldenburg)
Zitieren
#37
Bezüglich des Phasenrauschens brauchst Du Dir keine Sorgen zu machen.
Ich habe eben den Träger in Stellung Zwangsstereo abgehört.
Das solltest Du doch auch können?

Bei Dingen wo man eine Computersprache lernen muss, bin ich wegen absoluter
Unfähigkeit außen vor.

LG
old.
Zitieren
#38
Hallo Semir und Darius,

zumindest Realtime FM kann man mit dem AD9850 einfach erzeugen

https://zissisprojects.wordpress.com/201...no-ad9850/

Vielleicht ergibt das ein paar Ideen.

Gruß

(Reflex-)Kalle
Zitieren
#39
Genialer link, Kalle.  Smiley34

Da die Hardware steht (der Niederfrequenzteil aus meinem Modulator + AD9850),
fehlt nur noch der PM-Sketch für CQUAM. Aber man kann auch aus dem FM-Modulator
einen PM-Modulator machen, indem man die Niederfrequenz über ein Differenzierglied
schickt.



Das kommt. Jetzt wo bekannt ist, wie man mit PM CQUAM macht, werden die
Karten neu gemischt.

LG
old.


.jpg   20190526_TSR05-2450.jpg (Größe: 71,13 KB / Downloads: 251)
Zitieren
#40
Da mir irgendwann mal unsere Kinder zum Geburtstag ein Arduino-Starter-Kit geschenkt haben, hab ich mal den DDS-Generator mit dem AD9850-Modul aus China auf dem kleinen Steckbrett zusammengesteckt. Funktioniert auch sofort:

   

Gruß

(Reflex-)Kalle
Zitieren


Möglicherweise verwandte Themen…
Thema Verfasser Antworten Ansichten Letzter Beitrag
  AM Modulator mit Trägersteuerung und XCF8.. Semir 41 19.432 14.02.2024, 23:25
Letzter Beitrag: Semir
Video Ilmenau_Teile, Teil 3. Ein UKW Ilmenau mit Arduino Nano navi 0 402 25.06.2023, 22:21
Letzter Beitrag: navi
  SI4703 und Arduino Nano, zweite Generation mit RDS saarfranzose 5 6.150 01.04.2020, 19:37
Letzter Beitrag: navi
  UKW Modulator mit Lime SDR und GNU Radio Semir 7 4.577 14.12.2019, 12:44
Letzter Beitrag: Reflex-Kalle
  AM Stereo (CQUAM) Modulator mit TBA120 und TBA520 Semir 71 52.818 24.05.2019, 23:35
Letzter Beitrag: Semir

Gehe zu: