DDS mit arduino uno

Gast #5772698
Lesenswert?

Hallo Zusammen,

ich möchte nur zum Testen eine MiniDDS Schreiben. Meine Idee ist ich 
gebe 1000 Werte eines Sinus im Flash-Speicher vor und lasse die dann 
nach dem DDS -Verfahren ausgeben. Mein Problem ist nun, ich benötige ja 
noch einen DA-Wandler. Lässt sich dieser als R2R-Netzwerk ohne OP 
darstellen? Ich möchte wie gesagt nur den Sinus ausgeben und auf meinem 
Ossi Angezeigt bekommen. Ist dies möglich?

Da ich noch nie ein R2R Netzwerk gebaut habe, habe ich eine Frage und 
zwar wenn ich mich an das R2R Bild in Wikipedia halte, reicht es dann 
aus wenn ich einen 100k Ohm Widerstand nehme?
Gast #5772722
Lesenswert?

Didididum schrieb:
> Lässt sich dieser als R2R-Netzwerk ohne OP
> darstellen? Ich möchte wie gesagt nur den Sinus ausgeben und auf meinem
> Ossi Angezeigt bekommen. Ist dies möglich?

Das kommt auf die gewünschte Frequenz und die erforderliche 
Amplitudenauflösung deines Sinussignals an.
#5772727
Lesenswert?

Das hat mit der Frequenz nix zu tun, ein R2R funzt völlig unabhängig der 
Frequenz.
Die Auflösung wird wie bei jedem DAC durch die Anzahl der Bits bestimmt, 
und zwar immer nach dem gleichen Prinzip. 8 bit sind 8 bit.

@Didididum
Ja, das geht.
Wenn du erstmal nur das Prinzip verstehen willst oder es nur um ein 
Experiment geht, geht das mit einem Haufen Widerstände sogar ohne das es 
Präzisionsteile sind. Mehr wie 8 Bit werden da allerdings kaum schön 
funktionieren, da die normalerweise 1% Toleranz haben, d.h. irgendwann 
ist das ganze ungenauer als 1 Bit. Die Beziehung Bit/Pegel ist dann 
keine gerade Treppe mehr.
Du solltest das nicht ganz so hochohmig machen, das Oszi hat ja auch 
eine Eingangsimpedanz, 200k sind schon 20% der üblichen Imp des Oszis, 
da fehlt also schon was an der Amplitude.

Wenn du das Signal weiterverwursten willst, musst du dann mal aufrüsten:
- Bessere Widerstände, und/oder Abgleichmöglichkeit. Netzwerke haben oft 
untereinander weniger Abweichungen und ich wette es gibt fertige 
R2R-"ICs".
- Die Versorgungsspannung des µC bestimmt die Ausgangsspannung. Die muss 
also genau oder einstellbar sein.
- Um die recht hohe Impedanz des R2R zu verbessern sollte ein OP 
dahinter als Verstärker.
- Filter, die die Oberwellen etwas glattbügeln.
- Evtl. generell der Umstieg z.B. auf eine schnelle PWM, das spart 
einunddrölfzig Widerstände, kann aber natürlich nicht so hohe 
Nutzfrequenzen ausgeben.
- Andersrum die Verwendung eines R2R-DAC, der etwas bessere Auflösung 
und Genauigkeit bietet.

Um nur mal zu sehen wie ein DDS funzt kannst du aber einfach ne handvoll 
100k zusammenstöpseln und dir eine schöne Sinuskurve generieren.
#5772760
Lesenswert?

für einen einfache DAC reicht R2R völlig aus. Ich hab sowas schon öfter 
benutzt und hab dafür Widerstandsarrays benutzt. Da ist die komplette 
R2R Kette schon fertig enthalten. Verbraucht relativ wenig Platz und die 
Rs sind untereinander ziemlich gleich. Ist keine Hochpräzisionslösung 
und kann nur positive Spannungen, reicht aber aus um erstmal Erfahrungen 
zu sammeln. Wenn ich mich richtig erinnere gabs dazu auch schon Threads 
hier wo Schaltungen mit R2R-DAC besprochen wurden.
Beitrag #5773995 wurde von einem Moderator gelöscht.
Beitrag #5774045 wurde von einem Moderator gelöscht.
#5774083
Lesenswert?

Bei der Überlegung des Widerstandes bei R2R sollte man schon den 
Innenwiderstand der Kontrollerausgänge beachten.

 Was nutzt ein  R2R-Netzwerk von 1k und 2% Toleranz, wenn es von den 
Ausgängen eines Kontrollers geschaltet wird dessen Ausgänge 50 Ohm oder 
mehr haben?

Für Frequenzen höher als 1kHz ist allerdings ein Assemblerprogramm zu 
empfehlen. Wie man das macht, ist hier im Forum schon ausgiebig erörtert 
worden.
 Das Arduino-C dürfte wohl ziemlich "stottern" Dh. es wird kurze 
Unterbrechungen der Sinuskurve haben, weil zwischendurch vorhandene 
längere Befehlsfolgen waagerechte Kurventeile erzeugen.
#5774325
Lesenswert?

Didididum schrieb:
> Da ich noch nie ein R2R Netzwerk gebaut habe, habe ich eine Frage und
> zwar wenn ich mich an das R2R Bild in Wikipedia halte, reicht es dann
> aus wenn ich einen 100k Ohm Widerstand nehme?

zum Innenwiderstand der atmega8- Ausgänge würden 10k aus der E12-Reihe 
und 20k aus der E24-Reihe passen. größere Rs machen den Wandler zu 
langsam, kleinere verschwenden Strom bzw. bringen an den Ausgängen des 
Kontrollers zu große Fehlspannungen durch die Strombelastung.

besser wären aber SMD-Widerstände gleichen Werts (aus dem gleichen 
reel-Band bzw. gleicher Charge), die per eng ausgelegtem Leiterbahnbild 
thermisch gekoppelt sind, eben die R als ein Widerstand und die 2R als 2 
Rs hintereinander.
#5774469
Lesenswert?

spess53 schrieb:

>>Dann kauf doch einfach einen.
>
> R2R-Netzwerke gibt auch als DIL/SIL von z.B. von Bourns/Murata fertig zu
> kaufen.

Bleibt noch das Problem eines ausreichend genauen Analogschalters.
Sind R2R-Netzwerke wirklich billiger als z.B. ein 8-Bit-Wandler?
M.E. sollte man "selbstgestrickte" AD-Wandler höchstens bis 4 Bit
benutzen, was hier aber möglicherweise reichen würde.

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