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!
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.
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?
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.
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.
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
Hi, nö, jedes Byte hat Start + Stop + Parity. Ein Byte was du überträgst, benötigt auf der Leitung 10 Bits
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...
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?
ja das soll im Protokoll passieren, soweit war ich aber noch nicht :) Mir gings ersteinmal nur um die Datenmenge sozusagen
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.