Forum: Mikrocontroller und Digitale Elektronik CC430F5137 I2C RXIFG löst nicht aus


von I2C (Gast)


Lesenswert?

Hallo,


ich habe im Moment einige Probleme mit dem CC430F5137 eine 
I2C-Verbindung auf zu bauen. Das Problem ist, dass das RXIFG nicht 
gesetzt und meine ISR nicht betreten wird.

Nun habe ich in dem TI-Support Forum von dem (Mitarbeiter?) 
Jens-Michael-Gloss die folgende Antwort gefunden:

In I2C mode, both, RXIFG and TXIFG are triggering the TX ISR. The RX ISR 
is used for status changes (start condition detected, NACK received 
etc.)
It's easy to miss.


Die Antwort stammt allerdings aus dem Jahre 2011, könnte also nicht mehr 
aktuell sein...


Meine Frage also:
Wo im aktuellen Datenblatt oder Family Guide finde ich diesen Hinweis?


mfg

von Rufus Τ. F. (rufus) Benutzerseite


Lesenswert?

Jens-Michael G_r_oss ist kein TI-Mitarbeiter, aber postet viele 
hilfreiche Beiträge.

Die Konfiguration der Interrupts wird im zu Deinem MSP430-Derivat 
passenden "Family User's Guide" beschrieben; gerade die von der USCI_B 
im I2C-Betrieb verwendeten Interrupts unterscheiden sich von Familie zu 
Familie teilweise erheblich ('F5438 beispielsweise verwendet separate 
Interrupts, während 'G2553 Interruptsharing betreibt).


Für Dich interessant dürfte der Abschnitt 24.3.7 im "Family User's 
Guide" (slau259e) ab Seite 653 sein.


Da steht
1
The USCI has only one interrupt vector that is shared for transmission,
2
reception, and the state change.
3
USCI_Ax and USC_Bx do not share the same interrupt vector.

... insofern liegt Jens-Michaels Beitrag etwas daneben, da es hier nur 
eine ISR für alles gibt.


In Deinem Interrupthandler für USCI_B musst Du also alle möglichen Fälle 
auswerten.

Hilfreich können auch hier die üblichen Codebeispiele von TI sein - 
http://www.ti.com/lit/zip/slac458, und hierin die Beispiele 
cc430x513x_uscib0_i2c_04.c bis _11.c

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.