Analogwandlung mit PWM

Auch wer nicht mit Mikrocontrollern bastelt, hat mit hoher Wahrscheinlichkeit schon einmal von PWM gehört: Sie ist die gängigste Variante, um die Helligkeit von LEDs zu steuern. Damit kommt sie nicht nur in dimmbaren LED-Leuchten zum Einsatz, sondern auch, um die Helligkeit von Bildschirmen zu regulieren.

Stellenmarkt
  1. Java / Kotlin Software Developer (m/w/d) in einem Cloud-Native-Stack
    PROSOZ Herten GmbH, Herten
  2. Data Scientist / Statistikerin / Statistiker / Epidemiologin / Epidemiologe - Hämatologie ... (m/w/d)
    Universitätsklinikum Frankfurt, Frankfurt am Main
Detailsuche

Die Funktionsweise der PWM ist ziemlich simpel und schnell erklärt: Anhand eines Taktsignals wird ein Zählerregister mit jedem Takt um eins erhöht, bis es einen vorgegebenen Maximalwert erreicht. Dann wird das Register auf 0 zurückgesetzt und der Vorgang beginnt erneut. Damit werden Pulse mit fester Frequenz erzeugt. Mittels eines Vergleichswerts wird das Verhältnis von 0- zu 1-Pegel während der Pulsperiode eingestellt.

Üblicherweise ist das so realisiert, dass der Ausgang der PWM-Einheit auf 1-Pegel liegt, solange der Wert des Zählerregisters kleiner als oder gleich dem Vergleichswert ist. Andernfalls liegt am Ausgang der 0-Pegel an und dieser Ausgang kann auf einen Ausgabe-Pin des Mikrocontrollers gelegt werden. Damit wird ein Rechtecksignal mit variablem sogenanntem Duty Cycle (auf Deutsch Tastgrad) erzeugt.

  • Größerer Ausschnitt aus dem erzeugten Signal: links ein reiner Sinus, rechts Überlagerung aus Sinus und Rechtecksignal. (Bild: Johannes Hiltscher, Golem.de)
  • Das Grundsignal, mit dem das PWM-Signal die Spannungspegel erzeugt. Hier erzeugt ohne Vorteilung des Systemtakts. (Bild: Johannes Hiltscher, Golem.de)
  • In den PWM-Modulen des RP2040 läuft ein Zähler zwischen 0 und einem Maximalwert. Bei jedem Zählschritt wird sein Wert mit einem Register (Counter Compare) verglichen; ist der Zähler kleiner oder gleich, wird eine 1 ausgegeben, sonst eine 0. (Bild: Johannes Hiltscher, Golem.de)
  • So funktioniert die Abtastratenkonvertierung: Anhand des Ausgangssamples werden neue Abtastpunkte mit der Frequenz des Mixers erzeugt. Bei niedrigen Frequenzen werden neue Punkte erzeugt, bei hohen nur einige ausgewählt. (Bild: Johannes Hiltscher, Golem.de)
  • Das Ausgangssignal ist nicht ganz sauber, aber als Sinus erkennbar. Die Frequenz stimmt auch, hier ein G4.  (Bild: Johannes Hiltscher, Golem.de)
In den PWM-Modulen des RP2040 läuft ein Zähler zwischen 0 und einem Maximalwert. Bei jedem Zählschritt wird sein Wert mit einem Register (Counter Compare) verglichen; ist der Zähler kleiner oder gleich, wird eine 1 ausgegeben, sonst eine 0. (Bild: Johannes Hiltscher, Golem.de)

Was ist ein Rechtecksignal?

Wie jedes andere Signal kann ein Rechtecksignal als Überlagerung von Sinusschwingungen dargestellt werden. Dazu kommt ein Gleichspannungsanteil, der dem Mittelwert der Spannung während einer Periode entspricht - also der Maximalspannung multipliziert mit dem Tastgrad. In der Animation unten findet er sich auf der Y-Achse, also bei 0 Hertz (Hz).

Golem Karrierewelt
  1. Apache Kafka Grundlagen: virtueller Zwei-Tage-Workshop
    22./23.11.2022, Virtuell
  2. Einführung in Unity: virtueller Ein-Tages-Workshop
    13.10.2022, Virtuell
Weitere IT-Trainings

Die Sinuskomponenten treten bei einem Vielfachen der Pulsfrequenz auf - erzeugen wir beispielsweise ein PWM-Signal mit einer Frequenz von 1 kHz, enthält es auch Frequenzen von 2, 3, 4 kHz usw. Eine Ausnahme bildet ein Signal mit 50 Prozent Duty Cycle, hier treten nur die ungeraden Vielfachen der Pulsfrequenz auf. Der Anteil der jeweiligen Obertöne variiert mit dem Duty Cycle, wodurch unterschiedliche Klangcharakteristika entstehen.

So erzeugt PWM Töne

Mit einem PWM-Modul lassen sich auf zwei Arten Töne erzeugen. Die erste erzeugt Rechteckwellen mit der Frequenz des gewünschten Tons. Oft wird dabei ein Duty Cycle von 50 Prozent genutzt, das Signal ist also ebenso lang auf 1-Pegel wie auf 0-Pegel. Der Gameboy beispielsweise bietet aber auch andere Duty Cycles an, wodurch die Klangfarbe variiert werden kann. Wie oben beschrieben ist die Grundkomponente der Signale immer eine Sinusschwingung mit der vom PWM-Modul erzeugten Pulsfrequenz.

Indem die Pulsfrequenz verändert wird, können Töne unterschiedlicher Höhe erzeugt werden. Allerdings klingen Rechteckwellen aufgrund der vielen Obertöne recht unangenehm. Das lässt sich durch ein Filter etwas in den Griff bekommen - beim Gameboy funktioniert die Tonerzeugung genau so. Ob einem das Ergebnis gefällt, bleibt trotzdem Geschmacksfrage.

Grundkomponenten der Konsolen-Synthesizer

Auf dem gleichen Grundprinzip bauen aber die Synthesizer aller Konsolen auf: Sie verfügen über eine Auswahl an Grundschwingungen, auf deren Basis Musik und Effekte erzeugt werden. Bei komplexeren Konsolen als dem Gameboy ist die Auswahl an Schwingungen größer. Neben Rechtecksignalen sind das üblicherweise Dreieck- oder Sägezahnsignale, manche Konsolen bieten auch Sinuswellen an. Die verschiedenen Signalformen haben jeweils verschiedene akustische Charakteristika. Oft kommen noch andere Funktionen wie Frequenz- oder Amplitudenmodulation hinzu, um eine Grundschwingung zeitabhängig zu variieren.

Das mit einem PWM-Modul nachzubilden, erfordert allerdings etwas mehr Aufwand - und führt uns zurück zum gesampelten Sound und damit zur zweiten Variante, mittels PWM ein Tonsignal zu erzeugen. Das Modul wird hierbei genutzt, um eine variable Ausgangsspannung zu erzeugen. Damit wird gesampelter Sound nachgebaut, was wesentlich mehr Freiheitsgrade bei der Klangerzeugung bringt. Für diese Variante habe ich mich entschieden.

Bitte aktivieren Sie Javascript.
Oder nutzen Sie das Golem-pur-Angebot
und lesen Golem.de
  • ohne Werbung
  • mit ausgeschaltetem Javascript
  • mit RSS-Volltext-Feed
 Retrosounds mit Raspberry Pi Pico: Auf dem Weg zur Pico-KonsoleSamples abspielen mit PWM 
  1.  
  2. 1
  3. 2
  4. 3
  5. 4
  6. 5
  7. 6
  8.  


Aktuell auf der Startseite von Golem.de
Cloudgaming
Google Stadia scheiterte nur an sich selbst

Die Technik war nicht das Problem von Alphabets ambitioniertem Cloudgaming-Dienst. Das Problem liegt bei Google. Ein Nachruf.
Eine Analyse von Daniel Ziegener

Cloudgaming: Google Stadia scheiterte nur an sich selbst
Artikel
  1. Tiktok-Video: Witz über große Brüste kostet Apple-Manager den Job
    Tiktok-Video
    Witz über große Brüste kostet Apple-Manager den Job

    Er befummle von Berufs wegen großbrüstige Frauen, hatte ein Apple Vice President bei Tiktok gewitzelt. Das kostete ihn den Job.

  2. Copilot, Java, RISC-V, Javascript, Tor: KI macht produktiver und Rust gewinnt wichtige Unterstützer
    Copilot, Java, RISC-V, Javascript, Tor
    KI macht produktiver und Rust gewinnt wichtige Unterstützer

    Dev-Update Die Diskussion um die kommerzielle Verwertbarkeit von Open Source erreicht Akka und Apache Flink, OpenAI macht Spracherkennung, Facebook hilft Javascript-Enwicklern und Rust wird immer siegreicher.
    Von Sebastian Grüner

  3. Vantage Towers: 1&1 Mobilfunk gibt Vodafone die Schuld an spätem Start
    Vantage Towers
    1&1 Mobilfunk gibt Vodafone die Schuld an spätem Start

    Einige Wochen hat es gedauert, bis 1&1 Mobilfunk eine klare Schuldzuweisung gemacht hat. Doch Vantage Towers verteidigt seine Position im Gespräch mit Golem.de.

Du willst dich mit Golem.de beruflich verändern oder weiterbilden?
Zum Stellenmarkt
Zur Akademie
Zum Coaching
  • Schnäppchen, Rabatte und Top-Angebote
    Die besten Deals des Tages
    Daily Deals • LG OLED TV 2022 65" 120 Hz 1.799€ • ASRock Mainboard f. Ryzen 7000 319€ • MindStar (G.Skill DDR5-6000 32GB 299€, Mega Fastro SSD 2TB 135€) • Alternate (G.Skill DDR5-6000 32GB 219,90€) • Xbox Series S + FIFA 23 259€ • PCGH-Ratgeber-PC 3000€ Radeon Edition 2.500€ [Werbung]
    •  /