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.