SDK2.2 BCM20736S SIP in custom board failed to run after programming the application on to it

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

cross mob
Anonymous
Not applicable

Hi,

I am using SDK2.2 on tag3 board to develop our BTLE custom application.

In our custom board, we instead use BCM20736S SIP, not the BCM20737S that is populated on the tag3 board.

(1) The custom firmware is tested out on the tag3 board before I programmed it to the custom board. Our custom firmware is a managed beacon that keeps to beacon until it is connected, than exchange data from an APP for thermal values like sensors temperatures and their configured set points etc.

(2) In the custom firmware, I have enabled hcl_uart debug streaming, so this is used as an indication to me after programming it to the custom board, the application can run on the custom board if I can see debug messages streaming out to console (teraterm)

(3) I succeeded to program the custom firmware on the custom board using an external USB serial port, it was straight forward, no hiccup at all.

(4) However after I removed the external USB serial port, and applied an external 3.3v to the custom board (I confirmed HCL_UART was low as pulled down internally from the SIP), and after I pulled the reset line low for a short period and released it (reset went low briefly and returned to high (high = 3.3v, low=0v)), there was nothing I could see on the console (no debug messages streamed out at all). I also ran my APP to scan it to see if SIP can send beacon for its identification, there was nothing I can see from the APP.

I am stuck and have no idea why the application could fail after programming it to a custom board, but works OK in tag3 board, the only difference is we use BCM20736 SIP, and tag3 board use BCM20737S SIP.

I attached our custom hardware board for your reference. The attached schematics is basically a break out board that housed the BCM20736S and has connector which is used for connection to our main host controller board.

Please advise,

Many thanks!

Alex

0 Likes
1 Solution
10 Replies
MichaelF_56
Moderator
Moderator
Moderator
250 sign-ins 25 comments on blog 10 comments on blog

This is a common scenario when going from development on the TAG 3 board to a custom board which is a subset of the TAG3 design.

Unfortunately, there are numerous things which could cause this process to fail, but the good news is that many of them have been documented throughout the forum in other threads.

Two things that stand out to me:

  • The assumption that the TAG3 board uses a SiP module (it uses an SoC with a very high quality ext. Xtal, the module has a crystal built into the SiP)
    • Search for "Crystal Warm Up"
  • You do not mention using the specific FTDI programming cable we have tested, which is needed in this scenario
0 Likes
Anonymous
Not applicable

THE FTDI programming cable I use is Silicon Labs CP210x USB to UART Bridge, it can be shown under "Ports" in "Device manager".

I have searched for the "Crystal Warm Up" and changed from 2800 in mandatory.cgs to 5000 as suggested, then I clean and build for

20736 specifically by create "myBeacon_manage-BCM920736TAG_Q32 BT_DEVICE_ADDRESS=20736a124690 download" build target.

However when I tried to reprogram the SIP again, it failed to detect device!

"No BCM20736 detected"  

Please advise what could I miss?

Thanks!

Alex

0 Likes
Anonymous
Not applicable

Hello Alex,

Did you try to do a RECOVER?

JT

0 Likes
Anonymous
Not applicable

Hi JT,

How to recover it?

Please advise

Alex

0 Likes
Anonymous
Not applicable

i meant how to do the recover setup on my custom board?

I have no issue for programming or recovery on tag3 board,

I have read some posts, someone talking about short the SDA to ground to set recovery mode.

Please refer my attached schematics, we have not brought out the SDA pin from the SIP, since we don't use I2C port anyway.

Do I need to short SDA pin to ground to initiate recovery mode?

Please advise.

Alex

0 Likes
Anonymous
Not applicable

I however tried to program the "myBeacon_manage-BCM920736TAG_Q32 BT_DEVICE_ADDRESS=20736a124690 download" build target firmware to the tag3 board that runs the BCM20737 SOC, it can detect the BCM20736 device and can program and runs OK after program.

This confirms that tag3 board can run firmware built for target BCM20736 even tag3 board populate BCM20737.

Why my custom board that populate BCM20736 could only succeed program firmware for the first time, but failed for subsequent program?

I have programmed 3 custom boards successfully just for the first time though all failed to start running, however all boards failed for subsequent programming complaining cannot detect BCM20736 device.

I also tried to program the previous firmware for target BCM20737 to these custom boards, it also failed to detect BCM20737 device.

There must be something stop the SIP on my custom board to allow it to reprogram.

0 Likes
Anonymous
Not applicable

Thanks for the information, wow I finally got it work with recovery scheme from your last thread.

I appreciated your helps, it is awesome!!!

0 Likes

Excellent new Alex.

Thanks for sharing.  Have a great holiday.

andrew997

0 Likes