Projekt: Netzteiltest mit Raspberry Pi 2 als Speicheroszilloskop
Aufgrund des allgemeinen Interesses eines anfragenden Forum-Users teile ich hier die abgespeckte Minimal-Version der A/D-Meßschaltung für den Raspiberry PI meines Netzteiltest-Projektes.
Um auch technische Aspekte wie das dynamische Lastregelverhalten, welches in vielen Netzteil-Reviews nicht weiter berücksichtigt wird, testen zu können, habe ich eine Testschaltung entwickelt. Diese umfasst eine Lastschaltung, eine Mess- und A/D-Wandlerschaltung und ein Mikrocontollersystem.
Die Einzelheiten zum Netzteiltest-Projekt sind hier zu finden:
Enermax Triathlor FC 550W im Vergleichstest
Die Netzteil-Testschaltung
Die Lastschaltung enthält einen NE555 basierenden Impulsgeber, dessen High- und Low-Zykluszeiten getrennt einstellbar sind. Dieser Impulsgeber schaltet OPV-geregelte Stromquellen permanent zwischen hohen und niedrigen Lastströmen an 12V2 (CPU) um, welche getrennt einstellbar sind. Die Stromquellen sind gegenwärtig mit bipolaren Transistoren realisiert, die bis 2x100W (2x8A) belastet werden können. Für höhere Belastungen wären mehr Lastkanäle und der Einsatz von IGBTs notwendig. Die anderen Spannungsschienen werden bisher mit Festwiderständen belastet.
Für die automatisierte Messung und Protokollierung wird ein „Raspberry Pi2“ als Zielsystem eingesetzt. Es verwendet ein BCM2835 System-On-a-Chip, das neben einem klassischen ARM Prozessor-Core verschiedene Funktionseinheiten (Video Core, SDRAM, GPIO) enthält. Seine GPIO-Pins (General Purpose Input/Output) werden auf einer zweireihigen 26-pin Pfostenleiste mit 17 digitalen I/O Pins nach Außen geführt. Einige Pins besitzen eine alternative Funktion, dazu gehört das hier verwendete schnelle SPI-Interface mit 2 Adressleitungen [CS].
Zum „gleichzeitigen“ Messen der Ausgangsspannungen wird der kostengünstige 4-Kanal 12Bit-A/D-Wandler MCP3204 eingesetzt. Er arbeitet nach dem Prinzip der sukzessiven Approximation und sendet sehr zeiteffektiv synchron zu einem laufenden Wandlungsvorgang die bereits festliegenden höherwertigen Bits seriell über den SPI-Bus.
40KHz Eingangstiefpassfilter schwächen transiente Spannungsspitzen (Spikes) ab. Multi-Turn Trimmer erlauben eine exakte Anpassung an die Eingangspegel entsprechend der softwareseitigen Skalierung. Eine TL431 Spannungsreferenz stellt die angestrebte Genauigkeit unter allen Temperatur- und Lastzuständen sicher.
Für die Ansteuerung der SPI Schnittstelle und der GPIO-PINs unter C erwiesen sich die Linux-Systemtreiber als nicht performant genug. Verwendet wurde daher die BCM2835 Bibliothek von Mike McCauley. Der MCP3204 wird bei 3.3V mit einem SPI-Takt von 2MHz betrieben, was 80 KS/s [80000 Messwerte pro Sekunde] erlaubte. Mit höheren SPI-Takten werden die Messergebnisse zunehmend ungenauer. Der Impulsgeber der Lastschaltung wurde auf 500Hz mit einem Tastverhältnis von 1:4 (hoher : niedriger Strom) eingestellt.
Das erstellte Testprogramm initiiert und protokolliert zunächst einen An-/Abschaltvorgang des Netzteils und überwacht dann die Spannungen im eingeschalteten Zustand. Interessante Spannungsverläufe werden in Log-Dateien im CSV-Format protokolliert. Ein separat implementierter Web-Server ermöglicht die Übertragung der Logdateien über das Netzwerk mittels HTTP-GET Befehl. Die Logdateien werden mit der auf numerische Berechnungen spezialisierten Software Matlab auf einem PC ausgewertet und veranschaulicht.
A/D-Meßschaltung für den Raspberry PI
Der Schaltplan:
Inp1: +12V, Inp2: +5V, Inp3: +3.3V, Inp4: +5Vsb
C-Sourcen:
Die auf das Auslesen des ADC vereinfachten Sourcen des C-Projektes:
Anhang anzeigen spidac-mini.rar
Installiert werden muss noch die C library for Broadcom BCM 2835 von Mike McCauley.
Von mir verwendet wurde die Version 1.36 auf einem Raspi 2.
Aufgrund des allgemeinen Interesses eines anfragenden Forum-Users teile ich hier die abgespeckte Minimal-Version der A/D-Meßschaltung für den Raspiberry PI meines Netzteiltest-Projektes.
Um auch technische Aspekte wie das dynamische Lastregelverhalten, welches in vielen Netzteil-Reviews nicht weiter berücksichtigt wird, testen zu können, habe ich eine Testschaltung entwickelt. Diese umfasst eine Lastschaltung, eine Mess- und A/D-Wandlerschaltung und ein Mikrocontollersystem.
Die Einzelheiten zum Netzteiltest-Projekt sind hier zu finden:
Enermax Triathlor FC 550W im Vergleichstest
Die Netzteil-Testschaltung
Die Lastschaltung enthält einen NE555 basierenden Impulsgeber, dessen High- und Low-Zykluszeiten getrennt einstellbar sind. Dieser Impulsgeber schaltet OPV-geregelte Stromquellen permanent zwischen hohen und niedrigen Lastströmen an 12V2 (CPU) um, welche getrennt einstellbar sind. Die Stromquellen sind gegenwärtig mit bipolaren Transistoren realisiert, die bis 2x100W (2x8A) belastet werden können. Für höhere Belastungen wären mehr Lastkanäle und der Einsatz von IGBTs notwendig. Die anderen Spannungsschienen werden bisher mit Festwiderständen belastet.
Für die automatisierte Messung und Protokollierung wird ein „Raspberry Pi2“ als Zielsystem eingesetzt. Es verwendet ein BCM2835 System-On-a-Chip, das neben einem klassischen ARM Prozessor-Core verschiedene Funktionseinheiten (Video Core, SDRAM, GPIO) enthält. Seine GPIO-Pins (General Purpose Input/Output) werden auf einer zweireihigen 26-pin Pfostenleiste mit 17 digitalen I/O Pins nach Außen geführt. Einige Pins besitzen eine alternative Funktion, dazu gehört das hier verwendete schnelle SPI-Interface mit 2 Adressleitungen [CS].
Zum „gleichzeitigen“ Messen der Ausgangsspannungen wird der kostengünstige 4-Kanal 12Bit-A/D-Wandler MCP3204 eingesetzt. Er arbeitet nach dem Prinzip der sukzessiven Approximation und sendet sehr zeiteffektiv synchron zu einem laufenden Wandlungsvorgang die bereits festliegenden höherwertigen Bits seriell über den SPI-Bus.
40KHz Eingangstiefpassfilter schwächen transiente Spannungsspitzen (Spikes) ab. Multi-Turn Trimmer erlauben eine exakte Anpassung an die Eingangspegel entsprechend der softwareseitigen Skalierung. Eine TL431 Spannungsreferenz stellt die angestrebte Genauigkeit unter allen Temperatur- und Lastzuständen sicher.
Für die Ansteuerung der SPI Schnittstelle und der GPIO-PINs unter C erwiesen sich die Linux-Systemtreiber als nicht performant genug. Verwendet wurde daher die BCM2835 Bibliothek von Mike McCauley. Der MCP3204 wird bei 3.3V mit einem SPI-Takt von 2MHz betrieben, was 80 KS/s [80000 Messwerte pro Sekunde] erlaubte. Mit höheren SPI-Takten werden die Messergebnisse zunehmend ungenauer. Der Impulsgeber der Lastschaltung wurde auf 500Hz mit einem Tastverhältnis von 1:4 (hoher : niedriger Strom) eingestellt.
Das erstellte Testprogramm initiiert und protokolliert zunächst einen An-/Abschaltvorgang des Netzteils und überwacht dann die Spannungen im eingeschalteten Zustand. Interessante Spannungsverläufe werden in Log-Dateien im CSV-Format protokolliert. Ein separat implementierter Web-Server ermöglicht die Übertragung der Logdateien über das Netzwerk mittels HTTP-GET Befehl. Die Logdateien werden mit der auf numerische Berechnungen spezialisierten Software Matlab auf einem PC ausgewertet und veranschaulicht.
A/D-Meßschaltung für den Raspberry PI
Der Schaltplan:
Inp1: +12V, Inp2: +5V, Inp3: +3.3V, Inp4: +5Vsb
C-Sourcen:
Die auf das Auslesen des ADC vereinfachten Sourcen des C-Projektes:
Anhang anzeigen spidac-mini.rar
Installiert werden muss noch die C library for Broadcom BCM 2835 von Mike McCauley.
Von mir verwendet wurde die Version 1.36 auf einem Raspi 2.
Anhänge
Zuletzt bearbeitet: