Forum: Mikrocontroller und Digitale Elektronik [MSP430] USART, SPI und I²C gleichzeitig?


von Mali (Gast)


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

von Micha-78 (Gast)


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

von power (Gast)


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

von szimmi (Gast)


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.

von fredizzo (Gast)


Lesenswert?

Hallo,
kann man SPI und I²C gleichzeitig benutzten an pic24hj256gp610 und am 
msp430??
ich bedanke mich schon im voraus

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.