ATmega32A Datasheet - Sunrom Technologies
ATmega32A Datasheet - Sunrom Technologies ATmega32A Datasheet - Sunrom Technologies
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
- Page 28 and 29: ATmega32AThe CKSEL0 Fuse together w
- Page 30 and 31: ATmega32A8.7 Calibrated Internal RC
- Page 32 and 33: ATmega32A8.10 Register Description8
- Page 34 and 35: ATmega32Aface, Timer/Counters, Watc
- Page 36 and 37: ATmega32A9.8.4 Internal Voltage Ref
- Page 38 and 39: ATmega32A10. System Control and Res
- Page 40 and 41: ATmega32AFigure 10-3.MCU Start-up,
- Page 42 and 43: ATmega32AADC is used. To reduce pow
- Page 44 and 45: ATmega32AThe WDP2, WDP1, and WDP0 b
- Page 46 and 47: ATmega32Athe case if the Reset Vect
- Page 48 and 49: ATmega32A$382D out SPL,r16$382E sei
- Page 50 and 51: ATmega32A12. I/O Ports12.1 Overview
- Page 52 and 53: ATmega32AIf PORTxn is written logic
- Page 54 and 55: ATmega32AThe following code example
- Page 56 and 57: ATmega32AFigure 12-5. Alternate Por
- Page 58 and 59: ATmega32ATable 12-3.Table 12-4 and
- Page 60 and 61: ATmega32A• MOSI - Port B, Bit 5MO
- Page 62 and 63: ATmega32A12.3.3 Alternate Functions
- Page 64 and 65: ATmega32ATable 12-11. Overriding Si
- Page 66 and 67: ATmega32A12.4 Register Description1
- Page 68 and 69: ATmega32A12.4.13 PIND - Port D Inpu
- Page 70 and 71: ATmega32Alow level interrupt is sel
- Page 73 and 74: ATmega32A14. 8-bit Timer/Counter0 w
- Page 75 and 76: ATmega32ASignal description (intern
- Page 77: ATmega32Athe OCR0 value, the compar
- Page 81 and 82: ATmega32AThe PWM resolution for the
- Page 83 and 84: ATmega32AFigure 14-9. Timer/Counter
- Page 85 and 86: ATmega32ATable 14-2. Waveform Gener
- Page 87 and 88: ATmega32AThe Output Compare Registe
- Page 89 and 90: ATmega32AFigure 15-1.T1/T0 Pin Samp
- Page 91 and 92: ATmega32A16. 16-bit Timer/Counter11
- Page 93 and 94: ATmega32Aput Compare Units” on pa
- Page 95 and 96: ATmega32Athe main code and the inte
- Page 97 and 98: ATmega32A16.5 Counter UnitThe main
- Page 99 and 100: ATmega32AThe ICR1 Register can only
- Page 101 and 102: ATmega32ARegister to either TOP or
- Page 103 and 104: ATmega32AA change of the COM1x1:0 b
- Page 107: ATmega32AThe PWM resolution for the
- Page 110: ATmega32AUsing the ICR1 Register fo
- Page 113 and 114: ATmega32ATable 16-3 shows the COM1x
- Page 115 and 116: ATmega32A• Bit 7 - ICNC1: Input C
- Page 117 and 118: ATmega32AThe Input Capture is updat
- Page 119 and 120: ATmega32A17. 8-bit Timer/Counter2 w
- Page 121 and 122: ATmega32AFigure 17-2.DATA BUSCounte
- Page 123 and 124: ATmega32AThe setup of the OC2 shoul
- Page 125 and 126: ATmega32AFigure 17-5.CTC Mode, Timi
- Page 127 and 128: ATmega32A17.7.4 Phase Correct PWM M
<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