ATTiny als DA-Wandler

Gast #5795077
Lesenswert?

Hallo zusammen,

ich möchte das Prinzip eines R2R DA Wandler verstehen. Daher habe ich 
mir gedacht, ich bastel mir eine Platine. Da dies Neuland für mich ist, 
wollte ich mal hier in der Runde fragen, ob mein Schaltplan soweit ok 
ist.

PS: Mir ist klar das ich kein OP verwende, das ist mir auch in diesem 
Fall egal. Ich möchte nur über eine Steckbuchse eine 12V Spannung 
vorgeben, die dann auf eine 5V Spannung runter geregelt wird. Über eine 
weitere 2-Polige Steckbuchse möchte ich das Analogsignal mittels 
Oszilloskop prüfen.
Über den 6-Poligen Wannenstecker möchte ich den ATTiny Programmieren.

Danke im Vorraus
Angehängte Dateien:
#5795091
Lesenswert?

R-2R heißt so, weil der eine R den Wert x hat, der andere R den Wert 2x.
22k und 10k passen da nicht so recht.

Zudem könnte es je nach Samplefrequenz schlechte Effekte haben, das du 2 
Ports benutzt, denn die kannst du ja nicht gleichzeitig aktualisieren.
Beim Wechsel von A nach B bekommst du dann A Lo/Hi -> A Lo/B Hi -> B 
Lo/Hi.
Ich würde das daher auf 8 bit beschränken.

Das sind beides so Posten, die mir auf Anhieb aufgefallen sind, aber ob 
das auch reell Auswirkungen hat, weiß ich nicht.
Forsche und berichte, bitte...
Gast #5795100
Lesenswert?

Naja, da liegen wenige CPU Takte dazwischen. Zum Verstehen ok, 
professioniell nicht ok. Nimm 10k und 20k als Werte.

Eingangsseitig des U-Reglers 47-100uF, ausgangsseitig 10-20uF inkl. 
jeweils 100nF Keramik
#5795103
Lesenswert?

Dummy schrieb:
> Hallo zusammen,
>
> ich möchte das Prinzip eines R2R DA Wandler verstehen.

Dafür reichen 4-8 Bit. 10 Bit sind sowieso eine Illusion, dafür müssen 
deine Widerstände DEUTLICH genauer sein.

 Daher habe ich
> mir gedacht, ich bastel mir eine Platine. Da dies Neuland für mich ist,
> wollte ich mal hier in der Runde fragen, ob mein Schaltplan soweit ok
> ist.

Nö, wurde ja schon gesagt. Nimm WIRKLICH R und 2xR, dann hast du die 
kleinsten Probleme mit den Toleranzen. Also 2x10k in Reihe. Meine 
Empfehlung. Beschränke dich auf 6 Bit, das reicht zum Verstehen des 
Prinzips. Natürlich alle an einem Port, sinnvollerweise PA0-PA5.

> PS: Mir ist klar das ich kein OP verwende, das ist mir auch in diesem
> Fall egal. Ich möchte nur über eine Steckbuchse eine 12V Spannung
> vorgeben, die dann auf eine 5V Spannung runter geregelt wird.

???
Was hat das mit dem R2R DAC zu tun? Ach soo, du meinst die 
Stromversorgung des AVRs! Ohje, kann man das nicht NOCH umständlicher 
ausdrücken?

>Über den 6-Poligen Wannenstecker möchte ich den ATTiny Programmieren.

Die Pinbelegung scheint nicht zu stimmen, außerdem ist das Symbol 
maximal irritierend. So einen Wannenstecker zeichnet man wie in der 
Realität mit 2 Kontaktreihen.

https://www.mikrocontroller.net/articles/AVR_In_System_Programmer#ISP

Solche Miniknicke wie an R11 und R12 macht man nicht!

Schaltplan richtig zeichnen
Gast #5795111
Lesenswert?

Falk B. schrieb:
>> PS: Mir ist klar das ich kein OP verwende, das ist mir auch in diesem
>> Fall egal. Ich möchte nur über eine Steckbuchse eine 12V Spannung
>> vorgeben, die dann auf eine 5V Spannung runter geregelt wird.
>
> ???
> Was hat das mit dem R2R DAC zu tun? Ach soo, du meinst die
> Stromversorgung des AVRs! Ohje, kann man das nicht NOCH umständlicher
> ausdrücken?

Denke er meint einen OP am Ausgang des R2R zur Entlastung des 
Netzwerkes.
#5795123
Lesenswert?

Dummy schrieb:
> ich möchte das Prinzip eines R2R DA Wandler verstehen. Daher habe ich
> mir gedacht, ich bastel mir eine Platine. Da dies Neuland für mich ist,
> wollte ich mal hier in der Runde fragen, ob mein Schaltplan soweit ok
> ist.

Ich sehe da mindestens zwei Probleme.

1. Deine Widerstände haben nicht das Verhältnis 2:1, sondern 2.2:1. Es 
ist also ein R-2R2 Wandler. Das ergibt einen heftigen Fehler von 10%. 
Einen 10-Bit Wandler kannst du damit komplett vergessen. 3 Bit würden 
gehen. Korrekt baut man das so, daß man Widerstände eines Wertes mit 
geringer Toleranz verwendet und entweder immer zwei in Reihe für den 2R 
Part verwendet. Oder einen für 2R und zwei parallel für R. Durch 
Ausmessen kann man das noch verbessern; dazu sortiert man die 
Widerstände nach Größe und verwendet immer den jeweils kleinsten und 
größten für eine Reihen- (oder Parallel-) Kombination. Die aus der Mitte 
dann einzeln.

2. da es 10 Bit sind, kann der ATTiny gar nicht alle Bits auf einmal 
setzen. Es gibt beim Wechsel von einem Wert zum nächsten also immer 
einen illegalen Zwischenzustand. Ganz vermeiden kann man das, indem man 
die Bits mit einem Latch synchronisiert. Bzw, weil mehr als 8 Bit mit 
diskreten Widerständen ohnehin keinen Sinn ergeben, wird man 8 Bits von 
einem Port verwenden, die man dann auch alle auf einmal setzen kann.

Früher gab es auch Widerstands-Netzwerke für diesen Zweck. Mittlerweile 
sind DAC-IC aber so preiswert, daß sich das nicht mehr lohnt.
#5795449
Lesenswert?

Alexander S. schrieb:
> kennst Du diese Seite schon?
> 
https://www.tobiaspaul.net/dokuwiki/doku.php?id=elektronik:mikrocontroller:attiny26_dac

Ach guck. Noch einer, der Jespers DDS in schlechter nachgebaut hat. Hier 
das Original, nutzbar als "Funktionsgenerator des armen Mannes" mit 4 
Wellenformen und einstellbarer Frequenz:

http://www.radanpro.com/Radan2400/mikrokontroleri/Jesper%27s%20AVR%20pages%20-%20MiniDDS.htm

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