Hallo, vor längerer Zeit habe ich hier über ein TWI/I2C-Problem berichtet, als ich ein Display mit einem XMega ansteuern wollte, was allerdings ungelöst blieb. Im Moment habe ich wieder Zeit, weiter daran zu arbeiten, also versuche mich gerade am TWI-Protokoll und habe dazu zwei XMega256 zusammengeschalten. Einer arbeitet als Master, der andere als Slave. Das Adress-System verstehe ich aber anscheinend schon nicht bzw. es widerspricht sich das, was ich lese mit dem, was ich als Resultat sehe. Ich gebe dem Slave z.B. die Adresse 0x66 = 0b0110 0110. Nach allem, was im Datenblatt und im Internet steht, müsste der Master ein Adresspaket senden, was die 7Bit-Adresse enthält mit einem achten Bit für Read/Write, also folgendermaßen: 7Bit Adresse und ein 1Bit R/W = 0b1100 1100 für Write. Dann aber erkennt der Slave die Adresse nicht als die seine und macht nichts. Was für meinen gesunden Menschenverstand vollkommen logisch erscheint, weil sich 0b1100 1100 krass von 0b0110 0110 unterscheidet. Nur, wenn der Master eine 0x66 oder eine 0x67 sendet, reagiert der Slave. Ich verstehe hier nicht, welches System nun das "richtige" ist: Steht im Adressregister des Slaves die Adresse des Slaves oder ist die Adresse dort schon "kodiert" einzutragen, etwa als (Adresse << 1) und das unterstes Bit ist dann unwichtig? Danke und Grüße Peter
Hi >Ich verstehe hier nicht, welches System nun das "richtige" ist: >Steht im Adressregister des Slaves die Adresse des Slaves oder ist die >Adresse dort schon "kodiert" einzutragen, etwa als (Adresse << 1) und >das unterstes Bit ist dann unwichtig? Steht doch eindeutig im Manual: ADDR – Address register Bit 7:1 – ADDR[7:1]: TWI Slave Address Bit 0 – ADDR: General Call Recognition Enable MfG Spess
Die Adresse Deine Slaves ist eigendlich 0x33, 0b0110011. Das Byte auf dem Bus enthält die Adresse in Bit 1-7, Bit 0 ist das RW-Bit. Da ist die Adresse des Slaves also 0b0110011x, sprich 0x66 und 0x67 in 8Bit. Das ist aber kein XMega sondern ein generellen I2C-'Problem'.
:
Bearbeitet durch User
Okay, Asche auf mein Haupt. Ich weiß nicht mal, wie ich das rechtfertigen soll. Ich danke einfach. :)
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
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.