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.

TPS546D24: Toff_delay can not write

Part Number: TPS546D24

Hi Team

My customer is trying to write TPS546D24 Toff_delay register (0x64h) from 0xf83e to 0x f800, but after write 0xf800 into 0x64h then read 0x64h, it still 0xf83e inside 0x64h as below. 

I had check TPS546D24 0x64h all bits are read/write, value inside 0x10 register is 0x00, and my customer is write register during power conversion not enable condition.

May I know is there have other items I didn't mention will cause 0x64h can not wirte?

Thanks.

Best Regards,

Roy

  •  

    Do you have the correct byte order for the I2C write?

    Per PMBus specification, the bytes of a word are sent low byte, high byte.  0xF800 (0ms) is sent 0x00, 0xF8h.  If the I2C is writing the bytes in order 0xF8 0x00 then the TPS546D24 is reading that as 136ms, which is out side of the programming range for TOFF_DELAY.

    If that is happening, a read of STATUS_CML (single byte read, command code 0x7E) will return an "invalid data" warning (bit 6 = 1) 

  • Hi Peter,

    I ask my customer read 0x7E register after write 0x64h, and the result is bit1 and bit6 are 1 and other bits are 0.

    I had ask them to use the way you show above to write it and waiting their test, but may I know do you have experience that what will cause the 0x7Eh bit1 shows communication error?

    Thanks.

    Best Regards,

    Roy

  • Hi Roy,

    The communication error means a fault other than the ones listed. This includes improper transactions, such as too few or too many bits or clocks held low for an extended period. Performing an I2C address detection (I2C scan) on a PMBus device can also cause communication errors.

    Please let us know if the problem was related to the byte order of the word being sent. One way to confirm this is to try writing 0xF1F0 and reading what is being written (is it 0xF1F0=124ms or 0xF0f1=60.3ms).

    Thank you,
    Tomoya