www.mikrocontroller.net

Forum: Mikrocontroller und Digitale Elektronik UART mit 1Mbps vs. SPI


Autor: Matze (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hallo,
ich benutze derzeit SPI für die kommunikation von meinem MSP430 mit 
einem anderen µC.
Leider kann ich DMA nicht mit dem SPI benutzen, darum bin ich am 
überlegen die kommunikation auf UART umzustellen. Ich bräuchte so 1Mbps 
Übertragungsgeschwindigkeit. Der Abstand der beiden µC ist <20cm.
Leider kann ich die beiden µC nicht auf den gleichen Takt einstellen, 
wesshalb auch mein Baudratentakt leicht unterschiedlich sein wird. 
Sender läuft mit 16MHz (auf 1Mbps eingestellt) und Empfänger läuft mit 
70MHz (auf  1Mbps eingestellt). Die Baudrate mit der geringsten 
Abweichung muss ich mir noch ausrechnen.
Was bedeutet die Errorwahrscheinlichkeiten die ich mir ausrechnen kann? 
bedeutet es wirklich das jedes x-te Byte falsch erkannt wird? Es gibt 
leider kein Parity bit. Und ich muss Strings mit ca. 50Bytes übertragen. 
Muss ich da mit Fehlern rechnen. Eventuell also doch mit 
Fehlerkontrolle? Wenn ja würde ich lieber bei SPI bleiben.

Autor: Ich (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
>Was bedeutet die Errorwahrscheinlichkeiten die ich mir ausrechnen kann?
>bedeutet es wirklich das jedes x-te Byte falsch erkannt wird?
Bedeuten das, wenn du eine gewisse Grenze überteigst, alle Zeichen 
fehlerhaft empfangen werden.

Autor: 3366 (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Der SPI als Master kann kann mit dem clock getaktet werden, als Slave 
muss er  mindestens 4 mal langsamer als der clock sein. Zu beachten ist 
auch dass der SPI Buffer nur genau ein Byte gross ist, Waehrend ein UART 
Buffer teilweise 2 byte gross ist. Das bedeutet die Intrrupt Latenzzeit 
wird bei hohen Uebertragungsraten sehr klein.

Autor: Matze (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Aber es wird nach jedem Byte neu syncronisiert? Und wenn der Empfänger 
70 mal schneller arbeitet als die Baudrate, dann dürften doch keine 
Fehler auftreten, selbst bei einem Unterschied von 5% nicht?

Autor: Christian R. (supachris)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Also in der Praxis geht das fehlerfrei, weil die UARTs eine gewisse 
Fehlanpassung erlauben. ich kommuniziere mit einem MSP430F1611 und 
Baudratenquarz mit 921.600 Baud zu einem DSP, der mit 150Mhz läuft und 
die baudrate annähernd einstellt. Bisher noch kein einziges Bit verloren 
gegangen. Die Übertragung ist bidirektional. Wenn´s nicht ganz passt, 
kannst du doch am MSP430 noch die Modulationsregister benutzen.

Und wieso kann man eigentlich den DMA nicht mit dem USART-Interrupt 
verknispeln? Das ging doch schon beim F1611 usw. haben die das wieder 
rausgenommen bei den neuen?

Autor: Falk Brunner (falk)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
@ Matze (Gast)

>Aber es wird nach jedem Byte neu syncronisiert?

ja. siehe RS232

> Und wenn der Empfänger
>70 mal schneller arbeitet als die Baudrate, dann dürften doch keine
>Fehler auftreten, selbst bei einem Unterschied von 5% nicht?

Doch. Denn das funktioniert schon bissle anders. Die meisten UARTS 
können nur ganzzahlig teilen also 70/8=8,75 oder 70/16= 4,375. Gerundet 
macht das einen Fehler von 2,7% bzw. 9,3%. 2,7% ist sehr knapp für 
RS232. Aber viele Wege führen nach ROM.
Der MSP430 kann nichtganzzahlige Teilerverhältnisse realisieren, dann 
klappt das auch mit dem anderen uC. Stell Deinen 70 MHz uC auf eien 
Teiler von 4, das macht dann ~1,09 MBit/s. Das kann dein MSP430 mit 16 
MHz sehr gut generieren. Siehe Datenblatt.

Mfg
Falk

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.