Microchip® Advanced Software Framework

 All Data Structures Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Groups Pages
DSP Library

This group is the entry point for DSP Library users.


The Atmel AVR DSPLib is a library which provides a useful set of digital signal processing functions. All the source code is available and fully compilable with GCC and IAR. This library provides optimized functions for the 32-bit AVRs but also target-independants functions.
This document is a listing of the functions currently implemented in the DSP Library

What can I find in this document ?

Following are the main sections available in this document.


The DSPLib is divided in 2 parts :

Here is the directory architecture of the DSPLib (See /services/dsp/dsplib in the Atmel Software Framework) :

Directory Architecture of the DSPLib
  • The /at32uc directory includes all the source code of the optimized functions available for the AT32UC targets and provided by the DSPLib (mainly assembly coded).
  • The /examples directory regroups a lot of examples showing a way to use the functions provided by both advanced and basic libraries.
  • The /generic directory regroups all the target-independant source code of the DSPLib.
  • The /include directory includes all the common include files for the optimized functions and the generic functions.
  • The /utils directory regroups useful tools and scripts for the DSP library.

Fixed-point format

All DSP types in the DSPLib includes the notion of 16-bit and 32-bit fixed-point formats. It is important to understand this format in order to fastest and/or debug an application. See Q Format for more details on this format.

Naming Convention

Each function in the basic library of the DSPLib follows this naming convention rule : dspX_Y_Z(...) Where:

Example :

dsp16_vect_mul is a function part of the DSP library. It works with 16-bit values and is used to multiply vectors.

Compilation Options

The DSPLIB is made to fit the best the user needs. Therefore, many configuration constants can be set at the compilation of the library. Here is the list :

All of these defines can be passed to the preprocessor at the compilation. Example:

use -D DSP16_FORMAT=12 in command line with GCC to use formatted Q4.12 numbers.

Device Information

All 32-bit AVR devices can be used.


 Benchmarks for the specific target "UC3"