Signalnachbildung über PWM

#848474
Lesenswert?

Hallo,

nach langem Suchen im Forum habe ich leider nichts passendes gefunden.

Ich habe folgendes vor:
Mittels PWM möchte ich ein (beliebiges Signal) ausgeben. Besser gesagt 
möchte ich mit einer PWM eine Leistungsstufe (MOSFET incl. Treiber) 
ansteuern, welche mir dann das Signal nachbildet.

Das PWM Muster sollte dann in etwa so aussehen, wie auf dem angehängten 
Bild zu erkennen ist. Die Frequenz auf dem Bild ist erst einmal außer 
Acht zu lassen.

Für meinen Anwendungsfall reicht es nicht aus, eine feste sinusförmige 
Kurve nachzubilden, da sich diese in Frequenz und Amplitude ändert. 
Ebenfalls ist es nicht zwingend ein Sinus.

Prinzipiell habe ich da folgende Idee:
Ein Microcontroller erzeugt mir das nachzubildende Signal, dieses soll 
dann per UART an einen AT90PWM3B Controller übertragen werden, welcher 
mir dann das zugehörige PWM Muster generiert.

---   ---   ---
Bietet es sich an, das Muster mittels Software PWM zu generieren, oder 
gibt es eine Möglichkeit die Hardware PWM zu verwenden?
---   ---   ---

Zwei Controller sind deshalb notwendig, da der AT90PWM3B nicht über 
genügend A/D Wandler bzw. IO Ports verfügt.

Ich hoffe, ich habe das Problem hinreichend genau beschrieben.

Danke für reges Antworten :-)

-Kai
Angehängte Dateien:
(Firma: Druckerei Beste) #848528
Lesenswert?

Welche Frequenz hat denn dein Signal? PWM ist ja ein DAC. Und wenn der 
Duty Cycle digital gesteuert wird, dann kriegst du einen 
Quantisierungsfehler, der von der Prozessorfrequenz abhängt.

Wenn du Audio mit 20 kHz Bandbreite ausgeben willst und dein Prozessor 
(sorry, kenne die Daten nicht) das Timing mit 20 MHz Auflösung steuern 
kann, dann kriegst du 20 MHz  20 kHz  2 = 500 Werte. Hast also einen 
DAC von 9 Bit Auflösung.

Ich weiß, Klasse D-Verstärker hören sich teilweise prima an. Keine 
Ahnung, wie man dran drehen muss, damit es klappt.

virtuPIC
#848540
Lesenswert?

Das Signal hat eine Frequenz von unter 1kHz. Ist allerdings variabel im 
Bereich von 100Hz - 1kHz (ungefähr).

Vielleicht reden wir gerade aneinander vorbei, oder ich habs noch nicht 
ganz verstanden.

Ich hab mir das so vorgestellt, dass das nachzubildende Signal über UART 
kommt, mit einem Timerstand verglichen wird (halt PWM) und dann an den 
µC Pins wieder ausgegeben wird.

Also wie kann ich den Vergleich durchführen? Normalerweise wird bei der 
PWM ja das Zählregister mit dem OCR (wenn ich das jetzt richtig im Kopf 
habe) verglichen, und damit der Ausgang geschaltet.
Jetzt habe ich aber keinen festen Wert in dem Vergleichsregister, 
sondern den "variablen" Wert von meinem Signal...
#848561
Lesenswert?

>Jetzt habe ich aber keinen festen Wert in dem Vergleichsregister,
>sondern den "variablen" Wert von meinem Signal...

Das sollte aber kein Problem sein, wenn deine PWM-Frequenz deutlich 
höher als die des zu modulierenden Signals ist.

Ich weiß nicht, ob beim Ändern des OCR-Wertes was beachtet werden muss 
(insbesondere beim Herabsetzen der Grenze), denke aber nicht. Probier's 
doch einfach mal aus.

Antwort schreiben

Bitte melde dich an, um einen Beitrag zu schreiben.

oder

Mit Google-Account einloggen

Die Registrierung ist kostenlos und dauert nur eine Minute.

Jetzt registrieren