Forum: Mikrocontroller und Digitale Elektronik Bluetooth BTM222 Master Konfiguration in Assembler für 89c2051?


von Lutz B. (lutzbutt)


Lesenswert?

Hallo,
ich habe mir eine Controller gesteuerte Sende und Empfangsanlage für den 
BTM222 gebaut. Als UART Interface vom/zum BTM222 benutze ich den Atmel 
89c2051 controller.

Mein Problem:
Ich schaffe es nicht den BTM222 mit dem Controller als Master zu 
konfigurieren.
Die Sequenz, die ich fahre ist folgende:
1.
Power ON
2.
4s lang PIO4 auf high legen, damit die UART Schnittstelle sich 
garantiert wieder mit der Werseinstellung konfiguriert).
3.
Danach 25ms Reset und 2s warten...
4.
Danach sende ich folgende ASCII AT Kommandos mit dem Controller an den 
BTM222:
ATR0<CR> (=> Master Funktion aktivieren)
2s warten...
ATO1<CR> (=> KEINE automatische Verbindung mit Slave)
2s warten...
ATD=00123...<CR> (=> die Slave Zieladresse speichern)
2s warten...
ATA<CR>

Nun sollte der BTM222 eigentlich eine Verbindung zum bereits am PC 
laufenden Slave aufbauen (dieser ist mit der ATD=<Masteradresse> 
konfiguriert!).
Der BTM222 läßt sich so nicht konfigurieren und ich vermute ein 
Timingproblem.
Die Konfiguration über Hyperterminal funktioniert ohne Probleme und ich 
kann auch Daten senden und empfangen.

Meine Fragen:
Hat jemand hier schon etwas ähnliches probiert und kann funktionsfähigen 
Sourcecode (am Besten Assembler) posten?
Reicht das <CR> = 0x0D oder muß noch ein <LF> 0x0A gesendet werden?

Gruß Lutz

von Christoph B. (christophbudelmann) Benutzerseite


Lesenswert?

Lutz Buttelmann schrieb:
> Danach sende ich folgende ASCII AT Kommandos mit dem Controller an den
> BTM222:
> ATR0<CR> (=> Master Funktion aktivieren)
> 2s warten...
> ATO1<CR> (=> KEINE automatische Verbindung mit Slave)
> 2s warten...
> ATD=00123...<CR> (=> die Slave Zieladresse speichern)
> 2s warten...
> ATA<CR>

Wartest du nach jedem Zeichen, bis das BTM222 dies zurückgesendet hat?

von Lutz B. (lutzbutt)


Lesenswert?

Nein,
aber ich warte zur Zeit 2 Sekunden, das sollte reichen.

Lutz

von Lutz B. (lutzbutt)


Lesenswert?

So, nach langen Meßarien der verschiedenen Kommandos warte ich nun 4s 
nach jedem Befehl.
Es war auffällig, daß verschiedene Kommandos über die serielle 
Schnittstelle unterschiedlich lang brauchten, bis sie vom BTM222 
acknowledge wurden (Echo).

Ich warte nicht auf ein Echo (was man natürlich auch machen kann, danke 
für den Hinweis!), weil ich für meine Anwendung genauere Timinginfos 
brauche und diese nicht im Datenblatt standen.

So funktioniert der Disconnect mit PIO4 zimlich schnell, allerdings das 
Reconnect braucht doch wieder ein paar Sekunden.

von Simon K. (simon) Benutzerseite


Lesenswert?

Deswegen ist die "korrekte" Variante auf das Echo zu warten...

von Lutz B. (lutzbutt)


Lesenswert?

Aha,
es gibt also doch einige, die das schon programmiert hatten.
Leider ist keiner bereit hier doch mal meiner Bitte nachzukommen und ein 
wenig Sourcecode zu posten, schade...

Echo = korrekt:
Ja unter nominellen Umständen.
Was ist denn, wenn das Echo nicht kommt?
Wie lange soll ich denn auf ein Echo warten, wenn im Datenblatt nichts 
über das Zeitverhalten steht?

von Lutz B. (lutzbutt)


Lesenswert?

Ich habe nun mein Design am Laufen und die Reichweite ist gut:

http://www.24display.de

Ich sende abwechselnd mit zwei BTM222 Master ein Zeitsignal zu den 
Anzeigen (Slaves).
ABER:
Zeitweise habe ich Probleme mit der Übertragung.
Ich vermute, dass sich die Module gegenseitig beeinflussen und 
"ausbremsen".
Jedenfalls "springt" die Anzeige ab und zu, die Anzeige läuft nicht 
gleichmäßig runter.

Hatte jemand ähnliche Probleme, wenn er gleichzeitig zwei Master auf 
engen Raum nutzte?

Lutz

von Christoph B. (christophbudelmann) Benutzerseite


Lesenswert?

Lutz Buttelmann schrieb:
> Ich habe nun mein Design am Laufen und die Reichweite ist gut:

Das ist schön.

> http://www.24display.de

Nach CE-Konformitätserklärung, ElektroG, etc. frage ich jetzt besser mal 
nicht... ;-)

> Ich sende abwechselnd mit zwei BTM222 Master ein Zeitsignal zu den
> Anzeigen (Slaves).
> ABER:
> Zeitweise habe ich Probleme mit der Übertragung.
> Ich vermute, dass sich die Module gegenseitig beeinflussen und
> "ausbremsen".
> Jedenfalls "springt" die Anzeige ab und zu, die Anzeige läuft nicht
> gleichmäßig runter.
>
> Hatte jemand ähnliche Probleme, wenn er gleichzeitig zwei Master auf
> engen Raum nutzte?

Wie sind die Module denn konfiguriert? Wenn sie unterschiedliche IDs 
haben, sollte es eigentlich keine Probleme geben - nur zwei Master in 
einem System ist meines Wissens bei Bluetooth eigentlich nicht wirklich 
vorgesehen.

von Lutz B. (lutzbutt)


Lesenswert?

Die Module haben unterschiedliche IDs (12 Stellige Adresse).
Ein Master paired sich mit einem durch eine ID bestimmten Slave Modul.
Ein Controller leitet über einen MUX (74HC157) die UART-Daten 
abwechselnd zu den beiden BTM222 Master. Diese senden dann zum 
jeweiligen Slave (Anzeige).

CE usw, brauche ich das wirklich?
Die Anlage wird mit 12V betrieben, davon geht keine Gefahr aus.
EMV technisch strahlt natürlich das BTM222 am meisten, aber es stört ja 
nicht.

Lutz

von Christoph B. (christophbudelmann) Benutzerseite


Lesenswert?

Lutz Buttelmann schrieb:
> Die Module haben unterschiedliche IDs (12 Stellige Adresse).
> Ein Master paired sich mit einem durch eine ID bestimmten Slave Modul.
> Ein Controller leitet über einen MUX (74HC157) die UART-Daten
> abwechselnd zu den beiden BTM222 Master. Diese senden dann zum
> jeweiligen Slave (Anzeige).

Eigentlich sollte das gehen, aber ich habe auch schon Probleme gehabt 
bei drei Slaves an einem PC. Nur einer der drei machte Probleme, wenn er 
zusammen mit den anderen betrieben wurde. Einzeln ging alles wunderbar. 
Ein Austausch des Moduls löste das Problem - keine Ahnung, was sich an 
der Firmware zwischenzeitlich geändert hatte.

> CE usw, brauche ich das wirklich?

Ja.

> Die Anlage wird mit 12V betrieben, davon geht keine Gefahr aus.
> EMV technisch strahlt natürlich das BTM222 am meisten, aber es stört ja
> nicht.

Alle in der EU in den Verkehr gebrachten Geräte müssen das CE-Symbol 
tragen und bei Bedarf auch die entsprechende Konformitätserklärung 
vorweisen. Du kannst die auch so ohne Prüfungen ausstellen, nur wenn es 
eine Verletzung der Konformität gibt (auch wenn es die Bluetooth-Module 
sind), wird es unter Umständen teuer.

von Lutz B. (lutzbutt)


Lesenswert?

Hatte ich mir schon fast gedacht, dass die Teile Probleme verursachen 
können.
Bei nächster Gelegenheit werde ich mal Messungen machen, um das Problem 
einzukreisen und die Problemfälle rauszusuchen.


Danke übrigens für die Infos bzgl. CE, hab mich mal ein wenig schlau 
gemacht.
Es fehlt eigentlich nur der CE Aufkleber.

Wie gehst Du damit um? Erfüllst Du die Konformität?
Kennst Du aussagekräftige Quellen, die speziell kleine Firmen und 
Hobbybastler ansprechen?

Mir geht es darum ein Gefühl für diese CE Vorschrift zu kriegen.

von Christoph B. (christophbudelmann) Benutzerseite


Lesenswert?

Lutz Buttelmann schrieb:
> Danke übrigens für die Infos bzgl. CE, hab mich mal ein wenig schlau
> gemacht.
> Es fehlt eigentlich nur der CE Aufkleber.

Naja, bzw. die Konformitätserklärung samt Messergebnissen in der 
Hinterhand, wenn jemand danach fragt oder was passiert. ;-)

> Wie gehst Du damit um? Erfüllst Du die Konformität?

Meine bisherigen Entwicklungsarbeiten sind nie in den offiziellen 
Verkauf gekommen und eher für die Prototypen-Entwicklung gebraucht 
worden - daher bin ich bislang davon verschont geblieben.

> Kennst Du aussagekräftige Quellen, die speziell kleine Firmen und
> Hobbybastler ansprechen?

Es gibt etliche EMV-Labore - grundsätzlich würde ich versuchen, eins in 
der Nähe zu finden. Das umgeht viele Probleme. Billig ist es aber bei 
keinem... Auch wenn ich wahrscheinlich nicht weit von dir weg wohne (von 
Weyhe aus so 5-10km nach Süden), kenne ich aber dort keine Labore in der 
Nähe. Ich habe aber wie gesagt auch noch nicht gesucht.

> Mir geht es darum ein Gefühl für diese CE Vorschrift zu kriegen.

Die Vorschriften sind eine Sache, man sollte aber auch mal ein Gerät 
mittels Spektrums-Analysator und Co. auf den Leib rücken. Letztlich 
braucht man auch bei der Entwicklung ein Gefühl dafür, was sich wie 
auswirkt.

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.