Forum: Mikrocontroller und Digitale Elektronik Offset bei DA Ausgang


von marco s. (ch_piranha)


Lesenswert?

Guten Tag

Ich hoffe jemand kann mir bei folgendem Problem helfen:

Mit einem Summierverstärker realisiere ich einen 4-Bit DA-Ausgang von 
einem uC(Cortex, aber spielt ja keine Rolle). Die Ausgangsspannung soll 
von 12V - 22V reichen(Galvanisch getrenntes GND wird auf 12V gesetzt und 
somit habe ich 0 - 10V). Ich will aber keine negativen Spannungen 
brauchen.

---8k---    --------1.5k------              -------1.5k----
        |  |                  |            |               |
---4k---   |  12V             |            |   12V         |
        |  |   |              |            |    |          |
---2k---   |    - +           |            |     - +       |
        |  |      OP  -------------        |       OP ---------OUT
---1k-----------  -                |--1.5k-------  -

OP-Speisungen GND/24V

Das Problem:
Ich bräuchte vor dem ersten OP ein Signaloffset von 12V (sonst geht ja 
mein Signal auf dauerhaft 0V weil meine Schaltung invertiert und ich 
keine negative Spannung habe), ich glaube aber, damit würde ich den 
Strom von den vier Widerständen verändern welcher ja für die Verstärkung 
relevant ist. Wenn ich den Offset früher mache, brauche ich ihn vier 
mal....
Und nun die Hauptfrage: wie kann ich einen Offset von 12V machen? Alles 
andere ist dann nur ne Folgefrage...

Wenn die Fragestellung unklar ist, nur Fragen

Danke für die Antwort, marco

von Falk B. (falk)


Lesenswert?

@  marco s. (ch_piranha)

>Mit einem Summierverstärker realisiere ich einen 4-Bit DA-Ausgang von
>einem uC(Cortex, aber spielt ja keine Rolle).

Wenn es eh nur so was einfaches ist, reicht ein einfacher R^n DAC + 
Rail2Rail OPV hintendran. Ist für die Anwendung genau genug und man 
braucht keine Offsets oder negative Spannungen. Ggf. nimmt man einen 
PWM-Ausgang, dann ist es erst recht einfach und man hat sogar mehr 
Auflösung und weniger Pins.

MFG
Falk

von marco s. (ch_piranha)


Lesenswert?

Danke für die Rückmeldung!

Vermutlich werde ich aber nun eine OP-Verstärkung nach jedem uC Ausgang 
hinhängen und so die U_Out vom uC von 3.3V auf 15.3V verstärken, die 
Pegel sind dort ja nur 1/0 deswegen soll dies eigenlich kein Problem 
sein wenn ich richtig überlegt habe..., das gibt auch nur ein IC mehr, 
und ich habe noch genügend Platz auf meinem Print (zum Glück)

freundliche Grüsse marco

von Falk B. (falk)


Lesenswert?

@  marco s. (ch_piranha)

>Vermutlich werde ich aber nun eine OP-Verstärkung nach jedem uC Ausgang
>hinhängen und so die U_Out vom uC von 3.3V auf 15.3V verstärken,

Nicht sinnvoll. ERST der DAC mit 3V3, DANACH der Verstärker.

von marco s. (ch_piranha)


Lesenswert?

Ja das Problem ist nur, da ich den Offset vor dem DAC reinhauen muss, da 
sonst die Verstärkung an der negativen Begrenzung ansteht...

von Falk B. (falk)


Angehängte Dateien:

Lesenswert?

@  marco s. (ch_piranha)

>Ja das Problem ist nur, da ich den Offset vor dem DAC reinhauen muss,

Nö.

> da sonst die Verstärkung an der negativen Begrenzung ansteht...

Wer redet von einem OPV am DAC? Den kann man auch ohne bauen, der 
resultierende Fehler ist vernachlässigbar. Siehe Anhang.

MfG
Falk

von marco s. (ch_piranha)


Lesenswert?

Geht bei einem Summierverstärker nicht die Rückführung auf den negativen 
Eingang? Wodurch auch die Invertierung entsteht?
http://www.mikrocontroller.net/articles/Datei:Op-addierer.png
Oder ist dies eine mir unbekannte OP-Summier-Schaltung ohne 
Invertierung?
Wenn ich das richtig verstehe, sind die 1k -Pull-Down Widerstände für 
den Offset verantwortlich? Ich muss die mal aufbauen und Messen.

MFG
marco

von Falk B. (falk)


Lesenswert?

@  marco s. (ch_piranha)

>Geht bei einem Summierverstärker nicht die Rückführung auf den negativen
>Eingang? Wodurch auch die Invertierung entsteht?

In der klassischen Schaltung, ja.

>Oder ist dies eine mir unbekannte OP-Summier-Schaltung ohne
>Invertierung?

Der OPV hat mit der Summierung rein gar nichts zu tun, das ist ein rein 
passiver Summierer. Der einzige Nachteil ist hier, das die 
Digitalausgänge je nach Codewort auch Strom aufnehmen müsen, das ist 
aber kein Problem.

>Wenn ich das richtig verstehe, sind die 1k -Pull-Down Widerstände für

Es gibt hier keinerlei Pull-Down Widerstände.

>den Offset verantwortlich? Ich muss die mal aufbauen und Messen.

Einen Offset gibt es hier auch nicht, der wird per Software gemacht. 
Kann man aber per Hardware einbauen, wenn man das will. Einfach einen 
passenden Widerstand fest an 3V3 klemmen.

MFG
Falk

von marco s. (ch_piranha)


Lesenswert?

@ falk

Hab ich nun verstanden, danke für dine Hilfe!
Bis zum nächsten Mal

mfg marco

von marco s. (ch_piranha)


Lesenswert?

@ falk

Sag doch gleich, dass es sich um eine "Nicht Invertierende" 
Verstärkerschaltung handelt, bei welcher ich über ein vorgeschaltenen 
Spannungsteiler die Spannung verändern kann. ;)

Habe ich nun durchgerechnet, und funktioniert überhaupt nicht! ;)
Die Differenz zwischen zwei Spannungen entspricht nicht den üblichen 
Binär Schritten, welche ich aber brauche, dies ist vermutlich der Grund, 
warum diese Schaltung nicht angewendet wird.

oder hab ich wider etwas falsch verstanden?

mfg marco

von Falk B. (falk)


Lesenswert?

@  marco s. (ch_piranha)

>Sag doch gleich, dass es sich um eine "Nicht Invertierende"
>Verstärkerschaltung handelt, bei welcher ich über ein vorgeschaltenen
>Spannungsteiler die Spannung verändern kann. ;)

???
Soll ich dir auch sagen, dass der Himmel blau ist?

>Habe ich nun durchgerechnet, und funktioniert überhaupt nicht! ;)
>Die Differenz zwischen zwei Spannungen entspricht nicht den üblichen
>Binär Schritten,

Welche sind denn "üblich"?

>welche ich aber brauche, dies ist vermutlich der Grund,
>warum diese Schaltung nicht angewendet wird.

Nö.

>oder hab ich wider etwas falsch verstanden?

Falsch gerechnet.

Mein PSpice sagt mir, dass eine Stufe 143,5mV groß ist am Eingang vom 
OPV, bei 3,3V an den Digitalausgängen. Das kann man mit dem OPV beliebig 
skalieren.

MfG
Falk

von marco s. (ch_piranha)


Lesenswert?

@ falk, vermutlich ligt ein Rechnungsfehler vor ;) ich rechne nochmal.

Ne, dass der Himmel blau ist, stimmt sowiso nicht, ich war nur zu fest 
in meine Schaltung verhedet, dass ich die Einfachkeit nicht gesehen 
habe.
Wenn ich Rechne, komme ich aber folgende "obere" Widerstandswerte:
(Paralellschaltungen von 0-4 Widerständen
oo
8000
4000
2666.666667
2000
1600
1333.333333
1142.857143
1000
888.8888889
800
727.2727273
666.6666667
615.3846154
571.4285714
533.3333333 =1/(1/1000+1/2000+1/4000+1/8000)

welche mit 1k "unteren" Widerstand diese Spannungen ergeben:
=3.3/(R+1000)*1000

0
0.366666667
0.66
0.9
1.1
1.269230769
1.414285714
1.54
1.65
1.747058824
1.833333333
1.910526316
1.98
2.042857143
2.1
2.152173913

mit folgender Differenz:

-0.366666667
-0.293333333
-0.24
-0.2
-0.169230769
-0.145054945
-0.125714286
-0.11
-0.097058824
-0.08627451
-0.077192982
-0.069473684
-0.062857143
-0.057142857
-0.052173913

evtl. kannst du mir nun meinen Fehler zeigen, falsche Formeln?

Bei Serieschaltung würde ich von 0k-15k kommen, in 1k Schritten, ist 
vermutlich schwer realisierbar vier serielle Widerstände wahlweise 
Kurzzuschliessen oder nicht.

mfg marco

von marco s. (ch_piranha)


Lesenswert?

Wenn ich jedoch an jedem der vier Ausgänge einen Transistor hinhänge, 
zwischen welchen die vier Widerstände(1k, 2k, 4k, 8k) wären, welche 
wahlweise ihren Widerstand überbrücken, könnte dann vermutlich 
funktionieren, oder?

mfg marco

von Falk B. (falk)


Lesenswert?

@  marco s. (ch_piranha)

>Ne, dass der Himmel blau ist, stimmt sowiso nicht, ich war nur zu fest

>Wenn ich Rechne, komme ich aber folgende "obere" Widerstandswerte:
(Paralellschaltungen von 0-4 Widerständen
oo
8000
4000
2666.666667
2000
1600
1333.333333
1142.857143
1000
888.8888889
800
727.2727273
666.6666667
615.3846154
571.4285714
533.3333333 =1/(1/1000+1/2000+1/4000+1/8000)

welche mit 1k "unteren" Widerstand diese Spannungen ergeben:
=3.3/(R+1000)*1000

>evtl. kannst du mir nun meinen Fehler zeigen, falsche Formeln?

Die Widerstände sind wahlweise "oben" gegen 3V3 oder "unten" gegen 0V. 
Damit sind NICHT konstant 1K "unten".

Beispiele
1
R8 R4 R2 R1  "oben"                        unten"               Verhältnis   Ua
2
0  0  0  0    0-0                   1//1//2//4//8=0,533           0           0   
3
1  1  1  0   1//2//4=0,571                1//8=0,888              0,608       2,00
4
1  1  1  1   1//2//4//8=0,533               1                     0,652       2,15

MfG
Falk

von Falk B. (falk)


Lesenswert?

@  marco s. (ch_piranha)

>Wenn ich jedoch an jedem der vier Ausgänge einen Transistor hinhänge,
>zwischen welchen die vier Widerstände(1k, 2k, 4k, 8k) wären, welche
>wahlweise ihren Widerstand überbrücken, könnte dann vermutlich
>funktionieren, oder?

Nein, dann würde gar nix mehr gehen. So wie es ist, ist es quasi 
perfekt. Trust me! Der "Trick" ist, dass die CMOS-Ausgänge in beide 
Richtungen Strom liefen (source & sink).

Hack es in Pspice ein und schau es dir an.

MFG
Falk

von marco s. (ch_piranha)


Lesenswert?

@ falk

Aber in diesem Fall stimmt das Eagle-Schema nicht.
Und kann es sein, dass ich somit 8 digital_Outs benötige??

mfg marco

von MaWin (Gast)


Lesenswert?

Zur Ursprungsfrage:

> Ich bräuchte vor dem ersten OP ein Signaloffset von 12V

      +24V
        |
      533Ohm
        |
---8k---    --------1.5k------              -------1.5k----
        |  |                  |            |               |
---4k---   |  12V             |            |   12V         |
        |  |   |              |            |    |          |
---2k---   |    - +           |            |     - +       |
        |  |      OP  -------------        |       OP ---------OUT
---1k-----------  -                |--1.5k-------  -

> (Paralellschaltungen von 0-4 Widerständen
> welche mit 1k "unteren" Widerstand diese Spannungen ergeben:

Das gilt ja nur, wenn die Eingänge nur +3.3V oder offen wären,
nicht wenn die Eingänge CMOS-mässig an 3.3V/0V liegen.

Dann lässt man R5 mit 1k nach Masse besser einfach weg, und
hängt den OpAmp als Verstärker 3.3->24, also *7.27 dahinter
mit R6 = 6.27*R7

von Falk B. (falk)


Lesenswert?

@  marco s. (ch_piranha)

>Aber in diesem Fall stimmt das Eagle-Schema nicht.
>Und kann es sein, dass ich somit 8 digital_Outs benötige??

Bitte? Heute schwer von Begriff? Klemm VIER digitale 3V3 Ausgänge dort 
dran und gut.

von marco s. (ch_piranha)


Lesenswert?

@ falk

schwer von Begriff? Kann schon sein, aber ich blicke wirklich nicht 
durch, deswegen melde ich mich hier, ich sehe auf dem Schema einen 
Konstanten "unteren" Widerstand von 1k, aber du hast ihn in der 
Warheritstabelle verändert???

von Falk B. (falk)


Lesenswert?

@  marco s. (ch_piranha)

>schwer von Begriff? Kann schon sein, aber ich blicke wirklich nicht
>durch, deswegen melde ich mich hier, ich sehe auf dem Schema einen
>Konstanten "unteren" Widerstand von 1k, aber du hast ihn in der
>Warheritstabelle verändert???

Nö. deine Digitalen Ausgänge sind Push-Pull Ausgänge in CMOS.

http://www.mikrocontroller.net/articles/Ausgangsstufen_Logik-ICs#Push-Pull

damit können die offen Punkte der Widerstände einmal gegen 0V oder 3,3V 
geschaltet werden, dementsprechend "unten" parallel zu R5 liegen oder 
"oben".

Damit ist der Widerstand "oben" und "unten" je nach Code variabel.

MFG
Falk

von marco s. (ch_piranha)


Lesenswert?

@ MaWin, danke dass du auch Zeit investiert ;)

@ falk, jetzt hab ich es verstanden, danke!

mfg marco

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.