Forum: Mikrocontroller und Digitale Elektronik Bluetoothmodul BTM-222


von Timmo H. (masterfx)


Lesenswert?

Vielleicht auch ganz interessant: Eine OpenSource Alternativ-Firmware 
für BlueCore4-basierende Bluetooth Module: 
http://pfalcon-oe.blogspot.de/2012/04/opensource-sensor-node-firmware-for.html

von Schnuck (Gast)


Lesenswert?

Nabend zusammen,

Ich habe eine Frage:

was passiert, wenn im Datenstrom vom µC zum BTM222 zufällig mal "+++" in 
Folge kommt, Dann geht das BTM-222 ja ungewollt in den Command-Modus.

Wie kann ich verhindern, dass nach drei "+" dies passiert? Muss ich 
immer selbst dafür sorgen, dass im Datenstrom diese drei Bytes niemals 
hintereinander vorkommen?

von Tiramisu (Gast)


Lesenswert?

>was passiert, wenn im Datenstrom vom µC zum BTM222 zufällig mal "+++" in
>Folge kommt, Dann geht das BTM-222 ja ungewollt in den Command-Modus.

Soweit ich mich erinnere war das in Modemzeiten:
- CR oder CR/LF
- 3 Sekunden warten
- drei "+++"

Auf dieses "time guard interval" gab es sogar ein Patent
von Hayes (in den 80er der TOP-Modemhersteller). Das Verfahren
sollte auch im BTM222 drinne sein.

von Schnuck (Gast)


Lesenswert?

Tiramisu schrieb:
>>was passiert, wenn im Datenstrom vom µC zum BTM222 zufällig mal "+++" in
>>Folge kommt, Dann geht das BTM-222 ja ungewollt in den Command-Modus.
>
> Soweit ich mich erinnere war das in Modemzeiten:
> - CR oder CR/LF
> - 3 Sekunden warten
> - drei "+++"
>
> Auf dieses "time guard interval" gab es sogar ein Patent
> von Hayes (in den 80er der TOP-Modemhersteller). Das Verfahren
> sollte auch im BTM222 drinne sein.

Danke für den Hinweis.

habs grade mal getestet. Wenn ich besagte Sekunden vor dem Senden der 
"+++" nichts gesendet habe, so geht das Modul in den Command-Modus. 
Dabei spielt es keine Rolle was vorher gesendet wurde, hauptsache die 
Pause ist da.

also muss ich im Datenstrom darauf achten, dass vor den "+++" innerhalb 
einer gewissen zeit irgendein anderes Zeichen gesendet wurde. Hierbei 
spielen die Zeichen die nach den "+++" kommen keine Rolle. Das Modul 
geht immer in den Command-Modus, wenn irgendwo im Datenstrom vor den 
"+++" eine Pause auftritt.

Muss man also drauf achten.

von Schnuck (Gast)


Lesenswert?

achso dann habe ich noch eine Frage: Wenn ich in den Command-Modus 
gesprungen bin, wie komme ich dann wieder zurück in den Daten-Modus?

von Thomas R. (Gast)


Lesenswert?

Indem du dafür sorgst, dass sich das Modul wieder connectet.

von Schnuck (Gast)


Lesenswert?

An alle die es interessiert:

mit ATX0 (steht nicht im Datenblatt) kann die escape Sequenz deaktiviert 
werden. Somit kann nun durch zufälliges "+++" im Datenstrom nichts mehr 
passieren!

Gruß
Schnuck

von Schnuck (Gast)


Lesenswert?

Thomas R. schrieb:
> Indem du dafür sorgst, dass sich das Modul wieder connectet.

habe nun den Befehl gefunden (der leider auch nicht im Datenblatt 
steht):

ATO – Switch from command mode to data mode (valid only when connected)

von Benjamin W. (beno86)


Angehängte Dateien:

Lesenswert?

Hallo

Habe mich auch mal auf die Spuren des kabellosen programmierene gewagt, 
nun habe ich das Problem das sich mein BTM-222 nicht konfigurieren 
lässt, ich habe mal meine Datei angehängt wie ich es mittels 
Mikrocontroller angeschlossen habe, die Spannung von RX und TX habe ich 
mittels Spannungsteiler probiert anzupassen, mit der Status LED schaue 
ich ob eine Verbindung besteht die blinkt dauernd. Vielleicht könnte mir 
ja wer weiterhelfen, ob ich nicht einen kompletten blödsinn aufgebaut 
habe.

Mit freundlichen Grüßen

beno

von Holger W. (holgerw)


Lesenswert?

Wenn dein µC mit 5V versorgt wird dann funktioniert der Spannungsteiler 
nur für den Ausgang des µC. Für die andere Richtung brauchst du einen 
Levelshifter von 3,3 auf 5V.
Dazu gibt es versch. Schaltungen, google mal danach.
Am besten beide mit 3,3V versorgen, das bringt die wenigsten Probleme.

Holger

von Benjamin W. (beno86)


Lesenswert?

Danke für deine schnelle Antwort werde mal danach schauen weißt du ob 
ich dann ganz normal mit einem Hyperterminal die kommunikation versuchen 
kann.

von Holger W. (holgerw)


Lesenswert?

Nein, der PC hat noch andere Pegel, dort brauchst du auf jeden Fall eine 
Anpassung !

von Vn N. (wefwef_s)


Lesenswert?

Schnuck schrieb:
> Danke für den Hinweis.
>
> habs grade mal getestet. Wenn ich besagte Sekunden vor dem Senden der
> "+++" nichts gesendet habe, so geht das Modul in den Command-Modus.
> Dabei spielt es keine Rolle was vorher gesendet wurde, hauptsache die
> Pause ist da.
>
> also muss ich im Datenstrom darauf achten, dass vor den "+++" innerhalb
> einer gewissen zeit irgendein anderes Zeichen gesendet wurde. Hierbei
> spielen die Zeichen die nach den "+++" kommen keine Rolle. Das Modul
> geht immer in den Command-Modus, wenn irgendwo im Datenstrom vor den
> "+++" eine Pause auftritt.
>
> Muss man also drauf achten.

Am einfachten ist es, dafür zu sorgen, dass "+++" nicht vorkommt, indem 
du z.B. vor jedem '+', das gesendet wird, ein Escapezeichen einfügst 
(der Empfänger muss dieses natürlich erkennen und entfernen). Aus "+++" 
im Nutzdatenstrom wird z.B. "\+\+\+". DEr Empfänger ersetzt "\+" dann 
wieder durch '+'.

von Benjamin W. (beno86)


Lesenswert?

Ich habe zur Kontrolle ob eine Verbindung besteht eine LED auf Pin 13 
gehängt wen es erkannt wurde blinkt die LED sehr schnell, jetzt habe ich 
aber das Problem das LED langsemer blinkt und der Computer mein BTM-222 
Modul nicht mehr kennt, ist es nun defekt oder habe ich da ein anderes 
Problem.

Mit freundlichen Grüßen

beno

von Holger W. (holgerw)


Lesenswert?

Hast du denn schon AT Befehle gesendet oder noch nicht ?
Handy hat meines gefunden "serial adapter" und konnte sich verbinden.
Es blinkte aber weiter, erst die Umschlatung auf Autoconnect/Master im 
BTM ließ eine richtige Verbindung zu und die LED leuchtet dauerhaft.

Holger

von Benjamin W. (beno86)


Lesenswert?

ich hatte vorher noch mein Bluetooth Modul gesehen habe es dann 
verbunden musst den PIN Code eingeben und wie ich es dann abgehängt 
hatte und nachher wieder weiter arbeiten wollte fand der Computer die 
Bluetooth Schnittstelle nicht mehr. Soweit das ich AT Befehle eingeben 
kann bin ich auch noch nicht gekommen, weil es leider noch nicht so 
funktioniert wie ich es mir Vorstelle

beno

von Holger W. (holgerw)


Lesenswert?

Versuch mal mit Handy, Computer sind manchmal eigensinnig ....

von Benjamin W. (beno86)


Lesenswert?

Ich habe es dann mit einem zweiten BTM probiert das hat er wieder 
gefunden nur das mit der Konfiguaration bekomme ich einfach nicht hin

von Holger W. (holgerw)


Lesenswert?

Hast du denn jetzt einen µC /PC direkt am Modul ?
Von dort aus kannst du es konfigurieren, über Bluetooth wird das nicht 
funktionieren.

Holger

von Benjamin W. (beno86)


Lesenswert?

Ich wollte es eigentlich mit meinem Arduino Port konfigurieren komme 
aber nicht so richtig hin, es geht ja nur über die Serielle 
Schnittstelle oder

von Holger W. (holgerw)


Lesenswert?

So ist das. Aber du musst das auf diesen Weg lösen, wie willst du sonst 
eine Verbindung hinbekommen oder Daten übertragen ?

von Benjamin W. (beno86)


Lesenswert?

Mit einem USB zu Serial Wandler werde ich es versuchen, kann es 
vielleicht sein das ich es dann über das Terminal noch finde wen es mein 
Bluetooth Stick nicht erkennt. Ich hoffe ich gehe dir nicht auf die 
Nerven mit meinen Fragen

von Holger W. (holgerw)


Lesenswert?

Immer an den Levelshifter denken. Mehr als 3,3 V killen das Modul !

von Benjamin W. (beno86)


Lesenswert?

Den was ich da habe ist das FTDI Basic Breakout 3,3V das müsste doch 
auch funktionieren ohne das ich dann einen Levelshifter brauch oder

von Holger W. (holgerw)


Lesenswert?

Das kenne ich nicht.

von Benjamin W. (beno86)


Lesenswert?

Ich werde es morgen mal Versuchen danke für deine Hilfe erstamla. Wünsch 
dir noch einen schönen Abend.

von Benjamin W. (beno86)


Lesenswert?

Jetzt kann ich schon mal mit dem Gerät kommunizieren aber er erkennt es 
nicht mehr als Bluetooth Gerät in seiner Umgebung kann es vielleicht 
sein das irgendwas zerstört ist?

von Benjamin W. (beno86)


Lesenswert?

Endlich habe ich es hinbekommen. Eine Frage habe ich nun noch kann ich 
dann ganz normal Daten von einem BTM-222 Modul welches am 
Mikrocontroller angeschlossen ist auf deem PC oder auf einen 
Mikrocontroller übertragen.

von wusel (Gast)


Lesenswert?

> Endlich habe ich es hinbekommen. Eine Frage habe ich nun noch kann ich
> dann ganz normal Daten von einem BTM-222 Modul welches am
> Mikrocontroller angeschlossen ist auf deem PC oder auf einen
> Mikrocontroller übertragen.

Selbstverständlich :-) Dein PC legt nach Verbindung eine virtuelle 
COM-Schnittstelle an (also diese RS232 Schnittstellen) die du dann z.B 
per Terminalprogramm öffnen u. ansprechen kannst.

von Benjamin W. (beno86)


Lesenswert?

Super danke für die schnelle Antwort freue mich voll das ich es nach 
langen Stunden endlich geschaftt habe.

von Benjamin W. (beno86)


Lesenswert?

Hallo habe wieder mal eine Frage wegen der Übertragung vom 
Mikrocontroller zu einem Hyperterminal. Habe das BTM als Slave 
konfiguriert und will jetzt die Daten auf ein Hyperterminal übertragen 
habe die Baudraten schon kontrolliert die sind richtig aber jetzt kommen 
nur so komische Zeichen an und nicht das was ich eigentlich senden will. 
Hat jemand vielleicht eine Ahnung

Vielen Dank

von Michael H. (michael_h45)


Lesenswert?

zeile 42 vom code.
zeile 23 von den daten.

von Benjamin W. (beno86)


Lesenswert?

Ich weiß leider nicht was du meinst

von Tim (Gast)


Lesenswert?

Hallo,


wenn ich einen Befehl an den BTM222 sende (über seinen RX Eingang) wird 
das gleiche Signal vom BTM222 wieder zurückgesendet.

Am Scope kann ich erkennen, dass es wirklich eine Antwort vom BTM222 
ist, und kein Kurzschluss zwischen RX und TX des FT232.

Nach Absenden des Befehls antwortet das Modul etwas 6 ms später mit dem 
ersten Zeichen, während die letzten Zeichen nach insgesamt etwa 30 ms 
verschickt werden.

Leider lässt sich das Modul auch nicht in den Befehlsmodus wechseln. Es 
wird alles zurückgespiegelt, was ich sende. Es hilft weder '+++', noch 
'AT+++'.

Kann mir jemand erklären wie das sein kann? Bei Datenraten ungleich 
19200 bps können die empfangenen Daten am FT232 auch nicht interpretiert 
werden. Aber wieso wechselt er nicht in den Befehlsmodus?


Vielen Dank im Voraus!

von Michael H. (michael_h45)


Lesenswert?

Tim schrieb:
> Kann mir jemand erklären wie das sein kann?

das datenblatt.

von Tim (Gast)


Lesenswert?

Nein. Im Datenblatt steht, dass das Modul beim +++ Befehl in den 
Befehlsmodus wechselt und das tut es nicht. Deine Antwort war 
überflüssig.

von Michael H. (michael_h45)


Lesenswert?

Tim schrieb:
> Nein

dochdoch.

von Tim (Gast)


Lesenswert?

Hast du dir das Datenblatt überhaupt mal angesehen oder sagst du einfach 
nur pauschal dass das Datenblatt hilft?

Das Modul macht nicht das, was im Datenblatt steht. Da ist ein "guck ins 
Datenblatt" nunmal nicht hilfreich.


Da müsstest du mir schon ne nähere Info geben.

von Tim (Gast)


Lesenswert?

Okay, hab's gecheckt.

Die 13 hat als letztes Zeichen gefehlt. Modul ist jetzt im 
Kommandomodus.

Trotzdem danke!

von Michael H. (michael_h45)


Lesenswert?

Tim schrieb im Beitrag #3359726
> Die 13 hat als letztes Zeichen gefehlt.
wo stand das denn? ^^

hättest du wenigstens geschrieben, was du genau geschickt hast, hätte 
man dir helfen können. aber einfach "geht nicht so" zu schreiben, ist 
einfach unklug...

von Tim (Gast)


Lesenswert?

Ich denke schon, dass ich die "Symptome" ausreichend beschrieben habe.

Ich habe geschrieben, dass ich '+++' und 'AT+++' gesendet habe. ;-)

Beides wurde gespiegelt. Logische Abhilfe => es fehlt die binäre 13.

Und dies ist darüber hinaus NICHT im Datenblatt zu finden. Zumindest 
nicht in diesem: 
http://www.mikrocontroller.net/wikifiles/f/fc/BTM222_DataSheet.pdf

von Tim (Gast)


Lesenswert?

Hallo nochmal,

ich scheitere jetzt leider an einer Verbindung zwischen meinem Motorola 
Defy Plus und dem BTM222.

Das Modul wird in den Bluetooth-Einstellungen gefunden. Wenn ich mich 
mit dem Modul verbinden möchte, erscheint nach der Eingabe der PIN unter 
dem gefundenen Bluetooth-Gerät: "Gepaart, jedoch nicht verbunden"

Ich habe folgendes probiert:

- Smartphone "sichtbar" schalten

- Smartphone und BTM222 neustarten

- BTM222 in Slave / Mastermodus gesetzt


Im Mastermodus werden Geräte aus der Nachbarschaft gefunden, jedoch 
nicht mein Smartphone.

Ich habe auch schon überlegt, ob sich die Profile nicht vertragen. Das 
BTM222 kann ja angeblich folgende Profile:  SPP,HSP/HFP,HID,HC.

Wenn ich mir Informationen mit ATI1 anzeigen lasse, wird unter anderem 
folgendes ausgegeben: "ATR=1, SPP SLAVE ROLE"

Das Modul scheint also defaultmäßig das SPP Profil zu verwenden, welches 
vom Defy Plus auch nach Datenblatt unterstützt wird.


Hat jemand vielleicht noch eine Idee, warum keine Verbindung aufgebaut 
werden kann? Vielen Dank!

PS: Die Firmwareversion ist 6.26

von Florian (Gast)


Lesenswert?

Wenn Du vom Smartphone auf den BTM zugreifen willst, brauchst Du am BTM 
rein gar nichts einstellen. Einfach mit Spannung versorgen und per BT 
werden die seriellen Daten am BTM übertragen.

von Tim (Gast)


Lesenswert?

Hallo Florian,

danke für deine Antwort!

Dann wird es wohl an meinem Smartphone liegen. Werd' es mal mit nem 
anderen probieren.

Danke nochmal!

von Tim (Gast)


Lesenswert?

Hallo nochmal,

ich habe es jetzt mal mit einem anderen Smartphone ausprobiert (Nexus 5) 
und das Problem ist immernoch dasselbe. "Gepaart, jedoch nicht 
verbunden".


Mit einem Bluetooth Dongle funktioniert die Verbindung komplett. Daten 
können von beiden Seiten aus versendet werden und kommen an der anderen 
Seite an.

Das Problem hat doch bestimmt was mit diesem SSP Profil zu tun oder?

Hat jemand eine Idee was ich tun kann? Bei vielen Leuten scheint eine 
Verbindung zwischen Smartphone und BTM222 ja ohne Probleme zu 
funktionieren.

von Tim (Gast)


Lesenswert?

Okay, anscheinend ist es normal, dass das Smartphone mit dem BTM222 
nicht verbunden ist.

Mit der Bluetooth Chat App von Google kann ich in beide Richtungen 
senden und empfangen, obwohl das Smartphone mit dem BTM222 offiziell 
nicht verbunden ist.

von A. B. (brewnera)


Lesenswert?

Hallo Leute,

ich bin auf der Suche nach einem Bluetooth-Modul, das mir Daten von 
einem ADC über SPI an den PC sendet. Der ADC (ADS1299) hat eine 
SPI-Schnittstelle, an die ich eben gerne direkt ein Bluetoothmodul 
anbinden möchte.
Ich habe schon in einigen Threads (inkl. diesem hier) gelesen, dass SPI 
nur für Firmwareupdates genutzt werden kann. Ist das nach wie vor so 
oder gibt es schon eine neue Firmware, mit der man Daten an das BTM222 
über SPI senden kann?
Falls nicht könnte man natürlich einen µC als Interface zwischen SPI und 
UART verwenden. Aber gibt's da vielleicht eine elegantere Lösung?

LG Andi

von Ekkehard L. (ekr)


Lesenswert?

(Gelöscht und neues Topic erstellt, habe die entsprechende 
Forums-Meldung erst zu spät gesehen, sorry ;) ).

: Bearbeitet durch User
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.