CC430F5137 I2C RXIFG löst nicht aus

Gast #4126964
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
Persönliche Seite #4127014
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

Antwort schreiben

Bitte melde dich an, um einen Beitrag zu schreiben.

oder

Mit Google-Account einloggen

Die Registrierung ist kostenlos und dauert nur eine Minute.

Jetzt registrieren