This thread has been locked.

If you have a related question, please click the "Ask a related question" button in the top right corner. The newly created question will be automatically linked to this question.

bq77908 Connection Problem with USB-to-GPIO Adapter

Hi guys,

I have some trouble connecting the bq77908 with the USB-to-GPIO Adapter to my computer (Firmware on Adapter: V2.0.19). Everytime I try to get a connection with the Evaluation or Programming Software an error message shows up and says it can't find the chip. Thereby the CHGST Signal is always correctly at 2V and the Chip is awake, the 14V on the Programming Interface are also available.

Consequently I started to check the outputs of the GPIO-Adapter with an oszilloscope. The PGM and the ZEDE Signals are both low all the time (0.2 - 0.3V) while the SCLK and SDATA are continuously high at 3.5V.

Now the datasheet says that ZEDE must be on VREG to activate the serial communication of the chip.  Have I understood right that this signal should come out the GPIO adapter? And if yes, do I need to configure something else or is there maybe something broken in the GPIO adapter?

Have I forgotten or done something else wrong to get a connection to the chip?

I really appreciate your help.

  • Yes, the ZD and PGM signals  come from GPIO on the adapter (as well as the data & clock), pins are shown on the EVM schematic.  Since you have voltage on SCL and SDA and can read the USB-to-GPIO adapter firmware version is correct, it seems you have basic connection.  When you select the 'Find Target' command on the evaluation software you should see ZD line go high followed by the clock & data attempt to address the part, then ZD goes low.  The signals should move without the board attached.  PGM will not likely move until the part is found and all checks are done for the programming sequence.

    If the device does not have ZEDE go high, it will not acknowledge its address. The driver in the USB-to-GPIO for ZD and PGM is weak.  If using an EVM, be sure the ZEDE pull-down shunt is removed. If using your own board and have followed the datasheet recommendation for a strong pull-down on ZEDE, the ZD driver may not be able to pull the signal high.  A buffer may be needed in your fixture.  Certainly you may want to check for broken wire on the ZD signal, or cycle power on the adapter and PC.  It sounds like you have already tried re-staring the software.  A damaged adapter might be possible, but it would be good to check signals without load first.

  • Ok first of all thanks for the input.

    I am using a self developed board but there is only a 100ohm resistor in line and a 10k pulldown between the ZD GPIO output and the ZEDE input of the chip. As I measured now the ZEDE voltage as the adapter and the chip were connected and "Find Target" executed, it went up to 0.9V - 1V.

    Now I followed your advice and changed the pulldown resistor to a 100k just for testing it, the ZEDE voltage went up to 1.9V - 2V as i executed "Find Target". But again the Evaluation Software said the target wasn't found. As I looked in the left bottom corner, there was right from the GPIO firmware version something about "Comm status: driver error". Therefore I was a bit confused because I thought my computer would already have installed a driver for the adapter and the driver package which is downloadable is for own developing software only I thought. Btw I'm running it with Win7 Prof 64-bit.

    Could you please give me some information about that message?

    After that I changed the pulldown to a 1M ohm resistor and tried again. This time I also had 1.9V - 2V at ZEDE and the software found no target again.

    Are these 2V enough to activate the serial communication of the chip? It looks like I can't rise it by changing the pulldown resistor anymore.

  • The USB-to-GPIO uses OS provided HID drivers. The 'driver error' message could be from the firmware or OS. I do not have more detail on its meaning. I see a 'general error' message when it can't find the target replaced by a 'bq77910 target not found' message after acknowledging the error window.

    If you have a TI EVM and it talks to that, you might compare the 2 boards responses.

    The ZEDE pin is a CMOS type input, 2V would likely be recognized as high although it does not meet the Vih spec.  However you might check the level without your board attached to see if the USB-to-GPIO is going high.

    You may also check the clock rate from the USB-to-GPIO to confirm it is 50kHz or less, perhaps the firmware did not update correctly.  The firmware updater will let you put the original version back.  If the firmware is corrupt it may not be up-datable.  Some other firmwares for other EVMs may not be compatible with the updater.

    If clock & data look correct you could break the ZD connection to the board and hold ZEDE high (VREG) to check for communication.  If that works it is the ZEDE level and you will need to find the unexpected load, or buffer in a fixture or perhaps just help it go high with a fixture pull-up R.  You don't want the pull-up on the BMS board of course.  If it still does not work, VREG is on and the signals go to the right pins, either the '910A or the USB-to-GPIO is defective.

  • Ok I made now the different measurements. Unfortunately I don't have a TI EVM to compare these but my board has the same interface construction, it is completly transfered from page 30 of the sluu854 which I am using later to describe devices.

    First of all at the GPIO adapter output without any load and running idle: ZEDE and PGM constantly Low, SCLK and SDATA constantly High.

    Now without any load at "Find Target": ZEDE at around 3.3V constantly, PGM constantly Low, SCLK pulsing at 50kHz and 50% duty cycle, SDATA  going Low, then High for 2 clock pulses and then Low again. I think the Adapter and his firmware should be good.

    Now I soldered out the R9 to disconnect ZD from ZEDE and connected ZEDE to VREG, measured 3.3V constantly there. Then I measured at the GPIO output at J3 in idle mode: SCLK at 0.25V continuously, SDATA at 3.3V continuously, PGM continuously Low.

    And now when I press "Find Target" again: SCLK around 0.25V continuously again, SDATA at 3.3V continuously again and PGM also constantly Low. (Only ZEDE goes from zero to 3.3V but is still disconnect at R9.)

    As you can see, nothing happens at SCLK and SDATA (and PGM) when the board is connected. Another remarkable thing is that every second time I do "Find Target" when the board is connected, my computer doesn't find the GPIO Adapter anymore as it is still connected and it is showing a different error message. Then I need to ether reconnect the adapter or restart the Evaluation Software.

    Last information I have is that the "comm status: driver error" message is only shown at the other error message when the adapter is connected to the board. In disconnected case, there is written down "comm status: general failure". Do you maybe have documentation about the software or have contact to the engineer who produced it to find out its detailed meaning?

  • With the adapter connected to the board, the signals should look the same as without the board except the IC will ACK and communication will continue past the first byte.

    It seems you are close.  SCLK should not and must not be pulled low when you connect the adapter to the board.  There is nothing in the '908A circuit which should drive the SCLK.  SCLK must be pulled up by the resistor in the external interface, in this case the USB-to-GPIO.  Check the usual suspects, solder defects, wrong value, shorted trace, bad IC.

    There is no further information on the software error messages available.

  • Ok thanks for all your input so far. I gained connection now, there was a bad diode left on the SCLK which pulled it low.

    Last question I have is if the ZEDE can be pulled high all the time at programming the EEPROM later. The problem I have is that the 2V out of the USB-to-GPIO are too less to activate the serial communication. I only get a connection when I pullup the ZEDE through VREG.

  • ZEDE high enables the communication interface and sets minimum delay mode.  It is OK to keep ZEDE high throughout the communication session and programming.  The GUI toggles ZEDE using the interface module (USB-to-GPIO) to keep the part in normal mode most of the time, but this is not necessary.  Be sure to remove the ZEDE high and clear any accumulated faults after the communication session and/or programming for normal operation.

  • Ok thank you very much for all the information!