PDF Software Description

advertisement
ATA6824 and ATmega88
(13 pages, revision A, updated 8/07)
AVR077: Opto Isolated Emulation
for the DebugWIRE
(9 pages, revision A, updated 1/08)
AVR137: Writing Software
Compatible for AT90PWM2/3 and
AT90PWM2B/3B
(3 pages, revision A, updated 10/06)
AVR191: Anti-Pinch Algorithm for
AVR Adaptation Procedure
(10 pages, revision A, updated
11/06)
AVR275: Sensor-based Control of
Three Phase Brushless DC Motors
Using AT90USB family
(10 pages, revision A, updated
09/06)
AVR276: USB Software Library for
AT90USBxxx Microcontrollers
(27 pages, revision A, updated
01/07)
AVR277: On-The-Go
(OTG) add-on to USB Software
Library
(15 pages, revision A, updated
07/07)
AVR280 USB Host CDC
Demonstration
(14 pages, revision A, updated
09/07)
Fully Integrated BLDC Motor
Control from the Signal Generation
to the Full BLDC Motor Control
Chain
(17 pages, revision A, updated 3/07)
USB PC Drivers Based on Generic
HID Class
(6 pages, revision A, updated 04/06)
AVR181: Automotive Grade0 PCB and Assembly
Recommendations
(8 pages, revision A, updated 09/07)
AVR282: USB Firmware Upgrade
for AT90USB
(13 pages, revision A, updated 1/08)
AVR2015: RZRAVEN Quick Start
Guide
(20 pages, revision A, updated
02/08)
DC Motor Control in High Temperature Environment
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, refridgerators, etc.
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.
The purpose of this document is to explain how to adapt an antipinch algorithm to a specified powered window.
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.
This document describes the AT90USBxxx USB software library
and illustrate how to develop a USB device or reduced host
applications using this library
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.
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.
The purpose of this document is to explain the theory and
application of Atmel’s integrated BLDC driver solution.
This document gives information on integrating the Atmel USB
HID DLL functions. Simple code examples that demonstrate
different types of implementation are given.
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.
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.
This application note describes how to get started with the
RZRAVEN kit. The RZRAVEN kit is built around three main
components; the hardware itself, the firmware running on the
RZUSBSTICK and AVRRAVENs, and the AVR Wireless Services
PC suite. This document describes how to install the AVR Wireless
PC Suite, use its different features and how to operate the
AVRRAVENs accordingly.
AVR2016: RZRAVEN Hardware
User's Guide
(26 pages, revision C, updated
03/08)
AVR000: Register and Bit-Name
Definitions for the AVR
Microcontroller
(1 pages, revision B, updated 4/98)
AVR001: Conditional Assembly
and portability macros
(6 pages, revision D, updated 03/05)
AVR030: Getting Started with IAR
Embedded Workbench for Atmel
AVR
(10 pages, revision D, updated
10/04)
AVR031: Getting Started with
ImageCraft C for AVR
(8 pages, revision B, updated 5/02)
AVR032: Linker Command Files
for the IAR ICCA90 Compiler
(11 pages, revision B, updated 5/02)
AVR033: Getting Started with the
CodeVisionAVR C Compiler
(16 pages, revision B, updated 5/02)
AVR034: Mixing C and Assembly
Code with IAR Embedded
Workbench for AVR
(8 pages, revision B, updated 4/03)
AVR035: Efficient C Coding for
AVR
(22 pages, revision D, updated
01/04)
AVR040: EMC Design
Considerations
(18 pages, revision D, updated
06/06)
AVR041: EMC Performances
Improvement for ATmega32M1
(6 pages, revision A, updated 02/08)
AVR042: AVR Hardware Design
Considerations
(14 pages, revision E, updated
06/06)
AVR053: Calibration of the internal
RC oscillator
The RZRAVEN is a development kit for the AT86RF230 radio
transceiver and the AVR microcontroller. It serves as a versatile and
professional platform for developing and debugging a wide range of
RF applications; spanning from: simple point-to-point
communication through full blown sensor networks with numerous
nodes running complex communication stacks. On top of this, the
kit provides a nice human interface, which spans from PC
connectivity, through LCD and audio input and output.
This Application Note contains files which allow the user to use
Register and Bit names from the databook when writing assembly
programs.
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.
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.
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.
This Application Note describes how to make a linker command
file for use with the IAR ICCA90 C-compiler for the AVR
Microcontroller.
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.
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.
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.
This Application Note covers the most common EMC problems
designers encounter when using Microcontrollers.
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.
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.
This application note describes a method to calibrate the internal
RC oscillator and targets all AVR devices with tunable RC
(15 pages, revision G, updated
05/06)
AVR054: Run-time calibration of
the internal RC oscillator
(17 pages, revision B, updated
02/06)
AVR055: Using a 32kHz XTAL for
run-time calibration of the internal
RC
(16 pages, revision C, updated
02/06)
AVR060: JTAG ICE
Communication Protocol
(20 pages, revision B, updated
01/04)
AVR061: STK500 Communication
Protocol
(31 pages, revision B, updated 4/03)
AVR063: LCD Driver for the
STK504
(13 pages, revision A, updated
04/06)
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)
AVR067: JTAGICE mkII
Communication Protocol
(82 pages, revision C, updated
04/06)
AVR068: STK500 Communication
Protocol
(37 pages, revision C, updated
06/06)
AVR069: AVRISP mkII
Communication Protocol
(24 pages, revision B, updated
02/06)
AVR070: Modifying AT90ICEPRO
and ATICE10 to Support Emulation
of AT90S8535
(5 pages, revision C, updated 5/02)
AVR072: Accessing 16-bit I/O
Registers
(4 pages, revision B, updated 5/02)
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.
This application note describes how to calibrate the internal RC
oscillator via the UART.
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.
This application note describes the communication protocol used
between AVR Studio® and JTAG ICE.
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.
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.
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.
This document describes the communication protocol used between
AVR Studio and JTAGICE mkII.
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.
This document describes the AVRISP mkII protocol. The firmware
is distributed with AVR Studio 4.12 or later.
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.
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
AVR073: Accessing 10- and 16-bit
registers in ATtiny261/461/861
(6 pages, revision B, updated 1/08)
AVR074: Upgrading AT90ICEPRO
to ICE10
(8 pages, revision B, updated 5/02)
AVR100: Accessing the EEPROM
(7 pages, revision C, updated 09/05)
AVR101: High Endurance
EEPROM Storage
(5 pages, revision A, updated 9/02)
AVR102: Block Copy Routines
(5 pages, revision B, updated 5/02)
AVR103: Using the EEPROM
Programming Modes
(5 pages, revision A, updated 03/05)
AVR104: Buffered Interrupt
Controlled EEPROM Writes
(9 pages, revision A, updated 07/03)
AVR105: Power efficient high
endurance parameter storage in
Flash memory
(10 pages, revision A, updated 9/03)
AVR106: C functions for reading
and writing to Flash memory
(10 pages, revision B, updated
08/06)
AVR107: Interfacing AVR serial
memories
(22 pages, revision A, updated
03/05)
AVR108: Setup and use of the LPM
Instructions
(4 pages, revision B, updated 5/02)
AVR109: Self Programming
(11 pages, revision B, updated
06/04)
AVR120: Characterization and
Calibration of the ADC on an AVR
(15 pages, revision D, updated
02/06)
AVR121: Enhancing ADC
resolution by oversampling
(14 pages, revision A, updated
09/05)
AVR122: Calibration of the AVR's
explains how to safely read and write these 16-bit registers.
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.
This Application Note describes how to upgrade the AT90ICEPRO
emulator to ATICE10 Version 2.0
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.
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.
This Application Note contains routines for transfer of data blocks.
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.
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.
This application note describes how to implement a high endurance
parameter storage method in Flash memory using the selfprogramming feature of the AVR.
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.
This application note describes the functionality and the
architecture of SPI serial memories drivers as well as the motivation
of the selected solution.
This Application Note describes how to access constants saved in
Flash program memory of the AVR microcontrollers
This Application note describes how an AVR with the SPM
instruction can be configured for Self Programming.
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 runtime compensation.
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.
This application note describes how to calibrate and compensate the
internal temperature reference
(14 pages, revision A, updated 2/08)
AVR128: Setup and use the Analog
Comparator
(4 pages, revision B, updated 5/02)
AVR130: Setup and use the AVR
Timers
(16 pages, revision A, updated 2/02)
AVR131: Using the AVR’s Highspeed PWM
(8 pages, revision A, updated 09/03)
AVR132: Using the Enhanced
Watchdog Timer
(15 pages, revision B, updated
01/04)
AVR133: Long Delay Generation
Using the AVR Microcontroller
(8 pages, revision B, updated 01/04)
AVR134: Real-Time Clock using
the Asynchronous Timer
(9 pages, revision F, updated 08/06)
AVR135: Using Timer Capture to
Measure PWM Duty Cycle
(12 pages, revision A, updated
10/05)
AVR136: Low-jitter Multi-channel
Software PWM
(5 pages, revision A, updated 05/06)
AVR138: ATmega32M1 family
PSC Cookbook
(17 pages, revision A, updated
03/08)
AVR140: ATmega48/88/168 family
run-time calibration of the Internal
RC oscillator
(12 pages, revision A, updated
09/06)
AVR151: Setup and use of the SPI
(14 pages, revision B, updated
09/05)
AVR155: Accessing I2C LCD
Display Using the AVR 2-Wire
Serial Interface
(10 pages, revision B, updated
09/05)
temperature measurements from the ATtiny25/45/85. It can also be
used on other AVR® microcontrollers with internal temperature
sensors.
This Application Note serves as an example on how to set up and
use the AVR's on-chip Analog Comparator.
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.
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.
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.
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.
This Application Note describes how to implement a real-time
(RTC) on AVR microcontrollers that features the RTC module.
This application note describes how the pulse width and period may
be computed using the Input Capture Unit (ICP).
This application note shows how an multi-channel software pulsewidth modulation can be implemented. The implementation uses an
8-bit timer with overflow interrupt to generate 10 PWM channels
with very low jitter.
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.
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.
This application note describes how to setup and use the on-chip
Serial Peripheral Interface (SPI) of the AVR microcontrollers.
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)
AVR182: Zero Cross Detector
(8 pages, revision B, updated 01/04)
AVR200: Multiply and Divide
Routines
(21 pages, revision C, updated
05/06)
AVR2001: AT86RF230 Software
Programmer's Guide
(62 pages, revision A, updated
07/07)
AVR2005: Design Considerations
for the AT86RF230
(9 pages, revision A, updated 08/07)
AVR2006: Design and
characterization of the Radio
Controller Boards 2.4GHz PCB
Antenna
(9 pages, revision A, updated 08/07)
AVR2007: IEEE802.15.4 MAC
power consumptions for
AT86RF230 and ATmega1281
(14 pages, revision A, updated
09/07)
AVR2009: AT86RF230 – Software
Programming Model
(4 pages, revision A, updated 08/07)
AVR201: Using the AVR Hardware
Multiplier
(11 pages, revision C, updated 6/02)
AVR202: 16-Bit Arithmetics
(3 pages, revision B, updated 5/02)
AVR204: BCD Arithmetics
(14 pages, revision B, updated
01/03)
AVR220: Bubble Sort
(5 pages, revision B, updated 5/02)
AVR221: Discrete PID controller
(10 pages, revision A, updated
05/06)
AVR222: 8-Point Moving Average
Filter
(5 pages, revision B, updated 5/02)
AVR223: Digital Filters with AVR
(24 pages, revision A, updated 9/02)
AVR230: DES Bootloader
(24 pages, revision D, updated
04/05)
This Application Note shows in detail how to prevent system
malfunction during periods of insufficient power supply voltage.
This Application Note describes how to implement an efficient zero
cross detector for mains power lines using an AVR microcontroller.
This Application Note lists subroutines for multiplication and
division of 8 and 16-bit signed and unsigned numbers.
This document goes into greater depth than the datasheet when it
comes to correct configuration and usage of the features that the
radio transceiver provides.
The ATAVRRZ502 is designed for evaluation of the Atmel
AT86RF230 2.4 GHz radio transceiver. This application note
describes the design and layout of the so-called “Radio Extender
Board” (REB) that are provided with the ATAVRRZ502.
This application note describes the PCB antenna used on the Radio
Controller Board as a part of the ATAVRRZ200. This kit is
designed for the evaluation of the Atmel® AT86RF230 2.45 GHz
radio transceiver.
This Application Note describes two ways of estimating the current
consumption of the AT86RF230 radio and the ATmega1281
microcontroller as a transceiver system for the IEEE802.15.4™
standard.
The AT86RF230 Software Programming Model (SWPM) shall
provide a reference for developers utilizing the radio transceiver
AT86RF230 as effective as possible.
Examples of using the multiplier for 8-bit arithmetic.
This Application Note lists program examples for arithmetic
operation on 16-bit values.
This Application Note lists routines for BCD arithmetics.
This Application Note implements the Bubble Sort algorithm on the
AVR controllers.
This application note describes a simple implementation of a
discrete Proportional-Integral-Derivative (PID) controller.
This Application Note gives an demonstration of how the
addressing modes in the AVR architecture can be utlized.
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.
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
AVR231: AES Bootloader
(29 pages, revision D, updated
08/06)
AVR236: CRC check of Program
Memory
(9 pages, revision B, updated 5/02)
AVR240: 4x4 Keypad-Wake Up on
Keypress
(14 pages, revision D, updated
06/06)
AVR241: Direct driving of LCD
display using general I/O
(11 pages, revision A, updated
04/04)
AVR242: 8-bit Microcontroller
Multiplexing LED Drive & a 4x4
Keypad.
(26 pages, revision B, updated 5/02)
AVR243: Matrix Keyboard Decoder
(11 pages, revision A, updated
01/03)
AVR244: UART as ANSI Terminal
Interface
(8 pages, revision A, updated 11/03)
AVR245: Code Lock with 4x4
Keypad and I2C™ LCD
(9 pages, revision A, updated 10/05)
AVR270: USB Mouse
Demonstration
(19 pages, revision A, updated 2/06)
AVR271: USB Keyboard
Demonstration
(20 pages, revision A, updated 1/06)
AVR272: USB CDC Demonstration
UART to USB Bridge
(20 pages, revision A, updated
03/06)
AVR273: USB Mass Storage
Implementation
(23 pages, revision A, updated
03/06)
AVR274: Single-wire Software
UART
(14 pages, revision A, updated
03/07)
AVR286: LIN Firmware Base for
LIN/UART Controller
(19 pages, revision A, updated
03/08)
AVR301: C Code for Interfacing
AVR® to AT17CXXX FPGA
Data Encryption Standard (3DES).
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.
The Application Note describes CRC (Cyclic Redundancy Check)
theory and implementation of CRC checking of program memory
for secure applications.
This Application Note describes a simple interface to a 4 x 4
keypad designed for low power battery operation.
This application note describes software driving of LCDs with one
common line, using the static driving method.
This Application Note describes a comprehensive system providing
a 4 x 4 keypad as input into a real time clock/timer with two
outputs.
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.
This application note describes some basic routines to interface the
AVR to a terminal window using the UART (hardware or
software).
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.
This document describes a simple mouse project. It allows users to
quickly test USB hardware using AT90USB without any driver
installation.
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.
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.
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.
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.
This Application Note describes how to In-System-Program (ISP)
and Atmel FPGA Configuration Memory using an Atmel AVR
Configuration Memories
(20 pages, revision D, updated
01/04)
AVR303: SPI-UART Gateway
(5 pages, revision A, updated 03/05)
AVR304: Half Duplex Interrupt
Driven Software UART
(11 pages, revision A, updated 8/97)
AVR305: Half Duplex Compact
Software UART
(9 pages, revision C, updated 09/05)
AVR306: Using the AVR UART in
C
(3 pages, revision B, updated 7/02)
AVR307: Half Duplex UART Using
the USI Module
(18 pages, revision A, updated
10/03)
AVR308: Software LIN Slave
(12 pages, revision B, updated 5/02)
AVR309: Software Universal Serial
Bus
(USB)
(23 pages, revision B, updated
02/06)
AVR310: Using the USI module as
a I2C master
(8 pages, revision B, updated 09/04)
AVR311: Using the TWI module as
I2C slave
(12 pages, revision D, updated
10/04)
AVR312: Using the USI module as
a I2C slave
(9 pages, revision C, updated 09/05)
AVR313: Interfacing the PCAT
Keyboard
(13 pages, revision B, updated 5/02)
AVR314: DTMF Generator
(8 pages, revision B, updated 5/02)
AVR315: Using the TWI module as
I2C master
(11 pages, revision B, updated
09/04)
AVR316: SMBus Slave Using the
TWI Module
(20 pages, revision A, updated
10/05)
AVR317: Using the USART on the
ATmega48/88/168 as a SPI master
(10 pages, revision A, updated
MCU and how to bit bang TWI using port pins on an AT90S8515
AVR MCU
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.
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.
This Application Note describes how to implement a polled
software UART capable of handling speeds up to 614,400 bps on an
AT90S1200.
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
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.
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.
This application note describes the USB implementation in a lowcost microcontroller through emulation of the USB protocol in the
firmware. Supports Low Speed USB (1.5 Mbit/s) in accordance
with USB2.0.
This Application Note describes how to use the USI for TWI master
communication.
This application note describes a TWI slave implementation, in
form of a fullfeatured driver and an example of usage for this
driver.
This Application Note describes how to use the USI for TWI slave
communication.
Most microcontrollers requires some kind of human interface. This
Application Note describes one way of doing this using a standard
PC AT Keyboard.
This Application Note describes how DTMF (Dual-Tone Multiple
Frequencies) signaling can be implemented using any AVR
microcontroller with PWM and SRAM.
This Application Note describes a TWI master implementation, in
form of a fullfeatured driver and an example of usage for this
driver.
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.
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.
09/04)
AVR318: Dallas 1-Wire® master
(21 pages, revision A, updated
09/04)
AVR319: Using the USI module for
SPI communication
(8 pages, revision A, updated 09/04)
AVR320: Software SPI Master
(5 pages, revision C, updated 09/05)
AVR322: LIN Protocol
Implementation on Atmel AVR
Microcontrollers
(21 pages, revision A, updated
12/05)
AVR323: Interfacing GSM modems
(21 pages, revision A, updated
02/06)
AVR325: High-Speed Interface to
Host EPP Parallel Port
(7 pages, revision A, updated 2/02)
AVR328: USB Generic HID
Implementation
(20 pages, revision A, updated
01/06)
AVR335: Digital Sound Recorder
with AVR and DataFlash
(20 pages, revision C, updated
04/05)
AVR336: ADPCM Decoder
(20 pages, revision A, updated
11/04)
AVR340: Direct Driving of LCD
Using General Purpose IO
(15 pages, revision A, updated
09/07)
AVR341: Four and five-wire Touch
screen Controller
(19 pages, revision A, updated
07/07)
AVR350: Xmodem CRC Receive
Utility for AVR
(7 pages, revision D, updated 1/08)
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.
This application note describes a SPI interface implementation, in
form of a fullfeatured driver and an example of usage for this
driver.
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.
The LIN protocol is introduced in this application note, along with
its implementation on Atmel Automotive AVR microcontrollers.
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.
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).
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.
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.
This application note focuses on decoding the ADPCM signal,
Adaptive Differential Pulse Code Modulation, and turning it to a
signal suitable for loudspeakers.
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.
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.
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)
AVR400: Low Cost A/D Converter
(6 pages, revision B, updated 5/02)
AVR401: 8-Bit Precision A/D
Converter
(12 pages, revision C, updated 2/03)
AVR410: RC5 IR Remote Control
Receiver
(10 pages, revision B, updated 5/02)
AVR411: Secure Rolling Code
Algorithm for Wireless Link
(22 pages, revision A, updated
04/06)
AVR414: User Guide ATAVRRZ502 - Accessory Kit
(21 pages, revision B, updated
12/06)
AVR415: RC5 IR Remote Control
Transmitter
(5 pages, revision A, updated 5/03)
AVR433: Power Factor Corrector
(PFC) with AT90PWM2/2B Retriggable High Speed PSC
(7 pages, revision A, updated 03/06)
AVR434: PSC Cookbook
(32 pages, revision A, updated
10/06)
AVR435: BLDC/BLAC Motor
Control Using a Sinus Modulated
PWM Algorithm
(12 pages, revision A, updated
09/06)
AVR440: Sensorless Control of
Two-Phase Brushless DC Motor
(16 pages, revision A, updated
09/05)
AVR441: Intelligent BLDC Fan
Controller with Temperature Sensor
and Serial Interface
(26 pages, revision A, updated
09/05)
AVR442: PC Fan Control using
ATtiny13
(10 pages, revision A, updated
09/05)
AVR443: Sensor-based control of
three phase Brushless DC motor
(8 pages, revision B, updated 02/06)
This Application Note describes how to implement a compact size
and high-speed interrupt driven step motor controller.
This Application Note targets cost and space critical applications
that need an ADC.
This Application Note describes how to perform a kind of dual
slope A/D conversion with an AVR Microcontroller.
This Application Note describes a receiver for the frequently used
Philips/Sony RC5 coding scheme
This application note describes a Secure Rolling Code Algorithm
transmission protocol for use in a unidirectional wireless
communication system.
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™.
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.
This application note explains how to develop a stand alone PFC
(Power Factor Corrector) with the AT90PWM2.
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.
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.
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.
This application note describes how to integrate a low-cost, featurerich AVR microcontroller into the commutator electronics of a
BLDC fan. The ATtiny25 is as an example.
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.
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 3phase brushless DC motors
(14 pages, revision A, updated
10/05)
AVR446: Linear speed control of
stepper motor
(15 pages, revision A, updated
06/06)
AVR447:Sinusoidal driving of
three-phase permanent magnet
motor using ATmega48/88/168
(26 pages, revision A, updated
06/06)
AVR448: Control of High Voltage
3-Phase BLDC Motor
(10 pages, revision C, updated
05/06)
AVR449: Sinusoidal driving of 3phase permanent magnet motor
using ATtiny261/461/861
(24 pages, revision B, updated
10/07)
AVR450: Battery Charger for SLA,
NiCd, NiMH and Li-ion Batteries
(43 pages, revision C, updated
09/06)
AVR451: BC100 Hardware User's
Guide
(12 pages, revision A, updated
09/07)
AVR452: Sensor-based Control of
Three Phase Brushless DC Motors
Using AT90CAN128/64/32
(10 pages, revision A, updated
03/06)
AVR453: Smart Battery Reference
Design
(37 pages, revision C, updated
02/06)
AVR454: Users Guide ATAVRSB100 - Smart Battery
Development kit
(20 pages, revision D, updated
06/06)
AVR458: Charging Lithium-Ion
Batteries with ATAVRBC100
(30 pages, revision A, updated
09/07)
AVR460: Embedded Web Server
This application note describes how to implement sensorless
commutation control of a 3-phase brushless DC (BLDC) motor with
the low cost ATmega48 microcontroller.
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.
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.
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.
This application note describes the implementation of sinusoidal
driving for threephase brushless DC motors with hall sensors on the
ATtiny261/461/861 microcontroller family.
This Reference Design is a battery charger that fully implements the
latest technology in battery charger designs. The charger can fastcharge all popular battery types without any hardware
modifications. The charger design contains complete libraries for
SLA, NiCd, NiMH and Li-Ion batteries.
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).
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.
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.
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.
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.
This Reference Design demonstrates how embedded applications
(53 pages, revision C, updated 5/02)
AVR461: Quick Start Guide for the
Embedded Internet Toolkit
(16 pages, revision B, updated 5/02)
AVR462: Reducing the Power
Consumption of AT90EIT1
(3 pages, revision A, updated 3/02)
AVR463: Charging Nickel-Metal
Hydride Batteries with
ATAVRBC100
(26 pages, revision A, updated
09/07)
AVR465: Energy Meter
(40 pages, revision A, updated
07/04)
AVR480: Anti-Pinch System for
Electrical Window
(19 pages, revision B, updated
12/06)
AVR481: DB101 Hardware User's
Guide
(10 pages, revision B, updated
09/07)
AVR482: DB101 Software User's
Guide
(13 pages, revision A, updated
09/07)
AVR483: DB101 Firmware Getting Started
(17 pages, revision A, updated 2/08)
AVR492: Brushless DC Motor
control using AT90PWM3/3B
(26 pages, revision B, updated
05/07)
AVR493: Sensorless Commutation
of Brushless DC Motor
(BLDC) using AT90PWM3/3B and
ATAVRMC100
(20 pages, revision B, updated
12/06)
AVR494: AC Induction Motor
Control Using the constant V/f
Principle and a Natural PWM
Algorithm
(12 pages, revision A, updated
12/05)
AVR495: AC Induction Motor
Control Using the Constant V/f
Principle and a Space-vector PWM
Algorithm
(11 pages, revision A, updated
can be connected directly to the internet.
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.
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.
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.
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.
This application note provides an example of how to create an antipinch 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.
The DB101 is a graphical LCD module. It demonstrates how to use
an AVR® microcontroller to control a 128x64 pixel graphical LCD.
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.
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.
This application note describes how to implement a brushless DC
motor control in sensor mode using AT90PWM3/3B AVR
microcontroller.
This application note describes how to implement a sensorless
commutation of BLDC motors with the ATAVRMC100
developement kit.
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.
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
12/05)
AVR910: In-System Programming
(10 pages, revision C, updated
11/00)
AVR911: AVR Open-source
Programmer
(13 pages, revision A, updated
07/04)
AVR914: CAN & UART based
Bootloader for AT90CAN32,
AT90CAN64, & AT90CAN128
(28 pages, revision B, updated
01/06)
Modification for Rev. B to Rev C.
STK200 Errata Sheet
Understanding the AVR ICEPRO
I/O Registers
(9 pages, revision A, updated 4/98)
Using the STK500 as an
AT89C51Rx2 Target Board
(7 pages, updated 7/04)
AVR078: STK524 User's Guide
(20 pages, revision A, updated
02/08)
AVR080: Replacing ATmega103 by
ATmega128
(12 pages, revision D, updated
01/04)
AVR081: Replacing AT90S4433 by
ATmega8
(11 pages, revision D, updated
07/03)
AVR082: Replacing ATmega161 by
ATmega162
(8 pages, revision D, updated 01/04)
AVR083: Replacing ATmega163 by
ATmega16
(8 pages, revision F, updated 09/05)
AVR084: Replacing ATmega323 by
ATmega32
(6 pages, revision C, updated 7/03)
AVR085: Replacing AT90S8515 by
ATmega8515
(10 pages, revision C, updated
01/04)
AVR086: Replacing AT90S8535 by
ATmega8535
(10 pages, revision B, updated 7/03)
AVR087: Migrating between
ATmega8515 and ATmega162
(5 pages, revision B, updated 07/03)
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.
This Application Note shows how to design the system to support
in-system programming.
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.
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.
This Application Note describes the I/O Register views seen in
AVR Studio when using the ICEPRO emulator.
This Application Note explains how to use the STK500 as a
development board for 8051 Architecture microcontrollers.
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.
This Application Note describes issues to be aware of when
migrating from the ATmega103 to the ATmega128
Microcontroller.
This Application Note describes issues to be aware of when
migrating from the AT90S4433 to the ATmega8 Microcontroller.
This Application Note describes issues to be aware of when
migrating from the ATmega161 to the ATmega162
Microcontroller.
This Application Note describes issues to be aware of when
migrating from the ATmega163 to the ATmega16 Microcontroller.
This Application Note describes issues to be aware of when
migrating from the ATmega323 to the ATmega32 Microcontroller.
This Application Note describes issues to be aware of when
migrating from the AT90S8515 to the ATmega8515
Microcontroller.
This Application Note describes issues to be aware of when
migrating from the AT90S8535 to the ATmega8535
Microcontroller.
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)
AVR089: Migrating between
ATmega16 and ATmega32
(3 pages, revision A, updated 06/03)
AVR090: Migrating between
ATmega64 and ATmega128
(3 pages, revision B, updated 12/05)
AVR091: Replacing AT90S2313 by
ATtiny2313
(11 pages, revision A, updated
10/03)
AVR092: Replacing ATtiny11/12
by ATtiny13
(7 pages, revision A, updated 10/03)
AVR093: Replacing AT90S1200 by
ATtiny2313
(7 pages, revision A, updated 10/03)
AVR094: Replacing ATmega8 by
ATmega88
(11 pages, revision C, updated
04/05)
AVR095: Migrating between
ATmega48, ATmega88 and
ATmega168
(5 pages, revision A, updated 02/04)
AVR096: Migrating from
ATmega128 to AT90CAN128
(17 pages, updated 03/04)
AVR097: Migration between
ATmega128 and
ATmega1281/ATmega2561
(7 pages, revision E, updated 07/06)
AVR098: Migration between
ATmega169, ATmega329 and
ATmega649
(5 pages, revision D, updated 02/07)
AVR099: Replacing AT90S4433 by
ATmega48
(11 pages, revision A, updated
07/04)
AVR500: Migration between
ATmega64 and ATmega645
(6 pages, revision A, updated 07/04)
AVR501: Replacing ATtiny15 with
ATtiny25
(9 pages, revision A, updated 03/05)
AVR502: Migration between
ATmega165 and ATmega325
(4 pages, revision B, updated 12/05)
AVR503: Replacing
AT90S/LS2323 or AT90S/LS2343
with ATtiny25
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.
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.
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.
This application note is a guide to help current AT90S2313 users
convert existing designs to ATtiny2313.
This application note is a guide to help current ATtiny11/12 users
convert existing designs to ATtiny13.
This application note is a guide to help current AT90S1200 users
convert existing designs to ATtiny2313.
This application note is a guide to help current ATmega8 users
convert existing designs to ATmega88.
This application note describes issues to be aware of when
migrating between the ATmega48, ATmega88 and ATmega168
microcontrollers.
This application note is a guide to help current ATmega128 users
convert existing designs to AT90CAN128.
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.
The ATmega169, ATmega329 and ATmega649 are designed to be
a pin and functionality compatible sub family, this application note
summarizes the differences between them.
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.
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
This application note is a guide to assist users of ATtiny15 in
converting existing designs to ATtiny25.
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.
This application note is a guide to assist users of AT90S/LS2323
and, AT90S/LS2343 converting existing designs to ATtiny25.
(8 pages, revision B, updated 09/05)
AVR504: Migrating from ATtiny26
to ATtiny261/461/861
(9 pages, revision A, updated 10/06)
AVR505: Migration between
ATmega16/32 and
ATmega164P/324P/644(P)
(11 pages, revision C, updated
06/06)
AVR506: Migration from
ATmega169 to ATmega169P
(6 pages, revision C, updated 02/07)
AVR507: Migration from
ATmega329 to ATmega329P
(5 pages, revision B, updated 11/06)
AVR508: Migration from
ATmega644 to ATmega644P
(5 pages, revision A, updated 07/06)
AVR509: Migration between
ATmega169P and ATmega329P
(4 pages, revision B, updated 11/06)
AVR510: Migration between
ATmega329/649 and
ATmega3290/6490
(3 pages, revision A, updated 07/06)
AVR511: Migration from
ATmega3290 to ATmega3290P
(5 pages, revision B, updated 11/06)
AVR512: Migration from
ATmega48/88/168 to
ATmega48P/88P/168P
(5 pages, revision A, updated 07/06)
AVR513: Migration from
ATmega165 to ATmega165P
(6 pages, revision A, updated 03/07)
AVR514: Migration from
ATmega325 to ATmega325P
(5 pages, revision A, updated 03/07)
AVR515: Migrating from
ATmega48/88/168 and
ATmega48P/88P/168P/328P to
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.
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).
The ATmega169P is designed to be pin and functionality
compatible with ATmega169, and this application note summarizes
the differences between them.
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.
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.
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.
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.
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.
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.
The ATmega165P is designed to be pin and functionality
compatible with ATmega165, and this application note summarizes
the differences between them.
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.
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.
ATtiny48/88
(10 pages, revision A, updated
09/07)
Migrating from T89C51CC01 &
AT89C51CC03, to AT90CAN128,
AT90CAN64, AT90CAN32
(7 pages, revision A, updated 06/05)
AVR1000: Getting Started Writing
C-code for XMEGA
(15 pages, revision A, updated 2/08)
AVR1001: Getting Started With the
XMEGA Event System
(8 pages, revision A, updated 2/08)
AVR1003: Using the XMEGA
Clock System
(10 pages, revision A, updated 2/08)
AVR1301: Using the XMEGA
DAC
(10 pages, revision A, updated 2/08)
AVR1302: Using the XMEGA
Analog Comparator
(6 pages, revision A, updated 2/08)
AVR1303: Use and configuration of
IR communication module
(5 pages, revision B, updated 03/08)
AVR1304: Using the XMEGA
DMA Controller
(10 pages, revision A, updated 2/08)
AVR1305: XMEGA Interrupts and
the Programmable Multi-level
Interrupt Controller
(6 pages, revision A, updated 2/08)
AVR1306: Using the XMEGA
Timer/Counter
(17 pages, revision A, updated 2/08)
AVR1307: Using the XMEGA
USART
(7 pages, revision A, updated 2/08)
AVR1308: Using the XMEGA TWI
(11 pages, revision A, updated 2/08)
AVR1309: Using the XMEGA SPI
(7 pages, revision A, updated 2/08)
AVR1312: Using the XMEGA
This application note is a guide, on the CAN controller, to help
current T89C51CC01, AT89C51CC03 users convert existing
designs to AT90CAN128, AT90CAN64, AT90CAN32.
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.
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.
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.
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.
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.
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.
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.
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.
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.
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.
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.
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.
This application note describes the basic functionality of the
External Bus Interface
(10 pages, revision A, updated 2/08)
AVR1313: Using the XMEGA IO
Pins and External Interrupts
(9 pages, revision A, updated 2/08)
AVR1314: Using the XMEGA Real
Time Counter
(6 pages, revision A, updated 2/08)
XMEGA EBI with code examples to get up and running quickly. A
driver interface written in C is included as well.
This application note gives an introduction to the usage of the
highly configurable XMEGA™ I/O pins and external interrupts.
This application note covers the use of the 16-bit Real Time
Counter (RTC) in the XMEGA™.
Download