Instances
| Instance | Domain | Base address | TrustZone | Split access | Description | ||
|---|---|---|---|---|---|---|---|
| Map | Att | DMA | |||||
|
PWM0 : S |
APPLICATION |
0x50021000 |
US | S | SA | No |
Pulse width modulation unit 0 |
|
PWM1 : S |
APPLICATION |
0x50022000 |
US | S | SA | No |
Pulse width modulation unit 1 |
|
PWM2 : S |
APPLICATION |
0x50023000 |
US | S | SA | No |
Pulse width modulation unit 2 |
|
PWM3 : S |
APPLICATION |
0x50024000 |
US | S | SA | No |
Pulse width modulation unit 3 |
Register overview
| Register | Offset | TZ | Description |
|---|---|---|---|
| TASKS_STOP | 0x004 |
Stops PWM pulse generation on all channels at the end of current PWM period, and stops sequence playback |
|
| TASKS_SEQSTART[n] | 0x008 |
Loads the first PWM value on all enabled channels from sequence n, and starts playing that sequence at the rate defined in SEQ[n]REFRESH and/or DECODER.MODE. Causes PWM generation to start if not running. |
|
| TASKS_NEXTSTEP | 0x010 |
Steps by one value in the current sequence on all enabled channels if DECODER.MODE=NextStep. Does not cause PWM generation to start if not running. |
|
| SUBSCRIBE_STOP | 0x084 |
Subscribe configuration for task STOP |
|
| SUBSCRIBE_SEQSTART[n] | 0x088 |
Subscribe configuration for task SEQSTART[n] |
|
| SUBSCRIBE_NEXTSTEP | 0x090 |
Subscribe configuration for task NEXTSTEP |
|
| EVENTS_STOPPED | 0x104 |
Response to STOP task, emitted when PWM pulses are no longer generated |
|
| EVENTS_SEQSTARTED[n] | 0x108 |
First PWM period started on sequence n |
|
| EVENTS_SEQEND[n] | 0x110 |
Emitted at end of every sequence n, when last value from RAM has been applied to wave counter |
|
| EVENTS_PWMPERIODEND | 0x118 |
Emitted at the end of each PWM period |
|
| EVENTS_LOOPSDONE | 0x11C |
Concatenated sequences have been played the amount of times defined in LOOP.CNT |
|
| PUBLISH_STOPPED | 0x184 |
Publish configuration for event STOPPED |
|
| PUBLISH_SEQSTARTED[n] | 0x188 |
Publish configuration for event SEQSTARTED[n] |
|
| PUBLISH_SEQEND[n] | 0x190 |
Publish configuration for event SEQEND[n] |
|
| PUBLISH_PWMPERIODEND | 0x198 |
Publish configuration for event PWMPERIODEND |
|
| PUBLISH_LOOPSDONE | 0x19C |
Publish configuration for event LOOPSDONE |
|
| SHORTS | 0x200 |
Shortcuts between local events and tasks |
|
| INTEN | 0x300 |
Enable or disable interrupt |
|
| INTENSET | 0x304 |
Enable interrupt |
|
| INTENCLR | 0x308 |
Disable interrupt |
|
| ENABLE | 0x500 |
PWM module enable register |
|
| MODE | 0x504 |
Selects operating mode of the wave counter |
|
| COUNTERTOP | 0x508 |
Value up to which the pulse generator counter counts |
|
| PRESCALER | 0x50C |
Configuration for PWM_CLK |
|
| DECODER | 0x510 |
Configuration of the decoder |
|
| LOOP | 0x514 |
Number of playbacks of a loop |
|
| SEQ[n].PTR | 0x520 |
Beginning address in RAM of this sequence |
|
| SEQ[n].CNT | 0x524 |
Number of values (duty cycles) in this sequence |
|
| SEQ[n].REFRESH | 0x528 |
Number of additional PWM periods between samples loaded into compare register |
|
| SEQ[n].ENDDELAY | 0x52C |
Time added after the sequence |
|
| PSEL.OUT[n] | 0x560 |
Output pin select for PWM channel n |