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
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...
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
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
> 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.
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.
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.
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.
> 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.
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.
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.
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.
> 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.
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
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?
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
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.
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
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
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