Raspi als Oszi / Netzteiltester

Reina

Lt. Junior Grade
Registriert
Sep. 2008
Beiträge
295
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.
nttester-png.609240


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

netzteiltest_schematic-png.601968


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:

messschaltung-png.609242


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

  • nttester.png
    nttester.png
    21,8 KB · Aufrufe: 1.403
  • messschaltung.png
    messschaltung.png
    40,3 KB · Aufrufe: 1.573
Zuletzt bearbeitet:
Klingt für kleinere Netzteile nach einem Plan.

Welche Frequenz schafft deine Last? Denn die Lastwechsel moderner Grafikkarten erfolgen im Bereich >1kHz. Und das Regelverhalten der Netzteile liegt bei >10kHz. So gesehen ist das Netzteil mit nachregeln immer noch 10x schneller als die Last sich ändert.

Wirklich interessant ist also nur die Filterung der Spannungen im Netzteil. Sind hier die Kapazitäten groß genug, gibt es am Ende wenig bis nichts zu messen (Ergebnisse im Bereich 10-200mV und damit alles innerhalb der ATX Norm).

Nachtrag:

Alles andere wäre bei hochwertigen Netzteilen eine Überraschung denn Hersteller wie FSP, Seasonic, Delta, LiteOn und Co. haben große Labore für ihre Entwicklung. Die Ingenieure dort wissen um diese Problematik und werden mit Sicherheit einen passenden Schutz verbauen.
 
Zuletzt bearbeitet:
Hi Candy,

Die Belastung durch die Lastschaltung erfolgt mit Rechteckimpulsen hoher Flankensteilheit, die um Größenordnungen schneller ist, als die Anstiegszeit des Reglers in den Netzteilen (einige µs). Die Reaktion verschiedener Netzteile kannst Du in meinen verlinktem Netzteil-Review sehen.

Netzteile mit geringer Ausgangskapazität können im dynamischen Lasttest keine Bestwerte erzielen. Die Schnelligkeit des Reglers und die Ausgangsimpedanz vor der Regelung sind aber noch wichtigere Themen.

Wozu ich bisher leider nicht gekommen bin, ist eine ergänzende elektronische Last, um ein automatisches Testsystem realisieren zu können.
Hier bietet sich als D/A-Wandler z.B. der TLV5610 von Texas Instruments an. Er hat 8 Kanäle, 12 Bit Auflösung, ein SPI-Interface, die Ausgänge sind über ein asynchrones Load-DAC Signal gelatched und mit 1µs settling time und 10 V/µs Anstiegsgeschwindigkeit schnell (im Fast-Mode).
 
Zuletzt bearbeitet:
Zurück
Oben