Instances
| Instance | Domain | Base address | TrustZone | Split access | Description | ||
|---|---|---|---|---|---|---|---|
| Map | Att | DMA | |||||
|
SPIM00 : S |
GLOBAL |
0x5004A000 |
US | S | SA | No |
SPI controller SPIM00 |
|
SPIM20 : S |
GLOBAL |
0x500C6000 |
US | S | SA | No |
SPI controller SPIM20 |
|
SPIM21 : S |
GLOBAL |
0x500C7000 |
US | S | SA | No |
SPI controller SPIM21 |
|
SPIM22 : S |
GLOBAL |
0x500C8000 |
US | S | SA | No |
SPI controller SPIM22 |
|
SPIM30 : S |
GLOBAL |
0x50104000 |
US | S | SA | No |
SPI controller SPIM30 |
Configuration
| Instance | Domain | Configuration |
|---|---|---|
|
SPIM00 : S |
GLOBAL |
Use dedicated pins on GPIO port P2 CSN functionality is supported. DCX functionality is supported. Peripheral core frequency is 128 MHz. Prescaler divisor range is 4..126 |
|
SPIM20 : S |
GLOBAL |
Use GPIO port P1, or dedicated pins on P2 CSN functionality is supported. DCX functionality is supported. Peripheral core frequency is 16 MHz. Prescaler divisor range is 2..126 |
|
SPIM21 : S |
GLOBAL |
Use GPIO port P1, or dedicated pins on P2 CSN functionality is supported. DCX functionality is supported. Peripheral core frequency is 16 MHz. Prescaler divisor range is 2..126 |
|
SPIM22 : S |
GLOBAL |
Use GPIO port P1 CSN functionality is supported. DCX functionality is supported. Peripheral core frequency is 16 MHz. Prescaler divisor range is 2..126 |
|
SPIM30 : S |
GLOBAL |
Use GPIO port P0 CSN functionality is supported. DCX functionality is supported. Peripheral core frequency is 16 MHz. Prescaler divisor range is 2..126 |
Register overview
| Register | Offset | TZ | Description |
|---|---|---|---|
| TASKS_START | 0x000 |
Start SPI transaction |
|
| TASKS_STOP | 0x004 |
Stop SPI transaction |
|
| TASKS_SUSPEND | 0x00C |
Suspend SPI transaction |
|
| TASKS_RESUME | 0x010 |
Resume SPI transaction |
|
| TASKS_DMA.RX.ENABLEMATCH[n] | 0x030 |
Enables the MATCH[n] event by setting the ENABLE[n] bit in the CONFIG register. |
|
| TASKS_DMA.RX.DISABLEMATCH[n] | 0x040 |
Disables the MATCH[n] event by clearing the ENABLE[n] bit in the CONFIG register. |
|
| SUBSCRIBE_START | 0x080 |
Subscribe configuration for task START |
|
| SUBSCRIBE_STOP | 0x084 |
Subscribe configuration for task STOP |
|
| SUBSCRIBE_SUSPEND | 0x08C |
Subscribe configuration for task SUSPEND |
|
| SUBSCRIBE_RESUME | 0x090 |
Subscribe configuration for task RESUME |
|
| SUBSCRIBE_DMA.RX.ENABLEMATCH[n] | 0x0B0 |
Subscribe configuration for task ENABLEMATCH[n] |
|
| SUBSCRIBE_DMA.RX.DISABLEMATCH[n] | 0x0C0 |
Subscribe configuration for task DISABLEMATCH[n] |
|
| EVENTS_STARTED | 0x100 |
SPI transaction has started |
|
| EVENTS_STOPPED | 0x104 |
SPI transaction has stopped |
|
| EVENTS_END | 0x108 |
End of RXD buffer and TXD buffer reached |
|
| EVENTS_DMA.RX.END | 0x14C |
Generated after all MAXCNT bytes have been transferred |
|
| EVENTS_DMA.RX.READY | 0x150 |
Generated when EasyDMA has buffered the .PTR and .MAXCNT registers for the channel, allowing them to be written to prepare for the next sequence. |
|
| EVENTS_DMA.RX.BUSERROR | 0x154 |
An error occured during the bus transfer. |
|
| EVENTS_DMA.RX.MATCH[n] | 0x158 |
Pattern match is detected on the DMA data bus. |
|
| EVENTS_DMA.TX.END | 0x168 |
Generated after all MAXCNT bytes have been transferred |
|
| EVENTS_DMA.TX.READY | 0x16C |
Generated when EasyDMA has buffered the .PTR and .MAXCNT registers for the channel, allowing them to be written to prepare for the next sequence. |
|
| EVENTS_DMA.TX.BUSERROR | 0x170 |
An error occured during the bus transfer. |
|
| PUBLISH_STARTED | 0x180 |
Publish configuration for event STARTED |
|
| PUBLISH_STOPPED | 0x184 |
Publish configuration for event STOPPED |
|
| PUBLISH_END | 0x188 |
Publish configuration for event END |
|
| PUBLISH_DMA.RX.END | 0x1CC |
Publish configuration for event END |
|
| PUBLISH_DMA.RX.READY | 0x1D0 |
Publish configuration for event READY |
|
| PUBLISH_DMA.RX.BUSERROR | 0x1D4 |
Publish configuration for event BUSERROR |
|
| PUBLISH_DMA.RX.MATCH[n] | 0x1D8 |
Publish configuration for event MATCH[n] |
|
| PUBLISH_DMA.TX.END | 0x1E8 |
Publish configuration for event END |
|
| PUBLISH_DMA.TX.READY | 0x1EC |
Publish configuration for event READY |
|
| PUBLISH_DMA.TX.BUSERROR | 0x1F0 |
Publish configuration for event BUSERROR |
|
| SHORTS | 0x200 |
Shortcuts between local events and tasks |
|
| INTENSET | 0x304 |
Enable interrupt |
|
| INTENCLR | 0x308 |
Disable interrupt |
|
| ENABLE | 0x500 |
Enable SPIM |
|
| PRESCALER | 0x52C |
The prescaler is used to set the SPI frequency. |
|
| CONFIG | 0x554 |
Configuration register |
|
| IFTIMING.RXDELAY | 0x5AC |
Sample delay for input serial data on SDI |
|
| IFTIMING.CSNDUR | 0x5B0 |
Minimum duration between edge of CSN and edge of SCK. When SHORTS.END_START is used, this is also the minimum duration CSN must stay high between transactions. |
|
| DCXCNT | 0x5B4 |
DCX configuration |
|
| CSNPOL | 0x5B8 |
Polarity of CSN output |
|
| ORC | 0x5C0 |
Byte transmitted after TXD.MAXCNT bytes have been transmitted in the case when RXD.MAXCNT is greater than TXD.MAXCNT |
|
| PSEL.SCK | 0x600 |
Pin select for SCK |
|
| PSEL.MOSI | 0x604 |
Pin select for SDO signal |
|
| PSEL.MISO | 0x608 |
Pin select for SDI signal |
|
| PSEL.DCX | 0x60C |
Pin select for DCX signal |
|
| PSEL.CSN | 0x610 |
Pin select for CSN |
|
| DMA.RX.PTR | 0x704 |
RAM buffer start address |
|
| DMA.RX.MAXCNT | 0x708 |
Maximum number of bytes in channel buffer |
|
| DMA.RX.AMOUNT | 0x70C |
Number of bytes transferred in the last transaction, updated after the END event. Also updated after each MATCH event. |
|
| DMA.RX.LIST | 0x714 |
EasyDMA list type |
|
| DMA.RX.TERMINATEONBUSERROR | 0x71C |
Terminate the transaction if a BUSERROR event is detected. |
|
| DMA.RX.BUSERRORADDRESS | 0x720 |
Address of transaction that generated the last BUSERROR event. |
|
| DMA.RX.MATCH.CONFIG | 0x724 |
Configure individual match events |
|
| DMA.RX.MATCH.CANDIDATE[n] | 0x728 |
The data to look for - any match will trigger the MATCH[n] event, if enabled. |
|
| DMA.TX.PTR | 0x73C |
RAM buffer start address |
|
| DMA.TX.MAXCNT | 0x740 |
Maximum number of bytes in channel buffer |
|
| DMA.TX.AMOUNT | 0x744 |
Number of bytes transferred in the last transaction, updated after the END event. Also updated after each MATCH event. |
|
| DMA.TX.LIST | 0x74C |
EasyDMA list type |
|
| DMA.TX.TERMINATEONBUSERROR | 0x754 |
Terminate the transaction if a BUSERROR event is detected. |
|
| DMA.TX.BUSERRORADDRESS | 0x758 |
Address of transaction that generated the last BUSERROR event. |