Author: Lloyd D. Clark, Ph.D., Microchip Technology Inc.

The 8-bit AVR® microcontroller core can execute more than 100 distinct instructions, many of them in a single clock cycle. Modern implementations of the AVR® core (megaAVR® devices, as well as tinyAVR® 0- and 1-series devices) include a 2-cycle hardware multiplier. However, it is not always clear how raw processing power translates into application performance in the real world, especially when the effects of writing and compiling code in a high-level language are included. This white paper considers some digital signal processing (DSP) applications of the AVR® core and provides numbers for how much processor utilization they require. These applications use the on-chip analog-to-digital converter (ADC) to periodically sample an incoming analog signal and use the AVR® core to perform processing of the digitized signal. This means that the application must run in real-time and keep up with the incoming sample rate. The application code is written in C except for some assembly-language 16-bit by 16-bit multiplication functions that are called from C.