Instances
| Instance | Domain | Base address | TrustZone | Split access | Description | ||
|---|---|---|---|---|---|---|---|
| Map | Att | DMA | |||||
|
PDM20 : S |
GLOBAL |
0x500D0000 |
US | S | SA | No |
Pulse density modulation (digital microphone) interface PDM20 |
|
PDM21 : S |
GLOBAL |
0x500D1000 |
US | S | SA | No |
Pulse density modulation (digital microphone) interface PDM21 |
Configuration
| Instance | Domain | Configuration |
|---|---|---|
|
PDM20 : S |
GLOBAL |
Use GPIO port P1 or P3 ACLK is the fixed 24 MHz clock PCLK24M PCLK is the fixed 32 MHz clock PCLK32M Supports 8, 16, 32, 48 kHz sample rate. CURRENTAMOUNT register included. |
|
PDM21 : S |
GLOBAL |
Use GPIO port P1 or P3 ACLK is the fixed 24 MHz clock PCLK24M PCLK is the fixed 32 MHz clock PCLK32M Supports 8, 16, 32, 48 kHz sample rate. CURRENTAMOUNT register included. |
Register overview
| Register | Offset | TZ | Description |
|---|---|---|---|
| TASKS_START | 0x000 |
Starts continuous PDM transfer |
|
| TASKS_STOP | 0x004 |
Stops PDM transfer |
|
| SUBSCRIBE_START | 0x080 |
Subscribe configuration for task START |
|
| SUBSCRIBE_STOP | 0x084 |
Subscribe configuration for task STOP |
|
| EVENTS_STARTED | 0x100 |
PDM transfer has started |
|
| EVENTS_STOPPED | 0x104 |
PDM transfer has finished |
|
| EVENTS_END | 0x108 |
The PDM has written the last sample specified by SAMPLE.MAXCNT (or the last sample after a STOP task has been received) to Data RAM |
|
| EVENTS_DMA.BUSERROR | 0x110 |
This event is generated if an error occurs 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.BUSERROR | 0x190 |
Publish configuration for event DMA.BUSERROR |
|
| INTEN | 0x300 |
Enable or disable interrupt |
|
| INTENSET | 0x304 |
Enable interrupt |
|
| INTENCLR | 0x308 |
Disable interrupt |
|
| INTPEND | 0x30C |
Pending interrupts |
|
| ENABLE | 0x500 |
PDM module enable register |
|
| MODE | 0x508 |
Defines the routing of the connected PDM microphone signals |
|
| GAINL | 0x518 |
Left output gain adjustment |
|
| GAINR | 0x51C |
Right output gain adjustment |
|
| RATIO | 0x520 |
Selects the decimation ratio between PDM_CLK and output sample rate. When RATIO is selected to be "custom", the decimation rate should be set using the FILTER.CTRL field before setting the RATIO to 7 Change PRESCALER.DIVISOR accordingly. |
|
| FILTER.CTRL | 0x524 |
Aditional PDM configurability |
|
| FILTER.HPPOLE | 0x528 |
Settings for the high-pass filter |
|
| FILTER.HPDISABLE | 0x52C |
High pass filter disable |
|
| FILTER.SOFTMUTE | 0x530 |
Soft mute function |
|
| FILTER.SOFTCYCLES | 0x534 |
Soft mute settings |
|
| FILTER.SAMPLEDELAY | 0x538 |
Input Data Sampling with Number of ckFilterL (double frequency of PDM_CLK) Clock Cycle Delay. Optionally,input sample point can be delayed independently on left and right channels using FILTER:CTRL[20:19] bits |
|
| PSEL.CLK | 0x540 |
Pin number configuration for PDM CLK signal |
|
| PSEL.DIN | 0x544 |
Pin number configuration for PDM DIN signal |
|
| CLKSELECT | 0x54C |
Master clock generator configuration |
|
| SAMPLE.PTR | 0x560 |
RAM address pointer to write samples to with EasyDMA |
|
| SAMPLE.MAXCNT | 0x564 |
Number of bytes to allocate memory for in EasyDMA mode |
|
| PRESCALER | 0x580 |
The prescaler is used to set the PDM frequency |
|
| DMA.TERMINATEONBUSERROR | 0x700 |
Terminate the transaction if a BUSERROR event is detected. |
|
| DMA.BUSERRORADDRESS | 0x704 |
Address of transaction that generated the last BUSERROR event. |