Kommunikation Mikrocontroller - Bluetooth Modul

OP #281018
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.
Angehängte Dateien:
Gast #281019
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
Gast #281021
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

Antwort schreiben

Bitte melde dich an, um einen Beitrag zu schreiben.

oder

Mit Google-Account einloggen

Die Registrierung ist kostenlos und dauert nur eine Minute.

Jetzt registrieren