Instances
| Instance | Domain | Base address | TrustZone | Split access | Description | ||
|---|---|---|---|---|---|---|---|
| Map | Att | DMA | |||||
|
TDM : S |
GLOBAL |
0x500E8000 |
US | S | SA | No |
Time division multiplexed audio interface TDM |
Configuration
| Instance | Domain | Configuration |
|---|---|---|
|
TDM : S |
GLOBAL |
Use GPIO port P1 or P3 ACLK is the fixed 24 MHz clock PCLK24M PCLK is the fixed 32 MHz clock PCLK32M CURRENTAMOUNT register included. |
Register overview
| Register | Offset | TZ | Description |
|---|---|---|---|
| TASKS_START | 0x000 |
Starts continuous TDM transfer. Also starts MCK when this is enabled |
|
| TASKS_STOP | 0x004 |
Stops TDM transfer after the completion of MAXCNT bytes. Triggering this task will cause the STOPPED event to be generated. |
|
| TASKS_ABORT | 0x008 |
Abort TDM transfer without completing MAXCNT bytes. Triggering this task will cause the ABORTED event to be generated. |
|
| SUBSCRIBE_START | 0x080 |
Subscribe configuration for task START |
|
| SUBSCRIBE_STOP | 0x084 |
Subscribe configuration for task STOP |
|
| SUBSCRIBE_ABORT | 0x088 |
Subscribe configuration for task ABORT |
|
| EVENTS_RXPTRUPD | 0x104 |
The RXD.PTR register has been copied to internal double-buffers. When TDM is started and RX is enabled, this event will be generated for every RXTXD.MAXCNT bytes received on the SDIN pin. |
|
| EVENTS_STOPPED | 0x108 |
Transfer stopped. |
|
| EVENTS_ABORTED | 0x10C |
Transfer aborted. |
|
| EVENTS_TXPTRUPD | 0x118 |
The TDX.PTR register has been copied to internal double-buffers. When TDM is started and TX is enabled, this event will be generated for every RXTXD.MAXCNT bytes that are sent on the SDOUT pin. |
|
| EVENTS_MAXCNT | 0x120 |
Generated on the active edge of FSYNC, after both RX and TX DMA transfers have completed. An initial MAXCNT event is also triggered on the first active edge of FSYNC after the START task is issued. |
|
| EVENTS_BUSERROR_RX | 0x124 |
This event is generated if an error occurs during the bus transfer. |
|
| EVENTS_BUSERROR_TX | 0x128 |
This event is generated if an error occurs during the bus transfer. |
|
| PUBLISH_RXPTRUPD | 0x184 |
Publish configuration for event RXPTRUPD |
|
| PUBLISH_STOPPED | 0x188 |
Publish configuration for event STOPPED |
|
| PUBLISH_ABORTED | 0x18C |
Publish configuration for event ABORTED |
|
| PUBLISH_TXPTRUPD | 0x198 |
Publish configuration for event TXPTRUPD |
|
| PUBLISH_MAXCNT | 0x1A0 |
Publish configuration for event MAXCNT |
|
| PUBLISH_BUSERROR_RX | 0x1A4 |
Publish configuration for event BUSERROR_RX |
|
| PUBLISH_BUSERROR_TX | 0x1A8 |
Publish configuration for event BUSERROR_TX |
|
| INTEN | 0x300 |
Enable or disable interrupt |
|
| INTENSET | 0x304 |
Enable interrupt |
|
| INTENCLR | 0x308 |
Disable interrupt |
|
| INTPEND | 0x30C |
Pending interrupts |
|
| ENABLE | 0x500 |
Enable TDM |
|
| CONFIG.MODE | 0x504 |
Mode configuration |
|
| CONFIG.RXTXEN | 0x508 |
Reception (RX) and transmission (TX) enable. |
|
| CONFIG.MCK.EN | 0x50C |
Master clock generator enable. |
|
| CONFIG.MCK.DIV | 0x510 |
MCK divider. |
|
| CONFIG.MCK.SRC | 0x514 |
MCK clock source selection |
|
| CONFIG.SCK.DIV | 0x518 |
SCK divider. |
|
| CONFIG.SCK.SRC | 0x51C |
SCK clock source selection |
|
| CONFIG.SCK.POLARITY | 0x520 |
Set SCK Polarity. |
|
| CONFIG.SWIDTH | 0x524 |
Sample and word width configuration. |
|
| CONFIG.ALIGN | 0x528 |
Alignment of sample within the audio data word. |
|
| CONFIG.CHANNEL.MASK | 0x52C |
Select which channels are to be used. |
|
| CONFIG.CHANNEL.NUM | 0x530 |
Select number of channels. |
|
| CONFIG.CHANNEL.DELAY | 0x534 |
Set channel delay. |
|
| CONFIG.FSYNC.POLARITY | 0x538 |
Set FSYNC Polarity. |
|
| CONFIG.FSYNC.DURATION | 0x53C |
Set FSYNC duration. |
|
| CONFIG.ORS | 0x540 |
Over-read sample: Extra sample(s) to be transmitted after TXD.MAXCNT bytes have been transmitted. |
|
| PSEL.MCK | 0x570 |
Pin select for MCK signal |
|
| PSEL.SCK | 0x574 |
Pin select for SCK signal |
|
| PSEL.FSYNC | 0x578 |
Pin select for FSYNC signal |
|
| PSEL.SDIN | 0x57C |
Pin select for SDIN signal |
|
| PSEL.SDOUT | 0x580 |
Pin select for SDOUT signal |
|
| RXD.PTR | 0x704 |
RAM buffer start address |
|
| RXD.MAXCNT | 0x708 |
Maximum number of bytes in channel buffer |
|
| RXD.AMOUNT | 0x70C |
Number of bytes transferred in the last transaction, updated after the END event. |
|
| RXD.CURRENTAMOUNT | 0x710 |
Number of bytes transferred in the current transaction |
|
| RXD.MODE | 0x718 |
Configure EasyDMA mode |
|
| RXD.TERMINATEONBUSERROR | 0x71C |
Terminate the transaction if a BUSERROR event is detected. |
|
| RXD.BUSERRORADDRESS | 0x720 |
Address of transaction that generated the last BUSERROR event. |
|
| TXD.PTR | 0x744 |
RAM buffer start address |
|
| TXD.MAXCNT | 0x748 |
Maximum number of bytes in channel buffer |
|
| TXD.AMOUNT | 0x74C |
Number of bytes transferred in the last transaction, updated after the END event. |
|
| TXD.CURRENTAMOUNT | 0x750 |
Number of bytes transferred in the current transaction |
|
| TXD.MODE | 0x758 |
Configure EasyDMA mode |
|
| TXD.TERMINATEONBUSERROR | 0x75C |
Terminate the transaction if a BUSERROR event is detected. |
|
| TXD.BUSERRORADDRESS | 0x760 |
Address of transaction that generated the last BUSERROR event. |