I2C Adresse 0x78 ansprechen

Heute ist Stammtischzeit:
Jeden Donnerstag 20:30 Uhr hier im Chat.
Wer Lust hat, kann sich gerne beteiligen. ;)
  • Hallo zusammen,

    ich möchte mit meinem Raspberry Pi per IC2 einen Sensor ansprechen, der auf Adresse 0x78 liegt. Ist das mit einem RasPi überhaupt möglich?

    Ich habe bereits eine Weile gesucht und schon öfters gelesen, dass der RasPi nur Adressen von 0x02 - 0x77 adressieren kann. Stimmt das?

    Kann ich die Adresse vielleicht irgendwie anders ansprechen? z.B. mit einem Arduino?

    Oder brauche ich einen I2C Controller mit 10-Bit Adressbereich?

    Am liebsten wäre es mir ja, wenn des mit dem RasPi klappt :)
    Wäre super, wenn mir jemand helfen kann :)

    Viele Grüße
    Tom


  • Schwierig bei einem Adressraum von 7 Bit als Standard für den I²C-Bus. Das liegt nicht am Raspberry Pi, der könnte das. I²C kann das nicht! Wie kommst Du auf die Adresse?


    hmm ... 7 Bit gehen bei mir bis 7F, nicht bis 77 ...

    wo er Recht hat hat er Recht :thumbs1:

    wenigstens einer der aufpasst und rechnen kann, alter C und Hexprofi eben :bravo2:

    lasst die PIs & ESPs am Leben !
    Energiesparen:
    Das Gehirn kann in Standby gehen. Abschalten spart aber noch mehr Energie, was immer mehr nutzen. Dieter Nuhr
    (ich kann leider nicht schneller fahren, vor mir fährt ein GTi)

  • Ich will Euch jetzt nicht den I2C-Bus erklären, aber Ihr wisst schon, das 16 Adressen reserviert sind, oder? Die Adressen liegen im Adressraum von 7bit, das heißt noch lange nicht, dass alle Adressen nutzbar sind. Es gibt zwar auch die "neue" 10bit Adressierung, die wird aber kaum umgesetzt. Ich habe fieberhaft das Datenblatt durchsucht und die 0x78 als Adresse nicht gefunden. Bitte mal genau beschreiben (oder rauskopieren) wo das steht. Evtl. liegt da ja ein Missverständis vor.


  • Ich will Euch jetzt nicht den I2C-Bus erklären, aber Ihr wisst schon, das 16 Adressen reserviert sind, oder?

    kann ja sein, aber die oberen Reservierten liegen ab 0x7C jedenfalls nach dortiger Meinung,
    1111100=7C
    http://www.rn-wissen.de/index.php/I2C
    somit ist 0x78 eine gültige lt. Def.

    wah

    0x78 ist 10 Bit Adressierung (1111000 = 78) nur damit habe ich mich noch nie beschäftigt

    sollte dieser ominöse 0x78 Stein diese 10-Bit Adresse schon beherrschen ? und kann der Pi in der Lib damit umgehen ?

    lasst die PIs & ESPs am Leben !
    Energiesparen:
    Das Gehirn kann in Standby gehen. Abschalten spart aber noch mehr Energie, was immer mehr nutzen. Dieter Nuhr
    (ich kann leider nicht schneller fahren, vor mir fährt ein GTi)

    Einmal editiert, zuletzt von jar (6. Mai 2014 um 17:37)

  • jau, aber da sollen sich andere einlesen, ist nicht mal eben zwischen Tür und Angel erledigt
    10-Bitadressierung, dieses Datenblatt (der kann auch SPI und I2C, das muss man erst mal unterscheiden, Basisadresse habe ich auch nicht entdeckt)

    ich habe eigenes zu tun

    lasst die PIs & ESPs am Leben !
    Energiesparen:
    Das Gehirn kann in Standby gehen. Abschalten spart aber noch mehr Energie, was immer mehr nutzen. Dieter Nuhr
    (ich kann leider nicht schneller fahren, vor mir fährt ein GTi)

    Einmal editiert, zuletzt von jar (6. Mai 2014 um 18:04)

  • In dem Datenblatt steht leider nichts von Adresse 0x78 wie ich gerade festgestellt habe. Aber ich habe noch ein zweites pdf "FunctionalDescription" und darin steht:

    Addressing
    Every slave connected to the I²CTM-bus responds to a certain address. After generating the start condition, the master
    sends the address byte containing a 7-bit address followed by a data direction bit (R/W). A ‘0’ indicates a transmission
    from master to slave (WRITE); a ’1’ indicates a data request (READ).
    The addressed slave answers with an acknowledge; all other slaves connected with the I²CTM bus ignore this
    communication.
    The general ZSC31050 slave address is 0x78 (7-bit). By EEPROM programming, it is possible to allocate and activate
    an additional arbitrary slave address to every individual device. In this case, the device recognizes communication on
    both addresses: on the general one and on the activated one.

    Ich habe den Sensor jetzt per Arduino per I2C auf Adresse 0x78 angesprochen und ich kann mit dem Sensor kommunizieren.

    Das mit den reservierten Adressen für die 10-Bit Adressierung habe ich auch gelesen. Aber beim Arduino geht es trotzdem. Ich habe bei meiner Internet Recherche auch noch andere Sensoren gefunden, deren Slave Adresse 0x78 ist. Was meiner Meinung nach aber nicht besonders gut gewählt ist.


  • Hmmm ... schon mal verifiziert, ob es überhaupt reservierte Adressen gibt und wo die liegen?
    Ich hab' zu dem Thema auf die Schnelle nix gefunden. Nicht dass die Aussage in das Reich der Märchen und Legenden gehört ;)

    cu,
    -ds-

    http://www.rn-wissen.de/index.php/I2C

    meinst ist ein Märchen ?

    und hier:
    http://www.i2c-bus.org/addressing/10-bit-addressing/
    http://www.ti.com/lit/ug/slau425b/slau425b.pdf
    http://i2c.info/i2c-bus-specification

    das ist doch die 0x78 wenn du das Bitmuster ansiehst

    lasst die PIs & ESPs am Leben !
    Energiesparen:
    Das Gehirn kann in Standby gehen. Abschalten spart aber noch mehr Energie, was immer mehr nutzen. Dieter Nuhr
    (ich kann leider nicht schneller fahren, vor mir fährt ein GTi)

    Einmal editiert, zuletzt von jar (9. Mai 2014 um 22:59)


  • na ... schwingst Du noch Deinen Lötkolben ;) ??

    mehr als ich progge weil erfolgreicher :lol: heute die 2te RTC umgelötet und den Einbau vorbereitet


    Also 0x7F wäre 01111000 ... da finde ich nix im reservierten Bereich - oder ich hab's übersehen, bin heute nicht soooo fit ;) ...

    du vergisst das die linksbündig sind weil bit 0 für write ist

    das MSB kann nicht 0 sein und 0x78 ist 1111000

    lasst die PIs & ESPs am Leben !
    Energiesparen:
    Das Gehirn kann in Standby gehen. Abschalten spart aber noch mehr Energie, was immer mehr nutzen. Dieter Nuhr
    (ich kann leider nicht schneller fahren, vor mir fährt ein GTi)

  • Hi hi,

    meinst Du?
    Mir ist sowieso schleierhaft, wie diese 8 reservierten Adressen geprüft werden. Die unteren drei Bit sind ja nicht nur in den Werten von 0 bis 7 enthalten.
    Es sei denn, die übrigen müssen 0 sein, also [0/1]0000000 bis [0/1]0000111 ...

    cu,
    -ds-


  • Hi hi,

    meinst Du?
    Mir ist sowieso schleierhaft, wie diese 8 reservierten Adressen geprüft werden. Die unteren drei Bit sind ja nicht nur in den Werten von 0 bis 7 enthalten.
    Es sei denn, die übrigen müssen 0 sein, also [0/1]0000000 bis [0/1]0000111 ...

    cu,
    -ds-

    so wie ich die Erklärung verstanden hatte sind die auch 0 ausser Bit 0 für Read/Write

    wäre also 0x78 für read und 0x79 für write oder umgekehrt ....

    http://www.rn-wissen.de/index.php/I2C

    Reservierte Adressen
    Zwei Adressbereiche von jeweils 8 Adressen (1111XXX und 0000XXX) wurden reserviert, um den Bus ausbaufähig zu halten oder um Missverständnissen vorzubeugen.

    Adresse R/W Bit Beschreibung
    0000000 0 General Call Adresse
    0000000 1 Startbyte
    0000001 X CBUS Adresse
    0000010 X Reserviert für ein anderes Busformat
    0000011 X Für zukünftige Erweiterungen reserviert
    00001XX X Für zukünftige Erweiterungen reserviert
    11111XX X Für zukünftige Erweiterungen reserviert
    11110XX X 10-Bit Adressierung

    so ähnlich stehts überall in den von mir gezeigten Links

    http://www.rn-wissen.de/index.php/I2C
    10-Bit-Adressierung

    Da es mit der Zeit immer mehr I2C-Bausteine gab und es schon vorher Überschneidungen bei den Adressen gab, wurden 10-Bit-Adressen eingeführt. Diese erlauben bis zu 1024 (210) Geräte an einem Bus. Durch die Reservierung der Adressen 1111 0XX und des R/W Bits dieser Adresse, werden mögliche 7-Bit-Geräte am Bus nicht gestört. Im Gegenteil, es können sogar 7-Bit- und 10-Bit-Geräte an einem Bus betrieben werden.
    Reservierte Adresse Adresse Teil 1 R/W Bit Adresse Teil 2
    11110 XX X 1. Bestätigung XXXXXXXX 2. Bestätigung

    Als erstes wird die reservierte Adresse mit den ersten fünf Bits "11110" gesendet. Dadurch wird – wie schon gesagt – das Stören von Bausteinen mit 7-Bit-Adressen vermieden. Nun folgen die ersten zwei Bits der eigentlichen Adresse. Dann kommt schon das R/W Bit, da nach einem Byte immer eine Bestätigung folgen muss, wenn eine weitere Datenübertragung erwünscht ist. Da es vorkommen kann, dass mehrere Teilnehmer auf den ersten Teil der Adresse reagieren, werden auch alle diese betroffenen Teilnehmer die Bestätigung generieren. Nach der ersten Bestätigung kommt der 2. Teil der Adresse, der diesmal ein ganzes Byte ist. Alle Teilnehmer, bei denen der erste Adressteil schon zugetroffen hat, werden auch das zweite Adressbyte überprüfen, aber nur der nun adressierter Teilnehmer wird eine Bestätigung erzeugen. Nach der zweiten Bestätigung kann der eigentliche Datenaustausch beginnen.

    lasst die PIs & ESPs am Leben !
    Energiesparen:
    Das Gehirn kann in Standby gehen. Abschalten spart aber noch mehr Energie, was immer mehr nutzen. Dieter Nuhr
    (ich kann leider nicht schneller fahren, vor mir fährt ein GTi)

    Einmal editiert, zuletzt von jar (10. Mai 2014 um 00:40)


  • Hey, da hast Du Dir ja richtig Arbeit gemacht ...
    Tja ... aber wo ist jetzt der Unterschied zwischen 0x78 und 11110XX (10-Bit Adressierung) :s
    cu,
    -ds-

    verstehe dich nicht

    wenn nur die ersten 5 Bits ausgewertet werden

    Als erstes wird die reservierte Adresse mit den ersten fünf Bits "11110" gesendet. Dadurch wird – wie schon gesagt – das Stören von Bausteinen mit 7-Bit-Adressen vermieden. Nun folgen die ersten zwei Bits der eigentlichen Adresse. Dann kommt schon das R/W Bit, da nach einem Byte immer eine Bestätigung folgen muss, wenn eine weitere Datenübertragung erwünscht ist. Da es vorkommen kann, dass mehrere Teilnehmer auf den ersten Teil der Adresse reagieren, werden auch alle diese betroffenen Teilnehmer die Bestätigung generieren. Nach der ersten Bestätigung kommt der 2. Teil der Adresse, der diesmal ein ganzes Byte ist. Alle Teilnehmer, bei denen der erste Adressteil schon zugetroffen hat, werden auch das zweite Adressbyte überprüfen, aber nur der nun adressierter Teilnehmer wird eine Bestätigung erzeugen. Nach der zweiten Bestätigung kann der eigentliche Datenaustausch beginnen.

    das ist doch die 0x78 und es melden sich welche Teilnehmer auch die die nicht dürfen

    und dann am 2ten Byte meldet sich nur noch einer ! der sich auf das 2te Byte angesprochen fühlt ist die 10 Bit Adressierung erledigt !

    lasst die PIs & ESPs am Leben !
    Energiesparen:
    Das Gehirn kann in Standby gehen. Abschalten spart aber noch mehr Energie, was immer mehr nutzen. Dieter Nuhr
    (ich kann leider nicht schneller fahren, vor mir fährt ein GTi)


  • ...
    Als erstes wird die reservierte Adresse mit den ersten fünf Bits "11110" gesendet.
    ...

    Ja ... und genau da ist mein Verständnisproblem.
    0x78 ist [0/1]1111000
    und eine 10-bit adressierung würde z.B. wohl so [0/1]1111000, so [0/1]1111011 oder so [0/1]1111010 aussehen

    die ersten fünf von 0x78: 11110
    die ersten fünf der 10-bit Adresse: 11110

    dann die nächsten zwei Bits:
    von 0x78: 11 bzw.
    10-bit Addr.: 11 ...

    Tja, und nu?

    -ds-


  • Tja, und nu?

    ach was weiss ich, ich dachte ich hätte es verstanden, kann dir das aber nicht besser erklären :blush:

    entweder es ist so oder nicht :s und da mich das im Moment nicht tangiert geniesse ich weiter den orginalen Wickinger Met :D als mir um die Zeit mein zartes Köpfchen weiter zu zerbrechen :angel:

    lasst die PIs & ESPs am Leben !
    Energiesparen:
    Das Gehirn kann in Standby gehen. Abschalten spart aber noch mehr Energie, was immer mehr nutzen. Dieter Nuhr
    (ich kann leider nicht schneller fahren, vor mir fährt ein GTi)

    Einmal editiert, zuletzt von jar (10. Mai 2014 um 02:01)

Jetzt mitmachen!

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