Application Notes

Getting Started | General hints and considerations when starting with AVR devices.
General Purpose | General purpose application notes and drivers for AVR.
Migration/Replacing | Support documents for migration between AVR microcontrollers.

| 1. GETTING STARTED/DESIGN CONSIDERATIONS
| PDF | SW | Updated | Title and description
|  |  | 2005-11-02 | AVR Instruction Set Detailed description of the AVR instruction set.
|  |  | 1998-01-04 | AVR000: Register and Bit-Name Definitions for the AVR Microcontroller This Application Note contains files which allow the user to use Register and Bit names from the databook when writing assembly programs.
|  |  | 2005-03-10 | AVR001: Conditional assembly and portability macros This application note describes the Conditional Assembly feature present in the AVR Assembler version 1.74 and later. Examples of how to use Conditional Assembly are included to illustrate the syntax and concept.
|  |  | 2004-10-22 | AVR030: Getting Started with IAR Embedded Workbench for Atmel AVR 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.
|  |  | 2002-05-16 | AVR031: Getting Started with ImageCraft C for AVR 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.
|  |  | 2002-05-08 | AVR032: Linker Command Files for the IAR ICCA90 Compiler This Application Note describes how to make a linker command file for use with the IAR ICCA90 C-compiler for the AVR Microcontroller.
|  |  | 2002-05-21 | AVR033: Getting Started with the CodeVisionAVR C Compiler The purpose of this Application Note is to guide the user through the preparation of an example C program using the CodeVisionAVR C compiler. The example is a simple program for the Atmel AT90S8515 microcontroller on the STK500 starter kit.
|  |  | 2003-04-25 | AVR034: Mixing C and Assembly with IAR Embedded Workbench for AVR This Application Note describes how to use C to control the program flow and main program and assembly modules to control time critical I/O functions.
|  |  | 2004-02-03 | AVR035: Efficient C Coding for AVR This Application Note describes how to utilize the advantages of the AVR architecture and the development tools to achieve more efficient C Code than for any other microcontroller.
|  |  | 2006-06-30 | AVR040: EMC Design Considerations This Application Note covers the most common EMC problems designers encounter when using Microcontrollers.
|  |  | 2006-06-23 | AVR042: AVR Hardware Design Considerations 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.
|  |  | 2002-05-16 | AVR072: Accessing 16-bit I/O Registers 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.

| 2. GENERAL PURPOSE
| PDF | SW | Updated | Title and description
|  |  | 2006-05-04 | AVR053: Calibration of the internal RC oscillator This application note describes a method to calibrate the internal RC oscillator and targets all AVR devices with tunable RC oscillator. Furthermore, an easily adaptable calibration firmware source code is also offered. This firmware allows device calibration using the AVR tools STK500, AVRISP or JTAGICE. It can also be used for 3rd party calibration systems, based on production programmers.
|  |  | 2006-02-19 | AVR054: Synchronization of the internal RC oscillator This application note describes how to calibrate the internal RC oscillator via the UART.
|  |  | 2006-02-19 | AVR055: Using a 32kHz XTAL for run-time calibration of the internal RC This application note describes a fast and accurate way to calibrate the internal RC oscillator using an external 32.768 kHz crystal as input to an asynchronous Timer/Counter.
|  |  | 2004-01-12 | AVR060: JTAG ICE Communication Protocol This Application Note describes the communication protocol used between AVR Studio and JTAG ICE with the purpose to enable third party vendors to design their own front-end to the JTAG ICE Emulator.
|  |  | 2003-04-25 | AVR061: STK500 Communication Protocol This document describes the protocol for the STK500 starterkit. This protocol is based on earlier protocols made for other AVR tools and is fully compatible with them in that there should not be any overlapping or redefined commands.
|  |  | 2006-04-20 | AVR063: LCD Driver for the STK®504 The STK504 is a hardware expansion board for STK500 that add support for 100 pin AVR LCD devices. This application note is an example of how to use the ATmega3290 and the STK504.
|  |  | 2006-02-19 | AVR064: STK502 – A Temperature Monitoring System with LCD Output The STK502 board is a top module designed to add ATmega169 support to the STK500 development board from Atmel. This application note is an example of how to use the ATmega169 and the STK502.
|  |  | 2006-02-19 | AVR065: LCD Driver for the STK502 and AVR Butterfly In applications where user interaction is required it is often useful to be able to display information to the user. The ATmega169 is a MCU with integrated LCD driver. It can control up to 100 LCD segments. The ATmega169 is therefore an obvious choice when designing applications that requires both an efficient MCU and an LCD.
|  |  | 2006-04-20 | AVR067: JTAGICE mkII Communication Protocol This document describes the communication protocol used between AVR Studio and JTAGICE mkII.
|  |  | 2006-06-27 | AVR068: STK500 Communication Protocol v2.0 This document describes version 2.0 of the Atmel STK500 and the PC controlling the STK500 communication protocol. The firmware is distributed with AVR Studio 4.11 build 401 or later.
|  |  | 2006-02-19 | AVR069: AVRISP mkII Communication Protocol This document describes the AVRISP mkII protocol. The firmware is distributed with the Free AVR Studio 4.12 or later.
|  |  | 2002-05-14 | AVR070: Modifying AT90ICEPRO and ATICE10 to Support Emulation of AT90S8535 Older AT90ICEPRO can be upgraded to support the new AVR devices with internal A/D converter. This Application Note describes in detail how to modify the AT90ICEPRO to support emulation of AT90S8535 and other AVR devices with A/D converter.
|  |  | 2006-12-14 | AVR073: Accessing 10- and 16-bit registers in ATtiny261/461/861 This application note explains how 10- and 16-bit accesses should be handled when using the ATtiny261/461/861 family of microcontrollers. A complete set of C macros for accessing 10- and 16-bit registers is also included with this application note.
|  |  | 2002-05-21 | AVR074: Upgrading AT90ICEPRO to ATICE10 This Application Note describes how to upgrade the AT90ICEPRO emulator to ATICE10 Version 2.0.
|  |  | 2005-09-06 | AVR100: Accessing the AT90S1200 EEPROM This Application Note contains assembly routines for accessing the EEPROM for all AVR devices. Includes code for reading and writing EEPROM addresses sequentially and at random addresses.
|  |  | 2002-09-18 | AVR101: High Endurance EEPROM Storage Having a system that regularly writes parameter to the EEPROM can wear out the EEPROM, since it is only guaranteed to endure 100.000 erase/write cycles. This Application Note describes how to make safe high endurance parameter storage in EEPROM.
|  |  | 2002-05-02 | AVR102: Block Routines This Application Note contains routines for transfer of data blocks.
|  |  | 2005-03-22 | AVR103: Using the EEPROM Programming Modes This application note implements a driver utilizing the programming modes available for the EEPROM in some new AVR parts, involving both time and power savings.
|  |  | 2003-07-02 | AVR104: Buffered Interrupt Controlled EEPROM Writes Many applications use the built-in EEPROM of the AVR to preserve and hence restore system information when power is removed from the system. This application note presents a buffered interrupt driven approach, which significantly increases general performance and decreases power consumption compared to a polling implementation.
|  |  | 2003-07-11 | AVR105: Power efficient high endurance parameter storage in Flash memory This application note describes how to implement a high endurance parameter storage method in Flash memory using the self-programming feature of the AVR.
|  |  | 2006-08-29 | AVR106: C functions for reading & writing to Flash Memory “Self-programming” makes it possible for an AVR to reprogram the Flash memory during program run. This application note provides C functions for accessing the Flash memory.
|  |  | 2005-03-22 | AVR107: Interfacing AVR serial memories This application note describes the functionality and the architecture of SPI serial memories drivers as well as the motivation of the selected solution.
|  |  | 2002-05-14 | AVR108: Setup and use the LPM instruction This Application Note describes how to access constants saved in Flash program memory of the AVR microcontrollers.
|  |  | 2006-02-19 | AVR109: Self Programming AVR This Application Note describes how an AVR with the SPM instruction can be configured for self-programming.
|  |  | 2006-02-19 | AVR120: ADC Characteristics and Calibration This application note explains various ADC characterization parameters given in the datasheets and how they affect ADC measurements. It also describes how to measure these parameters during application testing in production and how to perform run-time compensation for some of the measured deviations.
|  |  | 2005-09-06 | AVR121: Enhancing ADC resolution by oversampling This Application Note explains the method called "Oversampling and Decimation" and which conditions need to be fulfilled to make this method work properly to get achieve higher resolution without using an external ADC.
|  |  | 2002-05-02 | AVR128: Setup and use the Analog Comparator This Application Note serves as an example on how to set up and use the AVR's On-chip Analog Comparator.
|  |  | 2006-05-05 | AVR130: Setup and use the AVR Timers This Application Note describes how to use the different timers of the AVR. The AT90S8535 is used as an example. The intention of this document is to give a general overview of the timers, show their possibilities and explain how to configure them. The code examples will make this clearer and can be used as guidance for other applications.
|  |  | 2003-11-04 | AVR131: Using the AVRs Fast PWM This application note is an introduction to the use of the high-speed Pulse Width Modulator (PWM) available in some AVR microcontrollers. The assembly code example provided shows how to use the fast PWM in the ATtiny26. The ATtiny15 also features a high-speed PWM timer.
|  |  | 2004-02-03 | AV132: Using the Enhanced Watchdog Timer This Application Note describes how to utilize the Enhanced Watchdog Timer (WDT) used on new AVR devices. In addition to performing System Reset, the WDT now also has the ability to generate an interrupt.
|  |  | 2004-02-03 | AVR133: Long Delay Generation Using the AVR Microcontroller The solution presented here shows how the AVR AT90 series microcontrollers generate and handle long delays. On-chip timers are used without any software intervention, thus allowing the core to be in a low-power mode during the delay. Since the timers are clocked by the system clock, there is no need for additional components.
|  |  | 2006-08-29 | AVR134: Real-Time Clock using the Asynchronous Timer This Application Note describes how to implement a Real Time (RTC) on AVR microcontrollers that features the RTC module.
|  |  | 2005-10-31 | AVR135: Using Timer Capture to Measure PWM Duty Cycle This application note describes how the pulse width and period may be computed using the Input Capture Unit (ICP).
|  |  | 2006-05-11 | AVR136: Low-jitter Multi-channel Software PWM This application note shows how an multi-channel software pulse-width modulation can be implemented. The implementation uses an 8-bit timer with overflow interrupt to generate 10 PWM channels with very low jitter.
|  |  | 2006-10-24 | AVR137: Writing Software Compatible for PWM2/3 and PWM2B/3B This application note lists the main corrections and differences between the two designs, and shows an example of software that allows to detect which version is currently programmed.
|  |  | 2005-09-06 | AVR151: Setup and use the SPI This application note describes how to setup and use the on-chip Serial Peripheral Interface, SPI, of the AVR microcontroller.
|  |  | 2005-09-06 | AVR155: Accessing I2C LCD Display Using the AVR 2-Wire Serial Interface This application note includes a TWI driver for bus handling and describes how to access a Philips I2C LCD driver on a Batron LCD display.
|  |  | 2002-05-08 | AVR180: External Brown-Out Protection This Application Note shows in detail how to prevent system malfunction during periods of insufficient power supply voltage.
|  |  | 2004-01-12 | AVR182: Zero Cross Detector This Application Note describes how to implement an efficient zero cross detector for mains power lines using an AVR microcontroller.
|  |  | 2006-10-31 | AVR191: Anti Pinch Algorithm for AVR Adaptation Procedure The purpose of this document is to explain how to adapt an anti-pinch algorithm to a specified powered window. This application note describes how motor, mechanical and electrical parameters have to be set to allow correct function of the anti-pinch algorithm descirbed in AVR480.
|  |  | 2006-05-05 | AVR200: Multiply and Divide Routines This Application Note lists subroutines for multiplication and division of 8 and 16-bit signed and unsigned numbers.
|  |  | 2002-06-11 | AVR201: Using the AVR Hardware Multiplier Examples of using the multiplier for 8-bit arithmetic.
|  |  | 2002-05-07 | AVR202: 16-bit Arithmetics This Application Note lists program examples for arithmetic operation on 16-bit values.
|  |  | 2004-02-03 | AVR204: BCD Arithmetics This Application Note lists routines for BCD arithmetics.
|  |  | 2002-05-07 | AVR220: Bubble Sort This Application Note implements the Bubble Sort algorithm on the AVR controllers.
|  |  | 2006-04-28 | AVR221: Discrete PID controller This application note describes a simple implementation of a discrete Proportional-Integral-Derivative (PID) controller.
|  |  | 2002-05-07 | AVR222: 8-Point Moving Average Filter This Application Note gives an demonstration of how the addressing modes in the AVR architecture can be utlized.
|  |  | 2002-09-25 | AVR223: Digital Filters with AVR This document focus on the use of the AVR hardware multiplier, the use of the general purpose registers for accumulator functionality, how to scale coefficients when implementing algorithms on fixed point architectures, the actual implementation examples and finally possible ways to optimize/modify the implementations suggested.
|  |  | 2005-11-29 | AVR230: DES Bootloader This application note describes how firmware can be updated securely on AVR microcontrollers with bootloader capabilities. The method includes using the Data Encryption Standard (DES) to encrypt the firmware.
|  |  | 2006-08-30 | AVR231: AES Bootloader This application note describes how firmware can be updated securely on AVR microcontrollers with bootloader capabilities. The method uses the Advanced Encryption Standard (AES) to encrypt the firmware.
|  |  | 2003-10-30 | AVR236: CRC Check of Program Memory This Application Note describes CRC (Cyclic Redundancy Check) theory and implementation of CRC checking of program memory for secure applications.
|  |  | 2006-06-30 | AVR240: 4x4 Keypad-Wake Up on Keypress This Application Note describes a simple interface to a 4 x 4 keypad designed for low power battery operation.
|  |  | 2004-04-29 | AVR241: Direct driving of LCD display using general I/O This application note describes software driving of LCDs with one common line, using the static driving method.
|  |  | 2002-05-21 | AVR242: 8-bit Microcontroller Multiplexing LED Drive & a 4x4 Keypad This Application Note describes a comprehensive system providing a 4 x 4 keypad as input into a Real Time Clock/Timer with two outputs.
|  |  | 2003-01-21 | AVR243: Matrix Keyboard Decoder This Application Note describes a software driver interfacing an 8x8 keyboard. The application is designed for low power battery operation. The application also supports user-defined alternation keys to implement Caps Lock, Ctrl-, Shift- and Alt-like functionality.
|  |  | 2003-11-07 | AVR244: AVR UART as ANSI Terminal Interface This application note describes some basic routines to interface the AVR to a terminal window using the UART (hardware or software). The routines use a subset of the ANSI Color Standard to position the cursor and choose text modes and colors. Rou-tines for simple menu handling are also implemented.
|  |  | 2005-11-01 | AVR245: Code Lock with 4x4 Keypad and I2C LCD This application note describes how to build a code lock with an AVR 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.
|  |  | 2006-03-02 | AVR270: USB Mouse Demonstration This document describes a simple mouse project. It allows to quickly test USB hardware using AT90USB without any driver installation.
|  |  | 2006-03-02 | AVR271: USB Keyboard Demonstration The aim of this document is to describe how to start and implement a USB keyboard application using the STK525 starter kit and FLIP in-system programming software.
|  |  | 2006-04-27 | AVR272: USB CDC Demonstration UART to USB Bridge The aim of this document is to describe how to start and implement a CDC (Virtual Com Port and UART to USB bridge) application using the STK525 starter kit and FLIP in-system programming software.
|  |  | 2006-04-27 | AVR273: USB Mass Storage Implementation The aim of this document is to describe how to start and implement a USB application based on the Mass Storage (Bulk only) class to transfer data between a PC and user equipment.
|  |  | 2007-03-08 | AVR274: Single-wire Software UART This application note describes a software implementation of a single wire UART. The protocol supports half duplex communication between two devices. The only requirement is an I/O port supporting external interrupt and a timer compare interrupt.
|  |  | 2006-08-30 | AVR275: Sensor-based Control of Three Phase Brushless DC Motors Using AT90USB family This application note described the control of a BLDC motor with Hall effect position sensors (referred to simply as Hall sensors). The implementation includes both direction and open loop speed control.
|  |  | 2004-01-12 | AVR301: C-code for Interfacing AVR to AT17Cxx Configuration Memory This Application Note describes how to In-System Program (ISP) an Atmel FPGA Configuration Memory using an Atmel AVR MCU and how to bit-bang data using port pins on an AT90S8515 AVR MCU.
|  |  | 2005-03-22 | AVR303: SPI-UART Gateway The SPI-UART Gateway application runs on the ATmega8 and allows the developer to test and debug an SPI slave application isolated from the master, using manually controlled communications via a suitable RS232 terminal.
|  |  | 1997-09-01 | AVR304: Half Duplex Interrupt Driven Software UART This Application Note describes how to make a half duplex UART on any AVR device using the 8-bit Timer/Counter0 and an external interrupt.
|  |  | 2005-09-06 | AVR305: Half Duplex Compact Software UART This Application Note describes how to implement a polled software UART capable of handling speeds up to 614,400 bps on an AT90S1200.
|  |  | 2002-07-02 | AVR306: Using the AVR UART This Application Note describes how to set up and use the UART present in most AVR devices. C code examples are included for polled and interrupt controlled UART applications.
|  |  | 2004-07-05 | AVR307: Half duplex UART using the Universal Serial Interface The Universal Serial Interface (USI) present in AVR devices like the ATtiny26, ATtiny2313, and ATmega169, is a communication module designed for TWI and SPI communication. This Application Note describes how to use the USI of the ATtiny26 for UART communication.
|  |  | 2002-05-21 | AVR308: LIN Slave Protocol This Application Note shows how to implement a LIN (Local Interconnect Network) slave task in an 8-bit RISC AVR microcontroller without the need for any external components.
|  |  | 2006-09-16 | AVR309: Software Universal Serial Bus (USB) USB implementation in a low-cost microcontroller through emulation of the USB protocol in the microcontroller firmware. Supports Low Speed USB (1.5 Mbit/s) in accordance with USB2.0.
|  |  | 2005-09-08 | AVR310: Using the USI module as a I2C master This Application Note describes how to use the USI for TWI master communication.
|  |  | 2004-10-22 | AVR311: Using the TWI module as I2C slave This application note describes a TWI slave implementation, in form of a fullfeatured driver and an example of usage for this driver.
|  |  | 2005-12-13 | AVR312: Using the USI module as a I2C slave This Application Note describes how to use the USI for TWI slave communication.
|  |  | 2002-05-14 | AVR313: Interfacing the PCAT Keyboard Most microcontrollers requires some kind of human interface. This Application Note describes one way of doing this using a standard PC AT Keyboard.
|  |  | 2002-05-21 | AVR314: DTMF Transmitter This Application Note describes how DTMF (Dual-Tone Multiple Frequencies) signaling can be implemented using any AVR microcontroller with PWM and SRAM.
|  |  | 2004-10-04 | AVR315: Using the TWI module as I2C master This Application Note describes a TWI master implementation, in form of a fullfeatured driver and an example of usage for this driver.
|  |  | 2005-11-01 | AVR316: SMbus Slave Using the TWI Module This application note provides background information on the SMBus specification and the AVR TWI module, an interrupt-driven SMBus slave driver and a sample implementation.
|  |  | 2004-11-19 | AVR317: Using the USART on the ATmega48/88/168 as a SPI master Some applications might need more than one SPI module. This can be achieved using the new Master SPI Mode of the ATmega48/88/168 USART.
|  |  | 2004-10-06 | AVR318: Dallas 1-Wire® master This application note shows how a 1-Wire master can be implemented on an AVR, either in software only, or utilizing the U(S)ART module.
|  |  | 2004-11-19 | AVR319: Using the USI module for SPI communication This application note describes a SPI interface implementation, in form of a fullfeatured driver and an example of usage for this driver.
|  |  | 2005-09-06 | AVR320: Software SPI Master The Synchronous Peripheral Interface (SPI) is gaining rapidly in popularity, allowing faster communication than I2C. For the smaller AVR Microcontrollers, which do not have hardware SPI, this Application Note describes a set of low-level routines for software implementation.
|  |  | 2006-02-19 | AVR322: LIN v1.3 Protocol Implementation on Atmel AVR Microcontrollers The LIN protocol is introduced in this application note, along with its implementation on Atmel Automotive AVR microcontrollers.
|  |  | 2006-02-21 | AVR323: Interfacing GSM Modems This application note describes how to use an AVR to control a GSM modem in a cellular phone. The interface between modem and host is a textual protocol called Hayes AT-Commands.
|  |  | 2002-02-01 | AVR325: High-Speed Interface to Host EPP Parallel Port This Application Note describes a method for high-speed bi-directional data transfer between an AVR Microcontroller and an off-the-shelf IBM (R) PC-compatible desktop computer.
|  |  | 2006-03-02 | AVR328: USB Generic HID Implementation The aim of this document is to describe how to start and implement a USB application based on the HID class too transfer data between a PC and user equipment.
|  |  | 2006-03-02 | AVR329: USB Firmware architecture The aim of this document is to describe the USB Firmware and give an overview of the architecture.
|  |  | 2005-04-18 | AVR335: Digital Sound Recorder with AVR and Serial DataFlash This Application Note describes how to record, store and play back sound using any AVR MCU with A/D Converter, the AT45DB161 DataFlash memory and a few extra components.
|  |  | 2005-01-19 | AVR336: ADPCM Decoder This application note focuses on decoding the ADPCM signal, Adaptive Differential Pulse Code Modulation, and turning it to a signal suitable for speakers.
|  |  | 2002-05-15 | AVR350: Xmodem Reiceve Utility The Xmodem protocol was created years ago as a simple means of having two computers talk to each other. With its half-duplex mode of operation, 128-byte packets, ACK/NACK responses and CRC data checking, the Xmodem has found its way into many applications.
|  |  | 2003-04-29 | AVR360: Step Motor Controller This Application Note describes how to implement a compact size and high-speed interrupt driven step motor controller.
|  |  | 2002-05-07 | AVR400: Low Cost A/D Converter This Application Note targets cost and space critical applications that need an ADC.
|  |  | 2003-01-28 | AVR401: 8-Bit Precision A/D Converter This Application Note describes how to perform a kind of dual slope A/D conversion with an AVR Microcontroller.
|  |  | 2002-05-15 | AVR410: RC5 IR Remote Control This Application Note describes a receiver for the frequently used Philips/Sony RC5 coding scheme.
|  |  | 2006-11-10 | AVR411: Secure Rolling Code Algorithm for Wireless Link This application note describes a Secure Rolling Code Algorithm transmission protocol for use in a unidirectional wireless communication system.
|  |  | 2006-12-06 | AVR414: User Guide - ATAVRRZ502 - Accessory Kit This application note describes the ATAVRRZ502 Accessory Kit (RZ502). The RZ502 is designed for evaluation of the Atmel AT86RF230 2.4 GHz radio transceiver.
|  |  | 2006-02-19 | AVR415: RC5 IR Remote Control Transmitter In this application note the widely used RC5 coding scheme from Philips will be described, and a fully working remote control solution will be presented. This application will use the ATtiny28 AVR microcontroller for this purpose.
|  |  | 2006-04-27 | AVR433: Power Factor Corrector (PFC) with AT90PWM2 Re-triggable High Speed PSC This application note explains how to develop a stand alone PFC (Power Factor Corrector) with the AT90PWM2.
|  |  | 2006-10-24 | AVR434: PSC Cookbook This application note is an introduction to the use of the Power Stage Controllers (PSC) available in some AVR microcontrollers. The code examples will make this clearer and can be used asguide for other applications. The examples are developed and tested on AT90PWM3.
|  |  | 2006-10-03 | AVR435: BLDC/BLAC Motor Control Using a Sinus Modulated PWM Algorithm BLDC motors are designed to be supplied with a trapezoidal shape current, respectively BLAC motors are designed to be supplied with a sinusoidal shape current. This application note proposes an implementation using the latter with an ATAVRMC100 board mounted with an AT90PWM3B.
|  |  | 2005-09-30 | AVR440: Sensorless Control of Two-Phase Brushless DC Motor This application note describes how to implement the electronics and microcontroller firmware to control a two-phase BLDC motor using an 8-bit AVR microcontroller. The implementation is based on the small and low cost ATtiny13.
|  |  | 2005-09-08 | AVR441: Intelligent BLDC Fan Controller with Temperature Sensor and Serial Interface This application note describes how to integrate a low-cost, feature-rich AVR microcontroller into the commutator electronics of a BLDC fan. The ATtiny25 is as an example.
|  |  | 2005-09-08 | AVR442: PC fan control using ATtiny13 This application note describes the operation of 12 volt DC cooling fans typically used to supply cooling air to electronic equipment, and controlling them with the ATtiny13.
|  |  | 05.5.06 | AVR443: Sensor-based control of three phase Brushless DC motor This application note described the control of a BLDC motor with Hall effect position sensors. The implementation includes both direction and open loop speed control.
|  |  | 2005-11-01 | AVR444: Sensorless control of 3-phase brushless DC motors This application note describes how to implement sensorless commutation control of a 3-phase brushless DC (BLDC) motor with the low cost ATmega48 microcontroller.
|  |  | 2006-06-02 | AVR446: Linear speed control of stepper motor This application note describes how to implement an exact linear speed controller for stepper motors. It also presents a driver with a demo application, capable of controlling acceleration as well as position and
speed.
|  |  | 2006-06-07 | AVR447:Sinusoidal driving of three-phase permanent magnet motor using ATmega48/88/168 This application note describes the implementation of sinusoidal driving for threephase brushless DC motors with hall sensors. The implementation can easily be modified to use other driving waveforms such as sine wave with third harmonic injected.
|  |  | 2006-05-05 | AVR448: Control of High Voltage 3-Phase BLDC Motor 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.
|  |  | 2006-10-31 | AVR449: Sinusoidal driving of 3-phase permanent magnet motor using ATtiny261/461/861 This application note describes the implementation of sinusoidal driving for threephase brushless DC motors with hall sensors on the ATtiny261/461/861 microcontroller family.
|  |  | 2006-09-13 | AVR450: Battery Charger for SLA, NiCd, NiMH, and Li-ion Batteries This Reference Design is a battery charger that fully implements the latest technology in battery charger designs. The charger can fast-charge all popular battery types without any hardware modifications. The charger design contains complete libraries for SLA, NiCd, NiMH, and Li-Ion batteries.
|  |  | 2006-04-27 | AVR452: Sensor-based Control of Three Phase Brushless DC Motors Using AT90CAN128/64/32 This application note described the control of a BLDC motor with Hall effect position sensors (referred to simply as Hall sensors). The implementation includes both direction and open loop speed control.
|  |  | 2005-09-07 | AVR453: Smart Battery Reference Design This application note describes the implementation of a Smart Battery using the Atmel ATmega406 microcontroller.
|  |  | 2005-12-13 | AVR454: Users Guide - ATAVRSB100 - Smart Battery Development Board This document describes the ATAVRSB100 (SB100) Smart Battery Development Board. The SB100 is designed for evaluation of the Atmel AVR ATmega406, which is designed for Smart Battery applications. The ATmega406 is designed for 2, 3 or 4 cell Li-Ion battery packs.
|  |  | 2002-05-21 | AVR460: Embedded Web Server This Reference Design demonstrates how embedded applications can be connected directly to the internet.
|  |  | 2002-05-21 | AVR461: Quick Start Guide for the Embedded Internet Toolkit This Quick Start Guide gives an introduction to using the AVR Embedded Internet Toolkit and can be used as a guide for getting started with embedded internet applications.
|  |  | 2002-03-21 | AVR462: Reducing the Power Consumption of the AT90EIT1 – AVR Embedded Internet Toolkit This Application Note describes a small modification to the AVR Embedded Internet Toolkit. This will reduce the power consumption and the operating temperature of the board.
|  |  | 2004-07-27 | AVR465: Energy meter This application note describes a single-phase power/energy meter with tamper logic. The design measures active power, voltage, and current in a single-phase distribution environment. The meter is able to detect, signal, and continue to measure reliably even when subject to external attempts of tampering.
|  |  | 2006-12-08 | AVR480: Anti-Pinch System for Electrical Window The detection algorithm is based on speed and torque derivate and has been verified for robustness and fault tolerance. It is applicable to all ATMEL AVR® with A to D converter and Interrupt-on-Change I/O.
|  |  | 2005-08-18 | AVR492: Brushless DC Motor Control using AT90PWM3 This application note describes how to implement a brushless DC motor control in sensor mode using AT90PWM3 AVR microcontroller.
|  |  | 2006-07-13 | AVR493: Sensorless Commutation of Brushless DC Motor (BLDC) using AT90PWM3 and ATAVRMC100 This application note describes how to implement a sensorless commutation of BLDC motors with the ATAVRMC100 developement kit.
|  |  | 2006-02-19 | AVR494: AC Induction Motor Control Using the constant V/f Principle and a Natural PWM Algorithm This application note shows how to drive Induction motors by using the AT90PWM3.
|  |  | 2006-02-19 | AVR495: AC Induction Motor Control Using the Constant V/f Principle and a Space-vector PWM Algorithm This application note shows how to drive Induction motors by using the AT90PWM3.
|  |  | 2002-05-21 | AVR910: In-System Programming This Application Note shows how to design the system to support In-System Programming.
|  |  | 2006-04-27 | AVR911: AVR Open-source Programmer 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.
|  |  | 2005-11-29 | AVR914: CAN & UART based Bootloader for AT90CAN32, AT90CAN64, & AT90CAN128 This document describes the UART & CAN bootloader functionality as well as the serial protocols to efficiently perform operations on the on chip Flash & EEPROM memories.
|  |  | 1998-04-01 | Understanding the AVR ICEPRO I/O Registers This Application Note describes the I/O Register views seen in AVR Studio when using the ICEPRO emulator.

| 3. MIGRATION NOTES
| PDF | SW | Updated | Title and description
|  |  | 2004-01-12 | AVR080: Replacing ATmega103 by ATmega128 This Application Note describes issues to be aware of when migrating from the ATmega103 to the ATmega128 Microcontroller.
|  |  | 2003-07-23 | AVR081: Replacing AT90S4433 by ATmega8 This Application Note describes issues to be aware of when migrating from the AT90S4433 to the ATmega8 Microcontroller.
|  |  | 2004-01-12 | AVR082: Replacing ATmega161 by ATmega162 This Application Note describes issues to be aware of when migrating from the ATmega161 to the ATmega162 Microcontroller.
|  |  | 2005-09-06 | AVR083: Replacing ATmega163 by ATmega16 This Application Note describes issues to be aware of when migrating from the ATmega163 to the ATmega16 Microcontroller.
|  |  | 2003-07-23 | AVR084: Replacing ATmega323 by ATmega32 This Application Note describes issues to be aware of when migrating from the ATmega323 to the ATmega32 Microcontroller.
|  |  | 2004-01-12 | AVR085: Replacing AT90S8515 by ATmega8515 This Application Note describes issues to be aware of when migrating from the AT90S8515 to the ATmega8515 Microcontroller.
|  |  | 2003-07-23 | AVR086: Replacing A90S8535 by ATmega8535 This Application Note describes issues to be aware of when migrating from the AT90S8535 to the ATmega8535 Microcontroller.
|  |  | 2004-01-12 | AVR087: Migration between ATmega8515 and ATmega162 This application note is a guide to help current ATmega8515 users convert existing designs to ATmega162. The information given will also help users migrating from ATmega162 to ATmega8515.
|  |  | 2004-01-12 | AVR088: Migration between ATmega8535 and ATmega16 This application note is a guide to help current ATmega8535 users convert existing designs to ATmega16. The information given will also help users migrating from ATmega16 to ATmega8535.
|  |  | 2003-05-28 | AVR089: Migration between ATmega16 and ATmega32 This application note is a guide to help current ATmega16 users convert existing designs to ATmega32. The information given will also help users migrating from ATmega32 to ATmega16.
|  |  | 2005-12-13 | AVR090: Migration between ATmega64 and ATmega128 This application note is a guide to help current ATmega64 users convert existing designs to ATmega128. The information given will also help users migrating from ATmega128 to ATmega64.
|  |  | 2003-11-04 | AVR091: Replacing AT90S2313 with ATtiny2313 This Application Note describes issues to be aware of when migrating from the AT90S2313 to the ATtiny2313 Microcontroller.
|  |  | 2003-11-04 | AVR092: Replacing ATtiny11/12 with ATtiny13 This Application Note describes issues to be aware of when migrating from the ATtiny11 and ATtiny12 to the ATtiny13 Microcontroller.
|  |  | 2003-11-04 | AVR093: Replacing AT90S1200 with ATtiny2313 This Application Note describes issues to be aware of when migrating from the AT90S1200 to the ATtiny2313 Microcontroller.
|  |  | 2005-04-05 | AVR094: Replacing ATmega8 by ATmega88 This Application Note describes issues to be aware of when migrating from the ATmega8 to the ATmega88 Microcontroller.
|  |  | 2004-02-11 | AVR095: Migrating between ATmega48, ATmega88 and ATmega168 This Application Note describes issues to be aware of when migrating between the ATmega48, ATmega88 and ATmega168 microcontrollers.
|  |  | 2004-03-18 | AVR096: Migrating from ATmega128 to AT90CAN128 This application note is a guide to help current ATmega128 users convert existing designs to AT90CAN128.
|  |  | 2006-05-04 | AVR097: Migration between ATmega128 and ATmega1281/ATmega2561 ATmega128 and ATmega1281/ATmega2561 are designed to be a pin and functionality compatible sub family. This application note points out the differences to be aware of when porting code between the devices.
|  |  | 2007-02-15 | AVR098: Migration between ATmega169 and ATmega329 The ATmega169 and ATmega329 are designed to be a pin and functionality compatible sub family, but there may be a need for some minor modifications in the application when porting code between the devices.
|  |  | 2004-09-06 | AVR099: Replacing AT90S4433 by ATmega48 This application note is a guide to assist current AT90S4433 users in converting existing designs to ATmega48.
|  |  | 2004-09-06 | AVR500: Migration between ATmega64 and ATmega645 This application note is a guide to assist current ATmega64 users in converting existing designs to ATmega645, and vice versa.
|  |  | 2005-03-22 | AVR501: Replacing ATtiny15 with ATtiny25 This application note is a guide to assist users of ATtiny15 in converting existing designs to ATtiny25.
|  |  | 2005-12-13 | AVR502: Migration between ATmega165 and ATmega325 The ATmega165 and ATmega325 are designed to be a pin and functionality compatible sub family, but there may be a need for some minor modifications in the application when porting code between the devices.
|  |  | 2005-09-06 | AVR503: Replacing AT90S/LS2323 or AT90S/LS2343 with ATtiny25 This application note is a guide to assist users of AT90S/LS2323 and, AT90S/LS2343 converting existing designs to ATtiny25.
|  |  | 2006-10-31 | AVR504: Migrating from ATtiny26 to ATtiny261/461/861 This application note is a guide to assist users of ATtiny26 in converting existing designs to ATtiny261 (and ATtiny461/861)
|  |  | 2006-06-30 | AVR505: Migration between ATmega16/32 and ATmega164P/324P/644(P) This application note summarizes the differences between ATmega16/32 and ATmega164P/324P/644(P) and is a guide to assist current ATmega16/32 users in converting existing designs to the ATmega164P/324P/644(P).
|  |  | 2007-02-13 | AVR506: Migration from ATmega169 to ATmega169P The ATmega169P is designed to be pin and functionality compatible with ATmega169, and this application note summarizes the differences between them.
|  |  | 2006-11-24 | AVR507: Migration from ATmega329 to ATmega329P This application note summarizes the relevant differences when migrating from ATmega329 to ATmega329P.
|  |  | 2006-07-24 | AVR508: Migration from ATmega644 to ATmega644P This application note summarizes the relevant differences when migrating from ATmega644 to ATmega644P.
|  |  | 2006-11-24 | AVR509: Migration between ATmega169P and ATmega329P This application note summarizes the differences between ATmega169P, and ATmega329P.
|  |  | 2006-07-24 | AVR510: Migration between ATmega329/649 and ATmega3290/6490 This application note summarizes the differences between ATmega329/649 and ATmega3290/6490.
|  |  | 2006-11-24 | AVR511: Migration from ATmega3290 to ATmega3290P This application note summarizes the relevant differences when migrating from ATmega3290 to ATmega3290P.
|  |  | 2006-07-24 | AVR512: Migration from ATmega48/88/168 to ATmega48P/88P/168P This application note summarizes the relevant differences when migrating from ATmega48/88/168 to ATmega48P/88P/168P.
|  |  | 2007-03-07 | AVR513: Migration from ATmega165 to ATmega165P The ATmega165P is designed to be pin and functionality compatible with ATmega165, and this application note summarizes the differences between them.
|  |  | 2007-03-07 | AVR514: Migration from ATmega325 to ATmega325P This application note summarizes the relevant differences when migrating from ATmega325 to ATmega325P.