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.

TMS320F280039C: PMBus communication issue when communication is abnormal

Part Number: TMS320F280039C

hello,

I have a question about the PMBus function.

I study the demo code about PMBus design. It only is a test version and there is no more description in datatsheet about the condition that communication is abnormal or not following PMBus protocol.

for example:

0x7E command is a read byte protocol. And we will set send byte count to 1 or (1 + PEC), but if system(master) read 3 or more bytes data.

The state can't be back from PMBUS_STACK_STATE_READ_WAIT_FOR_EOM to PMBUS_STACK_STATE_IDLE.

Beacuse the data of PMBSTS register is 0x241810. No EOM and NACK is received, DATA_REQUEST bit and UNIT_BUSY bit are always set.

Why UNIT_BUSY bit is set and how to clear this bit?

  • Hi yanqiu,

    I post this issue to the relevant engineer. I will reply you once I got response. Thanks for your patience.

  • Hi yanqiu,

    I'm assuming PMBus IP is used as target (slave) and not controller (master). If it is configured as PMBus target, PMBRXBUF should have 0x7E command which it received from PMBus controller. Then there will be repeated START in read mode and have 1 byte transmitted along with PEC byte which get automatically transmitted

    Beacuse the data of PMBSTS register is 0x241810. No EOM and NACK is received, DATA_REQUEST bit and UNIT_BUSY bit are always set.

    Why UNIT_BUSY bit is set and how to clear this bit?

    When you receive DATA_REQUEST bit, you need to have PMBus Target transmit a byte. UNIT_BUSY is set because PMBus IP had received REPEATED START and bus is busy. This bit is automatically cleared when bus is free. Also, please send us the snapshot of PMBus bus signals using logic analyzer.