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.

Not able to load binary over I2C to TPS25750 chip

Part Number: TPS25750

Hello,

I am trying to load the binary for the TPS25750 chip over I2C bus. I can see the chip on the bus (by the address set by ADCIN pins).

 

#1 I wrote the Python3 script (using SMBUS library) and execute PBMs command with I2C Slave Address set to 0x23 (no already on I2C bus) due to the table from below ( slvuc05a.pdf)

 

#2 After sending the command I get the reply that there is no such address (0x23) on the I2C bus.

I tried then the original (set by the ADCIN pins) slave address of the I2C for the chip (0x22), but as the reply to commands PBMs, PBMc I get BMs and BMc.

 

#3 When loading the binary over I2C, do I need to use full 64Bytes registry bundle on one I2C write, or can I use the smaller size (like 8Bytes per each DATA1 write)? I am asking as SMBus library on Python3 don't allow more payload for write operations than 32Bytes at once.

 

 

 

Looking forward for the response and the support,

Best regards,

Krzysztof Kuźma

  • Hi Krzysztof,

    How do you currently have ADCIN1/2 setup? Can you provide a schematic of the resistor divider feeding into each ADCINx pins of the TPS25750? 

    Let me check internally regarding the payload size requirements. 

    Thanks and Regards,
    Raymond Lin

  • Hello Excuse me for no response.

    I moved little further with loading the binary.

    I do the following steps:

    1. - enable INTERRUPT_TX mask to CMDComplete (0x40 on byte 3 (count from 0)), ReadyForPatch(0x2 on byte 10 count from 0 ) and PatchLoaded(0x1 on byte 10 count from 0)

    2. Wait for interrupt ReadyForPatch (0x2 on byte 10 count from 0)

    3. Check if mode registry is set to PTCH

    4. Send PBMs command (Wait for CMDComplete event, then read Data1 registry looking if CMD failed)

    5.Start bundle write on registry Data1 in 32 bytes bundles (each data write is acknowledged only by I2C protocol ack)

    6.Send PBMc command (Wait for CMDComplete event, then read Data1 registry looking if CMD failed)

    Unfortunately on PBMc command I receive error on Data1 read "Not a patch" (0x40)

    The logs from my script are as follows:
    Read Mask is:  [11, 0, 0, 0, 64, 0, 0, 0, 0, 0, 0, 3]
    Read event is:  [11, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2]
    Ready for patch
    binary_size is: 0 0 57 0
    Read event is:  [11, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0]
    Read event is:  [11, 0, 0, 0, 64, 0, 0, 0, 0, 0, 0, 0]
    PBMs command complete received
    Data1 reply after PBMs:  [64, 0, 0, 0, 0, 35, 50, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0]
    start_fw_download_array completed
    PBMc command sent
    Read event is:  [11, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0]
    Read event is:  [11, 0, 0, 0, 64, 0, 0, 0, 0, 0, 0, 2]
    PBMc command complete received
    Data1 reply after PBMc:  [64, 0, 0, 64, 128, 0, 5, 134, 230, 111, 153, 178, 177, 126, 5, 22, 132, 215, 119, 244, 98, 244, 253, 252, 88, 0, 3, 1, 184, 24, 123, 0]
    Waiting for patch load event

  • Hello,

    Thanks for the update! Raymond and others are out for the holiday period. Responses may be a bit delayed until Jan. 3rd.

    Thanks,

    Chris

  • Hi Krzysztof,

    I transitioned to a different unit but Christodulos will continue support, can you give him a quick update on this forum? 

    Thanks and Regards,
    Raymond Lin

  • Krzysztof,

    Do you have a raw I2C log?

    It looks like you are loading the low-region binary which looks correct.

    Also the Not a Patch is more of a warning if there is already a patch running (PD not in PTCH mode)

    I believe your process is sound and the patch should be loaded. After issuing the PBMc command, read the Version register and confirm if this is reading back correctly? I suspect the PD is no longer in PTCH mode after you send the patch...