problem when programming custom board with BCM20737S

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

cross mob
Anonymous
Not applicable

Hi

We have done our custom board populated with BCM20737S. The schematic is the WICED sens schematic.

I'm able to program the boards only with the recovery procedure.

The HCI download doesn't work (never worked on our custom board).

What i've tested :

     - BCM20737S RXPIN (pin18) is pulled down to GND via resistor. When USB is connected, I've a high level. The device doesn't start (so i assume it is in programming mode).

    - download log in the build directory :  BluetoolDownloadMinidriver failed!  (and only this line)

    - device is detected

    - make target = WICED_SENSE-BCM920737TAG_Q32 download

logic voltage is compatible with BCM20737S voltage range : 2.5v

i use wiced sense sw project and the WICED smart ide.

do you have any idea what i need to test in order to have a better diagnostic, please ?

thank you

best regards

0 Likes
1 Solution
Anonymous
Not applicable

Hello E L,

Sorry for the late response - We have been trying to determine how to help you.

Please see reply above as mwf has a list of debugging tips for you to try.

  1. I understand that you have 7 sensors hanging on the I2C Bus
  2. Depending on the pF load of each device, you may have exceeded the pF loading of the BCM20736S.
  3. Do any of your Sensors require more than 2.5V?  I made that mistake once on one of my designs.
  4. You will observe that on our WICED Sense design, we have an optional I2C expander and I suggest you design with this expander in mind.
  5. Suggestion 1: Can you raise the voltage to 3V and observe any changes?
  6. Suggestion 2: "BluetoolDownloadMinidriver failed" - If the HCI Rx pins is not configured properly, then the device will NOT be in programming mode.

Let us know if this helps

JT

View solution in original post

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

Please check the way that you managing HCI RX on the board that is failing? This pin should be pulled high.

Also, which FTDI USB to Serial Programming Cable are you using?  Re: BCM20737S recovery problems

Additionally, are there multiple sensors on the I2C bus (i.e. loading issue)?

Essentially, with regards to the I2C on boot, if VDDIO is present on SDA during boot up, then the firmware bypasses the step where it looks to the EEPROM for a valid image and goes directly into programming mode (Re: How can BCM20732S boot from ROM?)

However, the previous entries in this post seem to imply that you can also GND the SDA pin and see the same behavior: Re: Re: How can BCM20732S boot from ROM?

Connecting SDA to Vdd/Vio to recover is probably not optimal for the following reason provided to me by one of the senior firmware engineers.

SCL and SDA are both open-drain configuration and the pull-ups pull the signal high while the HW drives it low (never drives high, but floats the output pad leaving the pull-up to pull the line high). If you put a scope to either of these lines on the board when the firmware accesses these, you will see that high to low transitions will be very sharp while low to high transitions will be pretty slow due to the intrinsic RC.

If you connect SCL/SDA to Vdd, then when the HW block drives SDA low, there will be a direct short (though momentary) between Vdd and GND, which is not ideal (even if the recovery works fine). This will happen pretty early during boot because the ROM always uses 0xA0 as the slave address of the EEPROM and you can see that there are repeated 0s in this sequence (and the shorts) which could do bad things to the supply or the chip.

Shorting to GND on the other hand, is safer because that is what happens when there is a 0 bit on the bus and there is a 10K pull-up which will limit the current to something within the max ratings of all components on this line.

0 Likes
Anonymous
Not applicable

Hello E L,

Sorry for the late response - We have been trying to determine how to help you.

Please see reply above as mwf has a list of debugging tips for you to try.

  1. I understand that you have 7 sensors hanging on the I2C Bus
  2. Depending on the pF load of each device, you may have exceeded the pF loading of the BCM20736S.
  3. Do any of your Sensors require more than 2.5V?  I made that mistake once on one of my designs.
  4. You will observe that on our WICED Sense design, we have an optional I2C expander and I suggest you design with this expander in mind.
  5. Suggestion 1: Can you raise the voltage to 3V and observe any changes?
  6. Suggestion 2: "BluetoolDownloadMinidriver failed" - If the HCI Rx pins is not configured properly, then the device will NOT be in programming mode.

Let us know if this helps

JT

0 Likes