Atmel Evaluation Kit AT91SAM9M10-G45-EK AT91SAM9M10-G45-EK Data Sheet

Product codes
AT91SAM9M10-G45-EK
Page of 1361
 375
SAM9M10 [DATASHEET]
6355F–ATARM–12-Mar-13
 
27.7.3.12
Peripheral Deselection with DMAC
When the Direct Memory Access Controller is used, the chip select line will remain low during the whole transfer
since the TDRE flag is managed by the DMAC itself. The reloading of the SPI_TDR by the DMAC is done as soon
as TDRE flag is set to one. In this case the use of CSAAT bit might not be needed. However, it may happen that
when other DMAC channels connected to other peripherals are in use as well, the SPI DMAC might be delayed by
another (DMAC with a higher priority on the bus). Having DMAC buffers in slower memories like flash memory or
SDRAM compared to fast internal SRAM, may lengthen the reload time of the SPI_TDR by the DMAC as well. This
means that the SPI_TDR might not be reloaded in time to keep the chip select line low. In this case the chip select
line may toggle between data transfer and according to some SPI Slave devices, the communication might get lost.
The use of the CSAAT bit might be needed. 
Figure  27-12.
Peripheral Deselection
27.7.3.13
Mode Fault Detection
A mode fault is detected when the SPI is programmed in Master Mode and a low level is driven by an external mas-
ter on the NPCS0/NSS signal. In this case, multi-master configuration, NPCS0, MOSI, MISO and SPCK pins must
be configured in open drain (through the PIO controller). When a mode fault is detected, the MODF bit in the
SPI_SR is set until the SPI_SR is read and the SPI is automatically disabled until re-enabled by writing the SPIEN
bit in the SPI_CR (Control Register) at 1.
A
NPCS[0..3]
Write SPI_TDR
TDRE
NPCS[0..3]
Write SPI_TDR
TDRE
NPCS[0..3]
Write SPI_TDR
TDRE
DLYBCS
PCS = A
DLYBCS
DLYBCT
A
PCS = B
B
DLYBCS
PCS = A
DLYBCS
DLYBCT
A
PCS = B
B
DLYBCS
DLYBCT
PCS=A
A
DLYBCS
DLYBCT
A
PCS = A
A
A
DLYBCT
A
A
CSAAT = 0
DLYBCT
A
A
CSAAT = 1 
A