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 D,
updated 03/05)
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
(16 pages, revision B,
updated 5/02)
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. |
|
|
AVR040: EMC Design
Considerations (18
pages, revision D, updated 06/06)
This Application Note
covers the most common EMC problems designers
encounter when using Microcontrollers.
|
|
|
AVR042: AVR Hardware
Design Considerations
(14 pages, revision E,
updated 06/06)
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.
|
|
|
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 B,
updated 02/06)
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 C, updated 02/06)
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 STK®504
(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 and AVR Butterfly
(18 pages, revision C,
updated 02/06)
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.
|
|
|
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. |
|
|
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
(15 pages, revision B,
updated 01/04)
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 F,
updated 08/06)
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. |
|
|
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 (14
pages, revision B, updated 09/05)
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. |
|
|
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
(24 pages, revision A, updated 9/02)
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 (19
pages, revision A, updated 02/06)
To obtain the related
software code, click on this
registration form link.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 (20
pages, revision A, updated 01/06)
To obtain the related
software code, click on this
registration form link.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
(20 pages, revision A,
updated 03/06)
To obtain the related
software code, click on this
registration form link. 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)
To obtain the related
software code, click on this
registration form link. 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. |
|
|
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
(11 pages, revision A,
updated 8/97)
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
(20 pages, revision A,
updated 01/06)
To obtain the related
software code, click on this
registration form link.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.
|
|
|
AVR329: USB Firmware
Architecture (15
pages, revision A, updated 02/06)
The aim of this document
is to describe the USB firmware and give an
overview of the architecture, using AT90USB
microcontrollers. The main files are described
in order to give the user the easiest way to
customize the firmware and build his own
application. |
|
|
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.
|
|
|
AVR350: Xmodem CRC
Receive Utility for AVR
(7 pages, revision C,
updated 09/05)
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.
|
|
|
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 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 09/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.
|
|
|
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.
|
|
|
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.
|
|
|
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. |
|
|
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
(118 pages, revision A,
updated 06/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. |
|
|
AVR492: Brushless DC
Motor control using AT90PWM3
(26 pages, revision A,
updated 07/05)
This application note
describes how to implement a brushless DC motor
control in sensor mode using AT90PWM3 AVR
microcontroller. |
|
|
AVR493: Sensorless
Commutation of Brushless DC Motor (BLDC) using
AT90PWM3 and ATAVRMC100
(19 pages, revision A,
updated 07/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. |
|
|
AVR8: Testing
Application Note
(1 pages, revision A, updated 09/06)
|
|
|
AVR910: In-System
Programming (10
pages, revision C, updated 11/00)
This Application Note
shows how to design the system to support
in-system programming. |
|
|
AVR911: AVR
Open-source Programmer
(13 pages, revision A,
updated 07/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.
|
|
|
AVR914: CAN & UART
based Bootloader for AT90CAN32, AT90CAN64, &
AT90CAN128 (28
pages, revision B, updated 01/06)
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. This bootloader example will help you
develop your own bootloader with custom security
levels adapted to your own applications.
|
|
|
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 |
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
(10 pages, revision B,
updated 7/03)
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
E, updated 07/06)
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
C, updated 04/06)
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. |
|
|
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 B,
updated 06/06)
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/649 to ATmega329P/649P
(5 pages, revision A,
updated 07/06)
The ATmega329P/649P is
designed to be pin and functionality compatible
with ATmega329/649, but because of improvements
mentioned in this application note there may be
a need for minor modifications in the
application when migrating from ATmega329/649 to
ATmega329P/649P.
|
|
|
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, ATmega329P and ATmega649P
(4 pages, revision
A, updated 07/06)
The ATmega169P,
ATmega329P and ATmega649P 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/6490 to ATmega3290P/6490P
(5 pages, revision A,
updated 07/06)
The ATmega3290P/6490P is
designed to be pin and functionality compatible
with ATmega3290/6490, but because of
improvements mentioned in this application note
there may be a need for minor modifications in
the application when migrating from
ATmega3290/6490 to ATmega3290P/6490P.
|
|
|
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.
|
|
|
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.
|