ATmega32A Datasheet - Sunrom Technologies

ATmega32A Datasheet - Sunrom Technologies ATmega32A Datasheet - Sunrom Technologies

12.07.2015 Views

ATmega32A14.6.1 Compare Output Mode and Waveform GenerationThe Waveform Generator uses the COM0[1:0] bits differently in normal, CTC, and PWM modes.For all modes, setting the COM0[1:0] = 0 tells the waveform generator that no action on the OC0Register is to be performed on the next compare match. For compare output actions in the non-PWM modes refer to Table 14-3 on page 85. For fast PWM mode, refer to Table 14-4 on page85, and for phase correct PWM refer to Table 14-5 on page 86.A change of the COM0[1:0] bits state will have effect at the first compare match after the bits arewritten. For non-PWM modes, the action can be forced to have immediate effect by using theFOC0 strobe bits.14.7 Modes of OperationThe mode of operation, that is, the behavior of the Timer/Counter and the Output Compare pins,is defined by the combination of the Waveform Generation mode (WGM01:0) and Compare Outputmode (COM0[1:0]) bits. The Compare Output mode bits do not affect the countingsequence, while the Waveform Generation mode bits do. The COM0[1:0] bits control whetherthe PWM output generated should be inverted or not (inverted or non-inverted PWM). For non-PWM modes the COM0[1:0] bits control whether the output should be set, cleared, or toggled ata compare match (See “Compare Match Output Unit” on page 77.).For detailed timing information refer to Figure 14-8, Figure 14-9, Figure 14-10 and Figure 14-11in “Timer/Counter Timing Diagrams” on page 82.14.7.1 Normal ModeThe simplest mode of operation is the normal mode (WGM01:0 = 0). In this mode the countingdirection is always up (incrementing), and no counter clear is performed. The counter simplyoverruns when it passes its maximum 8-bit value (TOP = 0xFF) and then restarts from the bottom(0x00). In normal operation the Timer/Counter Overflow Flag (TOV0) will be set in the sametimer clock cycle as the TCNT0 becomes zero. The TOV0 Flag in this case behaves like a ninthbit, except that it is only set, not cleared. However, combined with the timer overflow interruptthat automatically clears the TOV0 Flag, the timer resolution can be increased by software.There are no special cases to consider in the normal mode, a new counter value can be writtenanytime.The output compare unit can be used to generate interrupts at some given time. Using the outputcompare to generate waveforms in Normal mode is not recommended, since this will occupytoo much of the CPU time.14.7.2 Clear Timer on Compare Match (CTC) ModeIn Clear Timer on Compare or CTC mode (WGM01:0 = 2), the OCR0 Register is used to manipulatethe counter resolution. In CTC mode the counter is cleared to zero when the counter value(TCNT0) matches the OCR0. The OCR0 defines the top value for the counter, hence also itsresolution. This mode allows greater control of the compare match output frequency. It also simplifiesthe operation of counting external events.The timing diagram for the CTC mode is shown in Figure 14-5. The counter value (TCNT0)increases until a compare match occurs between TCNT0 and OCR0, and then counter (TCNT0)is cleared.8155C–AVR–02/1178

ATmega32AFigure 14-5.CTC Mode, Timing DiagramOCn Interrupt Flag SetTCNTnOCn(Toggle)(COMn1:0 = 1)Period 1 2 34An interrupt can be generated each time the counter value reaches the TOP value by using theOCF0 Flag. If the interrupt is enabled, the interrupt handler routine can be used for updating theTOP value. However, changing TOP to a value close to BOTTOM when the counter is runningwith none or a low prescaler value must be done with care since the CTC mode does not havethe double buffering feature. If the new value written to OCR0 is lower than the current value ofTCNT0, the counter will miss the compare match. The counter will then have to count to its maximumvalue (0xFF) and wrap around starting at 0x00 before the compare match can occur.For generating a waveform output in CTC mode, the OC0 output can be set to toggle its logicallevel on each compare match by setting the Compare Output mode bits to toggle mode(COM01:0 = 1). The OC0 value will not be visible on the port pin unless the data direction for thepin is set to output. The waveform generated will have a maximum frequency of f OC0 = f clk_I/O /2when OCR0 is set to zero (0x00). The waveform frequency is defined by the following equation:ff clk_I/OOCn = ----------------------------------------------2 ⋅ N ⋅ ( 1 + OCRn)The N variable represents the prescale factor (1, 8, 64, 256, or 1024).As for the Normal mode of operation, the TOV0 Flag is set in the same timer clock cycle that thecounter counts from MAX to 0x00.14.7.3 Fast PWM ModeThe fast Pulse Width Modulation or fast PWM mode (WGM01:0 = 3) provides a high frequencyPWM waveform generation option. The fast PWM differs from the other PWM option by its single-slopeoperation. The counter counts from BOTTOM to MAX then restarts from BOTTOM. Innon-inverting Compare Output mode, the Output Compare (OC0) is cleared on the comparematch between TCNT0 and OCR0, and set at BOTTOM. In inverting Compare Output mode, theoutput is set on compare match and cleared at BOTTOM. Due to the single-slope operation, theoperating frequency of the fast PWM mode can be twice as high as the phase correct PWMmode that use dual-slope operation. This high frequency makes the fast PWM mode well suitedfor power regulation, rectification, and DAC applications. High frequency allows physically smallsized external components (coils, capacitors), and therefore reduces total system cost.In fast PWM mode, the counter is incremented until the counter value matches the MAX value.The counter is then cleared at the following timer clock cycle. The timing diagram for the fastPWM mode is shown in Figure 14-6. The TCNT0 value is in the timing diagram shown as a histogramfor illustrating the single-slope operation. The diagram includes non-inverted and8155C–AVR–02/1179

<strong>ATmega32A</strong>14.6.1 Compare Output Mode and Waveform GenerationThe Waveform Generator uses the COM0[1:0] bits differently in normal, CTC, and PWM modes.For all modes, setting the COM0[1:0] = 0 tells the waveform generator that no action on the OC0Register is to be performed on the next compare match. For compare output actions in the non-PWM modes refer to Table 14-3 on page 85. For fast PWM mode, refer to Table 14-4 on page85, and for phase correct PWM refer to Table 14-5 on page 86.A change of the COM0[1:0] bits state will have effect at the first compare match after the bits arewritten. For non-PWM modes, the action can be forced to have immediate effect by using theFOC0 strobe bits.14.7 Modes of OperationThe mode of operation, that is, the behavior of the Timer/Counter and the Output Compare pins,is defined by the combination of the Waveform Generation mode (WGM01:0) and Compare Outputmode (COM0[1:0]) bits. The Compare Output mode bits do not affect the countingsequence, while the Waveform Generation mode bits do. The COM0[1:0] bits control whetherthe PWM output generated should be inverted or not (inverted or non-inverted PWM). For non-PWM modes the COM0[1:0] bits control whether the output should be set, cleared, or toggled ata compare match (See “Compare Match Output Unit” on page 77.).For detailed timing information refer to Figure 14-8, Figure 14-9, Figure 14-10 and Figure 14-11in “Timer/Counter Timing Diagrams” on page 82.14.7.1 Normal ModeThe simplest mode of operation is the normal mode (WGM01:0 = 0). In this mode the countingdirection is always up (incrementing), and no counter clear is performed. The counter simplyoverruns when it passes its maximum 8-bit value (TOP = 0xFF) and then restarts from the bottom(0x00). In normal operation the Timer/Counter Overflow Flag (TOV0) will be set in the sametimer clock cycle as the TCNT0 becomes zero. The TOV0 Flag in this case behaves like a ninthbit, except that it is only set, not cleared. However, combined with the timer overflow interruptthat automatically clears the TOV0 Flag, the timer resolution can be increased by software.There are no special cases to consider in the normal mode, a new counter value can be writtenanytime.The output compare unit can be used to generate interrupts at some given time. Using the outputcompare to generate waveforms in Normal mode is not recommended, since this will occupytoo much of the CPU time.14.7.2 Clear Timer on Compare Match (CTC) ModeIn Clear Timer on Compare or CTC mode (WGM01:0 = 2), the OCR0 Register is used to manipulatethe counter resolution. In CTC mode the counter is cleared to zero when the counter value(TCNT0) matches the OCR0. The OCR0 defines the top value for the counter, hence also itsresolution. This mode allows greater control of the compare match output frequency. It also simplifiesthe operation of counting external events.The timing diagram for the CTC mode is shown in Figure 14-5. The counter value (TCNT0)increases until a compare match occurs between TCNT0 and OCR0, and then counter (TCNT0)is cleared.8155C–AVR–02/1178

Hooray! Your file is uploaded and ready to be published.

Saved successfully!

Ooh no, something went wrong!