Forum: Mikrocontroller und Digitale Elektronik DAC mittels PWM


von /dev/null (Gast)


Lesenswert?

Hallo Leute,

habe mir eine kleinen DAC für meinen Atmega16 gebaut.
Dazu gebe ich eine PWM-Signal mittels Timer1 raus und
Filter dieses PWM-Signal mittels eines Tiefpasses.
Funktioniert eig. auch ganz gut, schöne stabile Gleichspannung.

Nur eine Sache stört mich.
Als ich mich mit der Theorie auseinander gesetzt hatte bin ich davon
ausgegangen das die Grenzfrequenz meines Tiefpasses um einiges größer 
sein
sollte als die PWM-Frequenz, damit über den Mittelwert des PWM-Signals 
die gewollte Gleichspannung rauskommt und keine gedämpfte Gleichspg.
(ab Grenzfrequenz des Tiefpasses  1. Ordnung halt 3dB pro Dekade).

Leider hat sich dieser nach einem praktischen Test als falsch erwiesen, 
nur verstanden habe ich nicht so richtig warum. In der Praxis habe ich 
die besten Resultate erziehlt wenn ich die Grenzfrequenz des Tiefpasses 
um ein vielfaches kleiner als die PWM-Frequenz eingestellt habe.

Wo ist mein Denkfehler?

Ein paar Daten noch:

PWM-Frequenz: ca. 4kHz, bei 10Bit Fast-Pwm
              Quarz: 4Mhz

Tiefpass: Grenzfrequenz: 0,7Hz
          Zeitkonstante: 0,22s
          R = 2,2k
          C = 100µF

von schätzer (Gast)


Lesenswert?

Ausgangsimpedanz Port?

von Achim M. (minifloat)


Lesenswert?

/dev/null schrieb:
> bin ich davon
> ausgegangen das die Grenzfrequenz meines Tiefpasses um einiges größer
> sein sollte als die PWM-Frequenz

Nein, die PWM-Frequenz nebst aller ihrer Oberwellen muss rausgefiltert 
werden, du willst doch eine Gleichspannung oder zumindest kleinere 
Frequenzen haben.
Auch kann wegen Nyquist die maximal abbildbare Frequenz nur halb so groß 
wie die Abtastfrequenz sein. Es lohnt sich also mit der 
Filtergrenzfrequenz weit unterhalb der PWM-Frequenz zu bleiben. Dies 
resultiert auch z.B. daraus, dass die Tiefpässe nicht ideal arbeiten, 
sondern einen kontinuierlichen Frequenzgang haben.

Du könntest ja einen Tiefpass zweiter Ordnung bauen. Wenn in dieser 
Schaltung
1
         ____         ____
2
PWM o---|_R1_|---*---|_R2_|---*---o OUT
3
                 |            |
4
              C1 =         C2 =
5
                 |            |
6
GND o------------*------------*---o GND
folgendes gilt
R1 < (10*R2) und/oder C1 > (10*C2)
kann man von keiner nennenswerten Beeinflussung des R1C1-Gliedes durch 
R2C2 ausgehen. Die Grenzfrequenz wird dadurch "schärfer" dargestellt.

Man erkauft sich das Ganze leider mit einem wenig belastbaren Ausgang, 
der ggf. mit einem OP-Amp als Spannungsfolger gepuffert werden sollte.

mfg mf

von Nachtaktiver (Gast)


Lesenswert?

In deinen beschriebenen Beobachtungen widersprichst du dich ein wenig.

Die Beobachtung das deine Grenzfreqeunz so klein wie möglich sein soll 
ist schon richtig. Erst dadurch kann dein Filter entsprechend arbeiten 
und eine große Dämpfung erreichen. Nachteilig ist dann die entsprechende 
Bandbreite welche erzielt werden kann. (Spielt aber bei Gleichspannung 
keine Rolle)

Als Beispiel:
Wenn deine Grenzfreqeunz des Filters bei 1kHz liegt und deine PWM eine 
Tastfreqeunz von 10kHz hat, hast du einen Unterschied von einer Dekade 
wodurch die Grundwelle des Rechtecksignales mit -3dB gedämpft wird.

Beträgt deine PWM nun 100kHz hast du 2 Dekaden Unterschied und deine
Grundwelle des Reckteckes wird mit -6dB gedämpft: Da deine Dämpfung hier
nun größer ist, wird dein Wechselspannungsanteil verringert und somit 
ist deine Gleichspannung welches du erzeugen möchtes "brummfreier".


Schnapp dir mal "LTSpice IV" und simulier ein wenig - So kannst du ganz 
einfach simulieren und ein wenig experimentieren.

von N. Müller (Gast)


Lesenswert?

Oder einfach so:
1
PWM o---|_L_|---*------o OUT
2
                 |            
3
              C1 =         
4
                 | 
5
GND o------------*-----o GND

von /dev/null (Gast)


Lesenswert?

Mini Float schrieb:
> Man erkauft sich das Ganze leider mit einem wenig belastbaren Ausgang,
> der ggf. mit einem OP-Amp als Spannungsfolger gepuffert werden sollte.

Ja einen rail-to-rail OP kommt noch dahinter, damit der nachfolgende 
"Verbraucher" meinen Elko des Tiefpasses nicht leerzieht.

Dann habe ich falsch gedacht, ich will also mein PWM-Signal nicht 
erhalten sondern gerade dieses herausfiltern. Somit die Grenzfrequenz 
des Filters um einiges kleiner als die PWM-Freqeunz.

Dann hätte ich bei meinen angegebenen Werte ungefähr eine dämpfung um 
-9dB.

von Kurt (Gast)


Lesenswert?

Warum geht hier keiner auf den grundlegenden Fehler ein?

> die Grenzfrequenz meines Tiefpasses um einiges größer
> sein sollte als die PWM-Frequenz

Die Grenzfrequenz deines Tiefpasses sollte möglichst klein
gegenüber der PWM-Frequenz F sein, aber möglichst groß
gegenüber der höchsten gewünschten Änderungsfrequenz f der
erzeugten "Gleichspannung"!

Die PWM-Frequenz ist doch nur ein Hilfsmittel, dass du
nicht im Ausgangssignal sehen willst, also herausfiltern
musst.

Erster Ansatz: Grenzfrequenz = Wurzel(f * F)

Je weiter f und F auseinander liegen, umso einfacher kann
der Tiefpass sein.

von Nachtaktiver (Gast)


Lesenswert?

@Kurt:
So kann ich das nicht stehen lassen.
Das Grundlegende habe ich oben schon erklärt. - Beziehungsweise 
versucht. :)

von N. Müller (Gast)


Lesenswert?

Nachtaktiver schrieb:
> Nachtaktiver

Hey Nachtaktiver...was bist Du wach? Es ist Tag !!! :-D

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.