Forum: Mikrocontroller und Digitale Elektronik oled 128x128 mit SSH1107 an raspberry pi zero 2w


von Werner (10kloc)


Lesenswert?

Hallo,
ich verwende obige Konstellation.
Habe verschiedene Beispiele/libs ausprobiert, aber es kommt immer zum 
Fehler:
DeviceNotFoundError: I2C device not found on address: 0x3C

mit I2cdetect -y 1 wird die Adresse 3c korrekt angezeigt.

Hat jemand eine Idee wie ich das lösen kann?

Vielen Dank im Vorraus.
Werner

von Obelix X. (obelix)


Lesenswert?

Fakten, Fakten, Fakten!

von Rainer W. (rawi)


Lesenswert?

Werner schrieb:
> DeviceNotFoundError: I2C device not found on address: 0x3C
>
> mit I2cdetect -y 1 wird die Adresse 3c korrekt angezeigt.
>
> Hat jemand eine Idee wie ich das lösen kann?

Du könntest mit einem Logikanalysator auf den Bus gucken und ein paar 
mehr Details verraten.

von Wastl (hartundweichware)


Lesenswert?

Werner schrieb:
> DeviceNotFoundError: I2C device not found on address: 0x3C

Vielleicht ein (Shift-1)-Problem bei der Angabe der Adresse
in deiner Lib. Üblicherweise hat eine I2C Adresse nur 7 Bit,
wird aber gerne als 8 Bit Wert dargestellt. Da hilft nur
den Wert direkt in einzelnen Bits zu darzustellen und das
Bit 0 (R/W Bit) separat hervorzuheben.

von Hmmm (hmmm)


Lesenswert?

Werner schrieb:
> DeviceNotFoundError: I2C device not found on address: 0x3C

Evtl. das übliche Thema, rohe 7-Bit-Adresse vs. ein Bit nach links 
verschobene mitsamt R/W-Bit.

von Werner (10kloc)


Lesenswert?

vielen Dank für die Antworten.

Einen Logikanalyser hab ich leider nicht.

Ich verwende z.B. die luma lib da kann man aufrufen:
  device = get_device()   ohne Argumente, verwendet die default 
Einsetllungen

oder mit Adresse:
  serial = i2c(port=1, address=0x3C)
  device = sh1107(serial)
beides bringt keinen Erfolg.

wie müßte ich das Argument addresse angeben um das obige shift-1 Probelm 
zu umgehen

von Hmmm (hmmm)


Lesenswert?

Werner schrieb:
> Einen Logikanalyser hab ich leider nicht.

Solltest Du Dir besorgen, da reicht ein billiger Saleae-Clone für 10 
EUR.

Werner schrieb:
> wie müßte ich das Argument addresse angeben um das obige shift-1 Probelm
> zu umgehen

Da 0x3c laut Datenblatt die 7-Bit-Adresse ist, einfach ein Bit nach 
links schieben, also 0x78 (Write) oder 0x79 (Read).

Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.