Introduction

Generation of stable and accurate pulse width modulated (PWM) signals on an Atmel® AVR® Microcontroller can easily be achieved using the waveform generator modes of the timer peripherals. However, only a limited number of channels can be implemented. If a large number of PWM channels are required then a software solution must be used. The intention of this application note is to demonstrate a method of providing this whilst maintaining very low jitter on the PWM signals.

Software generation of PWM requires a certain amount of processing time to manage the signal level decision process, so it is only suitable for low base-frequency waveform generation. Signals of this type are suitable for DC control applications such as LED or lamp intensity control, brush-type DC motor speed control, analogue meter driving, or any situation requiring a low-dynamic DC control voltage.