mikrocontroller.net

Forum: Mikrocontroller und Digitale Elektronik Signalnachbildung über PWM


Autor: Kxx S. (kskolik)
Datum:
Angehängte Dateien:

Bewertung
0 lesenswert
nicht 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

Autor: kommutator (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
...etwa so?

http://en.wikipedia.org/wiki/Switching_amplifier


Da gibt es jede Menge Lösungen für. Suchbegriffe:

*sinusbewertete PWM
*Class D Amplifier
*sigma delta

Autor: DDS (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert

Autor: Kxx S. (kskolik)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Ja, eine Class-D Endstufe ist im Prinzip, was ich benötige.

Nur, wie realisiere ich das am besten mit dem AT90PWM3B?

Zu dem Bild bei meinem ersten Beitrag: Das untere Diagramm (der Sinus) 
ist das Eingangssignal, das über UART kommt. Das obere Diagramm ist dann 
das generierte PWM Muster am Ausgang des µC.

Autor: Thomas Bremer (Firma: Druckerei Beste) (virtupic)
Datum:

Bewertung
0 lesenswert
nicht 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

Autor: Kxx S. (kskolik)
Datum:

Bewertung
0 lesenswert
nicht 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...

Autor: Kai G. (runtimeterror)
Datum:

Bewertung
0 lesenswert
nicht 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

Die Angabe einer E-Mail-Adresse ist freiwillig. Wenn Sie automatisch per E-Mail über Antworten auf Ihren Beitrag informiert werden möchten, melden Sie sich bitte an.

Wichtige Regeln - erst lesen, dann posten!

  • Groß- und Kleinschreibung verwenden
  • Längeren Sourcecode nicht im Text einfügen, sondern als Dateianhang

Formatierung (mehr Informationen...)

  • [c]C-Code[/c]
  • [avrasm]AVR-Assembler-Code[/avrasm]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] - Link zu Artikel
  • Verweis auf anderen Beitrag einfügen: Rechtsklick auf Beitragstitel,
    "Adresse kopieren", und in den Text einfügen




Bild automatisch verkleinern, falls nötig
Bitte das JPG-Format nur für Fotos und Scans verwenden!
Zeichnungen und Screenshots im PNG- oder
GIF-Format hochladen. Siehe Bildformate.
Hinweis: der ursprüngliche Beitrag ist mehr als 6 Monate alt.
Bitte hier nur auf die ursprüngliche Frage antworten,
für neue Fragen einen neuen Beitrag erstellen.

Mit dem Abschicken bestätigst du, die Nutzungsbedingungen anzuerkennen.