Linux & Bluetooth: Baudrate egal?

OP #4842089
Lesenswert?

Ich erforsche gerade den HC-05 BT-Modul. Ein ATmega328p hängt an einem 
Slave-HC-05 und der ist mit dem Bluetooth-Master am Linux-System 
verbunden, auf dem ein GtkTerm auf den 328 lauscht.

Nun setze ich per 328 die Baudrate ds HC-05 (von 9600) auf 38400 Bd 
hoch:
1
AT+USART=38400,0,0

Der 328 ändert direkt anschließend seine Baudrate am USART0 
entsprechend.

Was mich etwas verwundert: das GtkTerm behauptet, es sei weiterhin mit 
9600 Bd mit /dev/rfcomm0 verbunden zu sein und wenn ich mit
1
AT+USART?

vom 328 aus die Baudrate des HC-05 abfrage, kommt die Antwort auf dem 
GtkTerm:
1
+USART=38400,0,0

Der HC-05 hat also gemacht, was ihm aufgetragen wurde.

Wieso kann das GtkTerm in Einstellung 9600-8-N-1 den Text lesen, der auf 
der anderen Seite mit 38400-8-N-1 gesendet wurde?

Und was mindestens genau so erstaunlich ist: umgekehrt kann das 
9600-8-N-1-Terminal völlig normal mit dem HC-05 auf 38400-8-N-1 
sprechen.
Gast #4842097
Lesenswert?

Die BT-Module haben noch Puffer dazwischen. Es wird ja nicht sofort das 
Byte von der UART-Schnittstelle als Byte "rausgefunkt". Da ist noch 
einiges dazwischen; BT ist deutlich komplexer als bspw. UART.

Die Baudrate sieht dann eigentlich nur der UART-Teil des Moduls. Der 
holt und steckt dann die Daten in den Puffer für den 
weiterverarbeitenden Teil, wahrscheinlich erst mal eine 
Software-Routine, bevor es zum BT-Stack geht.

Antwort schreiben

Bitte melde dich an, um einen Beitrag zu schreiben.

oder

Mit Google-Account einloggen

Die Registrierung ist kostenlos und dauert nur eine Minute.

Jetzt registrieren