Forum: Mikrocontroller und Digitale Elektronik Wie mit einem attiny/atxmega eine analoge Ausgansspannung erzeugen?


von Jan (Gast)


Lesenswert?

Hi.

Ich muss eine Regelspannung (Impedanz <=100kOhm) zwischen 2.5V bis 6V 
erzeugen. Der Rippel soll <=2mV sein. Zur Verfügung steht ein PWM-Timer, 
oder ich könnte auch einen xmega einsetzen und den dort vorhandenen DAC 
verwenden.

Mir fehlt da jetzt aber die Idee, wie ich halt die 2.5-6V hinbekomme. 
Die Versorgungsspannung ist 12V, die von einem Linearregler auf 3.3V 
gesenkt wird. Damit wird der attiny oder der xmega versorgt. Ich kann 
also auf 12V und 3.3V zugreifen.

Kann man sowas irgendwie relativ leicht mit einem OpAmp zaubern, oder 
muss ich einen externen DAC kaufen, der 6V verträgt?

von Falk B. (falk)


Lesenswert?

https://www.mikrocontroller.net/articles/Pulsweitenmodulation#DA-Wandlung_mit_PWM

Für 2mV Ripple muss man halt niederfrequent filtern, das kann man mit 
dem ohnehin benötigten OPV machen, Stichwort aktiver Filter, Sallen-Key 
etc.

von gescheiter (Gast)


Lesenswert?

Jan schrieb:
> Kann man sowas irgendwie relativ leicht mit einem OpAmp zaubern

Ja, kann man.

von HildeK (Gast)


Lesenswert?

Jan schrieb:
> Kann man sowas irgendwie relativ leicht mit einem OpAmp zaubern,

Ja, R2R-OPA, der 12V verträgt, in nicht invertierender Beschaltung. Gib 
1.25 .. 3V aus und verstärke um Faktor 2. Du brauchst eh einen Tiefpass 
für die PWM, dann dient der OPA auch als Buffer. Vielleicht auch mehrere 
für einen aktiven Tiefpass höherer Ordnung bei deinen hohen 
Anforderungen an den Ripple.

Jan schrieb:
> (Impedanz <=100kOhm)
Kann alles heißen, bis runter zu nahe Null 😀. Was ist denn die minimale 
Impedanz?

von N. M. (mani)


Lesenswert?

Du hast leider nichts zu Dynamik, Auflösung oder Genauigkeit gesagt.

Wenn das Analogsignal nicht zu dynamisch sein soll oder man die PWM 
Frequenz beliebig hoch drehen kann, kann man das natürlich 
dementsprechend leicht filtern. Manche uC bieten auch anstatt PWM noch 
PCM oder PPM an wodurch man etwas mit dem Spektrum spielen kann wodurch 
der Filter etwas leichter zu designen ist.

Ansonsten halt den DAC verwenden. Der Xmega hat scheinbar 1MSPS. Das ist 
schon ein Wort. Dann noch ein OP dahinter und den Offset und Gain 
anpassen.
Einfaches Dokument dazu:
https://www.ti.com/lit/pdf/sloa097

von Kurt (Gast)


Lesenswert?

Das ist möglich: Damit wird mein 10 MHz Quarz per VariCap auf GPS-PPS 
fein abgestimmt. In meinem Fall alles ohne zusätzlichen OPV mit 3 
RC-Filter-Stufen.
Meine PWM nutzt 13 Bit, womit man bei Ubat = 5 V auf ca. 0,6 mV pro Step 
kommt. Die Filterung sorgt für einen Ripple von 0,2 mV. (Zufällig dein 
Zielwert), womit der Quarz < 0,1 ppm genau schwingen kann.

- PWM-Frequenz,
- PWM-Bits,
- Filterung und die
- Eigenschaften der Stell-Strecke (Wertänderung bei deinen 2,5 ... 6 V)
  müssen alle gegeneinander und gegen die
- gewünschte Zeitdauer bis zum Einschwingen aufgerechnet werden,

um die Erfolgschancen abzuschätzen.

von MaWin (Gast)


Lesenswert?

Jan schrieb:
> Kann man sowas irgendwie relativ leicht mit einem OpAmp zaubern

Du musst die PWM filtern, und da kommt es beim von dir gegebenem Ripple 
auf die Reaktionsheschwindigkeit an.

Ein ausreichendes einfaches RC Filter braucht ewig bis sich die Spannung 
einpendelt. Ein steiles aktives Bessel Filter 4. Ordnung reagiert 
schneller. Am schnellsten ist halt der DAC. Zur Umsetzung von 0-5V auf 
2.5-6V tut es ein OpAmp. mit Glück (weil es nur Abschwächung und nicht 
Verstärkung ist) auch ein Spannungsteiler an 12V.

http://www.lothar-miller.de/s9y/archives/11-RC-Glied-fuer-PWM.html

von Lothar M. (Firma: Titel) (lkmiller) (Moderator) Benutzerseite


Lesenswert?

Jan schrieb:
> Der Rippel soll <=2mV sein
Ist das jetzt eher ein theoretischer Wert? Oder hast du die Forderung, 
dass die Ausgangsspannung 2,5-6V nur mit einem Rauschen/Ripple von 2mV 
überlagert sein darf? Falls ja, dann stellt sich mir die Frage: sind da 
auch noch andere  größere (Last-)Ströme unterwegs? Denn 2mV sind für 
Digitalschaltungen recht sportlich und bedeuten: viel Spaß beim Layout.

> eine Regelspannung (Impedanz <=100kOhm) zwischen 2.5V bis 6V erzeugen.
HildeK schrieb:
> Kann alles heißen, bis runter zu nahe Null 😀.
Wenn die <=100k die maximale Ausgangsimpedanz der zu erzeugenden 
Spannung und damit der zu entwickelnden Schaltung ist, dann ist es recht 
einfach.

Wenn mit <=100k allerdings die Eingangsimpedanz der nachfolgenden 
Stufe gemeint ist, dann ist die Aufgabe nicht lösbar.

Allerdings wäre es hier wieder mal sinnvoll, die eigentliche Aufgabe zu 
schildern, und nicht, wie die angestrebte Lösung aussehen soll.
Kurz: was soll denn da angesteuert werden? Gibt es ein Datenblatt 
dazu?

von Jan (Gast)


Angehängte Dateien:

Lesenswert?

Lothar M. schrieb:
> Allerdings wäre es hier wieder mal sinnvoll, die eigentliche Aufgabe zu
> schildern, und nicht, wie die angestrebte Lösung aussehen soll.
> Kurz: was soll denn da angesteuert werden? Gibt es ein Datenblatt
> dazu?

Typischer TO-Fehler, der sich ja nicht alles vorkauen lassen will :D

Anbei das Datenblatt. Geregelt werden soll die Ausgangsspannung des 
Netzteils via µC auf einer externer Platine, die ihre eigene 
Versorgungsspannung von den dort (am Stecker des Netzteils) auch 
vorhandenen 12V beziehen wird.

Die 2mV sind nicht berechnet, sondern nur mal aus der Hüfte geschossen. 
Wahrscheinlich wären auch 5mV noch ok, aber bei 36V Ausgangsspannung ist 
der Regelverstärkungsfaktor 10.

von Dieter R. (drei)


Lesenswert?

Jan schrieb:

> Die 2mV sind nicht berechnet, sondern nur mal aus der Hüfte geschossen.
> Wahrscheinlich wären auch 5mV noch ok, aber bei 36V Ausgangsspannung ist
> der Regelverstärkungsfaktor 10.

Bei 240mV Ripple/Noise und 180 mV Regelgenauigkeit vielleicht doch ein 
bisschen überzogen?

von Jan (Gast)


Lesenswert?

Dieter R. schrieb:
> Bei 240mV Ripple/Noise und 180 mV Regelgenauigkeit vielleicht doch ein
> bisschen überzogen?

Äh nein? max. != typ.

von Dieter R. (drei)


Lesenswert?

Jan schrieb:
> Dieter R. schrieb:
>> Bei 240mV Ripple/Noise und 180 mV Regelgenauigkeit vielleicht doch ein
>> bisschen überzogen?
>
> Äh nein? max. != typ.

Ja, und 7,2 != 10.

von Jan (Gast)


Lesenswert?

bump

von Robert M. (r0bm)



Lesenswert?

Anbei zwei Bessel-Filter (Fg=1Hz) mit zweifacher Verstärkung. Anhand der 
PWM-Frequenz und der gewünschten Restwelligkeit bestimmst du die 
endgültige Grenzfrequenz und skalierst dann alle C-Werte entsprechend.

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.