Hallo zusammen, ich habe das USCI-Modul des MSP430G2553 konfiguriert. Die Slave Adresse etc. wird sauber übetragen, alles funktioniert soweit. ABER: Ich möchte den TMP275 Temperatursensor von Burr-Brown auslesen. Dieser erwartet im Slave-Receiver Modus R/W = LOW. Der MSP430 sendet aber als Master-Transmitter R/W = HIGH. Gibt es eine Möglichkeit dieses Bit Manuell zu steuern? Im Prinzip setze ich R/W ja über das UCTR-Bit. Allerdings versetze ich den MSP430 darüber auch in den Transmitter/Receiver-Modus. Jemand eine Idee? Beste Grüße, MSPler
MSPler schrieb: > Ich möchte den TMP275 Temperatursensor von Burr-Brown auslesen. Dieser > erwartet im Slave-Receiver Modus R/W = LOW. Der MSP430 sendet aber als > Master-Transmitter R/W = HIGH. Ohne mir den Temperatursensor näher angesehen zu haben, klingt mir das sehr nach einem Missverständnis. Der Zustand des R/W-Bits hängt davon ab, ob ein Schreib- oder Lesezugriff durchgeführt wird, und insofern verhält sich die USCI des 'G2553 konform zur I2C-Spezifikation. Was bringt Dich darauf, daß das anders sein sollte, und woher hast Du Deinen "Master-Transmitter-Modus"? Etwa aus dem hier kürzlich verlinkten Dokument slaa382.pdf? Die darin abgedruckten "Timingdiagramme" Figure 1 und Figure 2 auf Seite 2 sind eindeutig falsch. (was auch daran zu erkennen sind, daß sie absolut identisch sind)
Hier mal ein kleiner Auszug aus dem Datenblatt des TMP275 ... "Slave Receiver Mode: The first byte transmitted by the master is the slave address, with de R/W bit LOW." Wenn ich vom Master aus auf die Register des TMP270 schreibe (Master Transmitter-Mode), setzt der MSP430 das R/W bit. Laut Datenblatt soll das aber angeblich anders sein. Was verstehe ich hier falsch?
Das R/W-Bit wird vom MSP430 unterschiedlich gesetzt, je nachdem ob das nach dem Adressbyte folgende Byte vom MSP430 gesendet wird oder ob es von ihm empfangen (und also vom I2C-Slave gesendet) wird. Wenn das R/W-Bit low ist, handelt es sich um einen Schreibzugriff des I2C-Masters, das folgende Byte wird also vom Master an das I2C-Device übertragen. Sieh Dir den "MSP430x2xx Family User's Guide" (slau144j.pdf) an, hier den Abschnitt ab Seite 450. Insbesondere 17.3.2 beginnend auf Seite 452. Im Datenblatt des TMP275 steht das auch nicht anders: > To communicate with the TMP275, the master must first address > slave devices via a slave address byte. The slave address byte > consists of seven address bits, and a direction bit indicating > the intent of executing a read or write operation. (Seite 7) Und die beiden auf S. 8 beschriebenen Betriebsarten "Slave Receiver" und "Slave Transmitter" sind genau das: Ein Schreibzugriff des Masters und ein Lesezugriff des Masters. Im ersten Fall ist R/W low, in letzterem high.
Hallo Rufus, du hast Recht, im UserGuide steht das auch nicht anders als im Datenblatt des TMP275. Manchmal steht man einfach auf dem Schlauch. Vielen Dank!
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.