Forum: Analoge Elektronik und Schaltungstechnik Per PWM+RC-Glied eine Dreieckspannung mit 800Hz erzeugen?


von Der T. (Gast)


Lesenswert?

Hallo!

Da ich es praktisch noch nicht gemacht habe wollte ich hier kurz fragen, 
bevor ich einen Testaufbau erstelle. Evtl. kann ja gleich einer sagen 
"Vergiss es" oder "Kein Problem"... :)  Controller wird irgendein 
kleiner AVR werden (Tiny26 oder Mega8)

Also:
Ich möchte (um einen DAC-IC zu sparen) ein Dreiecksignal von 50-800Hz 
erzeugen. Die Amplitude soll von (U-Spitze-unten) 1V bis (U-Spitze-oben) 
2,5V gehen. Dabei ist die Signalform (saubere Spitzen; nichts 
Sinusähnliches) besonders wichtig.

Hab ich da mittels PWM + RC-Glied eine Chance in bezug auf Signalform 
und Frequenz oder bin ich gezwungen einen ext. DAC zu verwenden?

:)

Schöne Grüße,
Techniker

von Matthias L. (Gast)


Lesenswert?

>Hab ich da mittels PWM + RC-Glied eine Chance in bezug auf Signalform
>und Frequenz oder bin ich gezwungen einen ext. DAC zu verwenden?

Klar geht das mit PWM.
Da aber EIN RC-Filter nicht sehr steil ist (-20dB/Dek), solltest du mit 
deiner PWM-Frequenz möglich weit weg von deiner max. Ausgangsfrequenz 
bleiben.

Über den Daumen würd ich sagen, f_PWM zehnmal größer, also über 8kHz.
Und das RC Filter auf etwas über 1kHz (größer 800Hz) einstellen.
Müsste aber mal nachgerechnet werden...

EDIT:
Theoretisch reicht als PWM Frequenz die doppelte max. Signalfrequenz. 
Aber nur dann, wenn du einen IDEALEN Tiefpass bauen kannst...

von Der T. (Gast)


Lesenswert?

Danke!
Mehr wollte ich vorerst garnicht wissen.. :-)


Dann mach ich mich jetzt mal an den Testaufbau.. ;)

von Falk (Gast)


Lesenswert?

@ Der Techniker (techniker)

>Hab ich da mittels PWM + RC-Glied eine Chance in bezug auf Signalform
>und Frequenz oder bin ich gezwungen einen ext. DAC zu verwenden?

Kann man machen.

>Über den Daumen würd ich sagen, f_PWM zehnmal größer, also über 8kHz.
>Und das RC Filter auf etwas über 1kHz (größer 800Hz) einstellen.
>Müsste aber mal nachgerechnet werden...

Naja, um gerade die Spitzen sauber hinzukriegen sollte man vielleicht 
nicht die PWM als DAC misbrauchen, sondern lieber über einen OPV als 
Integrator und ein Taktsignal mit 50% Tastverhältnis.

Rechtecksignal (50% DC) -> Integrator -> Dreieck.

Allerdings braucht man dann eine Möglichkeit, die Zeitkonstante zu 
verändern.
Hmm. Oder man schaltet einen zweiten OPV mit variabler Verstärkung 
dahinter. Das ist einfacher.

>Dann mach ich mich jetzt mal an den Testaufbau.. ;)

Ich würde erstmal drüber nachdenken und dann erst loslegen. Sonst läuft 
das nur auf viel geschrei und wildes Rumlöten hinaus.

MFG
Falk

von Der T. (Gast)


Lesenswert?

...wieso rumlöten? :)
-> Steckbrett! ;)

von Mandrake (Gast)


Lesenswert?

Um ein Dreiecksignal zu erzeugen braucht man eigentlich nur eine 
Stromquelle und einen Kondensator den man damit lädt.
Wenn du die Stromstärke steuerbar machst und die Ladepolarität des 
Kondensators umkehrbar machst hast du einen schönen Dreieckgenerator.
Mit der Stromstärke kannst du dann die Anstiegzeit regeln und mit der 
Polarität lädtst und entlädtst du den Kondensator fortwehrend. Das ganze 
natürlich von deinem uC gesteuert. Das Ausgangssignal durch einen 
Impedanzwandler oder Verstärker geschickt und du hast ein Dreiecksignal.

Ob die Geschichte mit einer PWM (gerade die Spitzen) so sauber 
hinzubekommen sind? Tiefpassfilter müssen schon sehr steil sein damit 
das gelingt.
Vielleicht wäre es aber eine Möglichkeit die ansteigende Flanke und die 
abfallende Flanke jeweils mit einer eigenen PWM getrennt zu erzeugen.
Nach der Filterung der beiden Signale schaltet man mit einem schnellen 
Multiplexer beide Signale abwechselnd auf den Ausgang. Die beiden 
PWM-Signale müssen sich dabei zeitlich etwas überlappen damit du die 
Rundungen mit dem Multiplexer praktisch abschneidest.
(Ist jetzt nur so eine Idee aber vielleicht hilft es weiter :-))

von Benedikt K. (benedikt)


Lesenswert?

Matthias L. wrote:

> Über den Daumen würd ich sagen, f_PWM zehnmal größer, also über 8kHz.
> Und das RC Filter auf etwas über 1kHz (größer 800Hz) einstellen.
> Müsste aber mal nachgerechnet werden...

Das muss es in der Tat:
Das Frequenzspektrum eines Dreiecks ist (theoretisch) unendlich groß. 
Mit einem unendlich steilen 1kHz Tiefpass erhält man daher einen 
sauberen 800Hz Sinus, wenn man per PWM ein 800Hz Dreieck ausgibt.
Wenn die Ecken vom Dreieck sauber sein sollen, sollte man mindestens die 
10 fache Frequenz, also 8kHz sauber wiedergeben. Daher wird es mit PWM 
etwas schwer. Ich würde also auch zur Integratormethode greifen.

von Matthias L. (Gast)


Lesenswert?

Da du nun schon fasst gerechnet hast, kann ich meine Werte ja etwas 
anpassen:
16MHz Quartz bei 8Bit Timer ergibt 62,5kHz
Wenn diese PWM-Frequenz von 62,5kHz jetzt einen Dreieck mit 1kHz 
Grundfrequenz erzeugen, gibt es folgende Frequenzen:
Signal:
 1;  3;  5;  7;  9; 11; 13; ...
Summen:
63,5; 65,5; 67,5; 69,5; ...
Differenzen:
61,5; 59,5; 57,5; 55,5; ...
PWM:
62,5

Somit wäre es sinnvoll, die Grenzfrequenz des Tiefpasses bei f_pwm/2, 
also bei etwa 30kHz anzusetzen.
Somit sind genug Oberwellen zur Erzeugung eines (ausreichend) steilen 
Dreiecks vorhanden. Und dasVerhältnis f_pwm/f_max_signal, welches etwa 
65 ist, erlaubt eine relativ kleine Stufenhöhe von ca 80mV (bei 5V 
Dreiecksamplitude)

Das sollte so funktionieren...

von déjà vu (Gast)


Lesenswert?

>PWM-Frequenz von 62,5kHz
tiny26 kann 8-bit-pwm dank PLL mit bis zu 250kHz ausgeben...
das waere eine faktor 312,5 hoehere frequenz. da sollte man auch mit 
einem einfachen tiefpass noch brauchbare ergebnisse bekommen.

von Matthias L. (Gast)


Lesenswert?

Das ist korrekt, allerdings ist zu bedenken, dass es für eine kleine 
Stufenhöhe mit jeder Overflow des PWM-Timers auf einen neuen Wert zu 
laden gibt. Also immer Interrupt rein, Wert holen und laden, RETI..

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.