Forum: Mikrocontroller und Digitale Elektronik BTM222 konfigurieren


von Tobi (Gast)


Angehängte Dateien:

Lesenswert?

Hallo,

ich habe ein BTM222 Bluetooth-Modul auf meiner Platine zusammen mit 
einem ATMega8 (und einem 74HTC14N) verlötet. Nun wollte ich das Modul 
konfigurieren um die Baudrate, den Namen und die PIN zu ändern, aber ich 
bekomme es nicht hin.
Ich kann meinen PC mit dem Modul (PIN 1234) koppeln und danach auch mit 
HTerm eine Verbindung mit einer Baud-Rate von 19200, 8 Bits, 1 Stop bit, 
keine Parität herstellen.

Wenn ich nun "AT" sende, blinkt in dem Moment, in dem ich Enter drücke 
auch die entsprechende Übertragungsstatus-LED aber das war es dann auch. 
Es kommt nichts zurück. Nach verschiedenen Berichten sollte hier ein 
"OK" kommen.
Wenn ich mit dem Bluetooth-Modul etwas vom ATMega sende, kommt dies auch 
beim Terminal an ("Hello World"), die Verbindung scheint also zumindest 
in eine Richtung zu funktionieren.

Daher denke ich, dass ich vielleicht einen grundlegenden Fehler mache. 
In dem Programm HTerm habe ich als Übertragungstyp: ASC eingegeben, was 
wohl für ASCII steht. Ist das korrekt? Send on enter steht auf CR.
Ich gebe dann die zwei Buchstaben AT ein und drücke Enter. Muss ich 
vielleicht noch ein \n oder \r oder so in Klartext dahinter schreiben?

Danke
Tobi

von Besserwisser (Gast)


Lesenswert?

Setzt mal unter "Send on Enter" auf CR/LF. CR alleine könnte ein Problem 
sein.

von asd (Gast)


Lesenswert?

Hmm, die Bluetooth-Module mit denen ich bisher gearbeitet habe, ließen 
sich nur von der "Draht-Seite" aus konfigurieren. Sobald die 
Bluetooth-Verbindung hergestellt war, verhielten sie sich als 
transparente UART-Brücke.
Waren allerdings keine BTM-222...

von Tobi (Gast)


Lesenswert?

Hallo,

habe bereits alle Optionen dort durchprobiert. Leider kein Erfolg. Habe 
auch gerade mal Send on enter auf "none" gestellt und AT\n und AT\r 
ausprobiert. Darauf kam aber ebenfalls keine Antwort.

Gruß
Tobi

von Tobi (Gast)


Lesenswert?

asd schrieb:
> Hmm, die Bluetooth-Module mit denen ich bisher gearbeitet habe, ließen
> sich nur von der "Draht-Seite" aus konfigurieren.

Es war von mir auch etwas ungünstig formuliert. Von Haus aus sollten die 
oben genannten Einstellungen auf dem Modul eingespeichert sein. Daher 
wollte ich die erst mal von der PC Seite aus testen. Kann man also per 
Funk die Einstellungen gar nicht abfragen?

Gruß
Tobi

von Bernhard T. (bernhardt)


Lesenswert?

+++
(Escape
Sequence)

von Barney G. (fuzzel)


Lesenswert?

> Kann man also per Funk die Einstellungen gar nicht abfragen?

Nein, das geht nur per TTL (3,3V) <=> RS232/USB Adapter direkt am Modul. 
Handydatenkabel eignen sich dafuer prima.

von Tobi (Gast)


Lesenswert?

Hallo,

ist es denn möglich das Bluetooth-Modul vom Mikrocontroller aus zu 
konfigurieren? Ich habe den Mikrocontroller mehrere Befehle durch das 
Modul senden lassen. Diese kommen zwar am PC an, verändern aber nicht 
die Konfiguration des Moduls. Also beispielsweise habe ich ein
1
uart_puts("ATN=Test");

geschickt, aber der Name bleibt auf dem Ausgangswert.

von mullwark (Gast)


Lesenswert?

hab das btm222 auch in gebrauch, bisher aber noch nicht aktiv 
konfiguriert.

dieser beitrag ist der entscheidende hinweis:

asd schrieb:
> Hmm, die Bluetooth-Module mit denen ich bisher gearbeitet habe, ließen
> sich nur von der "Draht-Seite" aus konfigurieren. Sobald die
> Bluetooth-Verbindung hergestellt war, verhielten sie sich als
> transparente UART-Brücke.
> Waren allerdings keine BTM-222...

du kannst das btm222 nur konfigurieren, wenn KEINE funkverbindung 
besteht. entweder, du bastelst dir irgendwas kabeliges für den pc, oder 
du musst ein programm schreiben, bei dem der µC die konfiguration via 
usart sendet, wenn das modul nicht gekoppelt ist.

von Tom P. (booner)


Lesenswert?

Hei,

ich hab das BTM222 schon erfolgreich konfiguriert und beide Punkte, die 
mullwark anspricht, kann ich bestätigen!

Grüße,

Tom

von Bernhard T. (bernhardt)


Lesenswert?

Woher soll den das Teil wissen das AT nicht ein Teil eines Textes oder 
sonst ein Teil eines Datenstroms ist. Du musst es erst durch eine Escape 
Sequenz darauf vorbereiten das jetzt nicht mehr Daten versendet werden 
sollen, sondern das jetzt AT Befehle kommen. Ich hab selber noch nicht 
mit dem BTM222 gearbeitet sollte aber auch das gleiche sein. Lies das 
Datenblatt oder nutze die Suchfunktion hier.

: Bearbeitet durch User
von Barney G. (fuzzel)


Lesenswert?

> Ich hab selber noch nicht mit dem BTM222 gearbeitet sollte aber auch
> das gleiche sein.

Keine Ahnung, aber gute Ratschlaege geben. Na super.

> Woher soll den das Teil wissen das AT nicht ein Teil eines Textes oder
> sonst ein Teil eines Datenstroms ist.

Eben aus diesem Grund kann man es nicht per Bluetooth konfigurieren.

> Du musst es erst durch eine Escape Sequenz darauf vorbereiten das jetzt
> nicht mehr Daten versendet werden sollen, sondern das jetzt AT Befehle
> kommen.

Unfug, siehe oben.

> Lies das Datenblatt oder nutze die Suchfunktion hier.

Solltest Du Dir mal zu Herzen nehmen, BEVOR Du postest.

: Bearbeitet durch User
von Bernhard T. (bernhardt)


Lesenswert?

Ich habe nie behauptet das das von Bluetooth aus konfiguriert werden 
kann Tobi versucht es ja auch mit der weile über den UART.
Was kannst du dem Tobi an Hilfestellung bieten ?
Dafür hast du wahrscheinlich gar keinen Bock.
Ist in diesem Forum ja auch nur noch nebensächlich.

von Barney G. (fuzzel)


Lesenswert?

Beitrag "Re: BTM222 konfigurieren"

> Tobi versucht es ja auch mit der weile über den UART.

Und wie drei Beitraege hoeher steht, hat er es ja hin bekommen.

: Bearbeitet durch User
von Bernhard T. (bernhardt)


Lesenswert?

Barney Geroellheimer schrieb:
>> Ich hab selber noch nicht mit dem BTM222 gearbeitet sollte aber auch
>> das gleiche sein.
>
> Keine Ahnung, aber gute Ratschlaege geben. Na super.

Das das beim BTM222 standartmäßig auch +++ ist wie bei meinem hatte ich 
im Datenblatt nachgeschlagen.
Sorry.

: Bearbeitet durch User
von Barney G. (fuzzel)


Lesenswert?

> Das das beim BTM222 standartmäßig auch +++ ist wie bei meinem hatte ich
> im Datenblatt nachgeschlagen.

Und genau das hat mullwark (Gast) gefuehlte 75 Beitraege hoeher schon 
bemerkt, woraufhin jetzt alles funktioniert.

> du kannst das btm222 nur konfigurieren, wenn KEINE funkverbindung
> besteht. entweder, du bastelst dir irgendwas kabeliges für den pc, oder
> du musst ein programm schreiben, bei dem der µC die konfiguration via
> usart sendet, wenn das modul nicht gekoppelt ist.

>>Sorry.

Angenommen.

von Tobi (Gast)


Lesenswert?

Hallo und danke für die angeregte Diskussion ;-)

Leider habe ich es noch immer nicht geschafft das Bluetooth-Modul zu 
konfigurieren.
Es sendet und empfängt ohne Probleme, allerdings kann ich weiterhin 
keine Einstellungen ändern.
Ich habe das Modul nicht mit anderen Geräten gekoppelt und dann 
verschiedene Befehle vom Mikrocontroller senden lassen:
1
// Escape Sequence
2
uart_puts_extended("+++");
3
      
4
// PIN Off
5
uart_puts_extended("ATP0");
6
      
7
// Namen ändern
8
uart_puts_extended("ATN=Test");

Und dann einmal die Escape Sequence mit dem AT davor, da ich mir nicht 
sicher war, wie es gemeint ist.
1
// Escape Sequence
2
uart_puts_extended("AT+++");
3
      
4
// PIN Off
5
uart_puts_extended("ATP0");
6
      
7
// Namen ändern
8
uart_puts_extended("ATN=Test");

Die uart_puts_extended verwendet die uart_putc() von Peter Fleury und 
ich habe diese wie folgt definiert:
1
void uart_puts_extended(const char *s)
2
{
3
  while (*s)
4
  {
5
    uart_putc(*s++);
6
    
7
    _delay_ms(50);
8
    // ... insgesamt 20 mal
9
    _delay_ms(50);
10
  }
11
}

Leider haben beide Varianten keinen Erfolg. Habt ihr vielleicht sonst 
noch Vorschläge?

Danke
Tobi

von Tom P. (booner)


Lesenswert?

Hei,

es könnte sein,  dass da noch ein CR und/oder LF fehlt. (quasi die 
Enter-Taste)


Grüße,

Tom

PS: Warum schließt du das Modul nicht erstmal an einem PC an,  damit du 
ein Gefühl dafür bekommst?

von Wayne M. (vibra)


Lesenswert?

Zum konfigurieren muss das Bluetooth Modul BTM - 222 ein mal an den 
Rechner angeschlossen werden. über Die Bluetooth Verbindung geht dies 
nicht!
Die Baud Rate ist bei einem jungfräulichen BTM 222 Modul vom Hersteller 
auf 19200bps 8N1 und SLAVE voreingestellt. Bei einigen Firmwareversionen 
auch 9600bps 8N1

von Wayne M. (vibra)


Lesenswert?

Ich verlinke mal dahin :
http://stefanfrings.de/btm222/

von Konrad S. (maybee)


Lesenswert?

Es ist schon eine Weile her, dass ich zuletzt mit einem Modem gesprochen 
habe, aber ich erinnere mich noch an eine notwendige Pause (vor und? 
nach) dem +++, damit es als Escape erkannt wird und nicht als Teil des 
Datenstroms betrachtet wird.

von Tom P. (booner)


Lesenswert?

Hei,

+++ braucht es nicht.


Grüße,

Tom

von Tobi (Gast)


Lesenswert?

Wayne Monga schrieb:
> Zum konfigurieren muss das Bluetooth Modul BTM - 222 ein mal an den
> Rechner angeschlossen werden. über Die Bluetooth Verbindung geht dies
> nicht!

Ich habe keine RS232 Steckplatz an meinem Rechner, daher muss ich das 
Modul mit meinem Mikrocontroller konfigurieren. Da diese Direkt (mit 
einer Leiterbahn) miteinander verbunden sind, benutze ich auch keine 
Funkverbindung.

Wayne Monga schrieb:
> http://stefanfrings.de/btm222/

Den Link habe ich schon durchgelesen, dieser hilft mir allerdings nicht 
bei meinem Problem, da ich das Modul nicht mit dem Rechner verbinden 
kann.

Wayne Monga schrieb:
> Die Baud Rate ist bei einem jungfräulichen BTM 222 Modul vom Hersteller
> auf 19200bps 8N1 und SLAVE voreingestellt. Bei einigen Firmwareversionen
> auch 9600bps 8N1

Ja, ich weiß, siehe mein erstes Posting. Grundlegend klappt die 
Kommunikation, aber die Konfiguration nicht.

Tom P. schrieb:
> +++ braucht es nicht.

Okay, hab ich auch weggelassen.

Ich habe jetzt sowohl
1
// PIN Off
2
uart_puts("ATP0\n");
3
      
4
// Namen ändern
5
uart_puts("ATN=Test\n");
als auch
1
// PIN Off
2
uart_puts("ATP0");
3
uart_putc('\n');
4
      
5
// Namen ändern
6
uart_puts("ATN=Test\n");
7
uart_putc('\n');
ausprobiert und auch das \n in beiden Varianten mit \r\n ausprobiert. 
Leider alles ohne Erfolg.

Ich schicke die Daten von meinem Mikrocontroller an Pin 26 UART RX des 
Moduls. Ist das korrekt?

Danke
Tobi

von Martin K. (dschadu)


Lesenswert?

Hi,

das Modul erwartet kein \n als Zeilenabschluss, sondern nur ein \r.
1
uart_puts("atz0\r");     //Modul-Reset
2
_delay_long(4000)        //Warten bis Modul gestartet
3
uart_puts("atn=NAME\r"); //Modul Name
4
_delay_ms(10);
5
uart_puts("atp=1234\r"); //Passwort
6
_delay_ms(10);

Antworten tut es mit einem Echo. Z.b:
1
atp=1234\r
2
\r\n
3
OK\r\n


Das geht nur von der "Kabel" Verbindung aus. Und nur wenn keine 
Bluetooth verbindung besteht. Dann musst du mit "+++\r" in den 
Command-Modus wechseln, was etwa 1sekunde dauert, aber nur sehr 
sporadisch. mit "ato\r" gehts zurück zur Datenübertragung

von Tobi (Gast)


Lesenswert?

Hallo,

Martin K. schrieb:
> Dann musst du mit "+++\r" in den
> Command-Modus wechseln, was etwa 1sekunde dauert, aber nur sehr
> sporadisch.

danke Martin, genau das hat funktioniert :-)

Gruß Tobi

von Tom P. (booner)


Lesenswert?

Hei,

okay sorry, ich war mir sicher, dass +++ nicht notwendig ist!


Grüße,

Tom

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.