�
PWM_SS
= log(TOP+1)
log(2)
The PWM frequency depends on the Period register value (PER) and the peripheral clock frequency
(
f
GCLK_TCC
), and can be calculated by the following equation:
�
PWM_SS
=
�
GCLK_TCC
N(TOP+1)
Where N represents the prescaler divider used (1, 2, 4, 8, 16, 64, 256, 1024).
Dual-Slope PWM Generation
For dual-slope PWM generation, the period setting (TOP) is controlled by PER, while CCx control the
duty cycle of the generated waveform output. The figure below shows how the counter repeatedly counts
from ZERO to PER and then from PER to ZERO. The waveform generator output is set on compare
match when up-counting, and cleared on compare match when down-counting. An interrupt/event is
generated on TOP and/or ZERO, depend of Dual slope.
In DSBOTH operation, a second update time occurs on TOP when circular buffer is enabled.
Figure 36-7. Dual-Slope Pulse Width Modulation
COUNT
CCx=ZERO
CCx
CCx=TOP
WO[x]
ZERO
TOP
MAX
"match"
"update"
Using dual-slope PWM results in a lower maximum operation frequency compared to single-slope PWM
generation. The period (TOP) defines the PWM resolution. The minimum resolution is 1 bit
(TOP=0x00000001).
The following equation calculates the exact resolution for dual-slope PWM (
R
PWM_DS
):
�
PWM_DS
= log(PER+1)
log(2)
.
The PWM frequency
f
PWM_DS
depends on the period setting (TOP) and the peripheral clock frequency
f
GCLK_TCC
, and can be calculated by the following equation:
�
PWM_DS
=
�
GCLK_TCC
2� ⋅ PER
N
represents the prescaler divider used. The waveform generated will have a maximum frequency of half
of the TCC clock frequency (f
GCLK_TCC
) when TOP is set to 0x00000001 and no prescaling is used.
The pulse width (
P
PWM_DS
) depends on the compare channel (CCx) register value and the peripheral
clock frequency (
f
GCLK_TCC
), and can be calculated by the following equation:
�
PWM_DS
= 2� ⋅ TOP − CCx
�
GCLK_TCC
N
represents the prescaler divider used.
Atmel SAM L22G / L22J / L22N [DATASHEET]
Atmel-42402E-SAM L22G / L22J / L22N_Datasheet_Complete-07/2016
806