35.6.2 Descriptor Structure Members Description
View 0 Descriptor
Next Descriptor Address Member (MBR_NDA) |
Microblock Control Member (MBR_UBC) |
Transfer Address Member (MBR_TA) |
View0 is the simplest descriptor having just three members.
Next Descriptor Address Member (MBR_NDA):
MBR_NDA is similar to XDMAC Channel Next Descriptor register (XDMAC_CNDAx). The XDMAC_CNDAx register is initialized to the address of the first descriptor of the linked list, whereas Next Descriptor Address Member (MBR_NDA) is initialized to the address of the subsequent descriptor to be fetched from the linked list. If there are no further descriptors present in the linked list, then MBR_NDA should be initialized with 0. When a descriptor is fetched, XDMAC_CNDAx register is updated with MBR_NDA value for the execution of the next descriptor (Block).
TransferAddress Member (MBR_TA):
Transfer Address Member (MBR_TA) should be written with the destination address during Memory-to-Memory and Peripheral-to-Memory transfers. When the descriptor is fetched, the Channel Destination Address register (XDMAC_CDAx) is updated with the valued stored in Transfer Address member (MBR_TA) based on the previous descriptor’s MBR_UBC.NDEN value.
Transfer Address Member (MBR_TA) should be written with the source address during Memory-to-Peripheral transfer. When the descriptor is fetched, the Channel Source Address register (XDMAC_CSAx) is updated with the values stored in Transfer Address member (MBR_TA) based on the previous descriptor’s MBR_UBC.NSEN value.
Note: For the first descriptor of the linked list, XDMAC_CNDCx.NDSUP and XDMAC_CNDCx.NDDUP values should be directly initialized. These values decide whether to update the Channel Source/Destination Address registers with MBR_TA or not.
View 1 Descriptor
Next Descriptor Address Member (MBR_NDA) |
Microblock Control Member (MBR_UBC) |
Source Address Member (MBR_SA) |
Destination Address Member (MBR_DA) |
View 1 descriptor has two extra members in addition to View 0 descriptor.
Source Address Member (MBR_SA):
It contains the source address value of the corresponding descriptor (BLOCK). The value of MBR_SA is copied to the Channel Source Address register (XDMAC_CSAx) based on the previous MBR_UBC.NSEN settings. Therefore, the source address can be changed between different descriptors (BLOCKS).
Destination Address Member (MBR_DA):
It contains the destination address value of the corresponding descriptor (BLOCK). The value of MBR_DA is copied to the Channel Destination Address register (XDMAC_CDAx) based on the previous MBR_UBC. NDEN settings. Therefore, the destination address can be changed between different descriptors (BLOCKS).
View 2 Descriptor
Next Descriptor Address Member (MBR_NDA) |
Microblock Control Member (MBR_UBC) |
Source Address Member (MBR_SA) |
Destination Address Member (MBR_DA) |
Configuration Member (MBR_CFG) |
View2 descriptor has Configuration Member (MBR_CFG) in addition to View 1 descriptor.
ConfigurationMember (MBR_CFG):
MBR_CFGis similar to the XDMAC_CCx register. During the descriptor fetch, the value of MBR_CFG is copied to the XDMAC_CCx register.
View 3 Descriptor
Next Descriptor Address Member (MBR_NDA) |
Microblock Control Member (MBR_UBC) |
Source Address Member (MBR_SA) |
Destination Address Member (MBR_DA) |
Configuration Member (MBR_CFG) |
Block Control Member (MBR_BC) |
Data Stride Member (MBR_DS) |
Source Microblock Stride Member (MBR_SUS) |
Destination Microblock Stride Member (MBR_DUS) |
View3 descriptor has four extra members in addition to View 2 descriptor.
Block Control Member (MBR_BC):
MBR_BC is similar to the Channel Block Control Register (XDMAC_CBCx). During the descriptor fetch, the value of MBR_BC is copied to the XDMAC_CBCx register.
Data Stride Member (MBR_DS):
MBR_DS is similar to the Channel Data Stride Memory Set Pattern Register (XDMAC_CDS_MSPx). During the descriptor fetch, the value of MBR_DS is copied to the XDMAC_CDS_MSPx register.
Source Microblock Stride Member (MBR_SUS):
MBR_SUS is similar to the Channel Source Microblock Stride Register (XDMAC_CSUSx). During the descriptor fetch, the value of MBR_SUS is copied to the XDMAC_CSUSx register.
Destination Microblock Stride Member (MBR_DUS):
MBR_DUS is similar to the Channel Destination Microblock Stride Register (XDMAC_CDUSx). During the descriptor fetch, the value of MBR_DUS is copied to the XDMAC_CDUSx register.