can't program BCM20737s via HCI UART

Tip / Sign in to post questions, reply, level up, and achieve exciting badges. Know more

cross mob
Anonymous
Not applicable

Hi

I'm working on a project with a costom board that integrate BCM20737s module.

In this project I have to be able to program BTLE module through main CPU of the board via HCI UART (BTLE code and mimi driver .hex file are stored inside board internal memory).

I've downloaded and read WICED HCI UART Control Protocol.pdf documentation to learn the correct sequence of command that have to be send and their structure. Following that document I wrote C code that is running on my CPU and that is trying yo program BCM20737s.

My code perform following operations:

     - send reset command

     - send load minidriver command

     - send minidriver.hex

     - send launch ram command

     - send erease chip command

     - send myProgram.hex

     - send launch ram command

At the moment the procedure is having systematically the same issue during send minidiver.hex phase.

To be more precise the problem that I'm facing is that I can send succesfully only the first 5 frame of minidriver.hex, than when I send 6th frame BCM20737s module stops replying.

Than I've decided to bypass my CPU, use WICED to program BCM20737s and with a sniffer capture TX flux to understand better the nature of every frame and the timing between a frame and the other.

This is a part of the flux:

     tx_capture.PNG

After this analyisis I've found out that the frame sent by WICED to the module are exactly the same that my C code send to the module.

The only difference was the timing, so I've modified my code to rispect the timing between a send operation and the other, but the problem persists (I've verified frame content and timing sent by C code using an oscilloscope).

Can you please tell me why BTLE stop sending ACK on 6th packet of minidriver.hex ? What can I do?

Thaks is advance

Davide

0 Likes
1 Solution
Anonymous
Not applicable

Hi Anjana

I've solved the problem.

The issue was not directly relatred to BLT code, but I found out that an other thread of the program was always triggering a watchdog at the same time causing global reset on all devices connected to the micro.

This was quite triky to find because it was always happening after BLT thread had sent 5 frame.

Thanks

Davide

View solution in original post

0 Likes
2 Replies
AnjanaM_61
Moderator
Moderator
Moderator
5 comments on KBA First comment on KBA 5 questions asked

Hi,

I can see only transmitted packets in the logs, can you send the responses of previous packets as well before failing?

Thanks,

Anjana

0 Likes
Anonymous
Not applicable

Hi Anjana

I've solved the problem.

The issue was not directly relatred to BLT code, but I found out that an other thread of the program was always triggering a watchdog at the same time causing global reset on all devices connected to the micro.

This was quite triky to find because it was always happening after BLT thread had sent 5 frame.

Thanks

Davide

0 Likes