www.mikrocontroller.net

Forum: Mikrocontroller und Digitale Elektronik MSP430 - Beste Möglichkeit der Kommunikation


Autor: Christopher S. (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hallo,

zwei 'tmote sky'-Module sollen miteinander kommunizieren. Verbaut ist 
ein MSP430 F1611. Meine erste Wahl der Kommunikation wäre I2C gewesen, 
allerdings sollen die Module gleichzeitig den Radio-Chip benutzen, der 
mit per SPI kommuniziert. I2C und SPI funktionieren allerdings nicht 
zeitgleich, da sie sich die gleichen Pins teilen. Stimmt das soweit?

Meine Frage wäre also: Welche Form der Kommunikation ist zu bevorzugen? 
Eine gleichzeitige Kommunikation per SPI mit dem Radio-Chip ist 
wünschenswert, aber nicht zwingend notwendig. I2C-Kommunikation schien 
mir am einfachsten umzusetzen.

Beste Grüße,

Christopher

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

Bewertung
0 lesenswert
nicht lesenswert
>I2C und SPI funktionieren allerdings nicht zeitgleich, da sie sich die
>gleichen Pins teilen. Stimmt das soweit?
Ich hab jetzt nicht ins Datenblatt geschaut, aber da er 2 Module drin 
hat, sollten die sich auch zeitgleich benutzen lassen.

Autor: noips (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Also hier mal ein Auszug aus dem Datenblatt:

- Serial Communication Interface (USART0),
Functions as Asynchronous UART or
Synchronous SPI or I2C Interface

- Serial Communication Interface (USART1),
Functions as Asynchronous UART or
Synchronous SPI Interface

Das heißt über Modul USART0 kannst du per I2C kommunizieren

und GLEICHZEITIG

über Modul USART1 per SPI kommunizieren!!

Autor: Christopher S. (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Ist zwar ne Weile her, aber ich bin erst jetzt wieder dazu gekommen. Das 
Problem dabei ist, dass der Radio-Chip über USART0 kommuniziert, daher 
klappt das wohl nicht.

"NOTE: The I2C pins are shared with the radio’s data input pin and the 
radio clock. Care
must be taken by application developers to multiplex operations on the 
I2C bus and the
radio."

Diese Möglichkeit fällt also raus.

Die nächste Wahl ist also SPI über USART1?

Welche Möglichkeiten gibt es sonst und was ist am einfachsten 
umzusetzen? Die Datenrate des Radiochips ist auf 250kbps limitiert, 
daher soll diese auch bei der seriellen Kommunikation erreicht werden.

Autor: noips (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Christopher S. schrieb:
> Diese Möglichkeit fällt also raus.
>
> Die nächste Wahl ist also SPI über USART1?

Jawohl! Meiner Ansicht nach ist SPI sogar einfacher als I²C, außer dass 
mehr Leitungen nötig sind.


Christopher S. schrieb:
> Welche Möglichkeiten gibt es sonst und was ist am einfachsten
> umzusetzen? Die Datenrate des Radiochips ist auf 250kbps limitiert,
> daher soll diese auch bei der seriellen Kommunikation erreicht werden.

Sonst kannst du bei so langsamer Datenrate und nur zwei Teilnehmern auch 
asynchron senden über UART. Dazu muss aber die Taktfrequenz beider µC 
genau sein (externer Quarz/Oszillator).

Autor: Christopher S. (Gast)
Datum:
Angehängte Dateien:

Bewertung
0 lesenswert
nicht lesenswert
Vielen Dank schonmal für die Antwort. Ich hatte vorher schon einen Post 
verfasst, aber anscheinend vergessen ihn abzuschicken, deswegen häng ich 
ihn trotzdem mal an:

"Ich häng hier mal das Datenblatt an. Vielleicht kann mir ja jemand 
weiterhelfen.

Ich fasse am besten nochmal zusammen was ich erreichen möchte:

Ich habe zwei tmote-sky-Module auf denen ein MSP430 F1611 sitzt. Diese 
sollen zum einen durchgehend Daten senden über einen Radio-Chip, der 
soweit ich das verstehe (Datenblatt S. 12) über die gleichen Pins 
kommuniziert wie I²C. Die beiden Module sollen gleichzeitig die 
identischen Daten, die sie über den Radiochip sende auch an das jeweils 
andere Modul kommunizieren.

Soweit ich das verstehe würde sich hier SPI anbieten, da dieses den 
Full-Duplex-Modus ermöglicht. Oder ist dieser gar nicht notwendig, da 
die Datenrate der seriellen Kommunikation ohnehin so viel schneller ist, 
dass ich die Daten ja auch jeweils abwechselnd zwischen den Modulen hin- 
und herschicken kann, während diese noch über den sehr viel langsameren 
Radio-Chip senden.

Welche Möglichkeiten bestehen sonst noch für die Kommunikation. Was hat 
es mit den GPIO-Pins auf sich?"

Autor: noips (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hallo Christopher,

Christopher S. schrieb:
> Diese
> sollen zum einen durchgehend Daten senden über einen Radio-Chip, der
> soweit ich das verstehe (Datenblatt S. 12) über die gleichen Pins
> kommuniziert wie I²C.

Was mir jetzt auffällt, die I²C-Schnittstelle vom tmote-sky-Modul kann 
genutzt werden und wird es auch. Im Schaltplan ist zu sehen, dass die 
I²C-Signale auf den 10-Bit-Connector rausgeführt sind. Wie ich es sehe, 
ist es auch so gedacht, das der User die Schnittstelle verwenden kann. 
Außerdem wird über die Schnittstelle ein Switch geschaltet. Das findest 
du im Schaltplan Figure 4, und auf S. 10 (Abschnitt !NOTE). Eigentlich 
können I²C und SPI beide verwendet werden, obwohl sie die gleichen Pins 
teilen, vorausgesetzt du programmierst das richtig.

Christopher S. schrieb:
> Welche Möglichkeiten bestehen sonst noch für die Kommunikation. Was hat
> es mit den GPIO-Pins auf sich?"

Wie schon gesagt, kannst du auch per UART (also Tx-, Rx-Leitungen) die 
MSP430 miteinander verbinden (Voraussetzung, siehe mein letzten Post).

GPIO-Pins sind gewöhnliche digitale Ein-, Ausgänge (General Purpose 
Input Output). Die sind nicht für serielle Kommunikation gedacht, obwohl 
mit zusätlichem Software-Aufwand können die auch zur Seriellen 
Datenübertragung verwendet werden. Ist aber für dich uninteressant, weil 
ja andere Schnittstellen zur Verfügung stehen.

Christopher S. schrieb:
> da dieses den
> Full-Duplex-Modus ermöglicht. Oder ist dieser gar nicht notwendig, da
> die Datenrate der seriellen Kommunikation ohnehin so viel schneller ist,
> dass ich die Daten ja auch jeweils abwechselnd zwischen den Modulen hin-
> und herschicken kann, während diese noch über den sehr viel langsameren
> Radio-Chip senden.

Ich sehe es auch so, dass du keinen Duplex brauchst, weil du genug Zeit 
hast, nacheinander zu senden.

Autor: Christopher S. (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Vielen Dank für Deine ausführlichen Antworten.

Nochmal eine kurze Frage zu der letztendlichen Pin-Belegung:
Beim tmote-sky komme ich ja nur an die über den expansion-Port 
zugänglichen Pins. Laut TI-Userguide benötige ich für SPI entweder 3 
oder 4 Pins (4 Pins für mehrere Master): SIMO, SOMI, UCLK und STE(um 
mehrere Master zu erlauben).

Wenn ich das richtig verstehe werden Pins 44-47 STE1, SIMO1, SOMI1 und 
UCLK1) vom MCU gar nicht rausgeführt. Bleiben also noch Pins 28-31, die 
mit dem Radio-Chips geteilten Pins. 28(STE0) wird nicht rausgeführt, 
brauchen wir aber auch nicht, weil ich ja nur 2 Teilnehmer hab, richtig?
SIMO0 und SOMI0 liegen am 10-pin-Expansion-Port an. Aber wie komme ich 
an den UCLK0 Gar nicht?

Also ist nur I2C möglich, da hier ja die beiden Leitungen reichen?

(Falls nur I²C möglich ist: Ist es richtig, dass ich dann extra eine 
Spannung auf die beiden Leitungen legen muss?)


Gruß,
Christopher

Autor: noips (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Oh, da muss ich was berichtigen, ich hab zu flüchtig drüber geschaut:

noips schrieb:
> Außerdem wird über die Schnittstelle ein Switch geschaltet. Das findest
> du im Schaltplan Figure 4, und auf S. 10 (Abschnitt !NOTE). Eigentlich
> können I²C und SPI beide verwendet werden, obwohl sie die gleichen Pins
> teilen, vorausgesetzt du programmierst das richtig.

Switch wird nicht über die I²C des Controllers sondern über den USB-Chip 
angesprochen.

Autor: noips (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Du hast recht, die SPI-Schnittstelle ist gar nicht zugänglich, also 
bleiben I²C oder UART.

Christopher S. schrieb:
> (Falls nur I²C möglich ist: Ist es richtig, dass ich dann extra eine
> Spannung auf die beiden Leitungen legen muss?)

Nein, die Leitungen sollen über Pull-Up-Widerstände (ca. 5 kOhm) mit 
Versorgungsspannung verbunden werden, wie hier im Bild rechts:
http://de.wikipedia.org/wiki/I2c#Elektrische_Definition

Was allerdings noch wichtig ist, ist die Entfernung zwischen den 
kommunizierenden Modulen. Wenn sie viel mehr als einige Zentimeter ist, 
muss du die Leitungen terminieren oder sogar irgendwelche 
Leitungstreiber einsetzen.

Autor: Christopher (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
kann mir jemand bezüglich der zu erreichenden Datenrate weiterhelfen?

µC1 soll Daten per Radiochip (250kb/s) empfangen. Seriell an µC2 
weiterleiten und der sendet wieder per Radio.

Beide µCs sind tmote sky Module mit einem MSP430 F1611. Zu erreichende 
Datenrate von I²C ist maximal 3,4 MBit/s (im High Speed Mode). Welchen 
Modus unterstützt der MSP 430 F1611?

Autor: Christopher (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Die Frage würde sich allerdings erübrigen wenn mir jemand sagen könnte, 
dass eine GLEICHZEITIGE I²C-Kommunikation als auch die Kommunikation 
über den Radiochip möglich wäre.

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

Bewertung
0 lesenswert
nicht lesenswert
Christopher schrieb:
> Die Frage würde sich allerdings erübrigen wenn mir jemand sagen könnte,
> dass eine GLEICHZEITIGE I²C-Kommunikation als auch die Kommunikation
> über den Radiochip möglich wäre.
Da er 2 getrennte USARTs hat, sollte das funktionieren.

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.