Forum: Mikrocontroller und Digitale Elektronik DAC mit Addiere verheiraten! Was haltet ihr von der Idee?


von Hannes (Gast)


Lesenswert?

Hallo Leute,

ich war auf der Suche nach einem "günstigen" DAC mit seriellem Interface 
und min. 12Bit Auflösung. Geschwindigkeit ist relativ egal, da er nur 
eine Sollwertvorgabe macht die nicht unter einer Sekunde verändert wird.

Also zurück zum Problem.
ADCs mit größer 10Bit sind relativ teuer, von 12 Bit und drüber ganz zu 
schweigen.

Meine Idee wäre es jetzt, einfach zwei 8Bit DACs mit einer Referenz von 
jeweils 1,024V über einen Summierverstärker zu jagen bei einer 
verstärkung von 1V/V. Die Lösung kostet nur gut 1/3 eines 12Bit DACs.

Ist sowas "galant" oder wird soetwas auch wo anders gemacht?

von Hannes (Gast)


Lesenswert?

Oh mist...

So komm ich ja nur auf 9 Bit :-(
Dann muss da noch ein Muxer zu...

von Tom (Gast)


Lesenswert?


von Marc V. (Firma: Vescomp) (logarithmus)


Lesenswert?

Hannes schrieb:
> Meine Idee wäre es jetzt, einfach zwei 8Bit DACs mit einer Referenz von
> jeweils 1,024V über einen Summierverstärker zu jagen bei einer
> verstärkung von 1V/V. Die Lösung kostet nur gut 1/3 eines 12Bit DACs.

 Und was du an Auflösung gewinnst, verlierst du an Genauigkeit.
 Bleib bei 10bit oder nimm gleich einen anständigen 12bit ADC.

von Hannes (Gast)


Lesenswert?

Einen zwei Kanal 8 Bit DAC hätte ich im µC.

Aber wie ich bereits festgestellt habe, verdoppet sich ja nicht die 
Auflösung, sondern ich bekomme immer nur 1 Bit mehr :-(

von Cyblord -. (cyblord)


Lesenswert?

Hannes schrieb:
> Einen zwei Kanal 8 Bit DAC hätte ich im µC.
>
> Aber wie ich bereits festgestellt habe, verdoppet sich ja nicht die
> Auflösung, sondern ich bekomme immer nur 1 Bit mehr :-(

Ein Bit mehr = Verdopplung.

von Hannes (Gast)


Lesenswert?

cyblord ---- schrieb:
> Ein Bit mehr = Verdopplung.

Okay, Formulierungsfehler!

ich würde statt den 256 Schritten 512 bekommen. Brauche aber mehr als 
1024.

Ja ich hab bereits eingesehen das das ganze ad absurdum von mir war... 
:-(

von Dietrich L. (dietrichl)


Lesenswert?

Hannes schrieb:
> Aber wie ich bereits festgestellt habe, verdoppet sich ja nicht die
> Auflösung, sondern ich bekomme immer nur 1 Bit mehr :-(

Mit unterschiedlichen Referenzspannungen könnte vielleicht mehr gehen. 
Aber bis 12 Bit kommst Du vermutlich nicht. Allerdings habe ich diese 
Idee jetzt nicht tiefer durchdacht ...

Gruß Dietrich

von Purzel H. (hacky)


Lesenswert?

Man kann den ersten 8bit DAC mit Eins, den zweiten DAC mit 1/256 
gewichten und erhaelt 16 bit. Allerdings ist der Output dann nicht mehr 
monoton... die Frage ist nun, erreicht man monotone 12 Bit ? 10 Bit ?

von Peter D. (peda)


Lesenswert?

Hannes schrieb:
> da er nur
> eine Sollwertvorgabe macht die nicht unter einer Sekunde verändert wird.

Dann bietet sich doch eine PWM mit RC-Filter geradezu an. Billiger gehts 
nicht.

von Joachim B. (jar)


Lesenswert?

Hannes schrieb:
> Also zurück zum Problem.
> ADCs mit größer 10Bit sind relativ teuer, von 12 Bit und drüber ganz zu
> schweigen.

ist das teuer ?

http://www.idealo.de/preisvergleich/MainSearchProductCategory.html?q=LTC1655

ich finde nicht wenn mans braucht !

von TomA (Gast)


Lesenswert?

Hallo Hannes,

Atmel hat interessante Ansätze in den Apllikationsbeispielen "AVR400" 
und "AVR401". Dort wird der Analogkomparator eines µC, mit ein paar 
externen Bauteilen, zum A/D-Wandler.

Ich habe das vor Jahren mal aufgebaut, und dann mit einem geeichten 
Kalibrator überprüft. Die Schaltung war erstaunlich genau. Nur in den 
unteren und oberen ca. 5% des Messbereichs waren die Meßwerte nicht 
linear.

Da dieser A/D-Wandler hauptsächlich aus Software besteht, bist du nicht 
an die 6- oder 8-Bit Auflösung gebunden. Für höhere Auflösungen dauern 
die Messungen nur länger.

Schau es dir, bei Interesse, einfach mal an.

Gruß. Tom

von Christoph H. (Gast)


Lesenswert?

TomA schrieb:

> Da dieser A/D-Wandler hauptsächlich aus Software besteht, bist du nicht
> an die 6- oder 8-Bit Auflösung gebunden. Für höhere Auflösungen dauern
> die Messungen nur länger.

Ich glaube er möchte einen DAC und keinen ADC, auch wenn er oben beides 
vermischt.

von TomA (Gast)


Lesenswert?

Hallo Christoph,

danke für den Hinweis, ich dachte Hannes sucht einen ADC.

Für einen DAC ist es ja noch einfacher: Ein R2R-Netzwerk mit 12 
Eingängen und nachgeschalteten Impedanzwandler (OP) sollte genügen!

Gruß. Tom

von Tom (Gast)


Lesenswert?

TomA schrieb:
> Ein R2R-Netzwerk mit 12
> Eingängen

Klar, mit idealen uC-Ausgängen und idealen Widerständen kein Problem.

von Moppelchen (Gast)


Lesenswert?

Hannes schrieb:
> Addiere

was ist das?

von Joachim B. (jar)


Lesenswert?

Christoph H. schrieb:
> Ich glaube er möchte einen DAC und keinen ADC, auch wenn er oben beides
> vermischt.

mein Fehler hihi

http://www.analog.com/static/imported-files/data_sheets/AD7701.pdf

aber auch nicht so teuer !

von TomA (Gast)


Lesenswert?

Hallo Tom,

ist nicht so schlimm, denn Hannes will ja seriellen Anschluß.

Also zwei 8Bit-Schieberegister mit einer stabilen Versorgung als 
Referenz mit 1%igen Widerständen reichen dafür sicher und kosten nicht 
die Welt.
Mit Versorgung 4,096V am Schieberegister, bei 12Bit-Auflösung, ergibt 
sich eine Schrittweite von 1mV - das ist noch gut handhabbar. Kleinere 
Ausgangsspannungen kann er durch Spannungsteiler herunterteilen, was 
gleichzeitig den Rauschanteil heruntersetzt.

Gruß. Tom :)

von Peter D. (peda)


Lesenswert?

TomA schrieb:
> Also zwei 8Bit-Schieberegister mit einer stabilen Versorgung als
> Referenz mit 1%igen Widerständen reichen dafür sicher und kosten nicht
> die Welt.

1% ergibt nur knapp 7Bit.
Für 12Bit brauchst Du 0,02% Widerstände, die Fehler der Schaltstufen 
nicht mit eingerechnet. Das wird teuer.

von Yalu X. (yalu) (Moderator)


Lesenswert?

Hannes schrieb:
> ich war auf der Suche nach einem "günstigen" DAC mit seriellem Interface
> und min. 12Bit Auflösung.

Hannes schrieb:
> Einen zwei Kanal 8 Bit DAC hätte ich im µC.

Peter Dannegger schrieb:
> Dann bietet sich doch eine PWM mit RC-Filter geradezu an.

Man kann auch einen n-Bit-DAC mit einer m-Bit-Software-PWM kombinieren,
indem man den DAC periodisch mit einem durch die m Bits vorgegebenen
Tastverhältnis zwischen zwei benachbarten Analogwerten hin und her
schaltet. Durch dieses Konstrukt wird ein n+m-Bit-DAC nachgebildet. Die
Monotonie ist dabei garantiert.

Das setzt natürlich voraus, dass man einen schnellen Zugriff auf den
Hardware-DAC hat, was aber bei im µC integrierten DACs meist der Fall
ist.

Da die Amplitude des auf diese Weise generierten PWM-Signals nur 1/2**n
der Amplitude eines reinen (bspw. mittels einer Hardware-PWM-Einheit
generierten) PWM-Signals beträgt, ist die Restwelligkeit bei gleicher
PWM-Frequenz und gleicher Zeitkonstante des nachgeschalteten
Tiefpassfilters ebenfalls um den Faktor 2**n niedriger. Um mit einer
reinen PWM die gleiche Restwelligkeit zu erhalten, muss die deren
Frequenz um den Faktor 2**n höher liegen.

Beispiel:

Ein µC habe einen Prozessor- und I/O-Takt von f0=16777216Hz (2**24). Es
soll damit auf zweierlei Weise ein 12-Bit-DAC realisiert werden.

Alternative 1:

Man lässt einen mit f0 getakteten 12-Bit-Zähler/Timer ein reines
PWM-Signal generieren. Dieses hat den Spitze-Spitze-Wert û = VCC und die
Frequenz f = f0 / 4096 = 4096Hz.

Alternative 2:

Man benutzt einen 8-Bit-Hardware-DAC und generiert damit wie oben
beschrieben softwaremäßig ein PWM-Signal mit dem Spitze-Spitze-Wert û =
VCC/256 und der Frequenz f = 256Hz. Das Tastverhältnis wird dabei in 16
Stufen variiert, so dass der kürzeste zu erzeugende Impuls eine Länge
von 1s/(256·16) hat, was 4096 Taktzyklen von f0 entspricht und somit
kein Rechenzeitproblem darstellen sollte.

In beiden Fällen ist die Restwelligkeit r = û·p·(1-p)/(f·τ), wobei p das
Tastverhältnis und τ die Zeitkonstante des Tiefpassfilters ist. Setzt
man für beide Alternativen die Werte û und f ein, stellt man fest, dass
r in Alternative 2 (der Kombination aus DAC und Software-PWM) um den
Faktor 16 geringer ist.

Wenn der Controller sonst nicht viel zu rechnen hat, kann man die
Software-PWM-Frequenz noch um den Faktor 16 erhöhen und damit die
Restwelligkeit nochmals um den Faktor 16 verbessern. Oder man lässt die
PWM-Frequenz bei 256Hz und variiert das Tastverhältnis in 256 stat nur
16 Stufen. Das Ergebnis ist ein 16-Bit-DAC, dessen Restwelligkeit immer
noch um den Faktor 16 besser als die der reinen 12-Bit-PWM-Lösung ist.

Die Erweiterung der Auflösung eines Hardware-DACs mittels Software-PWM
ist also durchaus eine überlegenswerte Alternative zu einem reinen
PWM-DAC.

: Bearbeitet durch Moderator
von Ulrich H. (lurchi)


Lesenswert?

Einige µCs haben einen 12 Bit ADC. Man könnte die beiden 8 Bit DACs zu 
so zusammenaddieren, das man etwa 14 Bit Auflösung, aber mit saumäßigen 
Fehlern bekommt. Den passenden Wert könnt man durch nach messen mit dem 
ADC suchen durch annähern. Voraussetzung wäre aber das die 8 Bit DACs 
auch eine genügend geringes Rauschen haben. Das ist allerdings bei den 
µC internen eher nicht der Fall. Entsprechend wären die DACs dann auch 
nicht zur Erweiterung per PWM geeignet.

Es gib auch einigermaßen erschwingliche 12 BIT DACs, wenn auch mit nicht 
so guter Genauigkeit. Etwa MCP4921. ggf. müsste man auch da den ADC zum 
nachmessen bemühen.

Zum zusätzlichen Filtern des PWM Signals läßt sich auch eine S&H Stufe 
(CMOS Schalter + Kondensator + Pufferverstärker reicht aus) nutzen, die 
Synchron mit dem PWM Signal abtastet. Das wird zwar etwas nichtlinear, 
aber dafür ist die Rippelunterdrückung sehr gut. Wenn man beim PWM 
Signal eine etwas längere Periode vorsieht und erst im festen Teil 
abtastet, hält sich auch der Fehler in Grenzen.

von Falk B. (falk)


Lesenswert?

Mein Gott, die Idee, aus zwei billigen 8 Bit DACs ein tollen 10 oder 12 
Bit DAC zu machen ist so alt wie unbrauchbar. Es gibt ECHTE 10-16 Bit 
DACs für verdammt wenig Geld, die WIRKLICH das leisten, was der Name 
verspricht. Problem gelöst. Wir leben nicht mehr in den 70ern,  wo jeder 
Transistor ein Heidengeld gekostet hat und möglichst dreifach genutzt 
werden musste. 95 der hier genannten Selbstbaulösungen sind größer, 
stromhungiger, TEURER und schlechter als ein gescheiter IC vom Profi. 
Klingt komisch, ist aber so.

von Lothar (Gast)


Lesenswert?

Hannes schrieb:
> Einen zwei Kanal 8 Bit DAC hätte ich im µC.

Es gibt kleine uC ab 4 EUR mit 12-bit DAC z.B. LPC1517

von Wolfgang M. (womai)


Lesenswert?

Microchip MCP4822: 12 bit, 2 Kanäle, einfache Ansteuerung (SPI)
Kostet nicht die Welt (3 Euro/Stk. in kleinen Stückzahlen)

http://de.farnell.com/microchip/mcp4822-e-p/12bit-dac-spi-vref-dual-pdip8/dp/1439413

von Ulrich H. (lurchi)


Lesenswert?

Es kommt auf die Anwendung an, was man vom DAC verlangt. Die Auflösung 
ist da nur ein Parameter. Je nach Typ unterscheiden sich die DACs noch 
recht deutlich in den Eigenschaften:

Die dynamischen Typen im µC oder einig Audio Wandler haben z.B. realtiv 
viel Rauschen, so bis in die Größenordnung 1 LSB. Dazu kommt ggf. noch 
eine merklich Drift beim Skalenfaktor bei Audio Wandlern. Für so etwas 
wie die Einstellung der Spannung am Netzgerät ist so etwas eher 
unbrauchbar, zumindest ohne extra Filter.

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.