mikrocontroller.net

Forum: Mikrocontroller und Digitale Elektronik MSP430 - Verständnissproblem USART1


Autor: Flo (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hi zusammen,

ich hab ein kleines Verständnissproblem beim MSP430, genauer gesagt beim 
MSP430FG4618 (Datenblatt: http://www.ti.com/lit/gpn/msp430fg4618 ). Wie 
unten rechts im Blockdiagramm auf Seite 5 zu erkennen, gibt es einen 
USART1 der UART und/oder SPI kann, einen USCI_A0 für UART, IrDA, SPI und 
noch einen USCI_B0 für SPI und/oder I2C.
Zuerst dachte ich, dass man jedes Modul (USART1, USCI_A0, USCIB0) für 
eine der angegebenen Schnittstellen konfigurieren kann und dann nur 
diese verwenden kann, ohne dass ein Umschalten möglich ist. Nun ist mir 
aber aufgefallen, dass zB. Bei USART1 UART und SPI fast komplett an 
verschiedenen Ports hängen.

USART1:
Pin 49: MISO, SPI
Pin50: MOSI, SPI
Pin 51: slave transmit enable, SPI (Ich nehm mal an CS)
-
Pin62 RX, UART
Pin63 TX, UART
-
Allerdings haben sie auch einen Port gemeinsam:
Pin 48: UCLK, clock output UART or SPI mode

Sehe ich das richtig, dass ich also an USART1 sowohl UART als auch SPI 
nutzen kann wohl aber immer nur nacheinander, da sie denselben CLK 
benutzen?
Ist damit dann das Umschalten zwischen UART / SPI auch zur Laufzeit des 
MSPs möglich? Dass ich zuerst über UART an USART1 etwas empfangen und 
dann danach über SPI an USART1 das weiterschickt?
Finde das klingt eigentlich recht plausibel, wollte aber lieber nochmal 
auf Nummer sicher gehen :)
Danke schomal!

Grüße
Flo

Autor: Dennis (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Genauso ist es!

Autor: noips (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Flo schrieb:
> UCLK, clock output UART or SPI mode

braucht UART einen clock? Der ist doch asynchron.

Autor: Dennis (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Nein, braucht er nicht. Dafür ist das Start / Stop-Bit

Aber dann sollten alle beteiligten die gleichen Einstellungen benutzen 
(z.b. 9600 8 N 1)

Autor: noips (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Ich schreibe das weil Flo folgendes geschrieben hat:

> Allerdings haben sie auch einen Port gemeinsam:
> Pin 48: UCLK, clock output UART or SPI mode
>
> Sehe ich das richtig, dass ich also an USART1 sowohl UART als auch SPI
> nutzen kann wohl aber immer nur nacheinander, da sie denselben CLK
> benutzen?

Die benutzen nicht denselben Clock weil UART gar keinen braucht. 
Folglich haben sie auch keine Pins gemeinsam. Allerdings kann man sie 
trotzdem nur abwechselnd benutzen, weil es ja gleiches Modul ist, das 
jedes Mal umkonfiguriert werden muss.

Autor: Marc (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Aber USART

Autor: Flo (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hi,

danke erstmal für euere Antworten! Mittlerweile ist mir aufgefallen, 
dass sich beim USCI_B0 anscheinend einiges mehr überschneidet.

P3.3 (Pin68): USCI_B0/UART or SPI mode, clock output—USCI_B0/SPI mode
P3.2 (Pin69): MISO (SPI), SCL (I2C)
P3.1 (Pin70): MOSI (SPI), SDA (I2C)
P3.0 (Pin71): CS (SPI)

Nun hätte ich dazu noch ein paar Fragen:
- Was macht der P3.3? UART braucht keinen Clock und für I2C liegt dieser 
auf P3.2. Wozu also P3.3? Muss ich diesen unbeschaltet lassen wenn 
SPI/I2C benutzt wird?
- Für I2C braucht man ja pull-up Widerstände. Stören diese 
möglicherweiße über SPI ebenfalls angeschlossene Geräte (wenn dann 
umgeschalten wurde und diese verwendet werden)? Oder anders gesagt: Kann 
man die beiden problemlos "parallel" (=nacheinander) verwenden, oder 
sollte man beim Einsatz von I2C dann auf diese SPI-Schnittstelle doch 
lieber verzichten?

Grüße
Flo

Autor: Dennis (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Flo schrieb:
> Was macht der P3.3?

P3.3 ist bei der Nutzung von SPI die CLK-Leitung. Oder halt bei USART, 
da kann ebenfalls ein CLK benutzt werden. Für I²C brauchst du den nicht, 
nein.

Flo schrieb:
> Für I2C braucht man ja pull-up Widerstände. Stören diese
> möglicherweiße über SPI ebenfalls angeschlossene Geräte

Nein, mir würde gerade nichts einfallen, wo die sich negativ bei der 
Kommunikation auswirken.

Nur ein Tip: Wenn du irgendwas an den Kommunikationsschnittstellen 
änderst / einstellst - dann setze immer zuerst das Bit für den 
Software-Reset. Dann ändern, dann Bit wieder löschen. Im Datenblatt 
steht auch ein Hinweis, wie man die USCIs konfigurieren sollte.

Autor: Flo (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Dennis schrieb:
> P3.3 ist bei der Nutzung von SPI die CLK-Leitung.

Ach ja klar, natürlich! Danke, hab ich grad irgendwie total übersehen!
Danke auch für deinen Tipp, werd mir das alles nochmal in Ruhe 
anschauen.

Grüße
Flo

Autor: Flo (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hi zusammen,

jetzt hab ich noch eine letzte (hoff ich mal ;)) Kleinigkeit:
Der USCI_A0 hat die Ports für UART anscheinend doppelt belegt. P2.4, 
P2.5 und P4.6, P4.7. Auszug aus dem Datenblatt hab ich unten angefügt.
Wenn ich nun über USCI_A0 (auf UART konfiguriert) Daten ausgeben / lesen 
möchte kommen diese dann an beiden Portpaaren? Oder ist es möglich das 
gewünschte Portpaar einzustellen und nur auf diesem auszugeben / zu 
lesen?
Hintergrund ist der: Ich habe drei Geräte die ich via UART an den MSP 
hängen möchte. Das eine kommt an USART1 und die anderen beiden hätte ich 
gerne an USCI_A0, jeweils an ein anderes Portpaar, gehängt da diese 
nicht gleichzeitig, sondern nur nacheinander benötigt werden. Wäre dies 
möglich? Oder müsste den dritten UART in Software realisieren?
Danke schonmal!


---------- Auszug aus dem Datenblatt ----------
P2.5/UCA0RXD 74 C11 I/O General-purpose digital I/O / receive data 
in—USCI_A0/UART or IrDA mode

P2.4/UCA0TXD 75 B12 I/O General-purpose digital I/O / transmit data 
out—USCI_A0/UART or IrDA mode


P4.7/UCA0RXD/S34 46 J7 I/O
General-purpose digital I/O / receive data in -- USCI_A0/UART or IrDA 
mode / LCD
segment output 34

P4.6/UCA0TXD/S35 47 M9 I/O
General-purpose digital I/O / transmit data out -- USCI_A0/UART or IrDA 
mode / LCD
segment output 35
----------

Grüße
Flo

Autor: Dennis (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Du sagst dem Controller ja mit PxSEL, ob du ihn als GPIO oder als 
Sonderfunktion haben willst.

Wenn du bei einem Portpaar das SEL-Bit setzt und beim anderen nicht, 
dann ist die Kommunikation auch nur auf dem möglich, wo das Bit gesetzt 
ist, der andere hat dann standard-IO-Pins.

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.