The external host must follow these steps to execute any SACI command:
- Wait until TXD_FULL = 0
- Set CMD_START
- Write first parameter word to TXD
- If there are more parameter words:
- Wait until TXD_FULL = 0
- Clear CMD_START
- Write second parameter word to TXD
- Wait until TXD_FULL = 0
- For each additional word:
- Write the parameter word to TXD
- There is no need to check TXD_FULL
- Wait until TXD_FULL = 0
- For commands with returned response, if relevant:
- Wait until RXD_FULL = 1
- Read RXD
- For each response data word:
- Wait until RXD_FULL = 1
- Read RXD
The host must implement a timeout while waiting for TXD_FULL = 0:
- If the timeout occurs, the host should assume that the target is in an unknown state and abort or restart the session.
- This timeout can be set relatively high (for example, 1 second), since the timeout should not occur frequently and only one time per session.