Forum: Mikrocontroller und Digitale Elektronik Bluetooth BM78 von Microchip - Probleme mit Config/Doku


von 7uptrinker (Gast)


Lesenswert?

Hallo zusammen,

für ein kleines Projekt soll BLE (Bluetooth Low Energy) verwendet 
werden. Koppelgeräte werden Smartphones mit iOS oder Android sein (BLE 
Fähigkeit vorausgesetzt).

Übertragen werden soll eine Geschwindigkeit evtl. und weitere kleine 
Datenmengen.

Mein Problem ist, dass ich irgendwie mit dem BM78 nicht zurecht komme. 
Ob es an mir liegt oder an der dürftigen/überladenen Beschreibung ist 
offen...

Ich habe ein Explorer16 Board mit dem mitgelieferten PIC24FJ128GA010 und 
das BM78 Pictail board.

Man kann das Board per USB (auf dem Board ist ein USB zu UART Wandler) 
direkt am Windows Rechner betreiben. Dafür gibt es eine kleine Software 
mit der man Daten wegschicken und empfangene Daten sehen kann. Das 
funktioniert auch soweit. Das BM78 heißt Dual_SPP. Man verbindet sich 
per Smartphone mit dem Modul. Eine PIN Abfrage findet nicht statt.

Inzwischen habe ich das BM78 am PIC24 (per UART) am laufen. Ich kann 
auch Daten sowohl mit einem iPhone als auch mit einem Android Tablet 
austauschen (wobei beim iPhone die Daten (im Moment nur einzelne 
Zeichen) nicht immer ankommen). Alles was man über den PIC versendet 
kommt im Grunde 1:1 auf dem Smartphone an.

Ich würde aber gerne den Namen von Dual_SPP auf einen anderen Namen 
ändern. Es gibt wohl ein UI-Tool (welches ich auch habe) mit dem man 
sämtliche Dinge (u.A. auch den Modulnamen) einstellen kann, aber es kann 
ja nicht so gedacht sein, dass man bei der Serienproduktion extra eine 
USB Buchse verbauen muss und jedes einzelne Produkt damit konfigurieren 
muss. Mann kann das im UI-Tool erzeugte Setup wohl aber auch einfach in 
einer Datei mit der man einen EEPROM beschreibt speichern. Aber was mach 
ich dann mit dem einzelnen programmierten EEPROM? Im BM78 ist jawohl 
einer drin. Es hat aber auch I²C herausgeführt. Daran können man 
natürlich den EEPROM extern anschließen. Aber ich kann mir nicht 
vorstellen dass das so gedacht ist. Ich habe bis jetzt auch keine Angabe 
gefunden aus der hervorgeht welchen EEPROM-Typ man dafür verwenden 
müsste. Auf dem PICTAIL ist kein separater EEPROM drauf.

Ich denke man kann das alles auch per UART einstellen, aber wie ist die 
Frage. Ich scheitere schon am berechnen der CRC (Softwaremäßig wäre das 
kein Problem für mich, mit der Formel auf Seite 5 komm ich nicht auf 
0xFD wie im Beispiel sondern auf 0x03).

Link zum Dokument:
http://ww1.microchip.com/downloads/en/DeviceDoc/IS1678S_UARTCommandSet_UserGuide.pdf

Hat da jemand mehr Durchblick?

Noch etwas frage ich mich:
Bei der Verbindung zum iPhone bin ich mir sehr sicher, dass es sich um 
eine BLE Verbindung handelt (für Bluetooth Classic müsste ein 
sogenannter Apple-Chip / Apple-ID-Chip erforderlich sein (der würde dann 
wahrscheinlich an die I²C Schnittstelle des BM78 angeschlossen)).
Bei Android bin ich mir nicht so sicher. Mit meinem alten Nokia C5-00 
(hat kein BLE) sehe ich zwar auch Dual_SPP, kann mich aber nur mit 
PIN-Abfrage darauf connecten (da ich keinen PIN weiß habe ich an der 
Stelle abgebrochen). Beim Android geht es ohne PIN und ich kann mit 
einer BT Chat App Daten hin und her schicken.

Ich nehme auch gerne einen Vorschlag für ein anderes Bluetooth Modul an, 
welches sich einfacher handhaben lässt und eine gute Doku dafür 
vorliegt. Es muss nur BLE können und zertifiziert sein für die in D 
relevanten Normen (CE, Funkprüfung, ?). Es sollte aber auch "verfügbar" 
und nicht wesentlich teurer sein. Schnittstelle UART (TTL) wäre schön.

Vielen Dank!

Gruß

7up

von 7uptrinker (Gast)


Lesenswert?

Ich glaube die Checksum habe ich jetzt gerade begriffen:

Im "BM77SPP v1.4 Host MCU Programming Guide" (Hier im Forum gerade 
gefunden) steht:

"Check SUM Rule :
Summation of every byte after SINC WORD (LENGTH, OP Code, OP Code PARAM, 
CHK SUM) is 0x0100"

Dann müsste die Formel so aussehen:
CHK = 0x0100 - (LENGTH + OP Code + OP Code PARAM);

Mit Werten aus dem Beispiel würde das dann so aussehen:
CHK = 0x0100 - (0x00 + 0x02 + 0x01 + 0x00) = 0x0100 - 0x0003 = 0x00FD

Das wäre für dieses Beispiel zumindest stimmig.

Versteht ihr das auch so?

Gruß

7up

von peaceman (Gast)


Lesenswert?

Hallo,
bin gerade mit dem BM78 PICtail beschäftigt.
Das es sich nicht über UART konfigurieren lässt ist wirklich blöd.
Das RN4677 ist anscheinbar baugleich, soll sich aber mit ASCII-Codes 
konfigurieren lassen. Ich habe es leider nicht da, möchte es aber 
einsetzen.
Mit dem BM78 bich ich jedenfalls nicht zufrieden. Nachdem ich mit dem 
UI-Tool die Baudrate geändert habe meldet es sich als BT-Headset und SPP 
funktioniert nicht mehr.

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.