SNIU028D February 2016 – September 2020 UCD3138 , UCD3138064 , UCD3138064A , UCD3138128 , UCD3138A , UCD3138A64
Even though MAN_SLAVE_ACK primarily affects the handling of the beginning of the message, it also changes how the end of the message is handled.
In both modes, the PMBus hardware is designed to stretch the clock until the firmware is done processing the previous message.
When MAN_SLAVE_ACK is low, the firmware must ACK after the EOM. This tells the hardware that it is OK to ack the next address automatically and put the new address value into the PMBHSA. The EOM should not be ACKed until the firmware has read the PMBHSA for the message.
The next bit set in the status register will be either DATA_READY or DATA_REQUEST.
If MAN_SLAVE_ACK is high, EOM does not need to be ACKed. The hardware will accept the address without an ACK, and set the SLAVE_ADDR_READY bit. This also means that if the STOP signal on the PMBus is followed quickly by a new address, the firmware may see both the EOM and SLAVE_ADDR_READY bits set. The firmware must be written to deal with this, first handling the message that just ended, and then dealing with the message that is starting.
Just taking auto address ACK firmware and enabling manual address ACK is not sufficient.