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)
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:
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)
(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.
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)
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.
(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]
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.
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)
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)
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:
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...
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)
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.
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.
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:
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.
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
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)
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.
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.
27.05.2019, 12:01 (Dieser Beitrag wurde zuletzt bearbeitet: 27.05.2019, 12:02 von Reflex-Kalle.)
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: