Forum: Mikrocontroller und Digitale Elektronik Adresse für I2C Bus


von Der Bastler (Gast)


Lesenswert?

Ich weiss, das ist bestimmt die zigste Frage zum Thema.
Egal, bin jetzt aber vollkommen durcheinander.
Es geht um eine Display von EA, ein Oled 128-6. Nach Angabe des 
Herstellers hat es die Adresse 0x78. Ein anderes Programm in C 
funktioniert super damit.
Jetzt möchte ich das Display mit Python betreiben. Also einfach mit 
einem Scanner die Adresse auslesen und es kommt was anderes:
0x3c - 60 - 1111 00  ???
0x78 - 120 - 1111 000 (EA)
Wie kann es sein das mir eine Adresse mit 6 Stellen ausgegeben wird 
obwohl sie nach Angabe des Herstellers doch 7 Stellen hat und damit 
funktioniert?

von links oder rechts (Gast)


Lesenswert?

Der Bastler schrieb:
> 0x3c - 60 - 1111 00  ???

Schiebst du die Bits einmal nach links und - voilá - schon
hast du die gleiche (gleichwerte) Adresse. Nur eine Frage
der Betrachtungsweise und Verarbeitungsweise.

Der Bastler schrieb:
> Also einfach mit einem Scanner die Adresse auslesen

Ein Scanner liest dir nicht die Adresse deines Display aus
sondern er findet an der Adresse xy ein I2C-Device mit dem
du dann arbeite kannst.

Der Bastler schrieb:
> Ich weiss, das ist bestimmt die zigste Frage zum Thema.

Ja. Kann man durch Suchen hier im Forum auch finden ohne die
Frage zum zigsten Mal zu stellen.

Der Bastler schrieb:
> Egal, bin jetzt aber vollkommen durcheinander.

Jaja, es ist Xmas, da kommt man schon mal ins Rotieren.

von links oder rechts (Gast)


Lesenswert?

Der Bastler schrieb:
> Der Bastler

Aha ..... es gibt hier im Forum also nur einen, den Bastler.

von (prx) A. K. (prx)


Lesenswert?

Der Bastler schrieb:
> Wie kann es sein das mir eine Adresse mit 6 Stellen ausgegeben wird
> obwohl sie nach Angabe des Herstellers doch 7 Stellen hat und damit
> funktioniert?

Es gibt bei der Darstellung einer I2C Adresse zwei Konventionen.
https://evision-webshop.de/Total-Phase-Knowledge-Base/I2C-Slave-Adressierung-mit-7-Bit-8-Bit-und-10-Bit

von J. S. (jojos)


Lesenswert?

Die reine I2C Adresse hat 7 Bit, also z.B. 0x3C.
Das I2C Adressbyte hat in Bit0 das R/W Flag und dann in Bit 1..7 die 
Adresse.

Die einen benutzen in ihrem API die Adresse, die anderen das ganze 
Adressbyte. Muss man in die Doku schauen und so hinnehmen. Das 
Adressbyte dann als (0x3C << 1) definieren damit deutlich ist was 
gemeint ist.

von mIstA (Gast)


Lesenswert?

Der Bastler schrieb:
> 0x3c - 60 - 1111 00  ???
> 0x78 - 120 - 1111 000 (EA)
> Wie kann es sein das mir eine Adresse mit 6 Stellen
> ausgegeben wird

Diese Frage kann Dir nur ein Blick in den Quellcode Deines I2C Scanners 
beantworten. Aber laut Deiner zweiten Zeile scheint der Scanner ja auf 
der erwarteten Adresse auch ein Gerät zu finden, daß er mir EA 
identifiziert, das wäre ja Dein Display-Hersteller.

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.