mikrocontroller.net

Forum: Mikrocontroller und Digitale Elektronik Interrupt MSP430


Autor: johnny (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hallo!

Wie viele Bytes kann man eigentlich mit einer Baudrate von 115.200 in 
einer Sekunde senden?

Sprich ist es möglich z.B. 20000 Interrupts (über Timer) in einer 
Sekunde zu erzeugen und dann pro Interrupt ein Byte über UART zu senden?

Wo stößt ein MSP430 da an seine Grenzen?

Ich hoffe jmd. kann mir einen Anhaltspunkt geben.
Danke!

Autor: Stefan B. (stefan) Benutzerseite
Datum:

Bewertung
0 lesenswert
nicht lesenswert
PI * DAUMEN für gängige UART-Parameter
115200 Bits/s / (1 Startbit + 8 Datenbits + 0 Paritybit + 1 Stoppbit)
= 11520 Zeichen/s max.

Warum willst du die Zeichen im TIMER Interrupt herausschicken?

Dafür gibt es doch extra UART Interrupts. Die kann man i.d.R. so 
einstellen, dass sie aufgerufen werden, wenn der HW-Sendepuffer frei 
ist, oder wenn ein Zeichen komplett verschickt ist.

Autor: johnny (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Die Baudrate ist doch die Symbolrate pro s. Und ich weiß nicht wie viele 
Bits ein Symbol hat, daher glaub ich sinds es weniger Zeichen :(

Danke für den Hinweis mit dem UART interrupt. Kann ich da auch mit einer 
definierten Frequenz die Daten senden?

Autor: Stefan B. (stefan) Benutzerseite
Datum:

Bewertung
0 lesenswert
nicht lesenswert
johnny schrieb:

> Danke für den Hinweis mit dem UART interrupt. Kann ich da auch mit einer
> definierten Frequenz die Daten senden?

Radio Eriwan: Ja, ein einzelnes Zeichen hetzt seine Bits mit der 
eingestellten Bitfrequenz des UART Baudratengenerators über die 
Leitung - eben der Baudrate :-)

Ich vermute aber, du willst die Frequenz festlegen wie schnell du 
mehrere Zeichen hintereinander übertragen kannst. Die sind bei 115200 
Baud maximal 11520 Zeichen/s (bei 8N1 = 10 Bits pro 8 Bit Zeichen, siehe 
RS232). Du kannst den UART auch langsamer füttern und so eine 
niedrigere Zeichenfrequenz benutzen.

Autor: johnny (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Also, wenn ich 115200 Baud hab und Daten vom Typ double (8 Byte) senden 
will, kommen in 1 Sekunde: 8Byte * 8=64 bit + 1 Startbit + 1 Stopbit =66 
bit
macht 115200/66bit=192 double Werte? Ist doch richtig oder?

Ja an der Baudrate kann ich nichts stellen, daher dachte ich an einen 
Timer und die Interrupts.

Autor: Stefan B. (stefan) Benutzerseite
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Fast.

8 Bytes pro Double * (1 Startbit + 8 Datenbits + 0 Paritybits + 1 
Stoppbit) pro Byte = 80 Bits pro Double

115200 Bits pro s / 80 Bits pro Double = 1440 Double pro s

Autor: johnny (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Achso jeder double hat start und stopbit. Danke!

Autor: bubi (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hi,

nö, jedes Byte hat Start + Stop + Parity.

Ein Byte was du überträgst, benötigt auf der Leitung 10 Bits

Autor: Herold (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
bubi schrieb:
> nö, jedes Byte hat Start + Stop + Parity.
>
> Ein Byte was du überträgst, benötigt auf der Leitung 10 Bits

macht dann aber 11...

Autor: Rufus Τ. Firefly (rufus) (Moderator) Benutzerseite
Datum:

Bewertung
0 lesenswert
nicht lesenswert
10 sinds, wenn Parity weggelassen wird (8n1).

Es ist übrigens nicht ratsam, Binärdaten ohne irgendein Protokoll zu 
versenden, wenn fortwährend 64-Bit-Doubles als je 8 Bytes übertragen 
wird, wird es der Gegenstelle schwerfallen, sich darauf zu 
synchronisieren.

Wo im Bytestrom fängt der eine Double-Wert an, wo hört der andere auf?

Autor: johnny (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
ja das soll im Protokoll passieren, soweit war ich aber noch nicht :)
Mir gings ersteinmal nur um die Datenmenge sozusagen

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.