Strictly necessary cookies are on by default and cannot be turned off. Functional, Performance and Tracking/targeting/sharing cookies can be turned on below based on your preferences (this banner will remain available for you to accept cookies). You may change your cookie settings by deleting cookies from your browser. Then this banner will appear again. You can learn more details about cookies HERE.
Strictly necessary (always on)
Functional, Performance and Tracking/targeting/sharing (default off)
I'm reading WICED HCI UART Control Protocol.pdf and I'm trying to understand how to use HCI commands described from chapter 3 (WICED HCI Control Protocol Definition).
For example I'm trying to use reset command and following what written inside the documentation the command should be:
0x19 0x01 0x00 0x00 0x00
0x19 = HCI_WICED_PKT
0x01 = HCI_CONTROL_COMMAND (Reset)
0x00 = HCI_CONTROL_GROUP (Device)
0x00 = low byte packet lenght
0x00 = high byte packet lenght
but If I send this command to my device (BCM20737s) via UART I don't receive any response.
The device is correctly set in programming mode and if I try to reset the device with the other command found on the documentation (01 03 0C 00) the device send back the correct answer (04 0E 04 01 03 0C 00).
Can you please tell me what I'm doing wrong?
I'm trying to do that because my goal is to obtain local bluetooth device address and I would like to have two commands that will let me write and read device address.
But If I'm not able to perferm simple command like reset I'm not confident that I will be able to create that two commands.
After further analysis I've seen that DB address is not maintained by BCM20737s even after a reset operation.
To better understand what I'm looking for I will explain what my code have to do:
I have a C code that have to program BCM20737s module through main CPU of my custom board via HCI UART (BTLE code and mimi driver .hex file are stored inside board internal memory).
After that operation I have to overwrite MAC address (DB address) of BCM20737s.
This is necessary because during programming phase the same .hex file (that contain DB address info) is downloaded on every board produced so I have to change MAC address assigning the one associated to the specific board after download operation.
What I'm doing now is to program the device, than I put it agian in programming mode and I send it the commands that you have written me (first I write correct DB address, than I read it back to verify that it have been correctly set).
After that I exit form programming mode resetting BMC20737s and taking TX low before release reset signal.
Than if I power off the device or I reset it when I try to read angin DB address, BCM20737s reply with the old address.
What I have to do to change DB address permanently?