www.mikrocontroller.net

Forum: Mikrocontroller und Digitale Elektronik Beschreibung des I²C-Mode des MSP430F20xx


Autor: Uhu Uhuhu (uhu)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
In der Beschreibung der "MSP430x2xx Family" ist der I²C-Mode in einer 
Weise beschrieben, die nicht zu den 20xx-Samples paßt.

Gibt es für die 20xx irgendwo eine besondere Beschreibung, die die 
Feinheiten enthält?

Autor: Peter Diener (pdiener) Benutzerseite
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Was genau passt daran nicht? Ich finde die Beschreibung sogar sehr 
ausführlich. Das USI benutzt doch in allen 2er Prozessoren die gleichen 
Registeradressen, die F20x2 und ...x3 haben das USCI_B0. Das entspricht 
doch genau dem Family Guide. Was genau stimmt denn nicht?

Grüße,

Peter

Autor: Uhu Uhuhu (uhu)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Dann vergleiche mal die Namen der Registerbits mit dem, was in 
msp430x20x2 der IAR Workbench, oder was im Beislielprogramm 
msp430x20x3_usi_12.c steht. Das paßt überhaupt nicht zusammen.

Autor: KlaRa (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hallo,
das hat mich auch verwirrt. Mit ein wenig Fantasie und Vergleichen kommt 
man dann auch dahinter, meistens. Ich vermute IAR hat die Files in einem 
frühen Statium erstellt, als die jetzt bekannte Doku noch nicht vorlag.

Gruss Klaus.

Autor: Peter Diener (pdiener) Benutzerseite
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Ja beim IAR Compiler kann ich nicht mitreden, den benutze ich nicht. Ich 
arbeite beim MSP430 ausschließlich mit dem MSPGCC. Und die 
vordefinierten Registerbitdefinitionen verwende ich auch nicht und die 
Registeradressen stimmen.

Wenn sie bei deinem Compiler nicht stimmen, sind die entsprechenden 
Headerfiles ja auch gleich geändert. Ich habe für die MSP430 schon ganze 
Adressdefinitionsheader selber geschrieben, das ist nicht so viel 
Arbeit.

Viele Grüße,

Peter

Autor: Uhu Uhuhu (uhu)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Wenn ich die I²C-Routine nach dem implementiere, was in der .pdf steht - 
nach Übersetzung der Bit-Namen - kommt was anderes heraus, als das, was 
in msp430x20x3_usi_12.c steht.

Laut Beschreibung erzeugt man durch setzen eines Bits im

Unter "I²C Master Transmitter Mode" (Seite 17-15) steht:

"...and setting UCTXSTT to generate a START condition."

Laut Registerbeschreibung liegt UCTXSTT in "USCI_Bx Control Register 1".

Wenn man im Beispielcode nachsieht, findet man keinen Zugriff auf das 
CTRL-Register 1:
 // Aus msp430x20x3_usi_12.c
   case 0: // Generate Start Condition & send address to slave
     P1OUT |= 0x01;                // LED on: sequence start
     Bytecount = 0;
     USISRL = 0x00;                // Generate Start Condition...
     USICTL0 |= USIGE+USIOE;
     USICTL0 &= ~USIGE;
     if (Transmit == 1){
       USISRL = 0x90;              // Address is 0x48 << 1 bit + 0 (rw)
     }
     if (Transmit == 0){
       USISRL = 0x91;               // 0x91 Address is 0x48 << 1 bit 
                                    // + 1 for Read
     }
     USICNT = (USICNT & 0xE0) + 0x08; // Bit counter = 8, TX Address
     I2C_State = 2;                // next state: rcv address (N)Ack
     break;


Autor: Uhu Uhuhu (uhu)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Peter Diener wrote:
> Wenn sie bei deinem Compiler nicht stimmen, sind die entsprechenden
> Headerfiles ja auch gleich geändert.

Sie passen aber offenbar strukturell nicht mit dem zusammen, was in der 
Beschreibung steht.

Autor: Jörg S. (joerg-s)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
>Laut Registerbeschreibung liegt UCTXSTT in "USCI_Bx Control Register 1".
Kann es sein das du das Kapitel über das USCI liest? Dein F20xx MSP hat 
nur USI!

Autor: Uhu Uhuhu (uhu)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Jörg S. wrote:
>>Laut Registerbeschreibung liegt UCTXSTT in "USCI_Bx Control Register 1".
> Kann es sein das du das Kapitel über das USCI liest? Dein F20xx MSP hat
> nur USI!

Genau das wars. Vielen Dank!

Antwort schreiben

Die Angabe einer E-Mail-Adresse ist freiwillig. Wenn Sie automatisch per E-Mail über Antworten auf Ihren Beitrag informiert werden möchten, melden Sie sich bitte an.

Wichtige Regeln - erst lesen, dann posten!

  • Groß- und Kleinschreibung verwenden
  • Längeren Sourcecode nicht im Text einfügen, sondern als Dateianhang

Formatierung (mehr Informationen...)

  • [c]C-Code[/c]
  • [avrasm]AVR-Assembler-Code[/avrasm]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] - Link zu Artikel
  • Verweis auf anderen Beitrag einfügen: Rechtsklick auf Beitragstitel,
    "Adresse kopieren", und in den Text einfügen




Bild automatisch verkleinern, falls nötig
Bitte das JPG-Format nur für Fotos und Scans verwenden!
Zeichnungen und Screenshots im PNG- oder
GIF-Format hochladen. Siehe Bildformate.
Hinweis: der ursprüngliche Beitrag ist mehr als 6 Monate alt.
Bitte hier nur auf die ursprüngliche Frage antworten,
für neue Fragen einen neuen Beitrag erstellen.

Mit dem Abschicken bestätigst du, die Nutzungsbedingungen anzuerkennen.