DLPU110B April 2021 – August 2022 DLPC6540
As all physical interfaces support the same protocol, it is difficult to support the start conditions that each interface supports. Also, depending on payload size, a command packet may be sent over multiple packets.
It is also important for the DLP Controller to know the start of a command to be able to parse and execute the command successfully. This means the host and DLP Controller should always be in sync. This will be the case if both host and DLP controller gets reset and powers on together. However, if an error occurs in either side, or if one of host/DLP Controller asynchronously resets then the sync is lost. Since the start conditions specific to physical interfaces are not monitored, we need another mechanism to recover when such an error occurs.
To support this use case, the DLP Controller monitors the time of arrival of each group of bytes. If any group of bytes come 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 byte and not from the group of byte where it encountered an error. This means, if the host keeps sending command one after the other without a timeout, all of it will be 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 execute all such chained commands in the order they are received.