[MSP430] USART, SPI und I²C gleichzeitig?

Gast #394559
Lesenswert?

Hallo Leute!

Der MSP430F16X hat ja bekanntlich SPI, I²C und UART, aber nur zwei
USARTs. Bei meinem aktuellen Projekt müsste ich aber alle drei
verwenden. Daher habe ich drei Möglichkeiten in betracht gezogen (UART
ist auf USART1):
- Auf USART0 würche ich gerne abwechseld SPI und I²C verwenden. Kann
ich USART0 im laufenden betrieb einfach uminitialisieren?
- Gibt es vielleicht einen SPI->I²C oder einen I²C->SPI Wandler? Welche
Richting wäre am sinnvollsten?
- Kennt jemand gute Software-Implementationen von I²C oder SPI? Welches
wäre sinnvoller in Software?

Danke im Voraus
MfG
Mali
Gast #394560
Lesenswert?

Hi,

also ich sehe da kein Problem drin.
Nimm es so wie du es vorschlaegst, d.h.
Uart -> USART1
Spi  -> USART0 (wenn sie lt. Datenblatt daran liegt)
I2C  -> emulieren

I2C kannst du relativ einfach emulieren, da gibts auch Beispiele im
Netz. Ich selbst habe das auch schon gemacht, allerdings mit XC164CI
Controller (Infineon). Funktionierte tadellos fuer ein EEPROM.

Ich hoffe es hilft dir!

michael
Gast #394561
Lesenswert?

es ist möglich beide Funktionen zu nutzen. Abs schon mal ausprobiert.
Einfach Usart normal initialisieren und benutzen, wenn man I2C braucht
den I2C initialisieren (Ablauf steht im Datasheet).
Ist die I2C Kommunikation fertig kann man den USART wieder
reconfigurieren (siehe Datasheet zum MSP430).
Alles kein Problem.

Nur der Sendeinterrupt ist bei beiden gleich. Besser gesagt I2C nutz
für seine Interrupts den USART0TX.

power
Gast #394562
Lesenswert?

Hiho,
nutze gerade eine MSP430F1232 als Datenschleuder zwischen SPI und UART.
In einem Slot schalte ich die UART auf SPI, nehme Daten entgegen und
schalte danach wieder von SPI auf UART und schicke die Daten zum PC.
Klappt super. Wichtig ist, die State-Machine (SWRST) immer
zurückzusetzen.

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