User Tools

Site Tools


sbcs:raspberry_pi:pi_5_stromversorgung

Stromversorgung (Pi 5)

YouTube Video #79


Original 27W Netzteil (5.1V, 5A)

Das originale Netzteil verwendet USB-PD, um den Pi5 mit max. 5A zu versorgen. Das ist aber über der eigentlichen USB-PD Spezifikation - die geht bei 5V max. bis 3A (siehe hier). Danach sollte normalerweise die Spannung steigen auf 9V, um den Strom gering zu halten. Das kann der Pi5 aber nicht.

Es dürfte deshalb etwas schwierig werden, ein alternatives Netzteil für den Pi5 mit 5A zu finden. Und selbst wenn das Netzteil 5A liefern kann, wird es vom Pi5 vermutlich nicht erkannt. Denn bei USB-PD wird der maximale Strom (und im Normalfall auch die Spannung) zwischen Verbraucher (Pi5) und dem Netzteil ausgehandelt.

Mit dem Original Netzteil sollte sich der Pi 5 auch problemlos übertakten lassen (ausreichende Kühlung vorausgesetzt!). Wie das geht kann man bei Toms Hardware nachlesen:
https://www.tomshardware.com/how-to/overclock-raspberry-pi-5

Hinweis
Übertaktet ist der Pi5 noch empfindlicher bei der Eingangsspannung. Bei 3GHz kam schon bei ~5V (PMIC …) eine Warnmeldung und bei 4,95V hing sich der Pi auf.

Original 15W Netzteil (5.1V, 3A)

Das Netzteil (ursprünglich für den Pi4 gedacht) funktioniert auch mit einem Pi5. Da nur 3A zur Verfügung stehen, werden im Default aber nur 600mAh für die USB-Ports zur Verfügung gestellt. Diese Einschränkung kann man durch einen Eintrag in der config.txt umgehen - siehe hier.

Wird der Pi5 mit etwas anderem als einer SD-Karte gebootet, erscheint auch eine entsprechende Meldung.

Hinweis:
bei zu viel angeschlossener Peripherie und hoher CPU Last kann es zum Systemabsturz kommen. Entweder schaltet das Netzteil ab, oder die Spannung fällt zu stark ab.

Versorgung über Pins

Der Pi5 kann problemlos auch über die GPIO Stiftleiste versorgt werden.

Dabei sollten ein paar Dinge beachtet werden:

  • Nicht verpolungssicher und Kurzschlussgefahr!
  • Die Dupon Kontakte sind für hohe Ströme nicht ausgelegt. Deshalb 2x 5V und 2x GND belegen!
  • Auch bei dieser Variante kommt der Hinweis, dass das Netzteil keine 5A liefern kann! Siehe hier
  • Die Eingangsspannung überprüfen. Unterhalb von 4,85V kommt eine Low Voltage Warnung.
  • Es sollte nicht unbedingt 0.14mm² Litze sein. Darf auch ruhig 0.17 oder 0.25 sein :-)

"alte" 5V Netzteile

Jeder hat sicher noch ein Dutzend ältere 5V Ladegeräte herumliegen. Grundsätzlich kann man auch die verwenden, aber auch hier kommt die Meldung bezüglich dem erforderlichen 5A Netzteil. Es gibt zahlreiche Netzteils mit 1000mA - damit bootet der Pi oft erst gar nicht! Außerdem sollte man hier mal sein Augenmerk auf die Spannung legen. Wenn diese eher schwachen Netzteile stark belastet werden, kann die Spannung auch stark einbrechen. Zudem haben die Netzteile generell eher 5V am Ausgang und nicht 5,1V wie die neuen Raspberry Pi Netzteile!

"Fix" für ungeeignete Netzteile

  • Beim Booten mittels USB-Stick, HDD, … erscheint folgende Meldung:
  • Meldung kann mit On/Off Taste übersprungen werden (was automatisch usb_max_current_enable=1 setzt)
  • USB Geräte werden auf 600mA limitiert (mit dem Original-Netzteil sind es 1.6A)
  • Übergehen kann man das mit einem Eintrag in der /boot/firmware/config.txt
    • sudo nano /boot/firmware/config.txt
    • folgenden Eintrag ergänzen:
      usb_max_current_enable=1

Spannungen & Ströme

Die folgenden Werte sind experimentell ermittelt und dienen auch nur als grober Anhaltspunkt!

Spannungen

Verhalten vcgencmd (EXT5V_V) Netzteil
Warnschwelle Unterspannung ~4,85V 5,01V
Minimale Spannung ~4,5V 4.59V

Strom

Modus Bootmedium Strom Hinweis
Booten SD ~800 mA
USB ~1000 mA
Idle Desktop SD ~600 mA
USB ~750 mA
USB ~780 mA Übertaktet mit
arm_freq=3000
gpu_freq=1000

Im Idle wird der Takt aber auf 1,5GHz gedrosselt!
Stress Test (4 Cores) SD ~1250 mA
USB ~1600 mA
USB ~2000 mA Übertaktet mit
arm_freq=3000
gpu_freq=1000
Hinweis
Stromverbrauch bei der Verwendung von USB Geräten kann je nach Gerät variieren!

Stresstest druchführen

  • sudo apt install stress
  • stress -c 4 -m 4

Unterspannung erkennen

  • Im Desktop Betrieb wird eine Meldung angezeigt:
  • In der Konsole kann man sich die Meldungen über dmesg -HW ansehen.
    pi@Pi5Test:~ $ dmesg -HW
    [Dec29 18:27] hwmon hwmon3: Undervoltage detected!
    [  +8.063959] hwmon hwmon3: Voltage normalised

Check Voltage

Der Pi5 hat einen PMIC (Power Monitor IC) verbaut, den man mit dem Tool vcgencmd abfragen kann.

  • Alle Daten abfragen
    vcgencmd pmic_read_adc
    pi@Pi5Test:~ $ vcgencmd pmic_read_adc
     3V7_WL_SW_A current(0)=0.09076149A
       3V3_SYS_A current(1)=0.06538731A
       1V8_SYS_A current(2)=0.18249890A
      DDR_VDD2_A current(3)=0.02147046A
      DDR_VDDQ_A current(4)=0.00000000A
       1V1_SYS_A current(5)=0.24691030A
        0V8_SW_A current(6)=0.33474400A
      VDD_CORE_A current(7)=0.71440000A
       3V3_DAC_A current(17)=0.00000000A
       3V3_ADC_A current(18)=0.00030525A
       0V8_AON_A current(16)=0.00482295A
          HDMI_A current(22)=0.01452990A
     3V7_WL_SW_V volt(8)=3.70441600V
       3V3_SYS_V volt(9)=3.31838500V
       1V8_SYS_V volt(10)=1.79535800V
      DDR_VDD2_V volt(11)=1.10805800V
      DDR_VDDQ_V volt(12)=0.59890050V
       1V1_SYS_V volt(13)=1.10439400V
        0V8_SW_V volt(14)=0.80146440V
      VDD_CORE_V volt(15)=0.72017020V
       3V3_DAC_V volt(20)=3.30952000V
       3V3_ADC_V volt(21)=3.31043600V
       0V8_AON_V volt(19)=0.79794790V
          HDMI_V volt(23)=5.06922000V
         EXT5V_V volt(24)=5.07056000V
          BATT_V volt(25)=0.00000000V
  • Nur die Eingangsspannung ermitteln
    vcgencmd pmic_read_adc | grep EXT5V_V | cut -d"=" -f2
    pi@Pi5Test:~ $ vcgencmd pmic_read_adc | grep EXT5V_V | cut -d"=" -f2
    5.06922000V
  • Die Eingangsspannung alle 2 Sekunden auslesen (Abbruch mit STRG + C)
    watch -n 2 'vcgencmd pmic_read_adc | grep EXT5V_V | cut -d"=" -f2'
    Every 2.0s: vcgencmd pmic_read_adc | grep EXT5V_V | cut -d"=" -f2               Pi5Test: Fri Dec 29 18:09:42 2023
     
    5.07860000V

etwas Python Magie

  • sudo apt install python3-virtualenv python3-tk -y
  • virtualenv grapher
  • cd grapher/
  • source bin/activate
  • pip3 install matplotlib
  • nano grapher.py
    import matplotlib
    import matplotlib.pyplot as plt
    from collections import deque
    from datetime import datetime
    import subprocess
    import time
     
    def run_linux_program():
        command = 'vcgencmd pmic_read_adc | grep EXT5V_V | cut -d"=" -f2'
        result = subprocess.run(command, capture_output=True, text=True, shell=True)
        print(result.stdout.strip()[:5])
        return float(result.stdout.strip()[:5])
     
    # Initialisierung des Diagramms
    matplotlib.use('TkAgg')
    print(f"Interactive mode: {matplotlib.is_interactive()}")
    print(f"matplotlib backend: {matplotlib.rcParams['backend']}")
    plt.ion()
    fig, ax = plt.subplots()
    values = deque(maxlen=100)
     
    try:
        while True:
            values.append(run_linux_program())
     
            ax.clear()
            ax.plot(values)
            ax.set_title('Pi5 VIn Monitor')
            ax.set_xlabel('Zeit')
            ax.set_ylabel('Voltage')
     
            # Festlegen von 5 Ticks auf der Y-Achse
            y_ticks = [4.4, 4.6, 4.85, 5.0, 5.1, 5.2]
            ax.set_yticks(y_ticks)
     
            for y_tick in y_ticks:
                ax.axhline(y=y_tick, linestyle='dashed', color='gray', linewidth=1)
     
            # Bereich zwischen 4,85 und 5,1 einfärben
            ax.fill_between(range(len(values)), 5.0, 5.1, color='green', alpha=0.3)
            ax.fill_between(range(len(values)), 4.85, 5.0, color='yellow', alpha=0.3)
     
            plt.draw()
            plt.pause(1.0)
    except KeyboardInterrupt:
        pass
    finally:
        plt.ioff()
        plt.show()
  • Starten kann man den Code mittels python3 grapher.py

    Abbrechen mit STRG + C

Der An / Aus Taster

  • Einmal drücken für Einschalten
  • bei der Netzteilwarnung kann man durch einmal drücken den Pi booten (was gleichzeitig usb_max_current_enable=1 setzt)
  • Wenn der Pi läuft, kann man durch gedrückt halten (ca. 2-3 Sekunden) den Pi direkt ausschalten
  • Wenn der Pi läuft, kann man durch 1x drücken den Pi herunter fahren. Im GUI Betrieb muss das durch ein zweites Drücken bestätigt werden.
sbcs/raspberry_pi/pi_5_stromversorgung.txt · Last modified: 2024/01/24 10:10 by dominik

Donate Powered by PHP Valid HTML5 Valid CSS Driven by DokuWiki