English
Language : 

C8051F80X_14 Datasheet, PDF (235/251 Pages) Silicon Laboratories – Mixed Signal ISP Flash MCU Family
C8051F80x-83x
29.3.6. 16-Bit Pulse Width Modulator Mode
A PCA module may be operated in 16-Bit PWM mode. 16-bit PWM mode is independent of the other (8-bit
through 15-bit) PWM modes. In this mode, the 16-bit capture/compare module defines the number of PCA
clocks for the low time of the PWM signal. When the PCA counter matches the module contents, the out-
put on CEXn is asserted high; when the 16-bit counter overflows, CEXn is asserted low. 16-Bit PWM Mode
is enabled by setting the ECOMn, PWMn, and PWM16n bits in the PCA0CPMn register.
The duty cycle of the PWM output signal can be varied by writing to an “Auto-Reload” Register, which is
dual-mapped into the PCA0CPHn and PCA0CPLn register locations. The auto-reload registers are
accessed (read or written) when the bit ARSEL in PCA0PWM is set to 1. The capture/compare registers
are accessed when ARSEL is set to 0. This synchronous update feature allows software to asynchro-
nously write a new PWM high time, which will then take effect on the following PWM period.
For backwards-compatibility with the 16-bit PWM mode available on other devices, the PWM duty cycle
can also be changed without using the “Auto-Reload” register. To output a varying duty cycle without using
the “Auto-Reload” register, new value writes should be synchronized with PCA CCFn match interrupts.
Match interrupts should be enabled (ECCFn = 1 AND MATn = 1) to help synchronize the capture/compare
register writes. If the MATn bit is set to 1, the CCFn flag for the module will be set each time a 16-bit com-
parator match (rising edge) occurs. The CF flag in PCA0CN can be used to detect the overflow (falling
edge). The duty cycle for 16-Bit PWM Mode is given by Equation 29.4.
Important Note About Capture/Compare Registers: When writing a 16-bit value to the PCA0 Cap-
ture/Compare registers, the low byte should always be written first. Writing to PCA0CPLn clears the
ECOMn bit to 0; writing to PCA0CPHn sets ECOMn to 1.
Duty Cycle = ---6---5---5---3---6----–-----P----C----A----0----C----P----n----
65536
Equation 29.4. 16-Bit PWM Duty Cycle
Using Equation 29.4, the largest duty cycle is 100% (PCA0CPn = 0), and the smallest duty cycle is
0.0015% (PCA0CPn = 0xFFFF). A 0% duty cycle may be generated by clearing the ECOMn bit to 0.
W rite to
PCA0CPLn
0
ENB
Reset
W rite to
PCA0CPHn ENB
1
R/W when
ARSEL = 1
(A u to -R e lo a d )
P C A 0 C P H :L n
PCA0CPMn
P ECCMT PE
WC A A A O WC
MO P P T GMC
1MPN n n n F
6nnn
n
n
1 00x0 x
R/W when
ARSEL = 0
(C apture/C om pare )
P C A 0 C P H :L n
Enable 16-bit C om parator
PCA0PW M
AEC
RCO
SOV
EVF
L
ECCC
ALLL
RSSS
1EEE
6LLL
210
x
xxx
M atch S Q SET C E X n C ro s sb a r
R CLR Q
PCA Timebase
PCA0H:L
O v e rflo w
Figure 29.10. PCA 16-Bit PWM Mode
Port I/O
Rev. 1.0
235