CHAPTER 11: DSTC
548 FM4 Peripheral Manual, Doc. No. 002-04856 Rev. *E
The DSTC starts the transfer of the DES due to the Start Trigger of (A). The DSTC executes 32768 (IIN =
32768) times of 32-bit transfer successively with the address increasing during transfers. The transfer
number counter for the DES starts counting from (3,32768) and reads (3,1) after 32768 times of transfer.
As CHRS[3:2] of the DES is 11, the Chain Start Trigger for the transfer of the same DES is issued again.
The DSTC starts the transfer of the DES again due to the Chain Restart Trigger of (B). The DSTC
executes 32768 times of transfer again. The transfer number counter for the DES reads (2,1) after 32768
times of transfer. As CHRS[3:2] of the DES is 11, the Chain Start Trigger for the transfer of the same DES
is issued again.
The DSTC starts the transfer of the DES again due to the Chain Restart Trigger of (C). The DSTC
executes 32768 times of transfer again. The transfer number counter for the DES reads (1,1) after 32768
times of transfer. As DV of the DES is 01, the DSTC executes the DES close process for the DES. As
CHRS[5:4] of 4th-DES is 01, the DSTC sets SWTR:SWST to 1 and ends the transfer.
DES Values Stored after Transfer End
If the transfer in transfer operation example 4 ends, the values of DES are updated as shown in Table 4-7.
Values that are different from what they were before the transfer start are in bold type in the table. In
DES2 and DES3, the transfer start addresses in the third outer loop have been stored.
Table 4-7 DES Values after End of Transfer in Transfer Operation Example 4
Supplementary Information
As explained above, since CHRS[3:2] are set to 11, the DSTC can trigger a Chain Start from the current
DES to the current DES again. In general, in a transfer with MODE set to 0, one Start Trigger triggers the
execution of IIN times of transfer. However, if CHRS[3:2] are set to 11, one Start Trigger can trigger the
execution of ORM×IIN times of transfer.
In transfer operation example 4, the DSTC divides a total of 98304 times of transfer into three parts, and
executes the three parts (ORM = 3) of transfers (IIN = 32768) separately. As long as the product of ORM
and IIN is the same as the total number of transfers, the transfer result remains the same regardless of
how many parts transfers are divided into. Once the DSTC starts a transfer, it can start processing
another transfer request only when it enters the Start Trigger wait state or it meets the Chain Start time.
Therefore, as explained in transfer operation example 4, when the DSTC transfers a large amount of data,
the start of transfer for another HW transfer request may be delayed. To prevent such delay from
occurring, adjust the value of ORM with the product of ORM and IIN the same as the total amount of
transfers, so that a large amount of transfers can be divided into smaller parts. As a result, the DSTC can
transfer much data without delaying other HW transfer requests.
Conversely, to prevent the DSTC from processing another HW transfer request at a Chain Start, use the
Chain lock by setting CHLK to 1 so that the DSTC can execute transfers successively.
Note:
− In the HW Ttransfer, for a DES whose transfer is triggered by a start request from a peripheral
that has to have to a handshake with the DSTC at every data transfer, CHRS cannot be set to 11.