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.

TPS546D24A: communicate it with I2C bus

Part Number: TPS546D24A

Hi Team,

Customer would like to know if we can talk to this device with any MCU which support I2C bus? or we must find one MCU that support PMBUS?

I use I2C for long time and never uses PMBUS/SMBUS before, I am not sure for read/write this specific device with I2C bus, if anything special that needs to be aware of?

Thanks!

Andrew

  •  

    Power Management Bus (PMBus) uses System Management Bus (SMBus) which is designed to be bus compatible with I2C buses and interfaces, but there are a few things you'll want to keep in mind.

    1) PMBus devices, by specification, will declare a Communications fault if they are addressed with their address followed by a READ bit in the first part of a transaction.

    2) Most PMBus commands use data formats that are larger than 1 byte, so you will need to make sure the MCI's I2C port can support reading and writing more than 1 data byte.  Some of the block commands used in the TPS546D24A as many as 15 data bytes (Block Size plus 14 bytes of data).  If the I2C port limits transaction sizes to less than 15 byte of read data, there may be some commands that can not be used.

    3) SMBus commands use a repeated start Read transaction type from I2C where the bus controller sends the target's device Address with a Write Bit, and the command code (equivalent of an I2C register address), then sends a repeated start followed by the target's device address with a Read bit, after which the target device responds to the bus controller with the data.   While the vast majority of I2C peripherals support this, it is worth double checking.

    4) Some PMBus commands, such as the SMBALERT_MASK command, use a more complicated transaction type called a Block Write-Block Read process call, which allows the Bus Controller to send more than 1 byte of data before changing the direction of the transaction with a repeated start and the target's device address.  If the MCI's I2C port can not support Process Calls, it will not be possible to read from commands using the Block Write Block Read process call 

    Unlike I2C, SMBus has a forced time-out requirement.  If CLK is held low for more than 25ms, any device on the bus can terminate the current transaction, and by 35ms CLK low, every device must terminate the current transaction, so the I2C device should not induce more than 25ms of CLK low time during a transaction (this is normally not an issue)

  • Hi Peter,

    Your response is very clear, detail, and helpful.

    Appreciate your time for this!!

    Have a good day!

    Andrew