SN8P2200 Series
USB 1.1 Low-Speed 8-Bit Micro-Controller
SONiX TECHNOLOGY CO., LTD
Page 88
Version 1.7
8.4.3 PWM Duty with TCxR Changing
In PWM mode, the system will compare TC0C and TC0R all the time. When TC0C<TC0R, the PWM will output logic
“High”, when TC0C
≧
TC0R, the PWM will output logic “Low”. If TC0C is changed in certain period, the PWM duty will
change in next PWM period. If TC0R is fixed all the time, the PWM waveform is also the same.
TC0C overflow
and TC0IRQ set
TC0C = TC0R
0xFF
TC0C Value
0x00
PWM0 Output
1
2
3
4
5
6
7
Period
Above diagram is shown the waveform with fixed TC0R. In every TC0C overflow PWM output “High, when TC0C
≧
TC0R PWM output ”Low”. If TC0R is changing in the program processing, the PWM waveform will became as following
diagram.
1
1st PWM
2
Update PWM Duty
3
2nd PWM
4
Update PWM Duty
0xFF
TC0C Value
0x00
PWM0 Output
Period
5
3th PWM
TC0C overflow
and TC0IRQ set
Old TC0R
Old TC0R
New TC0R
New TC0R
Update New TC0R!
Old TC0R < TC0C < New TC0R
Update New TC0R!
New TC0R < TC0C < Old TC0R
TC0C > = TC0R
PWM High > Low
TC0C < TC0R
PWM Low > High
In period 2 and period 4, new Duty (TC0R) is set. TC0 is double buffer design. The PWM still keeps the same duty in
period 2 and period 4, and the new duty is changed in next period. By the way, system can avoid the PWM not
changing or H/L changing twice in the same cycle and will prevent the unexpected or error operation.