38.6.2.6.1 Waveform Output Operations
- Choose a waveform generation mode in the Waveform Generation Operation bit in the Waveform register (WAVE.WAVEGEN).
- Optionally invert the waveform output WO[x] by writing the corresponding Output Waveform x Invert Enable bit in the Driver Control register (DRVCTRL.INVENx).
- Configure the pins with the I/O Pin Controller. Refer to PORT - I/O Pin Controller for details.
The counter value is continuously compared with each CCx value. On a comparison match, the Match or Capture Channel x bit in the Interrupt Flag Status and Clear register (INTFLAG.MCx) will be set on the next zero-to-one transition of CLK_TC_CNT (see Normal Frequency Operation). An interrupt and/or event can be generated on comparison match if enabled. The same condition generates a DMA request.
- Normal frequency (NFRQ)
- Match frequency (MFRQ)
- Normal Pulse-Width Modulation (NPWM)
- Match Pulse-Width Modulation (MPWM)
When using NPWM or NFRQ configuration, TOP is determined by the Period register (PER). TOP can be changed by writing to the PER register.
For Normal Frequency Generation, the period time (T) is controlled by the period register (PER) . The waveform generation output (WO[x]) is toggled on each compare match between COUNT and CCx, and the corresponding Match or Capture Channel x Interrupt Flag (INTFLAG.MCx) will be set.
For Match Frequency Generation, the period time (T) is controlled by the CC0 register instead of PER or MAX. WO[0] toggles on each update condition.
NPWM uses single-slope PWM generation.
For single-slope PWM generation, the period time (T) is controlled by the TOP value, and CCx controls the duty cycle of the generated waveform output. When up-counting, the WO[x] is set at start or compare match between the COUNT and TOP values, and cleared on compare match between COUNT and CCx register values. When down-counting, the WO[x] is cleared at start or compare match between the COUNT and ZERO values, and set on compare match between COUNT and CCx register values.
The following equation calculates the exact resolution for a single-slope PWM (RPWM_SS) waveform:
The PWM frequency (fPWM_SS) depends on TOP value and the peripheral clock frequency (fGCLK_TC), and can be calculated by the following equation:
Where N represents the prescaler divider used (1, 2, 4, 8, 16, 64, 256, 1024).
In MPWM, the output of WO[1] is depending on CC1 as shown in the figure below. On every overflow/underflow, a one-TC-clock-cycle negative pulse is put out on WO[0] (not shown in the figure).
The table below shows the update counter and overflow event/interrupt generation conditions in different operation modes.
Name | Operation | TOP | Update | Output Waveform | OVFIF/Event | ||
---|---|---|---|---|---|---|---|
On Match | On Update | Up | Down | ||||
NFRQ | Normal Frequency | PER | TOP/ ZERO | Toggle | Stable | TOP | ZERO |
MFRQ | Match Frequency | CC0 | TOP/ ZERO | Toggle | Stable | TOP | ZERO |
NPWM | Single-slope PWM | PER | TOP/ ZERO | See description above. | TOP | ZERO | |
MPWM | Single-slope PWM | CC0 | TOP/ ZERO | Toggle | Toggle | TOP | ZERO |