DLPU114A August 2024 – November 2024 DLPC8445
As all physical interfaces support the same protocol, not all start conditions will be the same. Also, depending on payload size, a command packet may be sent over multiple packets. It is important for the controller to know the start of a command to be able to parse and execute the command successfully. This means the host and the controller should always be in sync as will be the case if both the host and the controller reset and power on together. However, if an error occurs on either side, or if one of host/controller asynchronously resets, the sync is lost. Since the start conditions specific to physical interfaces are not monitored, another mechanism to recover when such an error occurs is needed. To support this use case, the controller monitors the time of arrival of each group of bytes. If any group of bytes comes outside of a defined timeout (750 ms) compared to the last group, it is treated as the start of a new command.
The timeout is always measured from the last received group of bytes and not from the group of bytes where it encountered an error. This means if the host keeps sending commands one after the other without a timeout, all of it is discarded.
It is valid to include multiple commands in a single group or send commands back to back without waiting for the defined timeout. Both of these cases are controlled by the command handler which executes all such chained commands in the order they are received.