37.2.3.3.2 Maximum Read Turnaround Time

The Maximum Read Turnaround time is the time that the Controller will wait before reading the data it requested for Private Transactions. This delay can be specified in the I3CxMRT Maximum Read Turnaround register. This is useful when the user is expecting data read delays for Private Read Transactions due to any reason. The Controller can be notified of this delay by setting the BCR0 bit during setup to signify that the device is speed-limited. After the Controller reads the I3CxBCR register during the Dynamic Address Assignment process, the Controller can then read the I3CxMRT register by using the Get Maximum Data Speed GETMXDS Common Command Code (CCC).
Important: The Controller can choose to not wait for Maximum Read Turnaround time before attempting to read from the Target. If the data are not available in the Transmit FIFO yet, then a Transmit Underrun error is generated, the TXUIF interrupt flag is set, and the read request is NACKed, in which case the Controller will attempt to read again. Alternatively, the Target may have the data ready to be read in the Transmit FIFO before the time reported. Refer to the Transmit and Receive Buffers section for more information about the Transmit Underrun error.

If a non-zero Maximum Read Turnaround time is specified in the I3CxMRT register, then the Target must use MRS[6] bit in the I3CxMWS register to notify the Controller whether it permits the insertion of a Stop between the Write (read index) and the corresponding Read. If a Stop is permitted in between Write-to-Read, then the Controller can use the extra time for other communication or re-initiate the read request at a later time. If a Stop is not permitted, then the Controller will keep Write-to-Read transaction within one frame.

Tip: If the Maximum Read Turnaround time is more than a few microseconds, then it is highly recommended for the Target to permit a Stop between Write and Read transactions.