Universal Serial Bus InterfaceMCF5253 Reference Manual, Rev. 1Freescale Semiconductor 24-99This occurs when one of the following events occur: The transaction translator responds to acomplete-split transaction with one of the following:• NAK. A NAK response is a propagation of the full- or low-speed endpoint's NAK response.• ACK. An ACK response is a propagation of the full- or low-speed endpoint's ACK response. Onlyoccurs on an OUT endpoint.• DATA 0/1. Only occurs for INs. Indicates that this is the last of the data from the endpoint for thissplit transaction.• ERR. The transaction on the low-/full-speed link below the transaction translator had a failure (forexample, timeout, bad CRC, etc.).• NYET (and Last). The host controller issued the last complete-split and the transaction translatorresponded with a NYET handshake. This means that the start-split was not correctly received bythe transaction translator, so it never executed a transaction to the full- or low-speed endpoint, seeSection 24.9.12.2.7, “Periodic Interrupt—Do-Complete-Split” for the definition of 'Last'.Each time the host controller visits a queue head in this state (once within the Execute Transaction state),bit-wise ANDs QH[S-mask] with cMicroFrameBit to determine whether to execute a start-split. If theresult is non-zero, then the host controller issues a start-split transaction. If the PID Code field indicatesan IN transaction, the host controller must zero-out the QH[S-bytes] field. After the split-transaction hasbeen executed, the host controller sets up state in the queue head to track the progress of the complete-splitphase of the split transaction. Specifically, it records the expected frame number into QH[FrameTag] field,sets C-prog-mask to zero (0x00), and exits this state. Note that the host controller must not adjust the valueof Cerr as a result of completion of a start-split transaction.24.9.12.2.7 Periodic Interrupt—Do-Complete-SplitThis state is entered unconditionally from the Do Start Split state after a start-split transaction is executedon the bus. Each time the host controller visits a queue head in this state (once within the ExecuteTransaction state), it checks to determine whether a complete-split transaction should be executed now.There are four tests to determine whether a complete-split transaction should be executed.• Test A. cMicroFrameBit is bit-wise ANDed with QH[C-mask] field. A non-zero result indicatesthat the software scheduled a complete-split for this endpoint, during this micro-frame.• Test B. QH[FrameTag] is compared with the current contents of FRINDEX[7:3]. An equalindicates a match.• Test C. The complete-split progress bit vector is checked to determine whether the previous bit isset, indicating that the previous complete-split was appropriately executed. An example algorithmfor this test is provided below:Algorithm Boolean CheckPreviousBit(QH.C-prog-mask, QH.C-mask, cMicroFrameBit)Begin-- Return values:-- TRUE - no error-- FALSE - error--Boolean rvalue = TRUE;previousBit = cMicroframeBit logical-rotate-right(1)-- Bit-wise anding previousBit with C-mask indicates-- whether there was an intent