Forum: Mikrocontroller und Digitale Elektronik BTM222 saulahm?


von nixBus (Gast)


Lesenswert?

Hi,

ich steuere mit einem Mega8 24 LED mit WS2811 chip an. Geht 1A. Die 
Daten kommen über USART rein und werden dann an die LED geschickt.
Das ganze soll via Bluetooth laufen, jedoch dauert es knapp eine 3/4 
Sekunde, bis die 77 Byte im Mega ankommen. Das ganze läuft mit 
19200Baud.
Nutze ich usb->RS232 wandler, dann geht das ganze doppelt so Schnell.

Kennt wer das Problem? Eigentlich sollte das ganze doch wesentlich 
schneller ablaufen.

von nixBus (Gast)


Lesenswert?

Ein Hochsetzen auf 230kBaud bringt auch keine verbesserung.

von Pete K. (pete77)


Lesenswert?

delay rausnehmen

von Harald A. (embedded)


Lesenswert?

Bedenke das Framing, d.h. Blueooth ist eine Paket-orientierte 
Übertragung. Das Modul wartet ein paar ms, ob noch weitere Daten 
eingehen und mit in den aktuellen Frame passen. Falls nicht, wird der 
Frame dicht gemacht und versendet. Irgendwo kann man das Timeout 
vermutlich sogar einstellen. Wenn Du die 77 Bytes nicht schnell genug 
anlieferst, dann wird für jedes Byte ein neuer Frame aufgemacht, was 
dann durchaus 0,75 sekunden dauern kann.

Die andere Variante wäre, dass der Timeout eben 0,75 Sekunden lang ist.

: Bearbeitet durch User
von nixBus (Gast)


Lesenswert?

Danke. ich werde mir das mal ansehen. Bei USB ist das ja auch so, könnte 
echt daran liegen.

von nixBus (Gast)


Lesenswert?

Eine Einstellung für Timeout beim BTM hab ich nicht gefunden. Ich 
schicke die Daten auch direkt hintereinander ohne Wartepause. Ein 
Mitlesen in Minicom zeigt, daß die Bytes wohl einzeln geschickt werden, 
damit meine ich. daß die Daten gleichmässig ankommen, jedes einzelne 
byte. Also kann ich das mit BT wohl knicken :/

von Gerhard G. (g_g)


Lesenswert?

Hallo,

die Übertragungszeiten im USART:

Bei 19200 und 77 Byte dauert die Übertragung ca. 40 ms.
Bei 115200 und 77 Byte komme ich auf ca. 6 ms.

Es ist also schon eine erhebliche zeitliche Verzögerung, ob ich 19200 
Baud oder 115200 Baud nehme.

Dein Problem liegt sicherlich bei der Abfrage USART oder beim 
Weitersenden an den WS2811.

Speicherst du die empfangenen Byte in Registern, oder verarbeitest du 
jedes einzelne Byte sofort?

Beim BTM222 werden die Reaktionszeiten mit der Eingabe der 
Übertragungsgeschwindigkeit eingestellt.

Die Zeiten zum Übertragen von Daten liegen nur unwesentlich höher als 
bei einem USART mit gleicher Geschwindigkeit. Hier liegt dein Problem 
sicherlich nicht.


Gruß G.G

von nixBus (Gast)


Lesenswert?

Ich hab mal eine echte RS232 angeschlossen, und siehe da, das geht wie 
geplant. Also muss es am BT liegen.
Am AVR und dem Code liegt es schon mal nicht, der ist gleich geblieben.

von Stefan F. (Gast)


Lesenswert?

Es liegt am Modul bzw. Bluetooth, mir ist der Effekt auch aufgefallen, 
nur nicht ganz so extrem. Ich hatte 0,5s geschätzt. Keine Ahnung, ob 
andere Module schneller sind. Lego Mindstorms reagiert jedenfalls ebenso 
träge.

von Tavin (Gast)


Lesenswert?

Ich habe mal das gleiche Problem bei einem von mehreren BTMs die hier im 
Einsatz sind. Auf dem entsprechenden Modul war die Antenne nicht korrekt 
verlötet, bzw. später abgefallen. Auch ohne die Antenne kriegen diese 
Dinger eine Verbindung hin, ist aber nur sehr langsam grade mal eine 
Hand voll Bits/s.

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
Noch kein Account? Hier anmelden.