APPLICATION NOTE SH7211 Group MTU2 Three-Phase Complementary PWM Output Function (Complementary PWM Mode) Introduction This application note presents sample settings for producing three-phase complementary pulse width modulation (PWM) output, with no overlap of the positive and antiphases, using multi-function timer pulse unit 2 (MTU2) of the SH7211. Target Device SH7211 Contents 1. Preface.............................................................................................................................................. 2 2. Description of the Sample Application .............................................................................................. 4 3. Documents for Reference ............................................................................................................... 25 REJ06B0891-0100/Rev.1.00 July 2009 Page 1 of 26 SH7211 Group MTU2 Three-Phase Complementary PWM Output Function (Complementary PWM Mode) 1. 1.1 Preface Specifications This application note describes how to use the complementary PWM mode function of multi-function timer pulse unit 2 (MTU2) to output three-phase complementary PWM waveforms. Figure 1 shows the configuration. • Channels 3 and 4 of MTU2 are set to complementary PWM mode (complementary PWM mode 3). • The PWM positive phase output pins are TIOC3B, TIOC4A, and TIOC4B. The antiphase output pins corresponding to these phase output pins are TIOC3D, TIOC4C, and TIOC4D. • The PWM output signal is low-active. • In complementary PWM mode, PWM waveform output incorporates dead time (anti-short periods) to prevent overlap between the positive and antiphases. The dead time is set to 4 µm. • The PWM carrier cycle is set to 400 µm. • The PWM duty setting values are updated at an interrupt generated every PWM carrier cycle. • A toggle waveform synchronized with the PWM carrier half-cycle is output by pin TIOC3A. SH7211 SH-2A Interrupt request TIOC3A (PB17) MTU2 Channels 3 and 4 Complementary PWM mode 3 PWM cycle setting PWM duty setting (×3) Dead time setting TIOC3B (PB18) TIOC3D (PB19) TIOC4A (PB4) TIOC4C (PB6) TIOC4B (PB5) TIOC4D (PB7) Toggle output (synchronized with PWM cycle) PWM output pin 1 (positive phase) PWM output pin 1' (antiphase) PWM output pin 2 (positive phase) PWM output pin 2' (antiphase) PWM output pin 3 (positive phase) PWM output pin 3' (antiphase) Figure 1 Three-Phase Complementary PWM Output (Complementary PWM Mode 3) 1.2 Module Used Channels 3 and 4 of multi-function timer pulse unit 2 (MTU2) REJ06B0891-0100/Rev.1.00 July 2009 Page 2 of 26 SH7211 Group MTU2 Three-Phase Complementary PWM Output Function (Complementary PWM Mode) 1.3 Applicable Conditions MCU: SH7211 [R5F7211] Operating frequencies: Internal clock (Iφ) = 160 MHz Bus clock (Bφ) = 40 MHz Peripheral clock (Pφ) = 40 MHz MTU2S clock (Mφ) = 80 MHz AD clock (Aφ) = 40 MHz MCU operating mode: Single-chip mode Integrated development environment: Renesas Technology High-performance Embedded Workshop, Ver. 4.05.01.001 C compiler: Renesas Technology SuperH RISC engine Family C/C++ Compiler Package, Ver. 9.03, Release 00 Compile options: High-performance Embedded Workshop default settings (-cpu=sh2a -include="$(WORKSPDIR)\inc" -object="$(CONFIGDIR)\$(FILELEAF).obj" -debug -gbr=auto -chgincpath -errorpath -global_volatile=0 -opt_range=all -infinite_loop=0 -del_vacant_loop=0 -struct_alloc=1 -nologo) REJ06B0891-0100/Rev.1.00 July 2009 Page 3 of 26 SH7211 Group MTU2 Three-Phase Complementary PWM Output Function (Complementary PWM Mode) 2. Description of the Sample Application In this sample application, the complementary PWM mode function of multi-function timer pulse unit 2 (MTU2) is used. 2.1 2.1.1 Operational Overview of Module Used Multi-Function Timer Pulse Unit 2 (MTU2) Multi-function timer pulse unit 2 (MTU2) is a multi-function timer unit comprising a 6-channel 16-bit timer. Settings such as compare match or input capture can be made individually for each channel. Channels 3 and 4 can be used for 6line PWM output control by specifying complementary PWM mode or reset synchronous mode. For details of MTU2, see the Multi-Function Timer Pulse Unit 2 (MTU2) section in the SH7211 Group Hardware Manual (RJJ09B0338). Table 1 is an overview of multi-function timer pulse unit 2 (MTU2). Figure 2 is a block diagram of MTU2. Table 1 Overview of Multi-Function Timer Pulse Unit 2 (MTU2) Item Number of channels Counter clock Operation of channels 0 to 5 Triggers for A/D converter Buffered operation Operating modes Interrupt requests Others REJ06B0891-0100/Rev.1.00 Description 16-bit timer × 6 channels (channels 0 to 5) Each channel selectable among eight counter input clocks (four counter input clocks for channel 5) • Waveform output at compare match, input capture function, counter clear operation, simultaneous write to multiple timer counters (TCNT), simultaneous clear at compare match or input capture • Synchronous register I/O using counter-synchronous operation, max. 12-phase PWM output through combination with synchronous operation • Ability to generate conversion start trigger for A/D converter • Ability to generate interrupt at counter peak/trough and to skip conversion start triggers for A/D converter in complementary PWM mode • Ability to specify register buffer operation for channels 0, 3, and 4 • Ability to specify PWM mode for channels 0 to 4 • Ability to specify phase counting mode independently for channels 1 and 2 • Ability to specify 3-phase positive and negative PWM waveform output (total 6 lines) in complementary PWM mode or reset synchronous PWM mode, using linked operation of channels 3 and 4 • 28 interrupt sources (compare match, input capture, etc.) • Cascade connection operation • High-speed access via internal 16-bit bus • Support for automatic transfer of register data • Ability to specify module standby mode • Support for dead time compensation counter function using channel 5 July 2009 Page 4 of 26 Channel 5: TGIU_5 TGIV_5 TGIW_5 TGRW TGRD TGRD TCNTW TGRB TGRC TGRB TGRC TCBR TDDR TGRV TCNTV TCDR TCNT TGRA TCNT TGRA TCNTS TCNTU BUS I/F TGRF TGRE TGRD TGRB TGRB TGRB A/D converter conversion start signal TGRC TCNT TGRA TCNT TGRA TCNT TGRA TSR TIER TSR TIER TSR TIER Interrupt request signals Channel 3: TGIA_3 TGIB_3 TGIC_3 TGID_3 TCIV_3 Channel 4: TGIA_4 TGIB_4 TGIC_4 TGID_4 TCIV_4 Peripheral bus TSTR Module data bus TSR TIER TSYR TGRU TSR TIER TIER TGCR TSR TMDR TIORL TIORH TIORL TIORH TIOR TIOR TIOR TIORL TIORH Channel 5 Common Control logic TMDR Channel 2 TCR TMDR Channel 1 TCR Channel 0 Control logic for channels 0 to 2 Input/output pins Channel 0: TIOC0A TIOC0B TIOC0C TIOC0D Channel 1: TIOC1A TIOC1B Channel 2: TIOC2A TIOC2B TMDR Clock input Internal clock: Pφ/1 Pφ/4 Pφ/16 Pφ/64 Pφ/256 Pφ/1024 External clock: TCLKA TCLKB TCLKC TCLKD TCR Input pins Channel 5: TIC5U TIC5V TIC5W TCR TOER TOCR Channel 3 TCR TMDR Channel 4 TCR Input/output pins Channel 3: TIOC3A TIOC3B TIOC3C TIOC3D Channel 4: TIOC4A TIOC4B TIOC4C TIOC4D Control logic for channels 3 and 4 SH7211 Group MTU2 Three-Phase Complementary PWM Output Function (Complementary PWM Mode) Interrupt request signals Channel 0: TGIA_0 TGIB_0 TGIC_0 TGID_0 TGIE_0 TGIF_0 TCIV_0 Channel 1: TGIA_1 TGIB_1 TCIV_1 TCIU_1 Channel 2: TGIA_2 TGIB_2 TCIV_2 TCIU_2 [Legend] TSTR: Timer start register TSYR: Timer synchronous register TCR: Timer control register TMDR: Timer mode register TIOR: Timer I/O control register TIORH: Timer I/O control register H TIORL: Timer I/O control register L TIER: Timer interrupt enable register TGCR: Timer gate control register TOER: Timer output master enable register TOCR: Timer output control register TSR: Timer status register TCNT: Timer counter TCNTS: Timer subcounter TCDR: TCBR: TDDR: TGRA: TGRB: TGRC: TGRD: TGRE: TGRF: TGRU: TGRV: TGRW: Timer cycle data register Timer cycle buffer register Timer dead time data register Timer general register A Timer general register B Timer general register C Timer general register D Timer general register E Timer general register F Timer general register U Timer general register V Timer general register W Figure 2 Block Diagram of MTU2 REJ06B0891-0100/Rev.1.00 July 2009 Page 5 of 26 SH7211 Group MTU2 Three-Phase Complementary PWM Output Function (Complementary PWM Mode) 2.1.2 Complementary PWM mode Multi-function timer pulse unit 2 (MTU2) can be set to complementary PWM mode, in which channels 3 and 4 are used in combination. In complementary PWM mode, three-phase non-overlapping positive and negative PWM waveforms are output. It is also possible to specify PWM waveform output with no dead time to prevent overlapping. Pins TIOC3B, TIOC3D, TIOC4A, TIOC4B, TIOC4C, and TIOC4D function as PWM output pins in complementary PWM mode. The TIOC3A pin can be set for toggle output synchronized with the PWM cycle. TCBR TGRA_3 TCDR Comparator TCNT_3 Match signal TCNTS TCNT_4 TGRD_3 TGRC_4 TGRB_4 Temp 3 Match signal TGRA_4 Temp 2 TGRB_3 Temp 1 Comparator PWM cycle output Output protection circuit TDDR TGRC_3 Output controller TCNT_4 underflow interrupt TGRA_3 comparematch interrupt Figure 3 shows the configuration of channels 3 and 4 of multi-function timer pulse unit 2 (MTU2) in complementary PWM mode. PWM output 1 PWM output 2 PWM output 3 PWM output 4 PWM output 5 PWM output 6 External cutoff input POE0 POE1 POE2 POE3 TGRD_4 External cutoff interrupt : Registers that can always be read or written from the CPU : Registers that can be read or written from the CPU (but for which access disabling can be set by TRWER) : Registers that cannot be read or written from the CPU (except for TCNTS, which can only be read) Figure 3 Block Diagram of Channels 3 and 4 in Complementary PWM Mode REJ06B0891-0100/Rev.1.00 July 2009 Page 6 of 26 SH7211 Group MTU2 Three-Phase Complementary PWM Output Function (Complementary PWM Mode) The channel 3 and channel 4 register functions in complementary PWM mode are described below. • Timer general register A_3 (TGRA_3) operates as a compare register. The upper limit value for TCNT_3 (1/2 carrier cycle + dead time) is set in TGRA_3. To change the value of this register while the timer is operating, set the new value in timer general register C_3 (TGRC_3). • Timer general register B_3 (TGRB_3) operates as a compare register. The duty of the PWM waveforms output by pins TIOC3B and TIOC3D is set in TGRB_3. To change the value of this register while the timer is operating, set the new value in timer general register D_3 (TGRD_3). • Timer general register C_3 (TGRC_3) operates as the buffer register for TGRA_3. While the timer is operating, TGRA_3 is updated to reflect values set in TGRC_3. • Timer general register D_3 (TGRD_3) operates as the buffer register for TGRB_3. While the timer is operating, TGRB_3 is updated to reflect values set in TGRD_3. • Timer general register A_4 (TGRA_4) operates as a compare register. The duty of the PWM waveforms output by pins TIOC4A and TIOC4C is set in TGRA_4. To change the value of this register while the timer is operating, set the new value in timer general register C_4 (TGRC_4). • Timer general register B_4 (TGRB_4) operates as a compare register. The duty of the PWM waveforms output by pins TIOC4B and TIOC4D is set in TGRB_4. To change the value of this register while the timer is operating, set the new value in timer general register D_4 (TGRD_4). • Timer general register C_4 (TGRC_4) operates as the buffer register for TGRA_4. While the timer is operating, TGRA_4 is updated to reflect values set in TGRC_4. • Timer general register D_4 (TGRD_4) operates as the buffer register for TGRB_4. While the timer is operating, TGRB_4 is updated to reflect values set in TGRD_4. • Temporary registers 1, 2, and 3 (Temp1, 2, and 3) occupy a position between the buffer registers and compare registers. Data written to the buffer register is transferred to the temporary register and then to the compare register. The temporary registers cannot be accessed by the CPU. • Timer counter_3 (TCNT_3) is a 16-bit counter. TCNT_3 starts counting down when a compare match with TGRA_3 occurs, and it starts counting up when a compare match with the timer dead time data register (TDDR) occurs. • Timer counter_4 (TCNT_4) is a 16-bit counter. TCNT_4 starts counting down when a compare match with the timer cycle data register (TCDR) occurs, and it starts counting up when the value of TCNT_4 reaches H'0000. • The timer dead time data register (TDDR) is a 16-bit readable/writable register. TDDR specifies the dead time for the PWM waveforms. • The timer cycle data register (TCDR) is a 16-bit register. TCDR specifies a value equal to one-half the PWM carrier cycle. • The timer cycle buffer register (TCBR) operates as the buffer register for TCDR. While the timer is operating, TCDR is updated to reflect values set in TCBR. REJ06B0891-0100/Rev.1.00 July 2009 Page 7 of 26 SH7211 Group MTU2 Three-Phase Complementary PWM Output Function (Complementary PWM Mode) 2.2 Operation of the Sample Program 2.2.1 Settings for Operation of the Sample Program In this application note, channels 3 and 4 of the multi-function timer pulse unit 2 (MTU2) are set to complementary PWM mode 3 and three-phase complementary PWM waveforms are output. In addition, toggle output synchronized with the PWM carrier cycle is generated. Table 2 lists the setting conditions for complementary PWM mode operation. Figure 4 shows a sample of output waveforms in complementary PWM mode. Table 2 Setting for Operation in Complementary PWM Mode Item Channels in use Operating mode Functions of pins Active level Counter clock PWM carrier cycle Dead time PWM duty Interrupt REJ06B0891-0100/Rev.1.00 Description Channels 3 and 4 Complementary PWM mode 4 (data transfer at counter peaks and troughs) • TIOC3A pin: Toggle output synchronized to PWM cycle • TIOC3B pin: PWM output 1 (positive phase waveform) • TIOC3D pin: PWM output 1' (PWM output 1 antiphase waveform) • TIOC4A pin: PWM output 2 (positive phase waveform) • TIOC4C pin: PWM output 2' (PWM output 2 antiphase waveform) • TIOC4B pin: PWM output 3 (positive phase waveform) • TIOC4D pin: PWM output 4' (PWM output 3 antiphase waveform) • Positive phase output: Low-active output • Antiphase output: Low-active output 10 MHz (4 cycles of Pφ clock) 400 μm (carrier frequency: 2.5 kHz) 4 μm • For PWM outputs 1, 2, and 3, the initial PWM duty is 50%. • The PWM duty is updated by an interrupt generated at every compare match with TGRA_3. (The setting value is incremented or decremented.) • TGRA_3 compare match interrupt A compare match with TGRA_3 occurs every PWM carrier cycle. July 2009 Page 8 of 26 SH7211 Group MTU2 Three-Phase Complementary PWM Output Function (Complementary PWM Mode) Figure 4 Output Waveforms in Complementary PWM Mode Operation 2.2.2 Description of Operation by the Sample Program (1) Operation of Timer Counters Figure 5 shows the operation timer counter in complementary PWM mode. Counters TCNT_3 and TCNT_4, which correspond to channel 3 and channel 4, each count up or down. The initial value of counter TCNT_3 is set to the same value as the TDDR register, and the initial value of counter TCNT_4 is set to H'0000. Channels 3 and 4 start timer count operation simultaneously. Figure 5 Operation of Timer Counters REJ06B0891-0100/Rev.1.00 July 2009 Page 9 of 26 SH7211 Group MTU2 Three-Phase Complementary PWM Output Function (Complementary PWM Mode) (2) PWM Output Waveforms The three-phase complementary PWM output waveforms are controlled by using the compare match function with timer counters (TCNT_3 and TCNT_4) and compare registers (TGRB_3, TGRA_4, and TGRB_4). When the value of a register matches the value of a counter, positive phase output and antiphase output are generated according to the values set in bits OLSN and OLSP in the timer output control register (TOCR). Figure 6 shows the output waveforms for single-phase (positive phase, antiphase) complementary PWM output. The positive phase and antiphase output signals are controlled by using the compare match function with timer counters (TCNT_3 and TCNT_4) and a compare register (TGRB_3). : TGRB_3 (compare register) PWM output 1 and PWM output 1' timing update : TGRB_3 compare match TCNT_3, TCNT_4 TCNTS: Sub-counter TGRA_3 TCNTS TCDR TCNT_3 TCNT_4 TGRB_3 TDDR H'0000 Dead time Dead time TIOC3B pin 1 (PWM output 1 positive phase) 0 TIOC3D pin 1 (PWM output 1' antiphase) 0 Output antiphase 1 at compare match of up-counting TCNT_3 and TGRB_3. Output positive phase 0 at compare match of up-counting TCNT_4 and TGRB_3. Output antiphase 0 at compare match of down-counting TCNT_3 and TGRB_3. The PWM output waveforms are low-active (positive phase and antiphase). : Active level (low level) Output positive phase 1 at compare match of down-counting TCNT_4 and TGRB_3. Figure 6 Complementary PWM Output Waveforms REJ06B0891-0100/Rev.1.00 July 2009 Page 10 of 26 SH7211 Group MTU2 Three-Phase Complementary PWM Output Function (Complementary PWM Mode) (3) Changing the PWM Duty Figure 7 shows the PWM duty update timing. In the reference program, the TGRA_3 compare match interrupt (counter peak interrupt) handler makes register settings after incrementing or decrementing the PWM duty setting values. Three buffer registers, TGRD_3, TGRC_4, and TGRD_4, are used to update the PWM duty. When changing the duty, always set TGRD_4 last. Always execute a write to TGRD_4 after writing updated register data, even if the TGRD_4 data value does not change. : TGRD_3 (buffer register) : Temp (TGRB_3 temporary register) : TGRB_3 (compare register) : TGRB_3 compare match TCNTS: Sub-counter TCNT_3, TCNT_4 TGRA_3 TCNTS TCDR TCNT_3 TCNT_4 TGRD_3 TGRB_3 TDDR H'0000 Note: The operation mode is complementary PWM mode 3 (transfer at peak and trough) TGRA_3 interrupt flag TGRA_3 interrupt handler (data update) Update register value (data3) Update register value (data2) TGRD_3 buffer register data2 data1 Temporary register data1 TGRB_3 compare register data1 data2 data3 data3 (data2) (data1) (data2) data2 (data3) data3 Figure 7 PWM Duty Update Timing (4) Output Toggling in Synchronization with PWM Cycle Figure 8 shows the operations for toggling of an output level in synchronization with the PWM cycle. The PSYE bit in the timer output control register (TOCR) is set to 1 to select toggling of an output in synchronization with the PWM carrier cycle. Toggling is of the signal on the TIOC3A pin. The initial value for output is 1. TCNT_3, TCNT_4 Output level is toggled on compare match with H'0000. TGRA_3 TCDR TCNT_3 TCNT_4 Output level is toggled on compare match with H'0000. TDDR H'0000 Carrier cycle TIOC3A pin (toggle output) 1 0 Figure 8 Operation for Toggling an Output in Synchronization with the PWM Cycle REJ06B0891-0100/Rev.1.00 July 2009 Page 11 of 26 SH7211 Group MTU2 Three-Phase Complementary PWM Output Function (Complementary PWM Mode) 2.2.3 Example of Output with User-Defined PWM Duty Table 3 summarizes single-phase positive phase and antiphase output operation, showing the relationship between different PWM duty setting values and the resulting positive phase and antiphase output waveforms. In complementary PWM mode, the output levels are fixed when the value of the compare register (TGRB_3) is H'0000, with positive phase output in a constant-on state and antiphase output in a constant-off state. The output levels are also fixed when the value of the compare register (TGRB_3) is equal to or greater than the setting value of the TGRA_3 register, with positive phase output in a constant-off state and antiphase output in a constant-on state. Figures 9 and 10 show examples of positive phase and antiphase output waveforms. Note that when the PWM duty is changed, the new setting value is not written directly to the compare register. Instead, it must be written to the buffer register, after which the compare register is updated via the buffer register. Table 3 Example of PWM Duty Settings and Output Waveforms TGRB_3 Register Value TGRB_3 ≥ TGRA_3 Between TGRA_3 and TCDR TGRB_3 = TCDR Between (TCDR – Td) and TCDR TGRB_3 = (TCDR – Td) Between (TDDR × 2) and (TCDR – Td) TGRB_3 = (TDDR × 2) Between TDDR and (TDDR × 2) TGRB_3 = TDDR Output Waveform* Positive Phase Output (TIOC3B Pin) Constant-off state (high) Constant-off state (high) Constant-off state (high) On waveform output (pulse) Antiphase Output (TIOC3D Pin) Constant-on state (low) Off waveform output (pulse) Waveform Figure Figure 9 (a) — Off waveform output (width of dead time × 2) Off waveform output Figure 9 (b) On waveform output (width Off waveform output (width of dead time × 2) of dead time × 4) Complementary PWM waveform output Off waveform output (width of dead time × 4) Off waveform output On waveform output (width of dead time × 2) On waveform output (pulse) — Figure 9 (c) — Figure 10 (a) — Figure 10 (b) On waveform output (width Constant-off state (high) of dead time × 2) Between H'0000 and TDDR Off waveform output (pulse) Constant-off state (high) — TGRB_3 = H'0000 Constant-on state (low) Constant-off state (high) Figure 10 (c) Note: * The PWM output active level is set to low. The example is for single-phase (positive phase, antiphase) complementary PWM output. REJ06B0891-0100/Rev.1.00 July 2009 Page 12 of 26 SH7211 Group MTU2 Three-Phase Complementary PWM Output Function (Complementary PWM Mode) TGRB_3: Compare register value (a) TGRB_3 = TGRA_3 : Active level (low level) Td: Dead time setting TCNTS: Sub-counter TCNT_3, TCNT_4 TGRB_3 (=TGRA_3) TGRA_3 TCDR Td TCNTS TCNT_3 TCNT_4 TDDR H'0000 TIOC3B pin (PWM 1 output 1 positive phase) 0 Constant-off (high) TIOC3D pin (PWM output 1 1' antiphase) 0 Constant-on (low) (b) TGRB_3 = TCDR TCNT_3, TCNT_4 TGRA_3 TGRB_3 (=TCDR) TCDR TCNTS Td TCNT_3 TCNT_4 TDDR H'0000 Dead time Dead time TIOC3B pin (PWM 1 output 1 positive phase) 0 TIOC3D pin (PWM output 1 1' antiphase) 0 (c) TGRB_3 = TCDR-Td Dead time Dead time Constant-off (high) ON (Low) OFF OFF TCNT_3, TCNT_4 TGRA_3 TCDR TCNTS Td Td TGRB_3 (=TCDR-Td) TCNT_3 TCNT_4 TDDR H'0000 Dead time TIOC3B pin (PWM 1 output 1 positive phase) 0 TIOC3D pin (PWM output 1 1' antiphase) 0 OFF (High) ON (Low) Dead time ON OFF OFF OFF Figure 9 Examples of PWM Waveform Output (1) REJ06B0891-0100/Rev.1.00 July 2009 Page 13 of 26 SH7211 Group MTU2 Three-Phase Complementary PWM Output Function (Complementary PWM Mode) TGRB_3: Compare register value : Active level (low level) Td: Dead time setting TCNTS: Sub-counter TCNT_3, TCNT_4 (a) TGRB_3 = 2 * TDDR TGRA_3 TCNTS TCDR TCNT_3 TCNT_4 TGRB_3 (=2*TDDR) Td TDDR Td H'0000 TIOC3B pin (PWM 1 output 1 positive phase) 0 OFF ON OFF OFF TIOC3D pin (PWM output 1 1' antiphase) 0 ON OFF ON ON (b) TGRB_3 = TDDR TCNT_3, TCNT_4 TGRA_3 TCNTS TCDR TCNT_3 TCNT_4 TGRB_3 (=TDDR) TDDR H'0000 Td TIOC3B pin (PWM 1 output 1 positive phase) 0 TIOC3D pin (PWM output 1 1' antiphase) 0 ON OFF ON OFF Constant-off (always high) (c) TGRB_3 = H'0000 TCNT_3, TCNT_4 TGRB_3: Compare register value TGRA_3 TCNTS TCDR TCNT_3 TCNT_4 TDDR TGRB_3 (=H'0000) H'0000 Td TIOC3B pin (PWM output 1 positive phase) 1 0 Constant-on (always low) TIOC3D pin (PWM output 1' antiphase) 1 0 Constant-off (always high) Figure 10 Examples of PWM Waveform Output (2) REJ06B0891-0100/Rev.1.00 July 2009 Page 14 of 26 SH7211 Group MTU2 Three-Phase Complementary PWM Output Function (Complementary PWM Mode) 2.3 Configuration of the Sample Program 2.3.1 Description of Functions Table 4 lists functions used in this sample program. Table 4 Functions Used Function Name Main Label main () Standby setting function MTU2 initial setting function stbcr_init () mtu2_init () PFC initial setting function pfc_init () TGRA_3 interrupt function int_mtu2_tgia3 () 2.3.2 Description Makes initial settings for each module and makes timer start settings for multi-function timer pulse unit 2 (MTU2). Cancels MTU2 module standby. Makes MTU2 (channels 3 and 4) initial settings. Specifies reset-synchronized PWM mode. Makes initial settings for the pin function controller (PFC). Sets MTU2-related pins to timer pin function. Handler for the MTU2 (channel 3) TGRA_3 compare match interrupt. Updates the three-phase PWM duty setting values. The interrupt is generated once every PWM carrier cycle (400 μm). Variable Usage Table 5 lists the functions used by the sample program. Table 5 Variable Usage Label Name Dead_time C_cycle Pul_cycle Pul_pwm_duty1 Pul_pwm_duty2 Pul_pwm_duty3 REJ06B0891-0100/Rev.1.00 Description Dead time setting value (TDDR register setting value) Value equal to 1/2 of PWM carrier cycle (TCBR register setting value) Value equal to 1/2 of PWM carrier cycle + dead time (TGRC_3 register setting value) PWM1 output (TIOC3B pin and TIOC3D pin) PWM duty setting value (TGRD_3 register setting value) PWM2 output (TIOC4A pin and TIOC4C pin) PWM duty setting value (TGRC_4 register setting value) PWM3 output (TIOC4B pin and TIOC4D pin) PWM duty setting value (TGRD_4 register setting value) July 2009 Name of Employing Module • mtu2_init () • mtu2_init () • int_mtu2_tgia3 () Page 15 of 26 SH7211 Group MTU2 Three-Phase Complementary PWM Output Function (Complementary PWM Mode) 2.4 Procedure for Setting the Module Used The processing sequences of the sample program are shown below. 2.4.1 Main Function Figure 11 shows the processing sequence of the main function. main() 0→Duty_select [1] Execute initial standby setting function stbcr_init() [2] Execute MTU2 initial settings function mtu2_init() [3] Set interrupt priority level setting register 10 (IPR10) [4] [1] Initialize variable. Initialize PWM duty update flag (Duty_select). [2] Clear on-chip peripheral function module standby mode. [3] Initial settings for multi-function timer pulse unit 2 (MTU2) Execute PFC initial settings function pfc_init() [5] Set timer start register (TSTR) [6] Clear interrupt mask set_imask(0) [7] [4] Make interrupt controller (INTC) settings. Set the interrupt priority level for MTU2 interrupt sources (TGI3A to TGI3D) to D'15 (H'F). [5] Make pin function controller (PFC) initial settings. [6] Make MTU2 timer start register (TSTR) settings. CST4 bit = B'1: Set timer counter TCNT_4 to count operation. CST3 bit = B'1: Set timer counter TCNT_3 to count operation. Set bits CST3 and CST4 at the same time. [7] Clear interrupt mask bit to 0. Enable CPU interrupts at all interrupt priority levels. Figure 11 Processing by Function main 2.4.2 Initialization for Standby Figure 12 shows the flow of processing for standby processing. stbcr_init() Set standby control register 3 (STBCR3) [1] [1] Cancel module standby mode. MSTP35 bit = B'0: Enable clock supply to MTU2. END Figure 12 Initialization: Release from Standby REJ06B0891-0100/Rev.1.00 July 2009 Page 16 of 26 SH7211 Group MTU2 Three-Phase Complementary PWM Output Function (Complementary PWM Mode) 2.4.3 Initialization of Multi-Function Timer Pulse Unit 2 (MTU2) Figure 13 shows the processing sequence of the function that makes initial settings for multi-function timer pulse unit 2 (MTU2). Channels 3 and 4 of are set to complementary PWM mode 3. Figure 13 Initialization of MTU2 REJ06B0891-0100/Rev.1.00 July 2009 Page 17 of 26 SH7211 Group MTU2 Three-Phase Complementary PWM Output Function (Complementary PWM Mode) 2.4.4 Initialization of Pin Function Controller (PFC) Figure 14 shows the flow for initialization of the PFC. Figure 14 Initialization of Pin Function Controller (PFC) REJ06B0891-0100/Rev.1.00 July 2009 Page 18 of 26 SH7211 Group MTU2 Three-Phase Complementary PWM Output Function (Complementary PWM Mode) 2.4.5 Handling of the Compare Match Interrupt Figure 15 shows the flow for handling the compare match interrupt (TGRA_3) from MTU2. [1] Clear interrupt source flag. TGFA bit = B'0: Clear timer status register_3 (TSR_3) compare flag A. To clear the flag, write 0 after reading the bit as 1. int_mtu2_tgia3() Clear TGRA3 interrupt flag [2] [1] No [3] Pul_pwm_duty1 == 0 ? No Yes Pul_pwm_duty1 ≥ cycle? Yes 0 → Duty_select (set increment) 1→ Duty_select (set decrement) [4] Duty_select == 0 [2][3] Set flag. Set PWM duty increment/decrement flag (Duty_select variable). Set to increment (0 → Duty_select) when duty is 0. Set to decrement (1 → Duty_select) when duty is 1. [4] Check flag Switch to incrementing or decrementing of PWM duty setting value. No ? Yes [Increment duty setting value] Pul_pwm_duty1 ++ Pul_pwm_duty2 ++ Pul_pwm_duty3 ++ Pul_pwm_duty1 → TGRD_3 Pul_pwm_duty2 → TGRC_4 Pul_pwm_duty3 → TGRD_4 END [Decrement duty setting value] Pul_pwm_duty1 -Pul_pwm_duty2 -Pul_pwm_duty3 -- [5] [5] Set PWM duty in register. Buffer register TGRD_3: Set PWM1 output (positive phase, antiphase) duty. Buffer register TGRC_4: Set PWM2 output (positive phase, antiphase) duty. Buffer register TGRD_4: Set PWM3 output (positive phase, antiphase) duty. Figure 15 Interrupt Handling REJ06B0891-0100/Rev.1.00 July 2009 Page 19 of 26 SH7211 Group MTU2 Three-Phase Complementary PWM Output Function (Complementary PWM Mode) 2.5 Settings of Registers in the Sample Program The following describes the settings of registers used in the sample program. 2.5.1 Clock Pulse Generator (CPG) Table 6 gives a list of settings for registers of the clock pulse generator (CPG). Table 6 Clock Pulse Generator (CPG) Register Name Frequency control register (FRQCR) 2.5.2 Address H'FFFE0010 Setting H'1303 Description Specifies the clock output settings and operating frequency multiplication ratios. • CKOEN = B'1: Fix CK pin low level. • STC1 and STC0 = B'11: PLL circuit 1 × 2 • IFC2 to IFC0 = B'000: Internal clock (Iφ) × 1 • RNGS = B'0: High-frequency mode • PFC2 to PFC0 = B'011: Peripheral clock (Pφ) × 1/4 Power-Down Mode Table 7 shows the register settings for power down mode. Table 7 Power-Down Mode Register Name Standby control register 3 (STBCR3) Address H'FFFE0408 REJ06B0891-0100/Rev.1.00 Setting H'5E July 2009 Description Specifies the operation settings for individual modules. • HIZ= B'0: Maintain pin state in software standby mode. • MSTP36 = B'1: Stop clock supply to MTU2S. • MSTP35 = B'0: Operate MTU2. • MSTP34 = B'1: Stop clock supply to POE2. • MSTP33 = B'1: Stop clock supply to IIC3. • MSTP32 = B'1: Stop clock supply to ADC. • MSTP31 = B'1: Stop clock supply to DAC. • MSTP30 = B'0: Operate flash memory. Page 20 of 26 SH7211 Group MTU2 Three-Phase Complementary PWM Output Function (Complementary PWM Mode) 2.5.3 Multi-Function Timer Pulse Unit 2 (MTU2) Table 8 gives a list of settings for registers of multi-function timer pulse unit 2 (MTU2). Table 8 Multi-Function Timer Pulse Unit 2 (MTU2) Register Name Timer control register_3 (TCR_3) Address H'FFFE4200 Value H'01 Timer control register_4 (TCR_4) H'FFFE4201 H'01 Timer counter_3 (TCNT_3) H'FFFE4210 D'40 Timer counter_4 (TCNT_4) Timer general register A_3 (TGRA_3) H'FFFE4212 H'0000 H'FFFE4218 D'2040 Timer general register C_3 (TGRC_3) H'FFFE4224 Timer general register B_3 (TGRB_3) H'FFFE421A Timer general register D_3 (TGRD_3) H'FFFE4226 Timer general register A_4 (TGRA_4) H'FFFE421C Timer general register C_4 (TGRC_4) H'FFFE4228 Timer general register B_4 (TGRB_4) H'FFFE421E REJ06B0891-0100/Rev.1.00 Description TCNT control settings • CCLR2 to CCLR0 = B'000: Disable clearing of TCNT. • CKEG1 and CKEG0 = B'00: Count at rising edge. • TPSC2 to TPSC0 = B'001: TCNT counts using internal clock Pφ / 4. TCNT control settings • CCLR2 to CCLR0 = B'000: Disable clearing of TCNT. • CKEG1 and CKEG0 = B'00: Count at rising edge. • TPSC2 to TPSC0 = B'001: TCNT counts using internal clock Pφ / 4. 16 bit counter In complementary PWM mode, set the initial value to match the setting value of the timer dead time data register (TDDR). 16 bit counter Set the initial value to H'0000. In complementary PWM mode, set the TCNT_3 upper limit to a value of (1/2 carrier cycle + dead time). In complementary PWM mode, set the initial value of the TGRA_3 buffer register to match the setting value of the TGRA_3 register. In complementary PWM mode, set the PWM output 1 compare register PWM duty (initial output value). In complementary PWM mode, set the initial value of the TGRB_3 buffer register to match the setting value of the TGRB_3 register. New PWM duty values are set in this register. In complementary PWM mode, set the PWM output 2 compare register PWM duty (initial output value). In complementary PWM mode, set the initial value of the TGRA_4 buffer register to match the setting value of the TGRA_4 register. New PWM duty values are set in this register. In complementary PWM mode, set the PWM output 3 compare register PWM duty (initial output value). D'1020 D'1020 D'1020 July 2009 Page 21 of 26 SH7211 Group MTU2 Three-Phase Complementary PWM Output Function (Complementary PWM Mode) Register Name Timer general register D_4 (TGRD_4) Address H'FFFE422A Value D'1020 Timer dead time data register (TDDR) H'FFFE4216 D'40 Timer cycle data register (TCDR) H'FFFE4214 D'2000 Timer cycle buffer register (TCBR) H'FFFE4222 Timer output control register 1 (TOCR1) H'FFFE420E H'40 Timer mode register_3 (TMDR_3) H'FFFE4202 H'3F Timer mode register_4 (TMDR_4) H'FFFE4203 - REJ06B0891-0100/Rev.1.00 Description In complementary PWM mode, set the initial value of the TGRB_4 buffer register to match the setting value of the TGRB_4 register. New PWM duty values are set in this register. This 16-bit register is only used in complementary PWM mode. Set the offset value (dead time value) for TCNT_4 and TCNT_3. This register is only used in complementary PWM mode. Set the TCNT_4 upper limit value (1/2 the carrier cycle). This register is only used in complementary PWM mode. It functions as the buffer register for the TCDR register. Set the same value as that for the TCDR register. Complementary PWM mode output operation settings • PSYE = B'1: Enable toggle output synchronized with the PWM cycle. • TOCL = B'0: Enable writing to the TOCS, OLSN, and OLSP bits. • TOCS = B'0: Enable TOCR1 setting. • OLSN = B'0: In complementary PWM mode, select the antiphase output level: Initial output = high, active level = low. • OLSP = B'0: In complementary PWM mode, select the positive phase output level: Initial output = high, active level = low. Sets the operation mode (channel 3). • BFB = B'1: Set TGRB and TGRD to buffer operation. • BFA = B'1: Set TGRA and TGRC to buffer operation. • MD3 to MD0 = B'1111: Complementary PWM mode 3 (transfer at peak and trough) Sets the operation mode (channel 4). When channel 3 is set to complementary PWM mode, the settings for channel 4 are ignored and the settings for channel 3 are followed automatically. There is no need to make setting to this register. Leave the initial values unchanged. July 2009 Page 22 of 26 SH7211 Group MTU2 Three-Phase Complementary PWM Output Function (Complementary PWM Mode) Register Name Timer output master enable register (TOER) Address H'FFFE420A Value H'FF Timer interrupt enable register_3 (TIER_3) Timer start register (TSTR) H'FFFE4208 H'01 H'FFFE4280 H'C0 2.5.4 Description Specifies the output settings for the MTU2 output pins. • OE4D = B'1: Enable MTU2 output on TIOC4D pin. • OE4C = B'1: Enable MTU2 output on TIOC4C pin. • OE3D = B'1: Enable MTU2 output on TIOC3D pin. • OE4B = B'1: Enable MTU2 output on TIOC4B pin. • OE4A = B'1: Enable MTU2 output on TIOC4A pin. • OE3B = B'1: Enable MTU2 output on TIOC3B pin. Enables or disables interrupt requests. • TGIEA= B'1: Enable interrupt requests (TGIA) by TGFA bit. Starts or stops TCNT operation for channels 0 to 4. • CST4 = B'1: Start TCNT_4 count operation. • CST3 = B'1: Start TCNT_3 count operation. Stop count operation by TCNT_2, TCNT_1, and TCNT_0. Make counter operation bit settings for TCNT_4 and TCNT_3 at the same time. Interrupt Controller (INTC) Table 9 gives a list of settings for registers of the interrupt controller (INTC). Table 9 Interrupt Controller (INTC) Register Name Interrupt priority level setting register 10 (IPR10) Address H'FFFE0C08 REJ06B0891-0100/Rev.1.00 Setting H'00F0 July 2009 Description Sets interrupt priority levels (level 0 to 15). • Bits 15 to 12 = B'0000: MTU2 (TGI2A and TGI2B) interrupt level = 0 • Bits 11 to 8 = B'0000: MTU2 (TCI2V and TCI2U) interrupt level = 0 • Bits 7 to 4 = B'1111: MTU3 (TGI3A to TGI3D) interrupt level = 15 • Bits 3 to 0 = B'0000: MTU3 (TCI3V) interrupt level = 0 The TGI3A interrupt is used by the reference program. Page 23 of 26 SH7211 Group MTU2 Three-Phase Complementary PWM Output Function (Complementary PWM Mode) 2.5.5 Pin Function Controller (PFC) Table 10 gives a list of settings for registers of the pin function controller (PFC). Table 10 Pin Function Controller (PFC) Register Name Port B control register L2 (PBCRL2) Address H'FFFE3894 Setting H'4444 Port B control register H1 (PBCRH1) H'FFFE388E H'4440 Port B I/O register H (PBIORH) H'FFFE3884 H'000E Port B I/O register L (PBIORL) H'FFFE3886 H'00F0 REJ06B0891-0100/Rev.1.00 July 2009 Description Sets port B multiplexed pin functions. • PB7MD2 to PB7MD0 = B'100: Set PB7 to TIOC4D I/O (MTU2). • PB6MD2 to PB6MD0 = B'100: Set PB6 to TIOC4C I/O (MTU2). • PB5MD2 to PB5MD0 = B'100: Set PB5 to TIOC4B I/O (MTU2). • PB4MD2 to PB4MD0 = B'100: Set PB4 to TIOC4A I/O (MTU2). Sets port B multiplexed pin functions. • PB19MD2 to PB19MD0 = B'100: Set PB19 to TIOC3D I/O (MTU2). • PB18MD2 to PB18MD0 = B'100: Set PB18 to TIOC3C I/O (MTU2). • PB17MD2 to PB17MD0 = B'100: Set PB17 to TIOC3B I/O (MTU2). • PB16MD2 to PB16MD0 = B'000: Set PB16 to TIOC3A I/O (MTU2). Sets port B pin I/O directions. • PB19IOR = B'1: Set PB19 (TIOC3D) as an output pin. • PB18IOR = B'1: Set PB18 (TIOC3B) as an output pin. • PB17IOR = B'1: Set PB17 (TIOC3A) as an output pin. • PB16IOR = B'0: Set PB16 (port) as an input pin. Set all the others to B'0: All input pins. Sets port B pin I/O directions. • PB7IOR = B'1: Set PB7 (TIOC4D) as an output pin. • PB6IOR = B'1: Set PB6 (TIOC4C) as an output pin. • PB5IOR = B'1: Set PB5 (TIOC4B) as an output pin. • PB4IOR = B'1: Set PB4 (TIOC4A) as an output pin. Set all the others to B'0: All input pins. Page 24 of 26 SH7211 Group MTU2 Three-Phase Complementary PWM Output Function (Complementary PWM Mode) 3. Documents for Reference • Hardware Manual SH7211 Group Hardware Manual [RJJ09B0338] (The latest version can be downloaded from the Renesas Technology Web site.) • Software Manual SH-2A/SH2A-FPU Software Manual [RJJ09B0086] (The latest version can be downloaded from the Renesas Technology Web site.) Website and Support Renesas Technology Website http://www.renesas.com/ Inquiries http://www.renesas.com/inquiry [email protected] Revision Record Rev. 1.00 Date Jul.16.09 Description Page Summary — First edition issued All trademarks and registered trademarks are the property of their respective owners. REJ06B0891-0100/Rev.1.00 July 2009 Page 25 of 26 SH7211 Group MTU2 Three-Phase Complementary PWM Output Function (Complementary PWM Mode) Notes regarding these materials 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. This document is provided for reference purposes only so that Renesas customers may select the appropriate Renesas products for their use. Renesas neither makes warranties or representations with respect to the accuracy or completeness of the information contained in this document nor grants any license to any intellectual property rights or any other rights of Renesas or any third party with respect to the information in this document. Renesas shall have no liability for damages or infringement of any intellectual property or other rights arising out of the use of any information in this document, including, but not limited to, product data, diagrams, charts, programs, algorithms, and application circuit examples. You should not use the products or the technology described in this document for the purpose of military applications such as the development of weapons of mass destruction or for the purpose of any other military use. When exporting the products or technology described herein, you should follow the applicable export control laws and regulations, and procedures required by such laws and regulations. All information included in this document such as product data, diagrams, charts, programs, algorithms, and application circuit examples, is current as of the date this document is issued. Such information, however, is subject to change without any prior notice. Before purchasing or using any Renesas products listed in this document, please confirm the latest product information with a Renesas sales office. Also, please pay regular and careful attention to additional and different information to be disclosed by Renesas such as that disclosed through our website. (http://www.renesas.com) Renesas has used reasonable care in compiling the information included in this document, but Renesas assumes no liability whatsoever for any damages incurred as a result of errors or omissions in the information included in this document. When using or otherwise relying on the information in this document, you should evaluate the information in light of the total system before deciding about the applicability of such information to the intended application. Renesas makes no representations, warranties or guaranties regarding the suitability of its products for any particular application and specifically disclaims any liability arising out of the application and use of the information in this document or Renesas products. With the exception of products specified by Renesas as suitable for automobile applications, Renesas products are not designed, manufactured or tested for applications or otherwise in systems the failure or malfunction of which may cause a direct threat to human life or create a risk of human injury or which require especially high quality and reliability such as safety systems, or equipment or systems for transportation and traffic, healthcare, combustion control, aerospace and aeronautics, nuclear power, or undersea communication transmission. If you are considering the use of our products for such purposes, please contact a Renesas sales office beforehand. Renesas shall have no liability for damages arising out of the uses set forth above. Notwithstanding the preceding paragraph, you should not use Renesas products for the purposes listed below: (1) artificial life support devices or systems (2) surgical implantations (3) healthcare intervention (e.g., excision, administration of medication, etc.) (4) any other purposes that pose a direct threat to human life Renesas shall have no liability for damages arising out of the uses set forth in the above and purchasers who elect to use Renesas products in any of the foregoing applications shall indemnify and hold harmless Renesas Technology Corp., its affiliated companies and their officers, directors, and employees against any and all damages arising out of such applications. You should use the products described herein within the range specified by Renesas, especially with respect to the maximum rating, operating supply voltage range, movement power voltage range, heat radiation characteristics, installation and other product characteristics. Renesas shall have no liability for malfunctions or damages arising out of the use of Renesas products beyond such specified ranges. Although Renesas endeavors to improve the quality and reliability of its products, IC products have specific characteristics such as the occurrence of failure at a certain rate and malfunctions under certain use conditions. Please be sure to implement safety measures to guard against the possibility of physical injury, and injury or damage caused by fire in the event of the failure of a Renesas product, such as safety design for hardware and software including but not limited to redundancy, fire control and malfunction prevention, appropriate treatment for aging degradation or any other applicable measures. Among others, since the evaluation of microcomputer software alone is very difficult, please evaluate the safety of the final products or system manufactured by you. In case Renesas products listed in this document are detached from the products to which the Renesas products are attached or affixed, the risk of accident such as swallowing by infants and small children is very high. You should implement safety measures so that Renesas products may not be easily detached from your products. Renesas shall have no liability for damages arising out of such detachment. This document may not be reproduced or duplicated, in any form, in whole or in part, without prior written approval from Renesas. Please contact a Renesas sales office if you have any questions regarding the information contained in this document, Renesas semiconductor products, or if you have any other inquiries. © 2009. Renesas Technology Corp., All rights reserved. REJ06B0891-0100/Rev.1.00 July 2009 Page 26 of 26