Datasheet
936
SAM4S Series [DATASHEET]
11100F–ATARM–29-Jan-14
If the channel is a synchronous channel and update method 0 is selected (SYNCx = 1 and UPDM = 0 in
PWM_SCM register), these registers hold the new period, duty-cycle and dead-times values until the bit
UPDULOCK is written at ‘1’ (in “PWM Sync Channels Update Control Register” (PWM_SCUC)) and the end of the
current PWM period, then update the values for the next period.
If the channel is a synchronous channel and update method 1 or 2 is selected (SYNCx = 1 and UPDM = 1 or 2 in
PWM_SCM register):
registers PWM_CPRDUPDx and PWM_DTUPDx hold the new period and dead-times values until the bit
UPDULOCK is written at ‘1’ (in PWM_SCUC) and the end of the current PWM period, then update the
values for the next period.
register PWM_CDTYUPDx holds the new duty-cycle value until the end of the update period of synchronous
channels (when UPRCNT is equal to UPR in “PWM Sync Channels Update Period Register”
(PWM_SCUP)) and the end of the current PWM period, then updates the value for the next period.
Note: If the update registers PWM_CDTYUPDx, PWM_CPRDUPDx and PWM_DTUPDx are written several times
between two updates, only the last written value is taken into account.
Figure 39-17. Synchronized Period, Duty-Cycle and Dead-Times Update
39.6.5.4 Changing the Synchronous Channels Update Period
It is possible to change the update period of synchronous channels while they are enabled. (See “Method 2: Manual write
of duty-cycle values and automatic trigger of the update” on page 929 and “Method 3: Automatic write of duty-cycle
values and automatic trigger of the update” on page 930.)
To prevent an unexpected update of the synchronous channels registers, the user must use the “PWM Sync Channels
Update Period Update Register” (PWM_SCUPUPD) to change the update period of synchronous channels while they
are still enabled. This register holds the new value until the end of the update period of synchronous channels (when
UPRCNT is equal to UPR in PWM_SCUP) and the end of the current PWM period, then updates the value for the next
period.
PWM_CPRDUPDx Value
PWM_CPRDx PWM_CDTYx
- If Asynchronous Channel
-> End of PWM period
- If Synchronous Channel
-> End of PWM period and UPDULOCK = 1
User's
Writing
PWM_DTUPDx Value
User's
Writing
PWM_DTx
- If Asynchronous Channel
-> End of PWM period
- If Synchronous Channel
- If UPDM = 0
-> End of PWM period and UPDULOCK = 1
- If UPDM = 1 or 2
-> End of PWM period and end of Update Period
PWM_CDTYUPDx Value
User's
Writing