Forum: Mikrocontroller und Digitale Elektronik Kommunikation Mikrocontroller - Bluetooth Modul


von Andreas L. (pirol)


Angehängte Dateien:

Lesenswert?

Hallo, ich möchte mit einem ATMega162 über den UART ein Bluetooth-Modul
(Mitsumi WML-C11) mit HCI-Kommandos ansprechen. Es geht erstmal "nur"
darum, dass das Modul einen Inquiry scan macht, die entsprechenden
Inquiry results sollen dann im Mega weiterverarbeitet  werden. Ich
benutze den Code Vision C-Compiler.

Jetzt das Problem: Auf den Inquiry Command erhalte ich zwar eine
Antwort, aber

- beim Command status event nicht mit den gewünschten Parametern. Dort
wo der OP-Code stehen sollte, in diesem Fall 01 04, kommt nur ein 00 00
zurück.
und
- das eigentliche Inquiry result, nach dem ich so lechze, kommt gar
nicht erst.

Habe dann in einer Beschreibung vom Ericsson-Modul gelesen, der erste
Command sollte immer ein HCI-Reset sein. Zudem muss beim Modul noch das
scannen enabled werden. Habe ich gemacht, die Antwort war jeweils die
gleiche wie auf das Inquiry scan, und das verstehe ich nun gar nicht
mehr. Während die Antwort auf das Inquiry scan wenigstens noch in einem
gewissen Zusammenhang mit dem Command ergibt, ist sie doch als Antwort
auf ein Reset bzw. Scan enable nicht zu verstehen. Auch der Versuch,
den Scan Status nur auszulesen und nicht zu setzen gibt die gleiche
Antwort.

Diese HCI-Commnands habe ich gesendet:

HCI-Reset:  01 03 0C 00

HCI_Read_Scan_Enable:  01 19 0C 00

HCI_Write_Scan_Enable:  01 1A 0C 01 03

HCI-Inquiry:  01 01 04 05 33 8B 9E 08 10

Das HCI-Event auf alle Commands ist

04 0F 04 00 01 00 00

Hat vielleicht jemand einen Tip, wie das Modul "standardmäßig" beim
einschalten initialisiert wird?

Muß ich evtl. noch PSKey_Settings setzen, wenn ja, geht das nur über
das SPI-Interface und wie fängt man so was an?

Die beiden PINS der Flusskontrolle sind auf LOW und sollen default auf
disabled sein,habe sie deshalb nicht angeschlossen.

Zum Schluß muss ich noch gestehen, dass der UART mit 115,2 läuft, weil
das Modul mit dieser Datenrate sendet und ich nicht weiß, wie ich das
ändern kann. Habe die Befehle des Mikrocontrollers mit dem scope
gemessen, die Bits werden fehlerfrei übertragen.

Trete irgendwie auf der Stelle im Moment. Leider habe ich keine großen
Erfahrungen in der Mikrocontrollerprogrammierung, deshalb wären
Anregungen und Hinweise klasse, die mein niedriges level
berücksichtigen.

von Beppi (Gast)


Lesenswert?

Hi

Wie schnell läuft denn dein uC? Solche Fehler bekomm ich immer wenn ich
meine Chips überfordere. Da kommen die nicht mehr aus dem Interrupt raus
und fabrizieren dann Müll.

Noch ne blöde Frage: Auf dem WML ist eine HCI-Schnittsellen-taugliche
Firmware drauf? (denn wo ich mit diesen Dingern gearbeitet habe gabs
eine HCI-Firmware und eine mit dem APP-Stack von CSR)

Ist zwar net viel was ich dazu zu sagen hab, aber vielleicht hilft es
ja

CU
Beppi

von Andreas L. (pirol)


Lesenswert?

Hallo Beppi,

der Mega ist mit 13,56MHz getaktet,könnte ich mal runterzutakten.

Der BC02 hat lt. Datenblatt auch einen HCI-tauglichen Stack
implementiert.

Gruß Andy

von asddas (Gast)


Lesenswert?

Hi,

Leg mal zur Sicherheit CTS auf Low.
Hast du einen Hardware-Reset vor dem Senden der HCI-Commands gemacht?
Hast du mal geschaut ob die Bytes richtig am µC ankommen?

Vielleicht Hilft dir ja auch ein OpenSource-Stack?
Schau mal hier: www.btnode.ethz.ch

von Andreas L. (pirol)


Lesenswert?

Hallo,

bekomme das gleiche auch bei CTS auf low. Einen Hardware Reset habe ich
auch schon ausprobiert, bringt mich auch nicht weiter.

Dann schaue ich nochmal in den openSource Stack rein.

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.