SNIU028D February 2016 – September 2020 UCD3138 , UCD3138064 , UCD3138064A , UCD3138128 , UCD3138A , UCD3138A64
At 4 bytes counting command, data, and PEC, if any, the 4 byte RXBUF will be full. The RXBUF must be read, and the ACK bit set, before the PMBus hardware can accept more data. If the firmware is quick enough, there will be no clock stretching. The PMBus hardware automatically provides clock stretching on the ACK for the 4th byte, if it is necessary. Here is the timing diagram:
If step 3 is delayed, clock stretching of the next valid address will occur in the same way as described in Section 10.4.1.
The exact same sequence will occur if the 3rd data byte is replaced with a valid PEC, except that the PEC_VALID bit will be always set.
For messages with 5 through 7 bytes, the sequence will be as described below:
There are 4 items here:
Writing 6 and 7 total bytes will have the same effect, except that there will be a different number in the RD_BYTE_COUNT register. At 8 bytes, the sequence at the end of the message will be the same as at 4 bytes, because RXBUF will be full again. At 9 bytes, the end of the message will be the same as at 5. And it will continue the same after that. If the RXBUF is not full when the STOP occurs, all 4 bitfields will be loaded simultaneously. If the last byte fills up RXBUF, the data must be acknowledged by writing to ACK before the clock stretch will be released.