| Application Example and Algorithms |
| PDF |
Software |
Description |
|
|
AVR200: Multiply and Divide Routines
(21 pages, revision D, updated 5/06) This Application Note lists subroutines for multiplication and division of 8 and 16-bit signed and unsigned numbers. |
|
|
AVR202: 16-Bit Arithmetics on tinyAVR and megaAVR devices
(3 pages, revision B, updated 5/02) This Application Note lists program examples for arithmetic operation on 16-bit values on tinyAVR and megaAVR devices.
|
|
|
AVR204: BCD Arithmetics
(14 pages, revision B, updated 01/03) This Application Note lists routines for BCD arithmetics. |
|
|
AVR220: Bubble Sort
(5 pages, revision B, updated 5/02) This Application Note implements the Bubble Sort algorithm on the AVR controllers.
|
|
|
AVR221: Discrete PID controller on tinyAVR and megaAVR devices
(10 pages, revision A, updated 05/06) This application note describes a simple implementation of a discrete Proportional-Integral-Derivative (PID) controller on tinyAVR and megaAVR devices.
|
|
|
AVR222: 8-Point Moving Average Filter on tinyAVR and megaAVR devices
(5 pages, revision B, updated 5/02) This Application Note gives an demonstration of how the addressing modes in the tinyAVR and megaAVR architecture can be utlized.
|
|
|
AVR236: CRC check of Program Memory on tinyAVR and megaAVR devices with LPM instruction
(9 pages, revision B, updated 5/02) The Application Note describes CRC (Cyclic Redundancy Check) theory and implementation of CRC checking of program memory for secure applications. |
|
|
AVR242: Multiplexing LED Drive & a 4x4 Keypad on tinyAVR and megaAVR devices
(26 pages, revision B, updated 5/02) This Application Note describes a comprehensive system providing a 4 x 4 keypad as input into a real time clock/timer with two outputs and controls external loads and a four digit mulitplexed LED display.
|
|
|
AVR244: UART as ANSI Terminal Interface
(8 pages, revision A, updated 11/03) This application note describes some basic routines to interface an AVR microcontroller to a terminal window using the UART (hardware or software).
|
|
|
AVR245: Code Lock with 4x4 Keypad and I2C LCD on a tinyAVR
(9 pages, revision A, updated 10/05) This application note describes how to build a code lock with an tinyAVR and a handful of components. The code lock uses a 4x4 keypad for user input, a piezoelectric buzzer for audible feedback and an LCD for informational output.
|
|
|
AVR313: Interfacing a PC AT Keyboard on tinyAVR and megaAVR devices
(13 pages, revision B, updated 5/02) Most microcontrollers requires some kind of human interface. This Application Note describes one way of doing this using a standard PC AT Keyboard. |
|
|
AVR314: DTMF Generator on tinyAVR and megaAVR devices
(8 pages, revision B, updated 5/02) This Application Note describes how DTMF (Dual-Tone Multiple Frequencies) signaling can be implemented using any tinyAVR or megaAVR device with PWM and SRAM.
|
|
|
AVR335: Digital Sound Recorder with tinyAVR or megaAVR and DataFlash
(20 pages, revision C, updated 04/05) This Application Note describes how to record, store and play back sound using any 8-bit AVR MCU with A/D converter, the AT45DB161 DataFlash memory and a few extra components
|
|
|
AVR360: Step Motor Controller using tinyAVR and megaAVR devices
(4 pages, revision B, updated 4/03) This Application Note describes how to implement a compact size and high-speed interrupt driven step motor controller. |
|
|
AVR443: Sensor-based control of three phase BLDC motor based on tinyAVR and megaAVR devices
(8 pages, revision B, updated 02/06) This application note describes the control of a BLDC motor with Hall effect position sensors. The implementation includes both direction and open loop speed control.
|
|
|
AVR444: Sensorless control of 3-phase BLDC motors based on tinyAVR and megaAVR devices
(14 pages, revision A, updated 10/05) This application note describes how to implement sensorless commutation control of a 3-phase brushless DC (BLDC) motor with the low cost ATmega48 microcontroller. |
|
|
AVR448: Control of High Voltage 3-Phase BLDC Motor with an ATmega48
(10 pages, revision C, updated 05/06) Using a microcontroller as a control device, 3-phase motors can be used for a wide range of applications. Motor sizes below one horsepower are efficiently controlled in speed, acceleration, and power levels. |
| Top |
| Design Considerations |
| PDF |
Software |
Description |
|
|
AVR040: EMC Design Considerations
(18 pages, revision D, updated 6/06) This Application Note covers the most common EMC problems designers encounter when using Microcontrollers. |
|
|
AVR042: AVR Hardware Design Considerations
(15 pages, revision H, updated 1/10) This Application Note covers the most common problems encountered when switching to a new microcontroller architecture like the AVR. Solutions and considerations for the most common design challenges are covered. |
| Top |
| General Purpose |
| PDF |
Software |
Description |
|
|
AVR032: Linker Command Files for the IAR ICCA90 Compiler
(11 pages, revision B, updated 5/02) This Application Note describes how to make a linker command file for use with the IAR ICCA90 C-compiler for the 8-bit AVR Microcontroller.
|
|
|
AVR034: Mixing C and Assembly Code with IAR Embedded Workbench for 8-bit AVR microcontrollers
(8 pages, revision B, updated 4/03) This Application Note describes how to use C to control the program flow among main program and assembly modules to control time critical I/O functions.
|
|
|
AVR035: Efficient C Coding for 8-bit AVR microcontrollers
(22 pages, revision D, updated 01/04) This Application Note describes how to utilize the advantages of the 8-bit AVR architecture and the development tools to achieve more efficient c Code than for any other microcontroller.
|
|
|
AVR072: Accessing 16-bit I/O Registers
(4 pages, revision B, updated 5/02) This Application Note shows how to read and write the 16-bit registers in the AVR Microcontrollers. Since the AVR has an 8-bit I/O bus these registers must be written in two execution cycles. It explains how to safely read and write these 16-bit registers. |
|
|
AVR100: Accessing the EEPROM on tinyAVR and megaAVR devices
(7 pages, revision C, updated 09/05) This Application Note contains assembly routines for accessing the EEPROM for all 8-bit AVR devices. Includes code for reading and writing EEPROM addresses sequentially and at random addresses.
|
|
|
AVR102: Block Copy Routines on tinyAVR and megaAVR devices
(5 pages, revision B, updated 5/02) This Application Note contains routines for transfer of data blocks on tinyAVR and megaAVR devices.
|
|
|
AVR103: Using the EEPROM Programming Modes on tinyAVR and megaAVR devices
(5 pages, revision A, updated 03/05) This application note implements a driver utilizing the programming modes available for the EEPROM in some tinyAVR and megaAVR devices, involving both time and power savings.
|
|
|
AVR105: Power efficient high endurance parameter storage in tinyAVR and megaAVR devices Flash memory
(10 pages, revision A, updated 9/03) This application note describes how to implement a high endurance parameter storage method in Flash memory using the self-programming feature of the AVR. |
|
|
AVR106: C functions for reading and writing to Flash memory on tinyAVR and megaAVR devices
(10 pages, revision B, updated 08/06) This application note provides C functions for accessing the Flash memory using the Self programming Program memory which allows to reprogram the Flash memory during program run.
|
|
|
AVR108: Setup and use of the LPM Instructions on tinyAVR and megaAVR devices
(4 pages, revision B, updated 5/02) This Application Note describes how to access constants saved in Flash program memory of tinyAVR and megaAVR devices.
|
|
|
AVR109: Using Self Programming on tinyAVR and megaAVR devices
(11 pages, revision B, updated 06/04) This Application note describes how an tinyAVR or megaAVR device with the SPM instruction can be configured for Self Programming.
|
|
|
AVR120: Characterization and Calibration of the ADC on an AVR
(15 pages, revision D, updated 02/06) This application note explains various ADC (Analog to Digital Converter) characterization parameters, how they affect ADC measurements and how to measure them and how to perform run-time compensation.
|
|
|
AVR128: Using the Analog Comparator on tinyAVR and megaAVR devices
(4 pages, revision B, updated 5/02) This Application Note serves as an example on how to set up and use the AVR's on-chip Analog Comparator. |
|
|
AVR130: Using the timers on tinyAVR and megaAVR devices
(16 pages, revision A, updated 2/02) This Application Note describes how to use the different timers on tinyAVR and megaAVR devices. The intention of this document is to give a general overview of the timers, show their possibilities and explain how to configure them.
|
|
|
AVR133: Long Delay Generation Using the 8-bit AVR Microcontroller
(8 pages, revision B, updated 01/04) The solution presented here shows how the AVR AT90 series microcontrollers generate and handle long delays, without any software intervention, thus allowing the core to be in a low-power mode during the delay.
|
|
|
AVR134: Real-Time Clock using the Asynchronous Timer on tinyAVR and megaAVR devices
(9 pages, revision G, updated 04/09) This Application Note describes how to implement a real-time (RTC) on tinyAVR and megaAVR devices that features the RTC module.
|
|
|
AVR135: Using Timer Capture to Measure PWM Duty Cycle on tinyAVR and megaAVR devices
(12 pages, revision A, updated 10/05) This application note describes how the pulse width and period of a signal may be computed using the Input Capture Unit (ICP).
|
|
|
AVR151: Setup and use of the SPI on tinyAVR and megaAVR devices
(15 pages, revision C, updated 7/08) This application note describes how to setup and use the on-chip Serial Peripheral Interface (SPI) of the tinyAVR and megaAVR devices.
|
|
|
AVR180: External Brown-Out Protection
(16 pages, revision B, updated 5/02) This Application Note shows in detail how to prevent system malfunction during periods of insufficient power supply voltage. |
|
|
AVR182: Zero Cross Detector on tinyAVR and megaAVR devices
(8 pages, revision B, updated 01/04) This Application Note describes how to implement an efficient zero cross detector for mains power lines using an tinyAVR and megaAVR devices
|
|
|
AVR231: AES Bootloader on tinyAVR and megaAVR devices
(29 pages, revision D, updated 08/06) This application note describes how firmware can be updated securely on microcontrollers with bootloader capabilities, using the Advanced Encryption Standard (AES) to encrypt the firmware.
|
|
|
AVR240: 4x4 Keypad-Wake Up on Keypress on tinyAVR and megaAVR devices
(14 pages, revision D, updated 06/06) This Application Note describes a simple interface to a 4 x 4 keypad designed for low power battery operation. |
|
|
AVR301: 8-bit AVR C Code for Interfacing AVR to AT17CXXX FPGA Configuration Memories
(20 pages, revision D, updated 01/04) This Application Note describes how to In-System-Program (ISP) an Atmel FPGA Configuration Memory using an 8-bit AVR MCU and how to bit bang TWI using port pins on an AT90S8515 AVR MCU
|
|
|
AVR304: Half Duplex Interrupt Driven Software UART on tinyAVR and megaAVR devices
(8 pages, revision C, updated 4/08) This Application Note describes how to make a half duplex UART on any tinyAVR or megaAVR device using the 8-bit Timer/Counter0 and an external interrupt.
|
|
|
AVR305: Half Duplex Compact Software UART on tinyAVR and megaAVR devices
(9 pages, revision C, updated 09/05) This Application Note describes how to implement a polled software UART capable of handling speeds up to 614,400 bps on an AT90S1200. |
|
|
AVR306: Using the AVR UART in C on tinyAVR and megaAVR devices
(3 pages, revision B, updated 7/02) This Application Note describes how to set up and use the UART present in most 8-bit AVR devices. C code examples are included for polled and interrupt controlled UART applications
|
|
|
AVR308: Software LIN Slave on tinyAVR and megaAVR devices
(12 pages, revision B, updated 5/02) This Application Note shows how to implement a LIN (Local Interconnect Network) slave task on tinyAVR and megaAVR devices without the need for any external components.
|
|
|
AVR310: Using the USI module as a I2C master on tinyAVR and megaAVR devices
(8 pages, revision B, updated 09/04) This Application Note describes how to use the USI for TWI master communication on tinyAVR and megaAVR devices.
|
|
|
AVR311: Using the TWI module as I2C slave on tinyAVR and megaAVR devices
(12 pages, revision D, updated 8/09) This application note describes a TWI slave implementation, in form of a fullfeatured driver and an example of usage for this driver. |
|
|
AVR312: Using the USI module as a I2C slave on tinyAVR and megaAVR devices
(9 pages, revision C, updated 09/05) This Application Note describes how to use the USI for TWI slave communication on tinyAVR and megaAVR devices.
|
|
|
AVR315: Using the TWI module as I2C master on tinyAVR and megaAVR devices
(14 pages, revision C, updated 2/10) This Application Note describes a TWI master implementation, in form of a fullfeatured driver and an example of usage for this driver. |
|
|
AVR316: SMBus Slave Using the TWI Module on tinyAVR and megaAVR devices
(20 pages, revision A, updated 10/05) This application note provides background information on the SMBus specification and the 8-bit AVR TWI module, an interrupt-driven SMBus slave driver and a sample implementation.
|
|
|
AVR318: Dallas 1-Wire master on tinyAVR and megaAVR devices
(21 pages, revision A, updated 09/04) This application note shows how a 1-Wire master can be implemented on an 8-bit AVR, either in software only, or utilizing the U(S)ART module.
|
|
|
AVR319: Using the USI module for SPI communication on tinyAVR and megaAVR devices
(8 pages, revision A, updated 09/04) This application note describes a SPI interface implementation, in form of a fullfeatured driver and an example of usage for this driver. |
|
|
AVR320: Software SPI Master
(5 pages, revision C, updated 09/05) This Application Note describes a set of low-level routines for software implementation of the SPI (Synchronous Peripheral Interface). These can be used for communicating with Atmel's 25xxx family of Serial EEPROM memories.
|
|
|
AVR400: Low Cost A/D Converter using Analog Comp. on tinyAVR and megaAVR devices
(6 pages, revision B, updated 5/02) This Application Note targets cost and space critical applications that need an ADC and explains how to use an analog comparator for this purpose.
|
|
|
AVR401: 8-Bit Precision A/D Converter using Analog Comp. on tinyAVR and megaAVR devices
(12 pages, revision C, updated 2/03) This Application Note describes how to perform a kind of dual slope A/D conversion with the analog comparator of tinyAVR and megaAVR devices
|
|
|
AVR910: In-System Programming
(12 pages, revision E, updated 8/08) This Application Note shows how to design an application to support in-system programming.
|
|
|
AVR911: AVR Open-source Programmer for tinyAVR and megaAVR devices
(13 pages, revision A, updated 7/04) The AVR Open-source Programmer (AVROSP) is an AVR programmer application that replaces the AVRProg tool included in AVR Studio. It is a command-line tool, using the same syntax as the STK500 and JTAGICE command-line tools in AVR Studio. |
| Top |
| Getting Started |
| PDF |
Software |
Description |
|
|
AVR000: Register and Bit-Name Definitions for the 8-bit AVR Microcontroller
(2 pages, revision C, updated 11/09) This Application Note contains files which allow the user to use Register and Bit names from the databook when writing assembly programs for 8-bit AVR microcontrollers.
|
|
|
AVR030: Getting Started with IAR Embedded Workbench for Atmel 8-bit AVR
(10 pages, revision D, updated 10/04) The purpose of this application note is to guide new users through the initial settings of IAR Embedded Workbench, and compile a simple C-program. |
|
|
AVR031: Getting Started with ImageCraft C for Atmel 8-bit AVR
(8 pages, revision B, updated 5/02) The purpose of this Application Note is to guide new users through the initial settings of the ImageCraft IDE and compile a simple C program. |
|
|
AVR033: Getting Started with the CodeVisionAVR C Compiler
(18 pages, revision C, updated 4/08) The purpose of this Application Note is to guide the user through the preparation of an example C program using the CodeVisionAVR C compiler.
|
| Top |
| Migration Notes |
| PDF |
Software |
Description |
|
|
AVR086: Migrating from AT90S8535 to ATmega8535
(11 pages, revision C, updated 4/08) This Application Note describes differences to be aware of when migrating from the AT90S8535 to the ATmega8535 Microcontroller.
|
|
|
AVR088: Migrating from ATmega8535 to ATmega16
(3 pages, revision C, updated 01/04) This Application Note describes differences to be aware of when migrating from the ATmega8535 to the ATmega16 Microcontroller.
|
| Top |
|