Peripheral Data Controller Peripheral

PDC_DBGU (AT91S_PDC) 0xFFFFF300 (AT91C_BASE_PDC_DBGU)
PDC_SPI (AT91S_PDC) 0xFFFE0100 (AT91C_BASE_PDC_SPI)
PDC_ADC (AT91S_PDC) 0xFFFD8100 (AT91C_BASE_PDC_ADC)
PDC_SSC (AT91S_PDC) 0xFFFD4100 (AT91C_BASE_PDC_SSC)
PDC_US1 (AT91S_PDC) 0xFFFC4100 (AT91C_BASE_PDC_US1)
PDC_US0 (AT91S_PDC) 0xFFFC0100 (AT91C_BASE_PDC_US0)

PDC Software API (AT91S_PDC)

Offset Field Description
0x0PDC_RPRReceive Pointer Register
0x4PDC_RCRReceive Counter Register
0x8PDC_TPRTransmit Pointer Register
0xCPDC_TCRTransmit Counter Register
0x10PDC_RNPRReceive Next Pointer Register
0x14PDC_RNCRReceive Next Counter Register
0x18PDC_TNPRTransmit Next Pointer Register
0x1CPDC_TNCRTransmit Next Counter Register
0x20PDC_PTCRPDC Transfer Control Register
0x24PDC_PTSRPDC Transfer Status Register

Function Description
AT91F_PDC_SetRxSet the receive transfer descriptor
AT91F_PDC_EnableRxEnable receive
AT91F_PDC_ReceiveFrameClose PDC: disable TX and RX reset transfer descriptors
AT91F_PDC_SetTxSet the transmit transfer descriptor
AT91F_PDC_DisableRxDisable receive
AT91F_PDC_EnableTxEnable transmit
AT91F_PDC_IsNextRxEmptyTest if the next transfer descriptor has been moved to the current td
AT91F_PDC_DisableTxDisable transmit
AT91F_PDC_CloseClose PDC: disable TX and RX reset transfer descriptors
AT91F_PDC_IsTxEmptyTest if the current transfer descriptor has been sent
AT91F_PDC_SetNextRxSet the next receive transfer descriptor
AT91F_PDC_SetNextTxSet the next transmit transfer descriptor
AT91F_PDC_IsNextTxEmptyTest if the next transfer descriptor has been moved to the current td
AT91F_PDC_OpenOpen PDC: disable TX and RX reset transfer descriptors, re-enable RX and TX
AT91F_PDC_SendFrameClose PDC: disable TX and RX reset transfer descriptors
AT91F_PDC_IsRxEmptyTest if the current transfer descriptor has been filled

PDC Register Description

PDC: AT91_REG PDC_RPR - Receive Pointer Register


This register must be loaded with the address of the receive buffer

PDC: AT91_REG PDC_RCR - Receive Counter Register


This register must be loaded with the size of the receive buffer.
0 = Stop peripheral data transfer to the receiver
1 - 65535 = Start peripheral data transfer if corresponding periph_px_rdy is active

PDC: AT91_REG PDC_TPR - Transmit Pointer Register


This register must be loaded with the address of the transmit buffer

PDC: AT91_REG PDC_TCR - Transmit Counter Register


TXCTR must be loaded with the size of the transmit buffer.
0 = Stop peripheral data transfer to the transmitter
1- 65535 = Start peripheral data transfer if corresponding periph_tx_rdy is active

PDC: AT91_REG PDC_RNPR - Receive Next Pointer Register


contains the address of the next buffer to fill with received data when the current one is completed.

PDC: AT91_REG PDC_RNCR - Receive Next Counter Register


This register contains the next buffer maximum size.

PDC: AT91_REG PDC_TNPR - Transmit Next Pointer Register


This register contains the address of the next buffer from where to read data when the current one is complete.

PDC: AT91_REG PDC_TNCR - Transmit Next Counter Register


This register contains the next transmit buffer size.

PDC: AT91_REG PDC_PTCR - PDC Transfer Control Register

Offset Name Description
0PDC_RXTEN
AT91C_PDC_RXTEN
Receiver Transfer Enable
PDC_PTCR
0 = No effect.
1 = Enables the receiver PDC2 transfer requests if RXTDIS is not set.
PDC_PTSR
0 = Receiver PDC2 transfer requests are disabled.
1 = Receiver PDC2 transfer requests are enabled.
1PDC_RXTDIS
AT91C_PDC_RXTDIS
Receiver Transfer Disable
0 = No effect.
1 = Disables the receiver PDC2 transfer requests.
8PDC_TXTEN
AT91C_PDC_TXTEN
Transmitter Transfer Enable
PDC_PTCR
0 = No effect.
1 = Enables the transmitter PDC2 transfer requests.
PDC_PTSR
0 = Transmitter PDC2 transfer requests are disabled.
1 = Transmitter PDC2 transfer requests are enabled.
9PDC_TXTDIS
AT91C_PDC_TXTDIS
Transmitter Transfer Disable
0 = No effect.
1 = Disables the transmitter PDC2 transfer requests.

PDC: AT91_REG PDC_PTSR - PDC Transfer Status Register

Offset Name Description
0PDC_RXTEN
AT91C_PDC_RXTEN
Receiver Transfer Enable
PDC_PTCR
0 = No effect.
1 = Enables the receiver PDC2 transfer requests if RXTDIS is not set.
PDC_PTSR
0 = Receiver PDC2 transfer requests are disabled.
1 = Receiver PDC2 transfer requests are enabled.
8PDC_TXTEN
AT91C_PDC_TXTEN
Transmitter Transfer Enable
PDC_PTCR
0 = No effect.
1 = Enables the transmitter PDC2 transfer requests.
PDC_PTSR
0 = Transmitter PDC2 transfer requests are disabled.
1 = Transmitter PDC2 transfer requests are enabled.