Forum: Mikrocontroller und Digitale Elektronik MSP430 I2C Adresse festlegen


Announcement: there is an English version of this forum on EmbDev.net. Posts you create there will be displayed on Mikrocontroller.net and EmbDev.net.
von Wolfgang (Gast)


Lesenswert?

Wenn ich I2C richtig verstanden habe, besteht eine Adresse aus 7 Bit, 
wobei das letzte Bit die Richtung bestimmt. Daraus würde ich ableiten, 
dass es 2 verschiedene Adressen gibt, je nachdem ob gesendet oder 
empfangen wird.
In den Beispielen SLAC015 wird unter I2CSA  aber immer nur eine Adresse 
angegeben.

Es soll ein DS2484 mittels I2C verbunden werden.

DS2482:    AD0 = Masse
     AD1 = +3V

Ergibt bei mir:   000 0100 = 0x04 für Senden
      000 0101 = 0x05 für Empfangen
Was könnte ich falsch verstanden haben und wie legt man die Adresse 
fest?

Wolfgang

von Wolfgang (Gast)


Lesenswert?

da  gibt man sich Mühe, benutzt die Vorschau und dann stimmt der 
tatsächliche Text nicht mit Vorschau überein.
eigentlich sollte AD0 und AD1 untereinander stehen
es sollte mal geprüft werden, ob man am Programm etwas machen kann

von arc (Gast)


Lesenswert?

Jein,

Normales I2C Frame:
1
9876543210
2
SAAAAAAARA
3
TDDDDDDD/C
4
ADDDDDDDWK
5
RRRRRRRR
6
T6543210
Start Bedingung, 7-Bit Adresse, Schreib/Lese-Flag, Bestätigung.
Die Adresse selbst wird von NXP(Philips) vergeben, damit sich 
unterschiedliche Bausteine die an einem Bus hängen nicht in die Quere 
kommen. Sollen mehrere gleiche Bausteine an einem Bus hängen, müssen 
diese unterschiedliche Adressen haben (beim DS2482 wird dies mit den 
Pins AD1, AD0 festgelegt)
D.h. das was tatsächlich übertragen wird ist beim DS2482, abhängig von 
der Pinbelegung AD1, AD0: (ohne Start/Ack)
76543210
00110AAR
     DD/
     10W

http://www.standardics.nxp.com/literature/books/i2c/pdf/i2c.bus.specification.pdf

von Jörg S. (Gast)


Lesenswert?

> Was könnte ich falsch verstanden haben
Soweit ich mich erinnern kann wird bei dem Hardware I2C vom MSP die 
Adresse ohne das letzte Bit angegeben. Aus deiner 0x04 wird dannn 0x02 
(dieser Wert muss in's Register vom MSP geschrieben werden). Das Bit für 
Read/Write wird automatisch vom MSP gesendet bzw eingefügt.

von Wolfgang (Gast)


Lesenswert?

> (dieser Wert muss in's Register vom MSP geschrieben werden). Das Bit für
> Read/Write wird automatisch vom MSP gesendet bzw eingefügt
das klingt gut und würde gut zu den Beispielen passen

> Die Adresse selbst wird von NXP(Philips) vergeben
mal sehen, ob ich dazu noch etwas im Datenblatt zum DS2482 finde
Wolfgang

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.