M5-PWM als DAC

Aus Attraktor Wiki

Wechseln zu: Navigation, Suche

Von Peter (peter@attraktor.org)

Bilderprefix: M5-HW-PWM1-...

Kpst-Baustelle.jpg

Übersicht

PWM als DAC

Messaufbau

M5-HW-PWM1-01.jpg

Der Messaufbau besteht aus einem M5-Stick C mit 4x4-Tastatur zur Eingabe des Tastverhältnis in %. Leider akzeptiert Blockly nur ganze Prozente beim Tastverhältnis. Es können zwar beliebige Werte eingegeben werden, es kommt dann aber zu einem Laufzeitfehler! Dieses Verhalten zeigt sich auch bei 1kHz. Nach weiteren Tests kann ich definitiv sagen, dass nur ganzzahlige Werte für das Tastverhältnis zulässig sind.

Das PWM-Signal wurde dem ESP32 erzeugt. Programmiert wurde mit Blockly. Die Taktfrequenz des PWM wurde auf 10kHz eingestellt. Die Stromversorgung erfolgte über ein USB-Kabel vom PC.

Das PWM-Signal liegt auf GPIO 26. Von dort geht es in ein erstes Tiefpassfilter (1k0 & 10µF || 100nF ker., fg = 100Hz) und auf ein zweites Tiefpassfilter (1k0 & 10µF ker.). Das PWM-Signal wird mit dem Oszilloscope Rigol MSO1104Z, das Ausgangssignal des Filters ebenfalls mit dem Oszilloscope und dem Multimeter Rigol DM3068 gemessen.

Messungen

Das Multimeter zeichnet 5000 Messungen auf und errechnet daraus das Maximum, Minimum, Durchschnitt und Standardabweichung. Diese Werte habe ich im Folgenden aufgeschrieben.

Zuerst habe ich eine Testmessung vorgenommen um die grundsätzliche Funktion meines Testaufbaues zu überprüfen:

Messungen mit Rigol DM3068: 5000

  • Umax: 2,183192 V => 0,04%
  • Umin: 2,138123 V => -2,0%
  • Uavg: 2,182286 V
  • SDEV: 758,1760 µV

Dann habe ich gezielte Messungen durchgeführt.

Messungen mit Rigol DM3068:

  • PWM: abgetrennt --> leider keine Aufzeichnung durch das Multimeter
  • Umax: V => % Spannungen um die 500µV gemessen
  • Umin: V => -% mit starken Schwankungen.
  • Uavg: V
  • SDEV: µV

Messungen mit Rigol DM3068: 5000

  • PWM: 100%
  • Umax: 3,302355V => 0,032%
  • Umin: 3,299042V => -0,068%
  • Uavg: 3,301300V
  • SDEV: 418,8879µV

Messungen mit Rigol DM3068: 5000

  • PWM: 70%
  • Umax: 2,315021V => 0,037%
  • Umin: 2,312164V => -0,087%
  • Uavg: 2,314156V
  • SDEV: 323,3050µV

Messungen mit Rigol DM3068: 5000

  • PWM: 50%
  • Umax: 1,656013V => 0,043%
  • Umin: 1,654131V => -0,071%
  • Uavg: 1,655301V
  • SDEV: 233,7657µV

Messungen mit Rigol DM3068: 5000

  • PWM: 51%
  • Umax: 1,688115V => 0,035%
  • Umin: 1,686198V => -0,078%
  • Uavg: 1,687521V
  • SDEV: 223,0432µV

Messungen mit Rigol DM3068: 5000

  • PWM: 25%
  • Umax: 0,8300434V => 0,041%
  • Umin: 0,8292528V => -0,055%
  • Uavg: 0,8297056V
  • SDEV: 94,73960µV

Messungen mit Rigol DM3068: 5000

  • PWM: 10%
  • Umax: 0,333044V => 0,044%
  • Umin: 0,327292V => -1,68%
  • Uavg: 0,3328968V
  • SDEV: 47,29652µV

Messungen mit Rigol DM3068: 5000

  • PWM: 0%
  • Umax: 3,108839mV => %
  • Umin: 2,539462mV => -%
  • Uavg: 2,724854mV
  • SDEV: 58,06827µV

Leider sind alle obigen Messungen mit USB-Stromversorgung aus dem PC erfolgt. Nun musste ich feststellen, dass dadurch erhebliche Störspannungen auf der gemessenen Spannung lagen. Also alles wieder auf Anfang!

Testmessung mit Betrieb aus Powerbank:

Messungen mit Rigol DM3068: 5000

  • PWM: 50%
  • Umax: 1,655476V => 0,038%
  • Umin: 1,653261V => -0,096%
  • Uavg: 1,654842V
  • SDEV: 243,8869µV

Die Störspannungen haben offensichtlich keinen Einfluss auf die Gültigkeit der obigen Messungen. Die Abweichung der mittleren Spannung beträgt -0,028%, die Abweichungen der Messung liegen im großen und ganzen im Bereich der ersten Messungen.