[gelöst] DS3231 am Raspberry

  • Hallo,

    ich habe einen Raspi mit einem DS3231-Modul ausgerüstet, kann dieses Modul jedoch nicht ansprechen.

    Es handelt sich um einen Raspberry Pi 3B mit der OS-Version 2022-01-28-raspios-busseye von der offiziellen Raspberry-Seite.

    Ich bin zumindes soweit, daß ich mit

    Code
    sudo i2cdetect -y 1

    folgende Ausgabe erhalte:

    Nachdem ich den Befehl

    Code
    echo ds3231 0x68 | sudo tee /sys/class/i2c-adapter/i2c-1/new_device

    ausgeführt habe, ergibt

    Code
    sudo i2cdetect -y 1

    folgende Ausgabe:


    Das Modul scheint also korrekt erkannt zu werden.

    Mit

    Code
    sudo hwclock -r

    soll ich nun die aktuell im RTC-Modul gespeicherte Zeit auslesen können. Leider kommt bei mir nur:

    Zitat

    hwclock: Timed out waiting for time change.

    An der Stelle komme ich nicht weiter. Was mache ich falsch?

    Vielen Dank

  • Ich habe diese Anleitungen verwendet:

    https://pimylifeup.com/raspberry-pi-rtc/

    https://learn.adafruit.com/adding-a-real-…to-raspberry-pi


    Edit:

    Der Befehl

    Code
    sudo apt-get install python-smbus

    aus der Adafruit-Anleitung ergibt bei mir

    Code
    Paketlisten werden gelesen… Fertig
    Abhängigkeitsbaum wird aufgebaut… Fertig
    Statusinformationen werden eingelesen… Fertig
    Paket python-smbus ist nicht verfügbar, wird aber von einem anderen Paket
    referenziert. Das kann heißen, dass das Paket fehlt, dass es abgelöst
    wurde oder nur aus einer anderen Quelle verfügbar ist.
    
    
    E: Für Paket »python-smbus« existiert kein Installationskandidat.

    Kann es daran liegen?

    Einmal editiert, zuletzt von hans_d (11. April 2022 um 11:51)

  • Du musst /boot/overlays/README lesen. Inbes. Zeilen 1 - 82 und i2c-rtc und i2c-rtc-gpio und den I2c Uhrechip ausschliesslich über dtoverlay= in der /boot/config.txt aktivieren.

    Gleichzeitig musst Du die (systemd) fake-hwclock Service Unit deaktivieren und allenfalls maskieren, sowie

    die hwclock Service Unit unmaskieren (wenn maskiert) aktivieren (enablen). < man systemctl >


    Servus !

    RTFM = Read The Factory Manual, oder so

  • Ich habe gerade ein zweites (gleiches) Modul getestet und damit geht es. Das erste Modul hat also offenbar einen Defekt. Da die Antwort auf den Befehl

    Code
    sudo i2cdetect -y 1

    plausibel und so wie erwartet war, bin ich davon ausgegangen, das Modul wäre in Ordnung. Das war offensichtlich ein Trugschluß.

  • Dann vielen Dank für diesen Hinweis. Das war mir tatsächlich so konkret nicht bewußt. Fall ich mal ein python-relevantes Problem habe, werde ich es entsprechend berücksichtigen.

    Zum Schluß habe ich noch eine kleine Korrektur, falls jemand ein ähnliches Problem hat. Ich habe das vermeintlich defekte DS3231-Modul mal an einem ESP32 und einem Arduino Nano probiert und dort funktioniert es. Also an ESP und Arduino gehen beide Module, am Raspberry nur eins von beiden. Ich habe beide Module mehrmals hin- und hergetauscht. Der Effekt ist reproduzierbar. Meine Vermutung ist, daß entweder die Pegel oder das Timing der SDA- bzw. SCL-Leitungen bei dem einen Modul grenzwertig sind und der Raspberry es dadurch nicht erkennt. Oder hat jemand noch eine andere Idee? Auf jeden Fall sehr seltsam das ganze.

    Einmal editiert, zuletzt von hans_d (11. April 2022 um 23:05)

  • Du solltest dringend Python 2 in die wohlverdiente Rente schicken und mit Python3 arbeiten!

    :thumbup: aber Bullseye hat Python2 doch gar nicht mehr an Board oder? Dann zeigt nämlich 'python' oder 'pip' auf 'Python3' bzw. 'pip3':

    https://stackoverflow.com/questions/4083…es-for-python-3

    Das gilt aber natürlich nicht für das 'smbus'-Packet. apt install python3-smbus oder pip install smbus2 oder so, Google hilft sicherlich.

    Grüße

    Dennis

    🎧 With the music execution and the talk of revolution, it bleeds in me and it goes 🎧

  • aber Bullseye hat Python2 doch gar nicht mehr an Board oder?

    Hmmm, mein Bullseye hat noch beide Versionen:

  • Ich habe die Desktop-Version.

    Und die Ursache für die Unterschiede gefunden...

    Mein System mit Python2 und Python3 ist aus dem Image von Oktober 2021 entstanden

    Code
    pi@pi400:~ $ cat /boot/issue.txt 
    Raspberry Pi reference 2021-10-30
    Generated using pi-gen, https://github.com/RPi-Distro/pi-gen, 288b21fc27e128ea6b330777aca68e0061ebf4fe, stage5

    und das System ohne Python2 aus dem Image von Januar 2022:

    Code
    pi@pi48:/etc $ cat /boot/issue.txt 
    Raspberry Pi reference 2022-01-28
    Generated using pi-gen, https://github.com/RPi-Distro/pi-gen, fbe448ccdc995d295d24c7596e5f0ef62cc2488f, stage4

    Gut zu wissen.

    Und schön, dass Python2 (R.I.P.) nicht mehr automatisch bei aktuellen Neuinstallationen dabei ist!

Jetzt mitmachen!

Du hast noch kein Benutzerkonto auf unserer Seite? Registriere dich kostenlos und nimm an unserer Community teil!