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.

TMS320F280025C: PMBUS do not sent ACK when restart command?

Part Number: TMS320F280025C

Hi Experts,

I am asking for my customer here.

When the slave device receives an invalid read command, it will pulls down SCL clock until the timeout. After the slave device triggers a timeout, SCL is released, After that, the host device will send a stop bit to end this communication because host does not get ACK signal. So in this case, host need wait timeout time so long to restart the communication. Do we have any method to modify PMBus stack or add some workaround to avoid this? If slave device receives an invalid read command, and then do not send ACK to host, so the SCL will be normally receive restart command. Thanks. 

  • Hi Experts,

    When the slave device receives an invalid read command marked below "PMBUS_TRANSACTION_NONE", how to send NACK to host? Thanks.

  • Hello Shaoxing,

    Do we have any method to modify PMBus stack or add some workaround to avoid this?

    Has the customer tried modifying the PMBTIMLOWTIMOUT register? It looks like this would be the timeout value relating to when the clock is low for too long. The customer can try lowering the number of clock cycles in this register to see if this helps.

    When the slave device receives an invalid read command marked below "PMBUS_TRANSACTION_NONE", how to send NACK to host?

    It seems like the F28002x device is the controller in this situation and the target is what's sending the "PMBUS_TRANSACTION_NONE", is that correct? If so, there does not seem to be a way to manually ACK/NACK the specific command. The PMBSC register has a way of enabling manually acknowledging received command code, but this is specifically when configured in target mode.

  • Hi Amir,

    Right. F28002x is the target slave device. We use PMBSC & MAN_CMD. So we can manually ACK/NACK the specific command.

    But the Data Request flag not yet set as below figure, only automatically set DATA_READY flag. So why the Data Request flag not yet set?

  • Hello Shaoxing,

    But the Data Request flag not yet set as below figure, only automatically set DATA_READY flag. So why the Data Request flag not yet set?

    Per the register bit description for DATA_REQUEST and DATA_READY, it looks like the firmware needs to read the data before any other PMBus activity can take place. From what I see, the data needs to be read before the PMBus can request more data because the read buffer is currently full.