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
>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.
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!!
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.
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).
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?"
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.
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
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.
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.
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?
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.
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.
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
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.