| Application Example and Algorithms |
| PDF |
Software |
Description |
 |
|
ATA6824 and ATmega88
(13 pages, revision A, updated 8/07) DC Motor Control in High Temperature Environment |
 |
|
ATA6831/ATA6832 Fully Integrated BLDC Motor Control from the Signal Generation to the Full BLDC Moto
(17 pages, revision A, updated 3/07) The purpose of this document is to explain the theory and application of Atmel’s integrated
BLDC driver solution. |
 |
|
AVR077: Opto Isolated Emulation for the DebugWIRE
(9 pages, revision A, updated 1/08) This
application note describes how to implement an optoisolated interface
for the DebugWIRE. This device could help the debug of applications
with non isolated power supply like ballast, motors, vacuum cleaners,
refrigerators, etc. |
 |
|
AVR137: Writing Software Compatible for AT90PWM2/3 and AT90PWM2B/3B
(3 pages, revision A, updated 10/06) Two
revisions of AT90PWM2/3 are available. Versions AT90PWM2B and AT90PWM3B
are the evolutions of the AT90PWM2 and AT90PWM3. This application note
lists the main corrections and differences between the two designs, and
showsan example of software that allows to detect which version is
currently programmed. |
 |
|
AVR146: Lithium-Ion Battery Charging via USB with ATmega16/32U4
(35 pages, revision A, updated 06/08) This
application note is based on the ATmega16/32U4 and focuses on how to
use the EVK527 evaluation kit to charge Lithium-Ion (Li-Ion) batteries
using USB connection as power supply. |
 |
|
AVR191: Anti-Pinch Algorithm for AVR Adaptation Procedure
(10 pages, revision A, updated 11/06) The purpose of this document is to explain how to adapt an anti-pinch algorithm to a
specified powered window. |
 |
|
AVR194: Brushless DC Motor Control using ATmega32M1
(16 pages, revision A, updated 4/08) This application note describes how to implement a brushless DC motor control in
sensor mode using the ATmega32M1 AVR microcontroller. |
 |
|
AVR275: Sensor-based Control of Three Phase Brushless DC Motors Using AT90USB family
(10 pages, revision A, updated 09/06) 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. |
 |
|
AVR276: USB Software Library for AT90USBxxx Microcontrollers
(27 pages, revision A, updated 01/07) This
document describes the AT90USBxxx USB software library and illustrate
how to develop a USB device or reduced host applications using this
library |
 |
|
AVR277: On-The-Go (OTG) add-on to USB Software Library
(15 pages, revision A, updated 07/07) This document describes the new features brought by the OTG working group and
how they are integrated in the AT90USBxxx USB software library, illustrating how to
develop customizable USB OTG applications. |
 |
|
AVR280 USB Host CDC Demonstration
(14 pages, revision A, updated 09/07) The aim of this document is to describe how to start and implement a Host CDC application
using the STK525 or USBKEY starter kit, and finally introduces a simple
example of dual USB-UART bridge between two PCs. |
 |
|
AVR286: LIN Firmware Base for LIN/UART Controller
(19 pages, revision A, updated 3/08) |
 |
|
AVR292: LIN Break-in-Data Feature of LIN/UART Controller
(8 pages, revision A, updated 3/08) This
document describes the behavior of the LIN/UART Controller when it
detects an unanticipated BREAK field during an otherwise normal LIN
transfer. This event is what we refer to as "Break-in-Data". |
 |
|
AVR293: USB Composite Device
(9 pages, revision A, updated 8/08) The aim of this document is to describe how to start and implement a composite
device application. |
 |
|
AVR298: USB Audio Demonstration with ATmega32(16)U4
(8 pages, revision A, updated 11/08) This document describes a simple audio project. It allows to quickly test USB hardware
using the ATMega32U4 without any driver installation. |
 |
|
USB PC Drivers Based on Generic HID Class
(10 pages, revision B, updated 7/08) This
document gives information on integrating the Atmel USB HID DLL
functions. Simple code examples that demonstrate different types of
implementation are given. |
| Top |
| Battery Management AVR |
| PDF |
Software |
Description |
 |
|
AVR351: Runtime calibration and compensation of RC oscillators
(7 pages, revision A, updated 10/08) Due
to frequency drift over temperature, the clock sources in AVR should be
calibrated at operating temperature or runtime if system temperature
changes over time, to achieve the best possible accuracy. Several of
the new battery-monitoring devices have a very accurate coulomb
counting ADC, and thus need a precise time reference to achieve the
best possible results. |
 |
|
AVR352: Using the Coulomb Counting ADC
(7 pages, revision B, updated 2/09) This application note describes how to use the CC-ADC to get maximum accuracy and lowest possible current consumption. |
 |
|
AVR353: Voltage Reference Calibration and Voltage ADC Usage
(6 pages, revision A, updated 10/08) Some
of the new Atmel AVRŽ Smart Battery devices contain a very accurate low
power bandgap voltage reference which when calibrated correctly has
less than 90ppm/°C drift from –10°C to +70°C and absolute accuracy of
typically +/-1mV. This is the reference used for the internal Voltage
ADC and Coulomb Counting ADC. |
 |
|
AVR354: Using the Deep Under-Voltage Recovery Mode (DUVR)
(8 pages, revision 8, updated 10/08) Charging
Li-ion battery cells from a deeply discharged condition and at the same
time keep full control of the charging sequence, is a challenge in many
applications. |
 |
|
AVR455: ATAVRSB201 User's guide
(10 pages, revision A, updated 10/08) The
ATAVRSB201-1/SB201-2 kits are evaluation and development kits for the
new
Atmel AVRŽ smart battery device ATmega16HVA. This device is made for
battery packs with 1 series or 2 series lithium ion and lithium polymer
cells, and feature autonomous battery protection as well as very
accurate voltage, current and temperature monitoring capabilities. |
 |
|
AVR456: Firmware User's Guide for SB201-1 & SB201-2
(29 pages, revision A, updated 01/09) This
document describes an example implementation of a smart battery for the
AtmelŽ SB201-1 and SB201-2 reference designs. The implementation
demonstrates how to use the ATmega8HVA/16HVA AVRŽ to gain optimal
safety and accuracy for a Lithium-Ion rechargeable battery-pack. All
code is freely available to allow for easy evaluation and further
development. |
 |
|
AVR459: SB200 Hardware User's Guide
(17 pages, revision A, updated 10/08) The
SB200 is a development platform for SB20x smart battery reference
designs, which offers an easy way to start evaluation and hence
development of smart battery applications using AtmelŽ AVRŽ
microcontrollers. |
 |
|
AVR491: Quick start guide for SB200
(13 pages, revision B, updated 11/08) This
document gives an introduction to the use of the SB200. It explains how
the SB200 hardware and PC software is used and how it can be used to
demonstrate and evaluate the SB201 features and performance. |
| 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
(14 pages, revision F, updated 4/08) 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. |
 |
|
AVR181: Automotive Grade0 - PCB and Assembly Recommendations
(8 pages, revision A, updated 09/07) This paper is a collection of technical advice aiming at providing automotive electronic
designers elements to manage high temperature constraints when addressing the
PCB development. |
 |
|
AVR282: USB Firmware Upgrade for AT90USB
(13 pages, revision A, updated 1/08) The
aim of this document is to describe how to perform the firmware upgrade
of the AT90USB products using the on-chip bootloader and FLIP software. |
| Top |
| Development Tools |
| PDF |
Software |
Description |
 |
|
AVR079: STK600 Communication Protocol
(61 pages, revision A, updated 04/08) This document describes the STKŽ600 protocol. The firmware is distributed with AVR StudioŽ 4.14 or later. |
 |
|
AVR296: AVRUSBRF01 USB RF Dongle
(11 pages, revision A, updated 7/08) This kit is a USB dongle
designed to enhance and demonstrate wireless communications features in addition
to the AT90USB162 8 bit AVR USB microcontroller. |
 |
|
AVR430: MC300 Hardware User Guide
(13 pages, revision C, updated 10/08) The
MC300 is a general-purpose power stage board able to drive brushless
DC, brushed DC and stepper motors. The board is designed to be a
flexible platform for developing motor control applications. |
 |
|
AVR469: MC301 Hardware User Guide
(21 pages, revision A, updated 4/09) The
MC301 is the device board for ATtiny861 AVRŽ microcontroller which can
be connected to the general-purpose power stage board MC300 for driving
brushless DC, brushed DC and stepper motors. This board is also
designed to be connected on any other driver board which could share
the same interface. Power and all signals needed for a power stage
board are available on the right side of the board. Jumpers allow
demonstrating sensor or sensorless modes of motor control. Finally,
interface like USB or Atmel DB101 Display module is also available. |
 |
|
AVR496: Brushless DC Motor Control using ATtiny861
(13 pages, revision A, updated 4/09) This
application note describes how to implement a brushless DC motor
control in sensor mode using the ATtiny861 AVR microcontroller. The
high performance AVRŽ core along with the Timer 1 of the ATtiny861
allows to design high speed brushless DC motor applications. |
 |
|
AVR498: Sensorless control of BLDC Motors using ATtiny261/461/861
(20 pages, revision A, updated 4/09) This application note describes how to implement a brushless DC motor control in
sensorless mode using the ATtiny861 AVRŽ microcontroller.
In this document, we will give a short description of brushless DC motor theory of
operations, we will detail how to control a brushless DC motor in sensorless mode
and we will also give a short description of the ATAVRMC301 and ATAVRMC300
boards used in this application note. |
 |
|
AVR600: STK600 Expansion, routing and socket
(18 pages, revision A, updated 8/08) This
application note describes the process of developing new routing,
socket and expansion cards for the STKŽ600. It also describes the
physical parameters for creating such cards. |
 |
|
AVR602: Using the ATtinyX3U Top Module
(11 pages, revision B, updated 02/09) This
Application note describes what's in the ATtinyX3U top module package
for STK600, how to prepare the equipment, how to set up the power
source, how to programming the ATtiny43U, and schematics. |
| Top |
| General Purpose |
| PDF |
Software |
Description |
 |
|
AVR000: Register and Bit-Name Definitions for the AVR Microcontroller
(1 pages, revision B, updated 4/98) This
Application Note contains files which allow the user to use Register
and Bit names from the databook when writing assembly programs. |
 |
|
AVR001: Conditional Assembly and portability macros
(6 pages, revision E, updated 4/08) 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. |
 |
|
AVR030: Getting Started with IAR Embedded Workbench for Atmel 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 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. |
 |
|
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 AVR Microcontroller. |
 |
|
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.
The example is a simple program for the Atmel AT90S8515 microcontroller
on the STK500 starter kit. |
 |
|
AVR034: Mixing C and Assembly Code with IAR Embedded Workbench for AVR
(8 pages, revision B, updated 4/03) 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. |
 |
|
AVR035: Efficient C Coding for AVR
(22 pages, revision D, updated 01/04) 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. |
 |
|
AVR041: EMC Performances Improvement for ATmega32M1
(6 pages, revision A, updated 02/08) Thanks to a new Atmel IC design methodology, the EMC constraints are taken into
account earlier in the IC design phase. This allows a better assessment of the EMC
performances such as the self-compatibility of the IC, the level of the radiated and
conducted emissions as well as the internal and external immunity. The EMC performances
of the Mega32M1 product are improved thanks to some design
improvements detailed in this document. |
 |
|
AVR053: Calibration of the internal RC oscillator
(15 pages, revision G, updated 05/06) 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 allows device calibration using AVR tools, and it
can also be used for 3rd party calibration systems, based on production
programmers. |
 |
|
AVR054: Run-time calibration of the internal RC oscillator
(17 pages, revision C, updated 04/08) This application note describes how to calibrate the internal RC oscillator via the UART. |
 |
|
AVR055: Using a 32kHz XTAL for run-time calibration of the internal RC
(16 pages, revision D, updated 7/08) 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. |
 |
|
AVR060: JTAG ICE Communication Protocol
(20 pages, revision B, updated 01/04) This application note describes the communication protocol used between AVR StudioŽ and JTAG ICE. |
 |
|
AVR061: STK500 Communication Protocol
(31 pages, revision B, updated 4/03) 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. |
 |
|
AVR063: LCD Driver for the STK504
(13 pages, revision A, updated 04/06) 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. |
 |
|
AVR064: STK502 - A Temperature Monitoring System with LCD Output
(24 pages, revision C, updated 02/06) |
 |
|
AVR065: LCD Driver for the STK502
(17 pages, revision E, updated 7/08) 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. |
 |
|
AVR067: JTAGICE mkII Communication Protocol
(82 pages, revision C, updated 04/06) This document describes the communication protocol used between AVR Studio and JTAGICE mkII. |
 |
|
AVR068: STK500 Communication Protocol
(37 pages, revision C, updated 06/06) The
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. |
 |
|
AVR069: AVRISP mkII Communication Protocol
(24 pages, revision B, updated 02/06) This document describes the AVRISP mkII protocol. The firmware is distributed with AVR Studio 4.12 or later. |
 |
|
AVR070: Modifying AT90ICEPRO and ATICE10 to Support Emulation of AT90S8535
(5 pages, revision C, updated 5/02) 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. |
 |
|
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. |
 |
|
AVR073: Accessing 10- and 16-bit registers in ATtiny261/461/861
(6 pages, revision B, updated 1/08) 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. |
 |
|
AVR074: Upgrading AT90ICEPRO to ICE10
(8 pages, revision B, updated 5/02) This Application Note describes how to upgrade the AT90ICEPRO emulator to ATICE10 Version 2.0 |
 |
|
AVR100: Accessing the EEPROM
(7 pages, revision C, updated 09/05) 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. |
 |
|
AVR101: High Endurance EEPROM Storage
(5 pages, revision A, updated 9/02) Having
a system that regularly writes a 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. |
 |
|
AVR102: Block Copy Routines
(5 pages, revision B, updated 5/02) This Application Note contains routines for transfer of data blocks. |
 |
|
AVR103: Using the EEPROM Programming Modes
(5 pages, revision A, updated 03/05) 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. |
 |
|
AVR104: Buffered Interrupt Controlled EEPROM Writes
(9 pages, revision A, updated 07/03) 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. |
 |
|
AVR105: Power efficient high endurance parameter storage in 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
(10 pages, revision B, updated 08/06) Recent
AVRs have a feature called Self programming Program memory. This
feature makes it possible for an AVR to reprogram the Flash memory
during program run and is suitable for applications that need to
self-update firmware or store parameters in Flash. This application
note provides C functions for accessing the Flash memory. |
 |
|
AVR107: Interfacing AVR serial memories
(22 pages, revision A, updated 03/05) This
application note describes the functionality and the architecture of
SPI serial memories drivers as well as the motivation of the selected
solution. |
 |
|
AVR108: Setup and use of the LPM Instructions
(4 pages, revision B, updated 5/02) This Application Note describes how to access constants saved in Flash program memory of the AVR microcontrollers |
 |
|
AVR109: Self Programming
(11 pages, revision B, updated 06/04) This Application note describes how an AVR 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 and how they effect ADC measurements. It
also describes how to measure these parameters during application
testing in production and how to perform run-time compensation. |
 |
|
AVR121: Enhancing ADC resolution by oversampling
(14 pages, revision A, updated 09/05) 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. |
 |
|
AVR122: Calibration of the AVR's internal temperature reference
(14 pages, revision A, updated 2/08) This
application note describes how to calibrate and compensate the
temperature measurements from the ATtiny25/45/85. It can also be used
on other AVRŽ microcontrollers with internal temperature sensors. |
 |
|
AVR128: Setup and use the Analog Comparator
(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: Setup and use the AVR Timers
(16 pages, revision A, updated 2/02) 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. |
 |
|
AVR131: Using the AVR’s High-speed PWM
(8 pages, revision A, updated 09/03) 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. |
 |
|
AVR132: Using the Enhanced Watchdog Timer
(17 pages, revision C, updated 6/08) 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. |
 |
|
AVR133: Long Delay Generation Using the 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. 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. |
 |
|
AVR134: Real-Time Clock using the Asynchronous Timer
(9 pages, revision G, updated 04/09) This Application Note describes how to implement a real-time (RTC) on AVR microcontrollers that features the RTC module. |
 |
|
AVR135: Using Timer Capture to Measure PWM Duty Cycle
(12 pages, revision A, updated 10/05) This application note describes how the pulse width and period may be computed using the Input Capture Unit (ICP). |
 |
|
AVR136: Low-jitter Multi-channel Software PWM
(5 pages, revision A, updated 05/06) 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. |
 |
|
AVR138: ATmega32M1 family PSC Cookbook
(17 pages, revision A, updated 3/08) This
application note is an introduction to the use of the Power Stage
Controller (PSC) available in ATmega32M1 family. The object of this
document is to give a general overview of the PSC, show its various
modes of operation and explain how to configure them. |
 |
|
AVR140: ATmega48/88/168 family run-time calibration of the Internal RC oscillator
(12 pages, revision A, updated 09/06) This application note describes how to calibrate the internal RC oscillator via the
UART. The method used is based on the calibration method used in the Local Inteconnect
Network (LIN) protocol, synchronizing a slave node to a master node at the
beginning of every message frame. |
 |
|
AVR151: Setup and use of the SPI
(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 AVR microcontrollers. |
 |
|
AVR155: Accessing I2C LCD Display Using the AVR 2-Wire Serial Interface
(10 pages, revision B, updated 09/05) This
application note includes a 2-wire/TWI driver for bus handling and
describes how to access a Philips I2C LCD driver on a Batron LCD
display. |
 |
|
AVR172: Sensorless Commutation of Brushless DC Motor (BLDC) using ATmega32M1 and ATAVRMC320
(23 pages, revision A, updated 10/08) This
application note describes how to implement a sensorless commutation of
BLDC motors with the ATAVRMC320 development kit. The goal of this
application note is to give all information that are relevant for an
implementation of sensorless commutation using the ATmega32M1. |
 |
|
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
(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 AVR microcontroller. |
 |
|
AVR200: Multiply and Divide Routines
(21 pages, revision C, updated 05/06) This Application Note lists subroutines for multiplication and division of 8 and 16-bit signed and unsigned numbers. |
 |
|
AVR201: Using the AVR Hardware Multiplier
(11 pages, revision C, updated 6/02) Examples of using the multiplier for 8-bit arithmetic. |
 |
|
AVR202: 16-Bit Arithmetics
(3 pages, revision B, updated 5/02) This Application Note lists program examples for arithmetic operation on 16-bit values. |
 |
|
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
(10 pages, revision A, updated 05/06) This application note describes a simple implementation of a discrete Proportional-Integral-Derivative (PID) controller. |
 |
|
AVR222: 8-Point Moving Average Filter
(5 pages, revision B, updated 5/02) This Application Note gives an demonstration of how the addressing modes in the AVR architecture can be utlized. |
 |
|
AVR223: Digital Filters with AVR
(18 pages, revision B, updated 7/08) This
document focuses 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. |
 |
|
AVR230: DES Bootloader
(24 pages, revision D, updated 04/05) 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. This application
note also supports the Triple Data Encryption Standard (3DES). |
 |
|
AVR231: AES Bootloader
(29 pages, revision D, updated 08/06) 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. |
 |
|
AVR236: CRC check of Program Memory
(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. |
 |
|
AVR240: 4x4 Keypad-Wake Up on Keypress
(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. |
 |
|
AVR241: Direct driving of LCD display using general I/O
(11 pages, revision A, updated 04/04) This application note describes software driving of LCDs with one common line, using the static driving method. |
 |
|
AVR242: 8-bit Microcontroller Multiplexing LED Drive & a 4x4 Keypad.
(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. |
 |
|
AVR243: Matrix Keyboard Decoder
(11 pages, revision A, updated 01/03) 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. |
 |
|
AVR244: UART as ANSI Terminal Interface
(8 pages, revision A, updated 11/03) This application note describes some basic routines to interface the AVR to a terminal
window using the UART (hardware or software). |
 |
|
AVR245: Code Lock with 4x4 Keypad and I2C™ LCD
(9 pages, revision A, updated 10/05) 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. |
 |
|
AVR270: USB Mouse Demonstration
(11 pages, revision C, updated 07/08) This
document describes a simple mouse project. It allows users to quickly
test USB hardware using AT90USB without any driver installation. |
 |
|
AVR271: USB Keyboard Demonstration
(12 pages, revision B, updated 7/08) 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 for AT90USB microcontrollers. |
 |
|
AVR272: USB CDC Demonstration UART to USB Bridge
(11 pages, revision B, updated 4/08) 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 for AT90USB
microcontrollers. |
 |
|
AVR273: USB Mass Storage Implementation
(23 pages, revision A, updated 03/06) 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. For AT90USB microcontrollers. |
 |
|
AVR274: Single-wire Software UART
(14 pages, revision A, updated 03/07) 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. |
 |
|
AVR301: 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) and Atmel
FPGA Configuration Memory using an Atmel AVR MCU and how to bit bang
TWI using port pins on an AT90S8515 AVR MCU |
 |
|
AVR303: SPI-UART Gateway
(5 pages, revision A, updated 03/05) 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. |
 |
|
AVR304: Half Duplex Interrupt Driven Software UART
(8 pages, revision C, updated 4/08) 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. |
 |
|
AVR305: Half Duplex Compact Software UART
(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
(3 pages, revision B, updated 7/02) 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 |
 |
|
AVR307: Half Duplex UART Using the USI Module
(18 pages, revision A, updated 10/03) 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. The USI is however not restricted to these two serial
communication standards. It can be used for UART communication as well. |
 |
|
AVR308: Software LIN Slave
(12 pages, revision B, updated 5/02) 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. |
 |
|
AVR309: Software Universal Serial Bus (USB)
(23 pages, revision B, updated 02/06) This
application note describes the USB implementation in a low-cost
microcontroller through emulation of the USB protocol in the firmware.
Supports Low Speed USB (1.5 Mbit/s) in accordance with USB2.0. |
 |
|
AVR310: Using the USI module as a I2C master
(8 pages, revision B, updated 09/04) This Application Note describes how to use the USI for TWI master communication. |
 |
|
AVR311: Using the TWI module as I2C slave
(12 pages, revision D, updated 10/04) 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
(9 pages, revision C, updated 09/05) This Application Note describes how to use the USI for TWI slave communication. |
 |
|
AVR313: Interfacing the PCAT Keyboard
(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
(8 pages, revision B, updated 5/02) This
Application Note describes how DTMF (Dual-Tone Multiple Frequencies)
signaling can be implemented using any AVR microcontroller with PWM and
SRAM. |
 |
|
AVR315: Using the TWI module as I2C master
(11 pages, revision B, updated 09/04) 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
(20 pages, revision A, updated 10/05) 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. |
 |
|
AVR317: Using the USART on the ATmega48/88/168 as a SPI master
(10 pages, revision A, updated 09/04) 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. |
 |
|
AVR318: Dallas 1-WireŽ master
(21 pages, revision A, updated 09/04) 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. |
 |
|
AVR319: Using the USI module for SPI communication
(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) 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.
These can be used as the basis for communicating with Atmel's 25xxx
family of Serial EEPROM memories, as well as a host for other
peripheral ICs such as display drivers. |
 |
|
AVR322: LIN Protocol Implementation on Atmel AVR Microcontrollers
(21 pages, revision A, updated 12/05) The LIN protocol is introduced in this application note, along with its implementation on Atmel Automotive AVR microcontrollers. |
 |
|
AVR323: Interfacing GSM modems
(21 pages, revision A, updated 02/06) 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. |
 |
|
AVR325: High-Speed Interface to Host EPP Parallel Port
(7 pages, revision A, updated 2/02) This
Application Note describes a method for high-speed bidirectional data
transfer between an AVR Microcontroller and an of-the-shelf IBM (R)
PC-compatible desktop computer. The interface provides an 8-bit
parallel data path, yeilding data transfer rates up to 60
kilobytes/second with an AVR processor operating at 4 MHz. This is an
order of magnitude faster than a standard RS-232 connection while not
requiring complex external interface hardware (like USB or SCSI). |
 |
|
AVR328: USB Generic HID Implementation
(13 pages, revision B, updated 02/08) The
aim of this document is to describe how to start and implement a USB
application, based on the HID class, to transfer data between a PC and
user equipment, using AT90USB microcontrollers. |
 |
|
AVR335: Digital Sound Recorder with AVR and DataFlash
(20 pages, revision C, updated 04/05) 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 |
 |
|
AVR336: ADPCM Decoder
(20 pages, revision A, updated 11/04) This
application note focuses on decoding the ADPCM signal, Adaptive
Differential Pulse Code Modulation, and turning it to a signal suitable
for loudspeakers. |
 |
|
AVR340: Direct Driving of LCD Using General Purpose IO
(15 pages, revision A, updated 09/07) This
application note describes the operation of a Multiplexed LCD. Also
discussed are electrical waveforms and connections needed by a LCD, as
well as a C-program to operate the LCD. The result is an excellent low
cost combination and a starting point for many products. |
 |
|
AVR341: Four and five-wire Touch screen Controller
(19 pages, revision A, updated 07/07) Resistive
4- and 5-wire touch systems belong to the most popular and most common
touch screen technologies. AVRŽ microcontrollers are excellent in this
type of application due their analog features combined with low power
modes, required in e.g. portable battery powered applications. |
 |
|
AVR350: Xmodem CRC Receive Utility for AVR
(7 pages, revision D, updated 1/08) 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. |
 |
|
AVR360: Step Motor Controller
(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. |
 |
|
AVR400: Low Cost A/D Converter
(6 pages, revision B, updated 5/02) This Application Note targets cost and space critical applications that need an ADC. |
 |
|
AVR401: 8-Bit Precision A/D Converter
(12 pages, revision C, updated 2/03) This Application Note describes how to perform a kind of dual slope A/D conversion with an AVR Microcontroller. |
 |
|
AVR410: RC5 IR Remote Control Receiver
(10 pages, revision B, updated 5/02) This Application Note describes a receiver for the frequently used Philips/Sony RC5 coding scheme |
 |
|
AVR411: Secure Rolling Code Algorithm for Wireless Link
(22 pages, revision A, updated 04/06) This
application note describes a Secure Rolling Code Algorithm transmission
protocol for use in a unidirectional wireless communication system. |
 |
|
AVR414: User Guide - ATAVRRZ502 - Accessory Kit
(21 pages, revision B, updated 12/06) This
application note describes the ATAVRRZ502 Accessory Kit (RZ502). The
RZ502 is designed for evaluation of the Atmel AT86RF230 2.4 GHz radio
transceiver. This radio transceiver fully complies with the IEEE
802.15.4™ standard and targets low-power wireless technologies within
home, building and industrial automation such as ZigBee™. |
 |
|
AVR415: RC5 IR Remote Control Transmitter
(5 pages, revision A, updated 5/03) 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. |
 |
|
AVR433: Power Factor Corrector (PFC) with AT90PWM2/2B Re-triggable High Speed PSC
(7 pages, revision A, updated 03/06) This application note explains how to develop a stand alone PFC (Power Factor Corrector)
with the AT90PWM2. |
 |
|
AVR434: PSC Cookbook
(32 pages, revision A, updated 10/06) This application note is an introduction to the use of the Power Stage Controllers
(PSC) available in some AVR microcontrollers. The object of this document is to give
a general overview of the PSC, show their various modes of operation and explain
how to configure them. The code examples will make this clearer and can be used as
guide for other applications. The examples are developed and tested on AT90PWM3. |
 |
|
AVR435: BLDC/BLAC Motor Control Using a Sinus Modulated PWM Algorithm
(12 pages, revision A, updated 9/06) 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. |
 |
|
AVR440: Sensorless Control of Two-Phase Brushless DC Motor
(16 pages, revision A, updated 09/05) 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. |
 |
|
AVR441: Intelligent BLDC Fan Controller with Temperature Sensor and Serial Interface
(26 pages, revision A, updated 09/05) 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. |
 |
|
AVR442: PC Fan Control using ATtiny13
(10 pages, revision A, updated 09/05) 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. |
 |
|
AVR443: Sensor-based control of three phase Brushless DC motor
(8 pages, revision B, updated 02/06) 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. |
 |
|
AVR444: Sensorless control of 3-phase brushless DC motors
(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. |
 |
|
AVR446: Linear speed control of stepper motor
(15 pages, revision A, updated 06/06) 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. |
 |
|
AVR447:Sinusoidal driving of three-phase permanent magnet motor using ATmega48/88/168
(26 pages, revision A, updated 06/06) 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. |
 |
|
AVR448: Control of High Voltage 3-Phase BLDC Motor
(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. |
 |
|
AVR449: Sinusoidal driving of 3-phase permanent magnet motor using ATtiny261/461/861
(24 pages, revision B, updated 10/07) This
application note describes the implementation of sinusoidal driving for
threephase brushless DC motors with hall sensors on the
ATtiny261/461/861 microcontroller family. |
 |
|
AVR450: Battery Charger for SLA, NiCd, NiMH and Li-ion Batteries
(43 pages, revision C, updated 09/06) 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. |
 |
|
AVR451: BC100 Hardware User's Guide
(12 pages, revision A, updated 09/07) The
BC100 is reference design/development kit that targets especially
battery charging. As the kit is general in nature it can be used to
charge various battery types, as long as the requirements to charging
voltage and currents are within the output range that the kit offers
(1.2V to 38V, max 5A). |
 |
|
AVR452: Sensor-based Control of Three Phase Brushless DC Motors Using AT90CAN128/64/32
(10 pages, revision A, updated 03/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. |
 |
|
AVR453: Smart Battery Reference Design
(37 pages, revision C, updated 02/06) This
application note describes the implementation of a smart battery using
the Atmel ATmega406 microcontroller. The ATmega406 AVR microcontroller
has been created with smart battery applications in mind. The feature
set includes high accuracy ADCs, a TWI interface for SMBus
communications, as well as independent hardware features that can
protect the battery from incorrect use. |
 |
|
AVR454: Users Guide - ATAVRSB100 - Smart Battery Development kit
(20 pages, revision D, updated 06/06) This
document describes the ATAVRSB100 smart battery development kit. 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 Lithium-Ion battery packs. |
 |
|
AVR458: Charging Lithium-Ion Batteries with ATAVRBC100
(34 pages, revision B, updated 8/08) This
application note is based on the ATAVRBC100 Battery Charger reference
design (BC100) and focuses on how to use the reference design to charge
Lithium-Ion (Li-Ion) batteries. The firmware is written entirely in C
language (using IARŽ Systems Embedded Workbench) and is easy to port to
other AVRŽ microcontrollers. |
 |
|
AVR460: Embedded Web Server
(53 pages, revision C, updated 5/02) This Reference Design demonstrates how embedded applications can be connected directly to the internet. |
 |
|
AVR461: Quick Start Guide for the Embedded Internet Toolkit
(16 pages, revision B, updated 5/02) 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. |
 |
|
AVR462: Reducing the Power Consumption of AT90EIT1
(3 pages, revision A, updated 3/02) 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. |
 |
|
AVR463: Charging Nickel-Metal Hydride Batteries with ATAVRBC100
(26 pages, revision A, updated 09/07) This
application note is based on the ATAVRBC100 Battery Charger reference
design (BC100) and focuses on how to use the reference design to charge
Nickel-Metal Hydride (NiMH) batteries. The firmware is written entirely
in C language (using IAR Systems Embedded Workbench) and is easy to
port to other AVRŽ microcontrollers. |
 |
|
AVR465: Energy Meter
(40 pages, revision A, updated 07/04) 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. |
 |
|
AVR480: Anti-Pinch System for Electrical Window
(19 pages, revision B, updated 12/06) This
application note provides an example of how to create an anti-pinch
system for electrical windows. Based on Speed and Current parameters
measured out of the window DC motor, it benefits from the internal
digital and analog resources of the AVR ATmegax8 family to support the
FMVSS118 and 20/64/ECC standards. |
 |
|
AVR481: DB101 Hardware User's Guide
(10 pages, revision B, updated 09/07) The DB101 is a graphical LCD module. It demonstrates how to use an AVRŽ microcontroller to control a 128x64 pixel graphical LCD. |
 |
|
AVR482: DB101 Software User's Guide
(13 pages, revision A, updated 09/07) The
DB101 firmware is a complex piece of software that uses a number of
drivers and libraries to implement a set of applications to the user.
This document gives a brief introduction to every driver, library, and
application. |
 |
|
AVR483: DB101 Firmware - Getting Started
(17 pages, revision A, updated 2/08) This
application explains, step by step, how to create a new firmware
project, add the bare essentials for a basic graphics application,
build it and run it on the DB101. |
 |
|
AVR492: Brushless DC Motor control using AT90PWM3/3B
(26 pages, revision B, updated 5/07) This
application note describes how to implement a brushless DC motor
control in sensor mode using AT90PWM3/3B AVR microcontroller. |
 |
|
AVR493: Sensorless Commutation of Brushless DC Motor (BLDC) using AT90PWM3/3B and ATAVRMC100
(20 pages, revision B, updated 12/06) This application note describes how to implement a sensorless commutation of BLDC motors with the ATAVRMC100 developement kit. |
 |
|
AVR494: AC Induction Motor Control Using the constant V/f Principle and a Natural PWM Algorithm
(12 pages, revision A, updated 12/05) Induction motors can only run at their rated speed when they are connected
to the main power supply. This is the reason why variable frequency drives are
needed to vary the rotor speed of an induction motor. The aim of this application note is to show how these techniques
can be easily implemented on a AT90PWM3, an AVR RISC based microcontroller
dedicated to power control applications. |
 |
|
AVR495: AC Induction Motor Control Using the Constant V/f Principle and a Space-vector PWM Algorithm
(11 pages, revision A, updated 12/05) In a previous application note [AVR494], the implementation on an AT90PWM3 of an
induction motor speed control loop using the constant Volts per Hertz principle and a
natural pulse-width modulation (PWM) technique was described. A more sophisticated
approach using a space vector PWM instead of the natural PWM technique is
known to provide lower energy consumption and improved transient responses. The
aim of this application note is to show that this approach, though more computationally
intensive, can also be implemented on an AT90PWM3. |
 |
|
AVR910: In-System Programming
(12 pages, revision E, updated 8/08) This Application Note shows how to design the system to support in-system programming. |
 |
|
AVR911: AVR Open-source Programmer
(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. |
 |
|
AVR922: Add a Serial Number to your USB Device
(6 pages, revision A, updated 1/09) Adding
to the VID (Vendor ID) and the PID (Product ID), the USB device may
need a unique serial number. The AVRŽ USB products offer you this
feature and you do not need any external data to build this serial
number. All you need is to read the unique ID provided in the AVR
embedded flash. |
 |
|
AVR998: Guide to IEC60730 Class B compliance with AVR Microcontrollers
(9 pages, revision B, updated 04/08) This
application note describes the ‘Class B’ software classification,
refering to embedded firmware
which is intended to prevent unsafe operation of controlled equipment.
This document provides guidelines for compliance with the 'Class B'
classification as it relates to AVR microcontrollers. |
 |
|
Modification for Rev. B to Rev C. STK200 Errata Sheet
|
 |
|
Understanding the AVR ICEPRO I/O Registers
(9 pages, revision A, updated 4/98) This Application Note describes the I/O Register views seen in AVR Studio when using the ICEPRO emulator. |
 |
|
Using the STK500 as an AT89C51Rx2 Target Board
(7 pages, updated 7/04) This Application Note explains how to use the STK500 as a development board for 8051 Architecture microcontrollers. |
| Top |
| Getting Started |
| PDF |
Software |
Description |
 |
|
AVR078: STK524 User's Guide
(20 pages, revision A, updated 02/08) The
STK524 kit is made of the STK524 board, AVRCANAdapt and AVRLINAdapt
boards.
The STK524 board is a top module for the STK500 development board from
Atmel Corporation. It is designed to support the ATmega32M1, ATmega32C1
products and future compatible derivatives. |
 |
|
AVR470: MC310 Hardware User Guide
(20 pages, revision A, updated 7/08) The
MC310 is the device board for ATmega32M1 AVRŽ microcontroller.
Connected to the power stage board MC300, it enables to drive brushless
DC, brushed DC and stepper motors. |
 |
|
AVR471: MC320 Getting Started Guide
(7 pages, revision A, updated 11/08) |
 |
|
AVR487: AVRUSBRF01 Quick Start
(8 pages, revision A, updated 4/08) The AVRUSBRF01 reference design allows users to build an RF application in a short time and reduce time to market. |
 |
|
AVR601: Atmel Modular Evaluation Kits for Motor Control Applications
(9 pages, revision A, updated 10/08) This document describes the association between the MC300, MC301, MC303, and MC310 processor boards. |
| Top |
| Migration Notes |
| PDF |
Software |
Description |
 |
|
AVR080: Replacing ATmega103 by ATmega128
(12 pages, revision D, updated 01/04) This Application Note describes issues to be aware of when migrating from the ATmega103 to the ATmega128 Microcontroller. |
 |
|
AVR081: Replacing AT90S4433 by ATmega8
(11 pages, revision D, updated 07/03) This Application Note describes issues to be aware of when migrating from the AT90S4433 to the ATmega8 Microcontroller. |
 |
|
AVR082: Replacing ATmega161 by ATmega162
(8 pages, revision D, updated 01/04) This Application Note describes issues to be aware of when migrating from the ATmega161 to the ATmega162 Microcontroller. |
 |
|
AVR083: Replacing ATmega163 by ATmega16
(8 pages, revision F, updated 09/05) This Application Note describes issues to be aware of when migrating from the ATmega163 to the ATmega16 Microcontroller. |
 |
|
AVR084: Replacing ATmega323 by ATmega32
(6 pages, revision C, updated 7/03) This Application Note describes issues to be aware of when migrating from the ATmega323 to the ATmega32 Microcontroller. |
 |
|
AVR085: Replacing AT90S8515 by ATmega8515
(10 pages, revision C, updated 01/04) This Application Note describes issues to be aware of when migrating from the AT90S8515 to the ATmega8515 Microcontroller. |
 |
|
AVR086: Replacing AT90S8535 by ATmega8535
(11 pages, revision C, updated 4/08) This Application Note describes issues to be aware of when migrating from the AT90S8535 to the ATmega8535 Microcontroller. |
 |
|
AVR087: Migrating between ATmega8515 and ATmega162
(5 pages, revision B, updated 07/03) 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. |
 |
|
AVR088: Migrating between ATmega8535 and ATmega16
(3 pages, revision C, updated 01/04) 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. |
 |
|
AVR089: Migrating between ATmega16 and ATmega32
(3 pages, revision A, updated 06/03) 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. |
 |
|
AVR090: Migrating between ATmega64 and ATmega128
(3 pages, revision B, updated 12/05) 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. |
 |
|
AVR091: Replacing AT90S2313 by ATtiny2313
(11 pages, revision A, updated 10/03) This application note is a guide to help current AT90S2313 users convert existing designs to ATtiny2313. |
 |
|
AVR092: Replacing ATtiny11/12 by ATtiny13
(7 pages, revision A, updated 10/03) This application note is a guide to help current ATtiny11/12 users convert existing designs to ATtiny13. |
 |
|
AVR093: Replacing AT90S1200 by ATtiny2313
(7 pages, revision A, updated 10/03) This application note is a guide to help current AT90S1200 users convert existing designs to ATtiny2313. |
 |
|
AVR094: Replacing ATmega8 by ATmega88
(11 pages, revision C, updated 04/05) This application note is a guide to help current ATmega8 users convert existing designs to ATmega88. |
 |
|
AVR095: Migrating between ATmega48, ATmega88 and ATmega168
(5 pages, revision A, updated 02/04) This
application note describes issues to be aware of when migrating between
the ATmega48, ATmega88 and ATmega168 microcontrollers. |
 |
|
AVR096: Migrating from ATmega128 to AT90CAN128
(17 pages, updated 03/04) This application note is a guide to help current ATmega128 users convert existing designs to AT90CAN128. |
 |
|
AVR097: Migration between ATmega128 and ATmega1281/ATmega2561
(7 pages, revision F, updated 04/08) 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. |
 |
|
AVR098: Migration between ATmega169, ATmega329 and ATmega649
(5 pages, revision D, updated 02/07) The
ATmega169, ATmega329 and ATmega649 are designed to be a pin and
functionality compatible sub family, this application note summarizes
the differences between them. |
 |
|
AVR099: Replacing AT90S4433 by ATmega48
(11 pages, revision A, updated 07/04) This
application note is a guide to assist current AT90S4433 users in
converting existing designs to ATmega48. ATmega48 is not designed to be
a replacement for AT90S4433, but is pin compatible and has a very
similar feature set. |
 |
|
AVR500: Migration between ATmega64 and ATmega645
(6 pages, revision A, updated 07/04) This application note is a guide to assist a current ATmega64 user in converting
existing designs to ATmega645, and vice versa. ATmega64 and ATmega645
coexisting devices and they are not designed to be a replacement device for each
other |
 |
|
AVR501: Replacing ATtiny15 with ATtiny25
(9 pages, revision A, updated 03/05) This application note is a guide to assist users of ATtiny15 in converting existing designs to ATtiny25. |
 |
|
AVR502: Migration between ATmega165 and ATmega325
(4 pages, revision B, updated 12/05) 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. |
 |
|
AVR503: Replacing AT90S/LS2323 or AT90S/LS2343 with ATtiny25
(8 pages, revision B, updated 09/05) This application note is a guide to assist users of AT90S/LS2323 and, AT90S/LS2343 converting existing designs to ATtiny25. |
 |
|
AVR504: Migrating from ATtiny26 to ATtiny261/461/861
(10 pages, revision B, updated 4/08) This
application note is a guide to assist users of ATtiny26 in converting
existing designs to ATtiny261. The document will also assist ATtiny26
users to migrate to the ATtiny461 and ATtiny861 devices, which are
members of the same family as the ATtiny261 offering larger memories. |
 |
|
AVR505: Migration between ATmega16/32 and ATmega164P/324P/644(P)
(11 pages, revision C, updated 06/06) 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). |
 |
|
AVR506: Migration from ATmega169 to ATmega169P
(6 pages, revision C, updated 02/07) The
ATmega169P is designed to be pin and functionality compatible with
ATmega169, and this application note summarizes the differences between
them. |
 |
|
AVR507: Migration from ATmega329 to ATmega329P
(5 pages, revision B, updated 11/06) The
ATmega329P is designed to be pin and functionality compatible with
ATmega329, but because of improvements mentioned in this application
note
there may be a need for minor modifications in the application when
migrating from ATmega329 to ATmega329P. |
 |
|
AVR508: Migration from ATmega644 to ATmega644P
(5 pages, revision A, updated 07/06) The
ATmega644P is designed to be pin and functionality compatible with
ATmega644, but because of improvements mentioned in this application
note there may be a need for minor modifications in the application
when migrating from ATmega644 to ATmega644P. |
 |
|
AVR509: Migration between ATmega169P and ATmega329P
(4 pages, revision B, updated 11/06) The
ATmega169P and ATmega329P are designed to be a pin and functionality
compatible sub family, but because of the differences in memory sizes
and other issues mentioned in this application note there may be a need
for minor modifications in the application when porting code between
the devices. |
 |
|
AVR510: Migration between ATmega329/649 and ATmega3290/6490
(3 pages, revision A, updated 07/06) The
ATmega3290/6490 are designed to be functionality compatible with
ATmega329/649, but with 4x40 Segment LCD driver instead of 4x25
segments. Because of the extra pins needed for the LCD control they are
not pin compatible, and there will be need for modifications when
porting code between the devices. This migration note describes the
necessary modifications. |
 |
|
AVR511: Migration from ATmega3290 to ATmega3290P
(5 pages, revision B, updated 11/06) The
ATmega3290P is designed to be pin and functionality compatible with
ATmega3290, but because of improvements mentioned in this application
note there may be a need for minor modifications in the application
when migrating from ATmega3290 to ATmega3290P. |
 |
|
AVR512: Migration from ATmega48/88/168 to ATmega48P/88P/168P
(5 pages, revision A, updated 07/06) The
ATmega48P/88P/168P is designed to be pin and functionality compatible
with ATmega48/88/168, but because of improvements mentioned in this
application note there may be a need for minor modifications in the
application when migrating from ATmega48/88/168 to ATmega48P/88P/168P. |
 |
|
AVR513: Migration from ATmega165 to ATmega165P
(6 pages, revision A, updated 03/07) The
ATmega165P is designed to be pin and functionality compatible with
ATmega165, and this application note summarizes the differences between
them. |
 |
|
AVR514: Migration from ATmega325 to ATmega325P
(5 pages, revision A, updated 03/07) The
ATmega325P is designed to be pin and functionality compatible with
ATmega325, but because of improvements mentioned in this application
note
there may be a need for minor modifications in the application when
migrating from ATmega329 to ATmega329P. |
 |
|
AVR515: Migrating from ATmega48/88/168 and ATmega48P/88P/168P/328P to ATtiny48/88
(10 pages, revision A, updated 09/07) This
application note is a guide to assist users of ATmega48/88/168 and
ATmega48P/88P/168P/328P in converting existing designs to ATtiny48/88. |
 |
|
AVR520: Migrating from ATtiny13 to ATtiny13A
(4 pages, revision B, updated 5/08) The
ATtiny13A is a functionally identical, drop-in replacement for the
ATtiny13. All devices are subject to the same qualification process and
same set of production tests but since the manufacturing process is not
the same, some electrical characteristics differ.
ATtiny13 and
ATtiny13A have separate data sheets. This application note aims to
outline the differences between the two devices and the data sheets, |
 |
|
AVR521: Migrating from ATmega32 to ATmega32A
(3 pages, revision A, updated 6/08) The
ATmega32A is a functionally identical, drop-in replacement for the
ATmega32(L). All devices are subject to the same qualification process
and same set of production tests but since the manufacturing process is
not the same, some electrical characteristics differ.
ATmega32(L)
and ATmega32A have separate data sheets. This application note aims to
outline the differences between the two devices and the data sheets. |
 |
|
AVR522: Migrating from ATmega16 to ATmega16A
(3 pages, revision A, updated 6/08) The
ATmega16A is a functionally identical, drop-in replacement for the
ATmega16(L). All devices are subject to the same qualification process
and same set of production tests but since the manufacturing process is
not the same, some electrical characteristics differ.
ATmega16(L)
and ATmega16A have separate data sheets. This application note aims to
outline the differences between the two devices and the data sheets. |
 |
|
AVR523: Migration from ATmega8 to ATmega8A
(3 pages, revision A, updated 6/09) The
ATmega8A is a functionally identical, drop-in replacement for the
ATmega8(L). All devices are subject to the same qualification process
and same set of production tests but since the manufacturing process is
not the same, some electrical characteristics differ.
ATmega8(L)
and ATmega8A have separate data sheets. This application note aims to
outline the differences between the two devices and the data sheets. |
 |
|
AVR524: Migration from ATmega64 to ATmega64A
(3 pages, revision A, updated 3/09) The
ATmega64A is a functionally identical, drop-in replacement for the
ATmega64. All devices are subject to the same qualification process and
same set of production tests, but as the manufacturing process is not
the same some electrical characteristics differ.br> ATmega64 and
ATmega64A have separate datasheets. This application note outlines the
differences between the two devices and the datasheets. There is also a
detailed change log to assist the user at the end of the ATmega64A
datasheet. Remember to always use the latest revision of the device
datasheet. |
 |
|
AVR525: Migration from ATmega128 to ATmega128A
(3 pages, revision A, updated 6/09) The
ATmega128A is a functionally identical, drop-in replacement for the
ATmega128. All devices are subject to the same qualification process
and same set of production tests, but as the manufacturing process is
not the same some electrical characteristics differ. ATmega128 and
ATmega128A have separate datasheets. This application note outlines the
differences between the two devices and the datasheets. There is also a
detailed change log to assist the user at the end of the ATmega128A
datasheet. Remember to always use the latest revision of the device
datasheet. |
 |
|
AVR526: Migrating from ATtiny24/44 to ATtiny24A/44A
(3 pages, revision A, updated 12/08) The
ATtiny24A/44A is a functionally identical, drop-in replacement for the
ATtiny24/44. All devices are subject to the same qualification process
and same set of production tests, but as the manufacturing process is
not the same some electrical characteristics differ. |
 |
|
AVR527: Migrating from ATmega164P/324P to ATmega164PA/324PA
(3 pages, revision B, updated 2/09) The
ATmega164PA/324PA is a functionally identical, drop-in replacement for
the ATmega164P/324P. All devices are subject to the same qualification
process and same set of production tests, but as the manufacturing
process is not the same some electrical characteristics differ. |
 |
|
AVR528: Migrating from ATmega48/88/168 and ATmega48P/88P/168P to ATmega48PA/88PA/168PA
(3 pages, revision D, updated 5/09) The
ATmega48PA/88PA/168PA is a functionally identical, drop-in replacement
for the ATmega48P/88P/168P. All devices are subject to the same
qualification process and same set of production tests, but as the
manufacturing process is not the same some electrical characteristics
differ. |
 |
|
Migrating from T89C51CC01 & AT89C51CC03, to AT90CAN128, AT90CAN64, AT90CAN32
(7 pages, revision A, updated 06/05) This application note is a guide, on the CAN controller, to help current T89C51CC01,
AT89C51CC03 users convert existing designs to AT90CAN128, AT90CAN64,
AT90CAN32. |
| Top |
| Timers and Oscillators |
| PDF |
Software |
Description |
 |
|
AVR186: Best practices for the PCB layout of Oscillators
(4 pages, revision A, updated 03/08) This
application note provides guidelines to design the PCB layout in order
not to risk failure and unstable oscillator operation. |
| Top |
| XMEGA |
| PDF |
Software |
Description |
 |
|
AVR1907: Xplain Hardware User's Guide
(6 pages, revision A, updated 2/09) The
Xplain evaluation kit is a hardware platform to evaluate the
ATxmega128A1. The kit offers a larger range of features that enables
the XMEGA™ user to get started using the XMEGA’s peripherals right away
and to get an understanding of how to integrate the XMEGA in their own
design. |
| Top |
| XMEGA Microcontrollers |
| PDF |
Software |
Description |
 |
|
AVR1000: Getting Started Writing C-code for XMEGA
(15 pages, revision A, updated 2/08) Short
development times and high quality requirements on electronic products
has made high-level programming languages a requirement. The choice of
programming language alone does not ensure high readability and
reusability; good coding style does. Therefore the XMEGA™ peripherals,
header files and drivers are designed with this in mind. |
 |
|
AVR1001: Getting Started With the XMEGA Event System
(8 pages, revision A, updated 2/08) The
XMEGA™ event system is a set of features that allows peripherals to
interact without intervention from the CPU. Several peripheral modules
can generate events, often on the same conditions as interrupt requests. |
 |
|
AVR1003: Using the XMEGA Clock System
(10 pages, revision B, updated 4/09) The
XMEGA™ Clock System is a set of highly flexible modules that provides a
large portfolio of internal and external clock sources. An internal
high-frequency PLL and a flexible prescaler block provide a vast amount
of possible clock source configurations, both for the CPU and
peripherals. |
 |
|
AVR1005: Getting started with XMEGA
(10 pages, revision A, updated 3/09) The
AVRŽ product portfolio has been expanded with the XMEGA™ family. Many
ask if this is a new architecture and are uncertain how their
experience with megaAVRŽ transfers to AVR XMEGA. This document briefly
introduces the similarities and differences between the two AVR
families, and provides an overview of the available tool chain. |
 |
|
AVR1300: Using the XMEGA ADC
(12 pages, revision A, updated 4/08) This
application note describes the basic functionality of the XMEGA ADC
with code examples to get up and running quickly. A driver interface
written in C is included as well. |
 |
|
AVR1301: Using the XMEGA DAC
(9 pages, revision B, updated 4/08) This
application note describes the basic functionality of the XMEGA DAC
with code examples to get up and running quickly. A driver interface
written in C is included as well. |
 |
|
AVR1302: Using the XMEGA Analog Comparator
(6 pages, revision B, updated 4/08) This
application note describes the basic functionality of the XMEGA AC with
code examples to get up and running quickly. A driver interface written
in C is included as well. |
 |
|
AVR1303: Use and configuration of IR communication module
(5 pages, revision C, updated 7/08) This
application note describes the basic functionality of the IRCOM module
in the AVRŽ XMEGA™ with code examples to get up and running quickly. A
driver interface written in C is included as well. |
 |
|
AVR1304: Using the XMEGA DMA Controller
(10 pages, revision B, updated 4/08) This
application note describes the basic functionality of the XMEGA DMAC
with code examples to get up and running quickly. A driver interface
written in C is included as well. |
 |
|
AVR1305: XMEGA Interrupts and the Programmable Multi-level Interrupt Controller
(6 pages, revision A, updated 2/08) The
XMEGA™ Interrupt mechanisms and the Programmable Multi-level Interrupt
Controller (PMIC) are described in this application note. The
application note also offers a C code example that shows how the PMIC
can be accessed. |
 |
|
AVR1306: Using the XMEGA Timer/Counter
(17 pages, revision A, updated 2/08) The
XMEGA™ Timer/Counter modules are true 16-bit Timer/Counters with Input
Capture and Pulse Width Modulation (PWM) functionality.
This application note gives an introduction on how to use the XMEGA
Timer/Counter modules for timing, Input Capture and PWM. |
 |
|
AVR1307: Using the XMEGA USART
(7 pages, revision A, updated 2/08) This
application note describes how to set up and use the USART in
asynchronous mode in the XMEGA™. C code drivers and examples are
included for both polled and interrupt controlled USART applications. |
 |
|
AVR1308: Using the XMEGA TWI
(11 pages, revision A, updated 2/08) This
application note describes how to set up and use the TWI module in the
XMEGA. C code drivers and examples are included for both master and
slave applications. |
 |
|
AVR1309: Using the XMEGA SPI
(7 pages, revision A, updated 2/08) This
application note describes how to set up and use the SPI module in the
AVRŽ XMEGA. Both interrupt controlled and polled C code drivers and
examples are included for master and slave applications. |
 |
|
AVR1310: Using the XMEGA Watchdog Timer
(9 pages, revision B, updated 4/09) The
XMEGA™ AVRŽ family offers a very robust internal watchdog: Ordinary
integrated Watchdog Timers often use the CPU clock as clock source,
while the XMEGA Watchdog Timer’s clock source is independent from the
CPU clock. This means that failure of the main clock would not affect
the Watchdog Timer operation. |
 |
|
AVR1311: Using the XMEGA Timer/Counter Extensions
(8 pages, revision A, updated 4/08) Some
Timer/Counters on the XMEGA™ have extension modules that are useful for
applications such as motor and power control applications. This
document gives an introduction to the extension modules available and
how to use them. |
 |
|
AVR1312: Using the XMEGA External Bus Interface
(10 pages, revision A, updated 2/08) This
application note describes the basic functionality of the XMEGA EBI
with code examples to get up and running quickly. A driver interface
written in C is included as well. |
 |
|
AVR1313: Using the XMEGA IO Pins and External Interrupts
(9 pages, revision A, updated 2/08) This application note gives an introduction to the usage of the highly configurable XMEGA™ I/O pins and external interrupts. |
 |
|
AVR1314: Using the XMEGA Real Time Counter
(6 pages, revision A, updated 2/08) This application note covers the use of the 16-bit Real Time Counter (RTC) in the XMEGA™. |
 |
|
AVR1315: Accessing the XMEGA EEPROM
(8 pages, revision A, updated 4/08) This
application note describes the basic functionality of the XMEGA™ EEPROM
with code examples to get up and running quickly. A driver interface
written in C is included as well. |
 |
|
AVR1316: XMEGA Self-programming
(11 pages, revision B, updated 11/08) This
application note contains descriptions of the basic functionality of
the XMEGA™ Self-programming feature and code examples to get up and
running quickly. |
 |
|
AVR1317: Using the XMEGA built-in DES accelerator
(7 pages, revision A, updated 4/08) The
XMEGA family has an instruction set extension that is performing DES
iterations. This application note describes the basic functionality of
the XMEGA DES instructions with code examples to get up and running
quickly. A driver interface written in C and Assembler is included as
well. |
 |
|
AVR1318: Using the XMEGA built-in AES accelerator
(7 pages, revision A, updated 4/08) This
application note describes the basic functionality of the XMEGA AES
with code examples to get up and running quickly. A driver interface
written in C is included as well. |
 |
|
AVR1600: Using the XMEGA Quadrature
(8 pages, revision A, updated 8/08) This application note describes the basic functionality of the XMEGA QDECs with code example. |
 |
|
AVR1605: XMEGA™ Boot Loader Quick Start Guide
(12 pages, revision A, updated 5/09) This
application note describes how to use a boot loader application with
one of the XMEGA family devices (i.e. ATxmega128A1) and how an AVRŽ
with the Store Program Memory (SPM) instruction can be configured for
Self-programming. |
 |
|
AVR1900: Getting started with ATxmega128A1
(15 pages, revision A, updated 4/08) This document contains information about how to get started with the ATxmega128A1 on STKŽ600. |
| Top |
|