GPWM
Verbesserte Erzeugung von PWM-Signalen mit geringen niederfrequenten Frequenzanteilen.

Die Abkürzung GPWM kommt aus dem Englischen und bedeutet:
Gerd's Pulse-Width Modulation
Ein PWM Signal kann benutzt werden, um die mittlere Spannung zu reduzieren.
Beispiel: Ansteuerung DC Motor. Oder als DAC Ersatz.
Die Auflösung der PWM wird durch den maximalen Takt des PWM Moduls oder bei einer Software-PWM durch
die Taskzeit begrenzt. Je feiner die PWM Schrittweite gewählt wird, desto niedriger wird die PWM Frequenz.
Eine Software-PWM mit 1ms Taskzeit und 16 Schritten führt bei 50% PWM zu einer Grundfrequenz von 1kHz/16 = 62.5Hz.

Wird damit ein DC Motor angesteuert, führt die geringe Frequenz von 62.5Hz bereits zu Drehzahlschwankungen.
Durch Vertauschen der einzelnen PWM Pulse kann ein Signal mit gleichem Mittelwert erzeugt werden.
Die Grundfrequenz liegt jetzt bei 1000Hz:

Eine PWM wird in Hardware und Software ähnlich realisiert: Ein Zähler zählt kontinuierlich von 0 bis n.
Dieser Wert wird mit dem PWM Sollwert verglichen. Ist er gleich oder größer, wird der PWM Ausgang auf 1 gesetzt.

Bei der GPWM wird die Bitposition vertauscht. LSB wird zu MSB und umgekehrt. Das bei allen Bits.

Somit ergibt sich für eine GPWM mit 25%, 50% und 75% folgender Signalverlauf: