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.

USB-PD-CHG-EVM-01: Flash EEPROM with EV2300

Genius 9880 points
Part Number: USB-PD-CHG-EVM-01
Other Parts Discussed in Thread: TPS25750, BQ25792, USB2ANY, EV2400,

Hi, 

Is there a way to flash the EEPROM using EV2300(obsolete) and TPS25750 Application customization

Customer was able to successfully read the registers using I2C with the EV2300 from the BQ25792 device using the Battery Management Studio program.

Using the same connections I have tried both the desktop and GUI tool to read/program the TPS25750 Application customization, but not able to get either tool to connect.  When customer try to flash the device it just sits at 0% progress

Thanks.

Regards,
May

  • Hello May,

    Not to my knowledge no. The USB2ANY is configured to work with the GUI. You can use the Aardvark header or a clip on EEPROM programmer. Please see the below link:

    https://e2e.ti.com/support/power-management-group/power-management/f/power-management-forum/1021134/faq-how-do-i-configure-the-tps25750-and-flash-the-eeprom-with-the-output-binary-for-the-board-usb-pd-chg-evm-01

    Regards,

    Mike Emanuel

  • Hi Mike,

    Just received an update from customer and have some questions, please see details below.

    I was able to find a method to load the .bin file onto the EEPROM. But I now have a few additional questions I would like some help with. I attached pictures of the settings selected for the .bin file that was flashed. When I have the EVM configured as a Source, with the JP3 jumper selected for 4S battery configuration, I notice that the STAT LED flashes. When I connected Battery Management Studio and read the bq25792 the CELLS block was only configured for 1S. When I changed the option to 4S in Battery Management Studio to 4s it started to charge.

    Isn't this option configured by the JP3 jumper? Or is there also something being read from the EEPROM that is not getting configured correctly on startup?

    2nd question: Referring to the PD Sink.Jpg picture below, I was intending for the EVM to provide a 5v charging power to a phone when connected. But when I connect as per the diagram below, I don't get the EVM to sink 5 volts correct. Is there additional setting to change?

    GUI.zip

    Thanks

    Regards,
    May

  • Hi May,

    1. I am looping in my colleague about the CELLS block.

    2. Can you report the registers of the BQ25792 when this is happening?

    Regards,

    Mike Emanuel

  • Hi Mike,

    Please see additional information from customer. 

    Also the EEPROM was flashed

    bq25792 before USB plugged in.zip

    Thanks

    Regards,
    May

  • Dear May,

    I think there is an issue with the configuration that my colleague will address. In your screenshot of the registers you are in VBAT OVP is active. What is the charge voltage when this happens?

    Regards,

    Mike Emanuel

  • Hi Mike,

    When I plug in the USB cable, the charger starts up thinking is in a 1s cell configuration, which makes sense that VBAT OVP is active since I have a 4s pack connected. When I change the cell configuration to 4s the VBAT OVP error clears, and charging works.

    Why is the unit starting up thinking is a 1s configuration instead of a 4s configuration. I have the JP3 jumper enabled?

    Regards,
    May

  • Dear May,

    There is an issue with the configuration file that my colleague will attempt to get back to you by next Tuesday.

    Regards,

    Mike Emanuel

  • Hi Mike,

    Looking forward to your update.

    Thank you.

    Regards,
    May

  • The USB-PD expert will get back to you by tomorrow.

    Regards,

    Mike Emanuel

  • Hi Michael,

    Just want to confirm, how long will I receive the update on this matter?

    Thank you.

    Regards,
    May

  • Maynard,

    We have released a new GUI, but our web team is having issues getting it linked correctly.  This is a direct link to the update GUI that should fix this issue.

    https://dev.ti.com/gallery/view/USBPD/TPS25750_Application_Customization_Tool/ver/7.0.3/

    Let me know if this does not resolve this issue for you.

  • Hi Chuck,

    Just received response from customer, please see details below.

    I loaded a new bin Using the new GUI, and now the charger does configure correctly for a 4S configuration and will charge. However, I'm still having issues getting the EVM to work as a Source to charge my cell phone. When I connect my cell phone to the USB port there is no charge power applied to the phone. Any suggestions for what to look at?

    Thanks Regards,
    May

  • May,

    What phone are they trying to use?

    Do they know what PDO is supported by the phone?

    Do they happen to have a PD analyzer like https://www.totalphase.com/products/usb-power-delivery-analyzer/

    Having a PD trace is invaluable to debugging issues like this.

  • I am using a Galaxy S9, have also tired iPhone 6.  I have also tried to connect other (non phone) USB devices (such as Garmin bike computers, USB voltage meters), devices which would normally off 5v USB power.   None of them even power up, so there is no 5v Power being provided when the EVM shoudl be running in source mode.    I do not currently have a PD analyzer.

    When I load a binary file to configure the unit as solely a 5V source, I see the PP5V line have 5v, but Vbus is 0v.   I'm wondering if the amazon solution I obtained is not loading the binary file correctly?

    - I have a USB2ANY device, but when I connect it to the J3 connector the web application won't recognize the tool to flash the device.  Is the USB2ANY a supported tool to flash the device? 

  • Hi Tyler,

    Chuck was out of office recently and just returned to office today. He will be able to provide you with feedback sometime this week. 

    Thank you for your patience.

    Hari

  • Tayler,

    Please upload the config JSON file so that I can review it to make sure that there is nothing wrong in the configuration,.

    Regards,

    Chuck

  • Hi Chuck,

    CUstomer provided the json file, please refer to attached file.

    config1.zip

    Thank you.

    Regards,
    May

  • Hi Chuck,

    Additional information from customer.

    It tried using another PC to connect the EVM. The other PC gave me 4 options for COM ports to try. Two of the ports say Hardware not available. The other two ports just say "waiting for data...." but never erase/upload anything. I have the USB2ANY connected to J3 on the EVM. I have also tried both with both battery power connected and USB cable connected and disconnected.

    Thank you.

    Regards,
    May

  • Please use Ardvark. This tool doesn't support USB2ANY

  • Hi Ghouse,

    Just received update from customer, please see details below.

    I still have the two issues that I can't get resolved:


    1) I am now using the Totalphase Aardvark I2C/SPI adapter, but I still can NOT program the EEPROM using the web or desktop GUI tool. I am able to flash the EEPROM using the total phase flash center program.


    2) I was able to flash the "07_13_22.bin" using Flash Center. The charge profile works ok, and can charge the battery pack. But when I plug my phone into the USB to charge from the battery pack, the voltage just toggles from 5v to 0v and never charges. Attached is a PD analyzer capture showing this issue, with the associated .bin that was loaded.

    8176.Source_Phone_capture_3.zip

    Right now I'm more interested in getting issue 2 noted below resolved

    Thank you

    Regards,
    May

  • Additional information from customer.

    Here are a Couple more observations using the same setup from the captures below:
    1) When I set up the EVM to be a 5V SOURCE only, it works correctly.
    - When set up this way PPHV is ~0 Volts. PP5V is ~ 4.95volts.
    - When configured this way it looks like PP5V power is being routed to VBUS to power/charge my device (phone) correctly.

    2) When I set up the EVM for a dual role (20V Sink, 5V Source), the 20V path works OK to charge the battery back, But as noted earlier when configured for 5V source it does not work.
    - It can be observed that the STAT LED is flashing on/off in this case.
    - PPHV voltage is alternating between like ~5v and appox 0-1volt. This same toggling can be seen in the PD capture previously provided.

    It seems as if the BQ25792 is not being configured correctly for OTG mode. Unfortunately when the USB cable is connected, and I2C commands active I can't read the BQ25792 registers, and I don't have an I2C sniffer to see what data is being passed between.

    In addition to the questions/notes just below----
    Is there a way in the GUI tool advanced settings to source power from PP5V instead of from PPHV when operating as a source? If I can try that, it will confirm my theory below about not setting OTG correctly

    Thank you.

    Regards,
    May

  • Additional information from customer.

    slvuc05.pdf (TPS25750 Host Interface Technical Reference Manual) defines the use of Unique Address registers with four character codes (4CC), specifically I2Cw and I2Cr, which it seems can be used to query the bq25792 through the TPS25750. I'm having trouble deciphering exactly how to set up the string of commands I need to send using the Totalphase Control Center I2C Master command GUI. Any chance you provide me with an example of the hex string I need to write so that I can then read back various bq25792 registers?

    Thank you.

    Regards,
    May

  • Maynard,

    Sequence for 4CC command is 

    1. Write to 0x9 register (aka. Data1) register

    2. Write 4CC command I2Cw (Hex converted 49 32 43 77) -  to 0x8 (CMD1) register

    3. Keep Reading 0x8 register until value read is 0x0 (reading 0x0 indicates that command is complete).

    4. Once you read CMD1 is 0, you can then ready 0x9 (Data1) again to check the result.

  • Hi Ghouse,

    Just received response from customer, please see details below.

    Just wanted to check back again on status?
    Was anybody able to replicate the issue I have described below?
    Any idea how long the investigation will take yet?
    Is there any more information you need from me?
    Did the captures I provided provide any useful information?
    I will try to get the 4CC commands to work using the information provided.

    Thank you.

    Regards,
    May

  • Hi Maynard,

    The PD log you sent in the previous post only shows 4 seconds of logs, are there any more logs or does it just repeat the same PD negotiations?

    Also refer to this forum on how to establish communication between EV2300 (EV2400 in post) and the BQ25792: https://e2e.ti.com/support/power-management-group/power-management/f/power-management-forum/1021137/faq-can-the-ev2400-be-used-to-communicate-with-the-bq25792-through-bqstudio-on-the-board-usb-pd-chg-evm-01  

    Regards,

    Raymond Lin

  • Hi Raymond,

    Please see response from customer.

    Yes, that is the complete log. Capture started before USB was plugged in, captured this and the USB source voltage that is provided by EVM starts to toggle.

    If you look at the voltage/current graph you can see the voltage toggling between 0 and 5v. This same toggling matches what I see on the PPHV power path going into the chip. So the charger seems to bet going into/out-of OTG mode.
    This was a complete capture. When I unplug and re-connect the same PD commands get captured.

    - I have been able to use that J7 connector to read the BQ25792 registers, but only prior to connecting the USB. It seems once I connect the USB and PD negations happen, or when the TPS25750 starts I2C communications the EV2300 (and total phase I2C) tools can no longer communicate. (I don't have an I2C sniffer).

    - Do you have an actual EVM where you can load the binary file I provided and see if you observe the same thing? Have you tired that, and what was the result??

    Thank you.

    Regards,
    May

  • Hi Maynard,

    I just received the EVM so once I'm able to load the binary file onto it, I'll send an update about my observations.

    Regards,

    Raymond Lin

  • Hi Raymond,

    Thank you looking forward to your update.

    Customer ask if there any possibility of getting a remote debug call set up since this has been on-going for so long

    Thank you.

    Regards,
    May

  • May,

    From the PD logs you provided, I see the last PD message was a little after 4 seconds.

    After that the Current/Voltage monitor continually oscillates between 5V/1V just like you described. I find this to be very inconsistent for several reasons.

    1. The TPS25750 should be treating the voltage drop past ~4.8V as a disconnect and we should see the PD message traffic reset. This tells me that the TPS25750 is not actually on after negotiating this PD contract. I feel the power being supplied to the TPS25750 is being disabled after contract negotiation.

    2. Another data point that tells me the TPS25750 is shutting down after contract negotiation is that you stated you cannot communicate to the TPS25750 or connected devices after contract negotiation.

    3. Whatever device is being connected is also shutting down as it should be responding to the connection going low as well.

    From all your data, I would say that somewhere in your design once the TPS25750 closes the Source path, something is being shorted. I recommend finding a way to verify that the TPS25750 is being loaded properly without connecting a device first to ensure your configuration is being loaded. Then you can begin looking for what is causing a short in the power path.

  • Hi Christodulos,

    Please see response from customer.

    Using the I2C tools, I can still communicate with the TPS25750 after the initial contract negotiations. I can read the registers of the device using the Aardvark I2C adapter. What you describe here doesn't make sense to me. When I debug the EVM, the PPHV bus from the Charger (BQ25792) is toggling. So seems to me something with the charger is stopping/starting the voltage to the TPS25750.

    - Have you been able to confirm this works correctly/incorrectly on an EVM on your Side
    - When you do, please get a conference call set up with me to discuss further.

    Also, as noted earlier, when the device is configured as a 5v Source only provider, it does work correctly and provides a 5 volt charge. The main difference I see is that when configured as a 5v Source only, the 5v is sourced from PP5V path instead of the PPHV path from the BQ25792 charger

    Thank you.

    Regards,
    May

  • May,

    We will not be setting up a conference call with you. I can hep you here and we have the TPS25750 EVM but we do not have your setup. The EVM works as expected.

    If you wish to help us debug this further and you can use the Aardvark I2C Adapter then please use Ghouse's suggestion above to send some I2C reads to the BQ25792 Status and fault registers to help us debug this further.

    Thanks,

    Chris

  • Hi Chris,

    Please see response from customer

    Having trouble getting the 4CC commands to work, hoping you can provide some incite as to what I'm doing wrong:
    Trying to do a I2Cr command to the "Charger Status 0" (Register 0x1B) with slave address 0x6B
    - I write the following sequence:
    09 6B 1B 02 09-data1 register, 6B-bq25792 slave address, 1B- bq register, 02-2bytes in size
    - then wrote:
    08 49 32 43 72 08-cmd1 register, "49 32 43 72"- I2Cr command
    - Then I read register 0x08, but the value always returns back "04"
    - Reading register 0x09 I don't think is correct at this point.
    Refer to the attached pic.
    - What should I do differently?

    Thank you.

    Regards,
    May

  • You should consider using the BATCH mode to do this or use the Application Customization Tool which supports Aardvark so you can read this easier

  • I also see the first write you do is: 09 6B 1B 02. NOT 09 6B 1B 02 09

    Thanks,

    Chris

  • Hi Chris,

    Would you have a batch mode script/example you can send me for the 4CC I2Cr command I'm trying to execute?

    You also noted a Application Customization Tool, customer found something like this for the TPS6598X. is that the correct tool?

    Thank you.

    Regards,
    May

  • Hi Chris,

    Additional response from customer.

    ok, So here is my next question/issue:
    I was able to get the 4CC commands to work (the sequence provided in the previous thread was not quite correct).
    If you refer to the "4CC working.JPG", I was able to very the Status and Fault registers of the charger when read through the TPS25750 match those read when using the BQ Studio tool. Note: I can only get the BQ stuido tool to work before plugging in the USB.

    Once I plug in the USB so the EVM works as either a source or sync and try to execute the 4CC commands, I get a "Task rejected" and the task response output data. Refer to "4CC task rejected.JPG".

    Any idea why this is happening? What's the next step?

    I'm using the USB-PD-CHG-EVM-01 Eval board for all this debugging

    WORKING

    TASK REJECTED

    Thank you.

    Regards,
    May

  • May,

    Glad the I2CW/R commands are working!

    If the return is task rejected, then the I2C read rejected probably because it failed to communicate to the BQ device. I suspect the BQ is off or in an incorrect state since the PD cannot talk to it nor can you communicate to it with the BQ tool.

    My next suggestion would be to probe the input power signals to the BQ25792 to see if when you connect something, it is losing power?

    Thanks,

    Chris

  • Hi Chris,

    Just received response from customer, please see details below.

    I was able to get an I2C capture between the TPS25750 and bq25792 when the USB is plugged in. Refer to the attached capture. Looks like the PD device writes to the 4B register to the charger (I think its trying to write a reset command?). But then afterwards is also writes to the B8 register with JUST a START, and no STOP command. I don't see a B8 Register in the charger datasheet?
    - Why is it writing to the B8 register?
    - Why is it not sending a stop command? By not sending a stop command the I2C line is tied up and I can no longer read any charger registers or sends any 4CC commands as noted in the previous threads?

    Thank you.

    Regards,
    May

  • May,

    Thanks! This helps a lot. I will discuss with the team about this issue. For now can you help me with a few more questions:

    1) The registers the PD is trying to access look incorrect. I suspect either the pull-up voltage on the I2C lines is insufficient (unlikely) but can you verify the voltage on the SCL/SDA lines looks correct with some type of oscilloscope?

    2) What are your config settings for the TPS25750? Can you export the settings and share them here?

    Thanks,

    Chris

  • Hi Chris,

    Please see inputs from customer.

    The issues I am having with reading I2C data is DEFINITELY with the GUI v7.0.3 tool version. When I flash the EPROM with a binary from GUI 7.0.2 it correctly releases the I2C lines and I can still read/write data to the charger.

    Version 7.0.2 of the GUI incorrectly writes a 1s cell configuration to register 0x0A. GUI v7.0.3 does not not seem to write to this register so it charges correctly.

    ****
    Please provide an updated version of the GUI Tool which releases or sends the correct Stop condition when plugging in the USB cable so that I can continue to troubleshoot this.

    Also to answer your questions:

    - Yes, the I2C lines are ok. I put an Oscilloscope on them and they are the correct voltages.
    Refer to "07_13_22.bin" for the files that was created using GUI 7.0.3 and flashed, which seems to send incorrect commands and break the I2C
    07_13_22(1).zip

    -I attached "v7.0.2 Test.bin" which the the bin I flashed using GUI 7.0.2, which sets the cell configuration incorrectly but does not break/hold the I2C lines low
    v7.0.2 Test.zip

    Thank you.

    Regards,
    May

  • May,

    Can you send me the GUI Project file from 7.0.2? Not the compiled binaries.

    Thanks,

    Chris

  • Hi Chris,

    Please refer to attached file.

    config0000 (08_11_2022_web_702).zip

    Thank you.

    Regards,
    May

  • Thanks May! I will take a look at this on Monday and get back to you then.

  • May,

    I am still working through the issue but there is a request from the team for you:

    The 7.0.3 update made some significant changes to the BQ configuration. Instead of importing your config into the new 7.0.3 GUI, can you re-create the same configuration in the 7.0.3 GUI and see if this resolves the issues?

    Thanks,

    Chris

  • Hi Chris,

    Customer have been creating a new project/configuration each time they use the 7.0.3 Gui. According to them, they have not been importing any configurations and still using the 7.0.3 link provided in one of the previous threads here. Has there been any updated to that version they need to retry yet?

    Thank you.

    Regards,
    May

  • Hi Chris,

    Here is some more information and captures from customer. Please refer to "Testing Summary.docx" and the attached 6 filse for explanations of material provided.

    Testing Summary.zip

    Thank you.

    Regards,
    May

  • May,

    Thanks for the logs and summary! From what I am seeing the PD is negotiating properly and all is currently working on the TPS25750. I do see something is wrong with the current and voltage being provided by the BQ25792. I am going to get Michael Emanuel to take a look at these I2C transactions to see if there is an issue with the configuration.

    Thanks,

    Chris

  • Hello May,

    The only thing that seems off is that Charge is not enabled on the BQ25792. Looking at the logs I did not see it being enabled, and on the readback it was disabled.

    Regards,

    Mike Emanuel

  • Michael,

    Can you point me to exactly where this is in the I2C transactions? I want to being this up with my team to see if we can address this if it is an issue?

    Thanks,

    Chris

  • Hi Chris,

    When 0x0F is written to 0x82. Keeping similar settings it would need to be written to 0xA2.

    Regards,

    Mike Emanuel