| Note |
Software |
Description |
|
|
AVR000: Register and Bit-Name Definitions for the AVR
Microcontroller (1 pages, 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, updated 02/04) 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 C for AVR (10 pages, updated 5/02) The purpose of this Application Note is to guide new users
through the initial settings of the Embedded Workbench from IAR and compile a
simple C program. |
|
|
AVR031: Getting Started with ImageCraft C for AVR (8 pages, 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, 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, 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, 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, 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 (17 pages, updated 01/04) This Application Note covers the most common EMC problems
designers encounter when using Microcontrollers. |
|
|
AVR042: AVR Hardware Design Considerations (14 pages, updated 01/04) 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 (13 pages, updated 02/04) This application note describes a method to calibrate the
internal RC oscillator and targets all AVR devices with tunable RC oscillator.
Furthermore, an easily adaptable calibration firmware source code is also
offered. This firmware allows device calibration using the AVR tools STK500,
AVRISP or JTAGICE. It can also be used for 3rd party calibration systems, based
on production programmers. |
|
|
AVR060: JTAG ICE Communication Protocol (20 pages, updated 01/04) This application note describes the communication protocol
used between AVR Studio® and JTAG ICE. |
|
|
AVR061: STK500 Communication Protocol (31 pages, 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. |
|
|
AVR064: STK502 - A Temperature Monitoring System with LCD Output
(24 pages, updated 2/03) The STK502 board is a top module designed to add ATmega169
support to the STK500 development board from Atmel. This application note is an
example of how to use the ATmega169 and the STK502. |
|
|
AVR065: LCD Driver for the STK502 and AVR Butterfly (18 pages, updated 01/04) 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. |
|
|
AVR070: Modifying AT90ICEPRO and ATICE10 to Support Emulation of
AT90S8535 (5 pages, 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, 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, updated 5/02) This Application Note describes how to upgrade the
AT90ICEPRO emulator to ATICE10 Version 2.0 |
|
|
AVR080: Replacing ATmega103 by ATmega128 (12 pages, 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, 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, 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 (7 pages, updated 01/04) 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, 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, 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, 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, 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, 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, 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 (2 pages, updated 06/03) 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, 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, 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, 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, updated 02/04) 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, updated 02/04) This application note describes issues to be aware of when
migrating between the ATmega48, ATmega88 and ATmega168 microcontrollers.
|
|
|
AVR100: Accessing the EEPROM (12 pages, updated 12/98) 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, 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, updated 5/02) This Application Note contains routines for transfer of
data blocks. |
|
|
AVR104: Buffered Interrupt Controlled EEPROM Writes (9 pages, 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, 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. |
|
|
AVR108: Setup and use of the LPM Instructions (4 pages, updated 5/02) This Application Note describes how to access constants
saved in Flash program memory of the AVR microcontrollers |
|
|
AVR109: Self-programming (14
pages, updated 1/03) 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
(13 pages, updated 03/04) 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. |
|
|
AVR128: Setup and use the Analog Comparator (4 pages, 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 ad use the AVR Timers (16 pages, 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, 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, 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, updated 02/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
(12 pages, updated 01/04) This Application Note describes how to implement a
real-time (RTC) on AVR microcontrollers that features the RTC module.
|
|
|
AVR180: External Brown-Out Protection (16 pages, 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, 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 (19 pages, updated 10/98) 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, updated 6/02) Examples of using the multiplier for 8-bit
arithmetic. |
|
|
AVR202: 16-Bit Arithmetics (3
pages, updated 5/02) This Application
Note lists program examples for arithmetic operation on 16-bit values.
|
|
|
AVR204: BCD Arithmetics (14
pages, updated 01/03) This Application
Note lists routines for BCD arithmetics. |
|
|
AVR220: Bubble Sort (5 pages,
updated 5/02) This Application Note
implements the Bubble Sort algorithm on the AVR controllers. |
|
|
AVR222: 8-Point Moving Average Filter (5 pages, 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, 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, updated 9/03) 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). |
|
|
AVR236: CRC check of Program Memory (9 pages, 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 (12 pages, updated 8/03) This Application Note describes a simple interface to a 4
x 4 keypad designed for low power battery operation. |
|
|
AVR242: 8-bit Microcontroller Multiplexing LED Drive & a 4x4
Keypad. (26 pages, 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, 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, updated 11/03) This application note describes some basic routines to
interface the AVR to a terminal window using the UART (hardware or
software). |
|
|
AVR301: C Code for Interfacing AVR® to AT17CXXX FPGA
Configuration Memories (20 pages, 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 |
|
|
AVR304: Half Duplex Interrupt Driven Software UART (11 pages, 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 (8 pages, updated 5/02) 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, 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, 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, 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. |
|
|
AVR313: Interfacing the PCAT Keyboard (13 pages, 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, 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. |
|
|
AVR320: Software SPI Master (5 pages, updated 5/02) 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. |
|
|
AVR325: High-Speed Interface to Host EPP Parallel Port
(7 pages, 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). |
|
|
AVR335: Digital Sound Recorder with AVR and DataFlash
(29 pages, updated 01/04) 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 |
|
|
AVR350: XmodemCRC Receive Utility for AVR (16 pages, updated 5/02) 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. |
|
|