Universal Serial Bus InterfaceMCF5253 Reference Manual, Rev. 1Freescale Semiconductor 24-111The start-split transactions do not receive a handshake from the transaction translator, so the host controlleralways advances the transfer state in the siTD after the bus transaction is complete. To advance the transferstate the following operations take place:• The siTD[Total Bytes To Transfer] and the siTD[Current Offset] fields are adjusted to reflect thenumber of bytes transferred.• The siTD[P] (page select) bit is updated appropriately.• The siTD[TP] and siTD[T-count] fields are updated appropriately as defined in Table 24-69.These fields are then written back to the memory based siTD. The S-mask is fixed for the life of the currentbudget. As mentioned above, TP and T-count are set specifically in each siTD to reflect the data to be sentfrom this siTD. Therefore, regardless of the value of S-mask, the actual number of start-split transactionsdepends on T-count (or equivalently, Total Bytes to Transfer). The host controller must clear the Active bitwhen it detects that all of the schedule data has been sent to the bus. The preferred method is to detect whenT-Count decrements to zero as a result of a start-split bus transaction. Equivalently, the host controller candetect when Total Bytes to Transfer decrements to zero. Either implementation must ensure that if theinitial condition is Total Bytes to Transfer is equal to zero and T-count is equal to a one, then the hostcontroller will issue a single start-split, with a zero-length data payload. The software must ensure that TP,T-count and Total Bytes to Transfer are set to deliver the appropriate number of bus transactions from eachsiTD. An inconsistent combination will yield undefined behavior.If the host experiences hold-offs that cause the host controller to skip start-split transactions for an OUTtransfer, the state of the transfer will not progress appropriately. The transaction translator observesprotocol violations in the arrival of the start-splits for the OUT endpoint (that is, the transaction positionannotation is incorrect as received by the transaction translator).Example scenarios are described in Section 24.9.12.3.7, “Split Transaction for Isochronous—ProcessingExamples.”The host controller can optionally track the progress of an OUT split transaction by setting appropriate bitsin the siTD[C-prog-mask] as it executes each scheduled start-split. The checkPreviousBit() algorithmdefined in Section 24.9.12.3.5, “Periodic Isochronous—Do Complete Split,” can be used prior toexecuting each start-split to determine whether start-splits were skipped. The host controller can use thismechanism to detect missed micro-frames. It can then clear the siTD's Active bit and stop execution of thissiTD. This saves on both memory and high-speed bus bandwidth.24.9.12.3.5 Periodic Isochronous—Do Complete SplitThis state is only used by a split-transaction isochronous IN endpoint. This state is entered unconditionallyfrom the Do Start State after a start-split transaction is executed for an IN endpoint. Each time the hostcontroller visits an siTD in this state, it conducts a number of tests to determine whether it should executea complete-split transaction. The individual tests are listed below. The sequence they are applied dependson which micro-frame the host controller is currently executing which means that the tests might not beapplied until after the siTD referenced from the back pointer has been fetched.• Test A. cMicroFrameBit is bit-wise ANDed with the siTD[C-mask] field. A non-zero resultindicates that the software scheduled a complete-split for this endpoint, during this micro-frame.This test is always applied to a newly fetched siTD that is in this state.