Forum: Mikrocontroller und Digitale Elektronik DDS mit arduino uno


von Didididum (Gast)


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?

von my2ct (Gast)


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.

von nachtmix (Gast)


Lesenswert?

Didididum schrieb:
> Meine Idee ist ich
> gebe 1000 Werte eines Sinus im Flash-Speicher vor

Das ist Unfug, denn du brauchst nur die Werte für eine Viertel Periode 
und dein selbstgefriemelter R2R-DAC wird nicht besser als 7 Bit werden.

von Jens M. (schuchkleisser)


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.

von nachtmix (Gast)


Lesenswert?

Didididum schrieb:
> reicht es dann
> aus wenn ich einen 100k Ohm Widerstand nehme?

Wenn du dich auf Audio-Frequenzen beschränkst, könnte das reichen.

von my2ct (Gast)


Lesenswert?

Jens M. schrieb:
> Das hat mit der Frequenz nix zu tun, ein R2R funzt völlig unabhängig der
> Frequenz.

Es gibt außer R2R noch eine Vielzahl anderer DA-Wandlermethoden

von Frank L. (hermastersvoice)


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.

von Wolfgang (Gast)


Lesenswert?


von max123 (Gast)


Lesenswert?

Arduino due hat 2 DAC?

von Egon D. (Gast)


Lesenswert?

Jens M. schrieb:

> Das hat mit der Frequenz nix zu tun, ein R2R funzt
> völlig unabhängig der Frequenz.

Durchaus nicht.

Versuche, 1MHz mit Widerständen von 1MOhm zu erzeugen,
und Du wirst Dein blaues Wunder erleben.

von Jens M. (schuchkleisser)


Lesenswert?

Egon D. schrieb:
> Versuche, 1MHz mit Widerständen von 1MOhm zu erzeugen,
> und Du wirst Dein blaues Wunder erleben.

Das liegt alleine an der Wahl der Widerstände und den parasitären 
Kapazitäten.
Das hat mit dem Prinzip des R2R sowas von nix zu tun.

von Ottmar K. (wil1)


Lesenswert?

@Didididum

Auf jeden Fall ist es ein nettes Experiment einen Sinus mit nem 
R2R-Netzwerk zu erzeugen. Auch wenn man dazu keine 1%Widerstaende 
verwendet. Der OP-AMP als Impedanzwandler ist aber schon erforderlich um 
das hochohmige Netzwerk nicht in die Knie zu zwingen.

Vielleicht hilft Dir der
Beitrag "DAC-R2R-Netzwerk mit PIC16F84"

mfG Ottmar

von Rudi D. (rulixa)


Angehängte Dateien:

Lesenswert?

Didididum schrieb:
> Hallo Zusammen,
>
> ich möchte nur zum Testen eine MiniDDS Schreiben.

http://www.elektronik-labor.de/AVR/DDSGenerator.htm

Da ist alles, auch mit Messungen. R2R mit 12k1, weil gerade vorhanden, 
auch.
Bei AVR's ist die Portausgangsimpedanz ausreichend klein um fast keinen 
Fehler im DAC zu sehen.

: Bearbeitet durch User
von Andi (Gast)


Lesenswert?

Fertiges R/2R Widerstandsnetzwerk, einfach und günstig:
https://www.digikey.de/products/de?keywords=4610X-R2R-103LF-ND

Beitrag #5773995 wurde von einem Moderator gelöscht.
von Wolfgang (Gast)


Lesenswert?

Peter schrieb im Beitrag #5773995:
> +/- 2 % MegaLOL

Der absolute Wert ist für das R2R-Netzwerk völlig egal.

von Beo Bachta (Gast)


Lesenswert?

Wolfgang schrieb:
> Der absolute Wert ist für das R2R-Netzwerk völlig egal.

Du meinst also die Widerstände in so einem Array haben
untereinander keine Toleranz.

Beitrag #5774045 wurde von einem Moderator gelöscht.
von Peter R. (pnu)


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.

von Peter R. (pnu)


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.

: Bearbeitet durch User
von Harald W. (wilhelms)


Lesenswert?

Didididum schrieb:

> Mein Problem ist nun, ich benötige ja noch einen DA-Wandler.

Dann kauf doch einfach einen. Das ist billiger, als sich sowas
selbst als R2R-Netzwerk zusammenzubauen.

von spess53 (Gast)


Lesenswert?

Hi

>Dann kauf doch einfach einen.

R2R-Netzwerke gibt auch als DIL/SIL von z.B. von Bourns/Murata fertig zu 
kaufen.

MfG Spess

von Harald W. (wilhelms)


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.

von SiNüsse und TangGänse (Gast)


Angehängte Dateien:

Lesenswert?

So ein R2R Wandler geht mit 0805 Widerständen von der Rolle wunderbar 
klein aufzubauen.

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
Noch kein Account? Hier anmelden.