Application Note

PDF

Software

Description

This application shows DALI slave LED module function that compliant with standard IEC62386.
Stack is in common->services folder, drivers in mega->drivers, and others are application.
The slave should be controlled by master.

Atmel AT03152: Proximity Sensing for SAR

(file size: 160KB, 7 pages, revision B, updated: 08/2013)

This application note describes a capacitive proximity circuit which can be used to detect when a device is in contact or close proximity.

Atmel AT06015: Production Programming of Atmel Microcontrollers

(file size: 559KB, 14 pages, revision C, updated: 01/2015)

This application note provides an overview of 3rd party programming tools that can be used to program Atmel microcontrollers in small and large scale production environments. It also provides suggestions for suppliers of pre-programming services.

Atmel AT06609: Differences between ATmega48/88/168 Variants and the New ATmega48/88/168PB

(file size: 184KB, 8 pages, revision A, updated: 11/2014)

This application note is a guide to assist users of the Atmel ATmega48/88/168 variants in starting to use the Atmel ATmega48/88/168PB.

Atmel AT09331: ASF USB Stack Manual

(file size: 2MB, 246 pages, revision A, updated: 12/2014)

This application note describes the USB Stack Usage for the Atmel SAM/AVR devices.

This application note describes how to mix both C and assembly code in an AVRGCC project using Atmel Studio 6 IDE. The application note is written from the perspective that C is the language of choice and assembly language is included in situations where it is either necessary or convenient.

Atmel AVR116: Wear Leveling on DataFlash

(file size: 629KB, 25 pages, revision A, updated: 07/2012)

This application note describes the use of the Flash Translation Layer (FTL) interface. It describes the features, structure and interface of the FTL library, and how to use this library in Atmel Studio. Flash memory has a limited program/erase lifecycle and programming and erasing the same block many times will result in bad blocks and shortened flash memory life. The intermediate software layer, FTL, addresses this issue.

Atmel AVR1200: Using External Interrupts for megaAVR Devices

(file size: 166540, 12 pages, revision A, updated: 12/2011)

This application note illustrates the functionality and configuration steps (usage) of the external interrupts available on Atmel® megaAVR® family of Atmel AVR® Microcontrollers. The application note also describes the points to be considered while using a GPIO pin as an external interrupt source pin.

Atmel AVR126: ADC of megaAVR in Single Ended Mode

(file size: 237569, 14 pages, revision A, updated: 10/2011)

This application note describes the basic functionality of the ADC in Atmel® megaAVR® devices in Single ended mode with code examples on ATmega88 to get started. The code examples are written in 'C' language and have been tested on the Atmel STK®600 starter kit for functionality.

Atmel AVR127: Understanding ADC parameters

(file size: 288KB, 20 pages, revision C, updated: 10/2013)

This application note discusses about the basic concepts of analog-to-digital converter (ADC) and the various parameters that determine the performance of an ADC. These ADC parameters are of good importance since they are a part of deciding the accuracy of the ADC's output.

Atmel AVR211: Wafer Level Chip Scale Packages

(file size: 533KB, 12 pages, revision A, updated: 07/2012)

Wafer Level Chip Scale Packaging (WLCSP) refers to the technology of packaging an integrated circuit at wafer level, resulting in a device practically the same size as the die. WLCSP technology allow devices to be integrated in the design using the smallest possible form factor.

Atmel AVR231: AES Bootloader

(file size: 363KB, 31 pages, revision E, updated: 03/2012)

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.

Atmel AVR262: Atmel QTouch with USB HID

(file size: 3045577, 15 pages, revision A, updated: 03/2011)

This application note illustrates how to use the Atmel®QTouch®Library on the Atmel® AT90USB646 microcontroller to provide a single-chip solution for QTouch sensing through a USB interface. Touch sensor status is acquired and reported over the USB HID class to a host PC.

Atmel AVR310: Using the USI Module as a I2C Master

(file size: 290KB, 10 pages, revision C, updated: 12/2013)

This Application Note describes how to use the USI for TWI master communication on tinyAVR and megaAVR devices.

Atmel AVR364: MEGA-1284P Xplained Hardware User Guide

(file size: 324139, 15 pages, revision B, updated: 11/2011)

The Atmel® MEGA-1284P Xplained evaluation kit is a hardware platform for evaluating the ATmega1284P MCU. The kit offers a large range of features that enable the megaAVR® user to get started using megaAVR peripherals right away and to get an understanding of how to integrate a megaAVR MCU in their own design.

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.

Atmel AVR928: Scalar sensorless methods to drive BLDC motors

(file size: 487KB, 22 pages, revision B, updated: 07/2013)

This application note describes how to implement a sensorless commutation on BLDC motors and provides all information that is relevant for an implementation of sensorless commutation using the Atmel devices and Starter-kits.

Atmel AVR944: Atmel LED Driver Library for 8-bit AVR

(file size: 74421, 13 pages, revision A, updated: 11/2011)

Atmel MSLxxxx is a series of compact, high power LED drivers. This application note explains how to use 8-bit Atmel AVR® microcontrollers to interface with these LED drivers. MSLxxxx series of drivers feature either TWI or SPI interface to read and write to their internal registers. Atmel LED driver library provides easy to use wrapper functions to read/write to those registers using any 8-bit AVR as master. This library supports both TWI and SPI interfaces.

This application note discusses a bootloader specifically designed for devices lacking a separate bootloader section and any hardware communication modules. This design does not require any chip resources like TWI, SPI or UART modules. Instead, it implements a single-wire UART (as described in the Atmel® AVR®274: Single-wire Software UART, application note) in software, which requires only one general purpose IO-pin.

AVR041: EMC Performances Improvement for ATmega32M1

(file size: 279785, 6 pages, revision A, updated: 02/2008)

Thanks to a new Atmel IC design methodology, the EMC constraints are taken into account earlier in the IC design phase. The EMC performances of the Mega32M1 product are improved thanks to some design improvements detailed in this document.

This application note describes how to calibrate the internal RC oscillator via the UART. In the method used a slave node is synchronized to a master node at the beginning of every message frame.

AVR055: Using a 32kHz XTAL for run-time calibration of the internal RC

(file size: 150049, 16 pages, revision D, updated: 07/2008)

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.

AVR063: LCD Driver for the STK504

(file size: 120411, 13 pages, revision A, updated: 04/2006)

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.

AVR067: JTAGICE mkII Communication Protocol

(file size: 327125, 69 pages, revision D, updated: 11/2009)

This document describes the communication protocol used between AVR Studio and JTAGICE mkII.

AVR068: STK500 Communication Protocol

(file size: 161607, 37 pages, revision C, updated: 06/2006)

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

(file size: 326430, 24 pages, revision B, updated: 02/2006)

This document describes the AVRISP mkII protocol. The firmware is distributed with AVR Studio 4.12 or later.

AVR077: Opto Isolated Emulation for the DebugWIRE

(file size: 236072, 9 pages, revision A, updated: 01/2008)

This application note describes how to implement an optoisolated interface for the DebugWIRE. This device could help the debug of applications with non isolated power supply like ballast, motors, vacuum cleaners, refrigerators, etc.

AVR078: STK524 User Guide

(file size: 4671063, 20 pages, revision A, updated: 02/2008)

The STK524 kit is made of the STK524 board, AVRCANAdapt and AVRLINAdapt boards. The STK524 board is a top module for the STK500. It is designed to support the ATmega32M1, ATmega32C1 products and future compatible derivatives.

AVR079: STK600 Communication Protocol

(file size: 504628, 61 pages, revision A, updated: 04/2008)

This document describes the STK600 protocol. The firmware is distributed with AVR Studio 4.14 or later.

AVR103: Using the EEPROM Programming Modes on tinyAVR and megaAVR devices

(file size: 77447, 5 pages, revision A, updated: 03/2005)

This application note implements a driver utilizing the programming modes available for the EEPROM in some tinyAVR and megaAVR devices, involving both time and power savings.

AVR106: C functions for reading and writing to Flash memory on tinyAVR and megaAVR devices

(file size: 49401, 10 pages, revision B, updated: 08/2006)

This application note provides C functions for accessing the Flash memory using the Self programming Program memory which allows to reprogram the Flash memory during program run.

AVR107: Interfacing AVR microcontrollers with serial memories

(file size: 496998, 22 pages, revision A, updated: 03/2005)

This application note describes the functionality and the architecture of SPI serial memories drivers as well as the motivation of the selected solution.

AVR114: Using the ATMEL File System management for AT32UC3x, AT90USBx and ATmega32U4

(file size: 236064, 22 pages, revision A, updated: 09/2008)

This application note describes the File System module which is optimized for the AVR core, leading to a small footprint and high bandwidth. It provides many features such as opening multiple files at the same time or play list management.

AVR115: Data Logging with Atmel File System on ATmega32U4

(file size: 478221, 10 pages, revision A, updated: 01/2009)

This application note describes how to use the Atmel file system (see AVR114) to perform data logging operation on the ATmega32U4.

AVR121: Enhancing ADC resolution by oversampling

(file size: 120791, 14 pages, revision A, updated: 09/2005)

This Application Note explains the method called "Oversampling and Decimation" and which conditions need to be fulfilled to make this method work properly to achieve a higher resolution without using an external ADC.

AVR122: Calibration of the tinyAVR internal temperature reference

(file size: 307913, 14 pages, revision A, updated: 02/2008)

This application note describes how to calibrate and compensate the temperature measurements from the ATtiny25/45/85. It can also be used on other AVR microcontrollers with internal temperature sensors.

This application note describes how the pulse width and period of a signal may be computed using the Input Capture Unit (ICP).

AVR136: Low-jitter Multi-channel Software PWM

(file size: 27896, 5 pages, revision A, updated: 05/2006)

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.

AVR151: Setup and use of the SPI on tinyAVR and megaAVR devices

(file size: 262508, 15 pages, revision C, updated: 07/2008)

This application note describes how to setup and use the on-chip Serial Peripheral Interface (SPI) of the tinyAVR and megaAVR devices.

AVR153: USB PC Drivers Based on Generic HID Class

(file size: 448746, 10 pages, revision B, updated: 07/2008)

This document gives information on integrating the Atmel USB HID DLL functions. Simple code examples that demonstrate different types of implementation are given.

This application note describes how to reprogram the AT90USB1287 and the ATxmega128A1 on the Xplain board with the original firmware, or your own application code.

AVR1922: Xplain Board Controller Firmware

(file size: 22097618, 6 pages, revision A, updated: 05/2010)

The Xplain board controller, an AT90USB1287, is in charge of some of the low-level tasks on boards in the Xplain series. The board controller improves usability of the main microcontroller, and adds features the main controller lacks, like USB.

This application note describes how to measure frequency of any type of waveform: sine, square etc. with variable duty cycle. A basic requirement for the signal is to have amplitude that is within the I/O pin threshold for the selected Atmel® AVR® device.

AVR221: Discrete PID controller on tinyAVR and megaAVR devices

(file size: 97986, 10 pages, revision A, updated: 05/2006)

This application note describes a simple implementation of a discrete Proportional-Integral-Derivative (PID) controller on tinyAVR and megaAVR devices.

AVR241: Direct driving of LCD display using general I/O on tinyAVR and megaAVR devices

(file size: 55796, 11 pages, revision A, updated: 04/2004)

This application note describes software driving of LCDs with one common line, using the static driving method.

AVR245: Code Lock with 4x4 Keypad and I2C LCD on a tinyAVR

(file size: 151554, 9 pages, revision A, updated: 10/2005)

This application note describes how to build a code lock with an tinyAVR 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 on megaAVR with USB

(file size: 4623094, 11 pages, revision C, updated: 07/2008)

This application note describes a simple mouse project. It allows users to quickly test USB hardware using megaAVR with USB without any driver installation.

AVR271: USB Keyboard Demonstration on megaAVR with USB

(file size: 2457308, 12 pages, revision B, updated: 07/2008)

This application note describes how to start and implement a USB keyboard application using the STK525 starter kit and FLIP in-system programming software for megaAVR with USB.

This application note describes 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 megaAVR with USB.

AVR273: USB Mass Storage Implementation on megaAVR with USB

(file size: 6268511, 23 pages, revision A, updated: 03/2006)

This application note describes 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 on megaAVR with USB.

AVR274: Single-wire Software UART on tinyAVR and megaAVR devices

(file size: 136296, 14 pages, revision A, updated: 03/2007)

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 described the control of a BLDC motor with Hall effect position sensors (referred to simply as Hall sensors). The implementation includes both direction and open loop speed control.

AVR276: USB Software Library for megaAVR with USB Microcontrollers

(file size: 10255299, 27 pages, revision A, updated: 01/2007)

This application note describes the USB software library for megaAVR with USB and illustrates how to develop a USB device or reduced host applications using this library.

This application note describes the new features brought by the OTG working group and how they are integrated in the USB software library for megaAVR with USB, illustrating how to develop customizable USB OTG applications.

AVR280: USB Host CDC Demonstration on megaAVR with USB

(file size: 1684150, 14 pages, revision A, updated: 09/2007)

This application note describes 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.

AVR282: USB Firmware Upgrade for megaAVR with USB

(file size: 754660, 13 pages, revision A, updated: 01/2008)

This application note describes how to perform the firmware upgrade of the megaAVR with USB products using the on-chip bootloader and FLIP software.

This application note provides low-level drivers for LIN communication on ATtiny87/167 or ATmega32M1/32C1/64M1/64C1.

AVR287: USB Host HID and Mass Storage Demonstration

(file size: 18549385, 11 pages, revision A, updated: 09/2009)

This application note describes how to start and implement a USB host application based on the USB HID class (USB mouse) and Mass Storage class and introduces a simple example of an megaAVR with USB managing both USB classes and a file system.

This document describes the behavior of the LIN/UART Controller when it detects an unexpected BREAK field during an otherwise normal LIN transfer. This event is referred to as "Break-in-Data".

AVR293: USB Composite Device on megaAVR with USB

(file size: 10031062, 9 pages, revision A, updated: 08/2008)

This document describes how to start and implement a composite device application on megaAVR with USB.

AVR296: AVRUSBRF01 USB RF Dongle User Guide

(file size: 2522973, 11 pages, revision A, updated: 07/2008)

This kit is a USB dongle designed to demonstrate wireless communications. It is powered by the AT90USB162 AVR microcontroller.

AVR303: SPI-UART Gateway on tinyAVR and megaAVR devices

(file size: 58890, 5 pages, revision A, updated: 03/2005)

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.

AVR311: Using the TWI module as I2C slave on tinyAVR and megaAVR devices

(file size: 17431, 12 pages, revision D, updated: 08/2009)

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 on tinyAVR and megaAVR devices

(file size: 81217, 9 pages, revision C, updated: 09/2005)

This Application Note describes how to use the USI for TWI slave communication on tinyAVR and megaAVR devices.

AVR315: Using the TWI module as I2C master on tinyAVR and megaAVR devices

(file size: 299785, 14 pages, revision C, updated: 02/2010)

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 on tinyAVR and megaAVR devices

(file size: 133088, 20 pages, revision A, updated: 10/2005)

This application note provides background information on the SMBus specification and the 8-bit 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

(file size: 128214, 10 pages, revision A, updated: 09/2004)

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 on tinyAVR and megaAVR devices

(file size: 131834, 21 pages, revision A, updated: 09/2004)

This application note shows how a 1-Wire master can be implemented on an 8-bit AVR, either in software only, or utilizing the U(S)ART module.

AVR319: Using the USI module for SPI communication on tinyAVR and megaAVR devices

(file size: 148841, 8 pages, revision A, updated: 09/2004)

This application note describes a SPI interface implementation, in form of a fullfeatured driver and an example of usage for this driver.

AVR322: LIN Protocol Implementation on megaAVR Microcontrollers

(file size: 213740, 21 pages, revision A, updated: 12/2005)

The LIN protocol is introduced in this application note, along with its implementation on Atmel Automotive AVR microcontrollers.

AVR323: Interfacing GSM modems with tinyAVR and megaAVR devices

(file size: 253551, 21 pages, revision A, updated: 02/2006)

This application note describes how to use a tinyAVR or megaAVR device to control a GSM modem in a cellular phone. The interface between modem and host is a textual protocol called Hayes AT-Commands.

AVR32798: EXTBT User Guide

(file size: 7872363, 16 pages, revision A, updated: 11/2010)

The Atmel® EXTBT is a Bluetooth extension module for Atmel® AVR® development kits. The kit is equipped with the FREE2MOVE™ F2M03GXA Bluetooth module and provides Bluetooth functionality through a UART interface to any AVR devices. This guide shows the user how to quickly get started with this kit and describes the EXTBT hardware.

AVR328: USB Generic HID Implementation on megaAVR devices

(file size: 4013212, 13 pages, revision C, updated: 07/2008)

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 USB megaAVR devices.

AVR32917: Getting started with the picoPower Board

(file size: 1242375, 16 pages, revision A, updated: 12/2009)

This application note describes the picoPower function of ATmega48PA, ATxmega32A4 and AT32UC3L064 and the picoPower Board which purpose is to get familiar with the general power-saving features of AVR microcontrollers.

AVR336: ADPCM Decoder on tinyAVR and megaAVR devices

(file size: 120349, 20 pages, revision A, updated: 11/2004)

This application note focuses on decoding the ADPCM signal, Adaptive Differential Pulse Code Modulation, and turning it to a signal suitable for loudspeakers. It targets an ATmega128 device.

AVR340: Direct Driving of LCD Using General Purpose IO using tinyAVR and megaAVR devices

(file size: 250141, 15 pages, revision A, updated: 09/2007)

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.

AVR341: Four and five-wire Touch screen Controller using tinyAVR and megaAVR devices

(file size: 327215, 19 pages, revision A, updated: 07/2007)

This application note describes how to interface a resistive 4- and 5-wire touch systems with tinyAVR and megaAVR devices which provide an excellent solution thanks to their analog features combined with low power modes.

AVR351: Runtime calibration and compensation of RC oscillators

(file size: 160632, 7 pages, revision A, updated: 10/2008)

This application note explains how to calibrate RC oscillators at operating temperature or runtime if system temperature changes over time, to achieve the best possible accuracy.

AVR352: Using the Coulomb Counting ADC

(file size: 140047, 7 pages, revision B, updated: 02/2009)

This application note describes how to use the CC-ADC to get maximum accuracy and lowest possible current consumption.

AVR353: Voltage Reference Calibration and Voltage ADC Usage

(file size: 166354, 6 pages, revision A, updated: 10/2008)

This application note explains how to calibrate the very accurate low power bandgap voltage reference embedded in some of the new Atmel AVR Smart Battery devices, and used for the internal Voltage ADC and Coulomb Counting ADC.

AVR354: Using the Deep Under-Voltage Recovery Mode (DUVR)

(file size: 79049, 8 pages, revision A, updated: 10/2008)

This application note explains how to charge Li-ion battery cells from a deeply discharged condition and at the same time keep full control of the charging sequence, which is a challenge in many applications.

AVR4013: picoPower Basics

(file size: 16830, 7 pages, revision A, updated: 12/2010)

This application note demonstrates how to extend the battery life of our application by multiple factors by modifying only the firmware. You will see that, while some of the modifications are very simple and only require setting some registers, other modifications will need some rewriting of the code.

This application note summarizes the crystal basics, PCB layout considerations, and how to test a crystal in your application. A crystal selection guide shows recommended crystals tested by experts and found suitable for various oscillator modules in different Atmel® AVR® families.

This application note describes a Secure Rolling Code Algorithm transmission protocol for use in a unidirectional wireless communication system.

AVR430: ATAVRMC300 Hardware User Guide

(file size: 3119535, 13 pages, revision C, updated: 10/2008)

The ATAVRMC300 is a general-purpose power stage board able to drive brushless DC, brushed DC and stepper motors. The board is designed to be a flexible platform for developing motor control applications.

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 used as an example.

AVR442: PC Fan Control using ATtiny13

(file size: 315057, 10 pages, revision A, updated: 09/2005)

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.

AVR444: Sensorless control of 3-phase BLDC motors based on tinyAVR and megaAVR devices

(file size: 251559, 14 pages, revision A, updated: 10/2005)

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 on tinyAVR and megaAVR devices

(file size: 156293, 15 pages, revision A, updated: 06/2006)

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.

AVR448: Control of High Voltage 3-Phase BLDC Motor with an ATmega48

(file size: 144013, 10 pages, revision C, updated: 05/2006)

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.

AVR451: BC100 Hardware User Guide

(file size: 1174994, 12 pages, revision A, updated: 09/2007)

The BC100 is reference design/development kit that targets especially battery charging. 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.

This application note is based on the ATAVRBC100 Battery Charger reference design and focuses on how to charge Lithium-Ion (Li-Ion) batteries. The firmware is written entirely in C language and is easy to port to other 8-bit AVR devices.

This application note is based on the ATAVRBC100 Battery Charger reference design and focuses on how to use it to charge Nickel-Metal Hydride (NiMH) batteries. The firmware is written entirely in C language and is easy to port to other AVR microcontrollers.

This application note provides an example of how to create an anti-pinch system for power windows. Based on Speed and Current parameters measured out of the window DC motor, it supports the FMVSS118 and 20/64/ECC standards.

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 note describes the 'Class B' software classification, refering to embedded firmware which is intended to prevent unsafe operation of controlled equipment and provides guidelines for compliance with the 'Class B' classification as it relates to AVR devices.

Atmel AVR042: AVR Hardware Design Considerations

(file size: 464KB, 17 pages, revision M, updated: 11/2014)

This application note has been written to provide answers to some of the questions and problems faced when starting designs involving Atmel® AVR® microcontrollers.

Atmel AVR134: Real Time Clock (RTC) Using the Asynchronous Timer

(file size: 392KB, 9 pages, revision H, updated: 01/2014)

This Application Note describes how to implement a real-time (RTC) on tinyAVR and megaAVR devices that features the RTC module.

Atmel AVR154: Software Emulation of TWI Slave Hardware Module

(file size: 77KB, 4 pages, revision A, updated: 03/2012)

This application note describes a Two-wire Interface (TWI) slave implementation, in the form of a full-featured driver and an example of usage for this driver. Many chips feature a hardware TWI module; others have Universal Serial Interface (USI), which can be used in TWI mode. This application note discusses the TWI slave driver for devices without any of these hardware modules. This driver emulates the hardware TWI slave in software hence providing the programmer an easy way of porting the code from high end TWI enabled devices to low cost devices.

Atmel AVR156: TWI Master Bit Bang Driver

(file size: 126KB, 4 pages, revision A, updated: 07/2012)

This application note describes a Two-wire Interface (TWI) master implementation, in the form of a full-featured driver. Many chips feature a hardware TWI module; others have Universal Serial Interface (USI), which can be used in TWI mode. This application note discusses the TWI master driver for devices without any of these hardware modules. This driver provides interfaces to read/write to a TWI slave.

Atmel AVR32848: Android Accessory Demo

(file size: 714KB, 11 pages, revision A, updated: 05/2012)

This document explains the usage of the demonstrator developed for the Android Open Accessory Protocol and based on Atmel microcontrollers. The examples are included in the Atmel Software Framework (ASF) to provide the customer with a quick and easy way to get started with developing an Android accessory. The use of the library is explained in the AVR4960 application note.

Atmel AVR4023: FLIP USB DFU Protocol

(file size: 143KB, 15 pages, revision A, updated: 03/2012)

This application note describes the FLIP USB DFU Protocol. To perform firmware upgrade, Atmel has developed a Flexible in-system programmer (FLIP). This software allows performing In-System Programming from an USB host controller without removing the part from the system or without a preprogrammed application, and without any external programming interface.

This application note aims to outline the differences between Atmel AT90PWM81 and Atmel AT90PWM161.

AVR000: Register and Bit-Name Definitions for the 8-bit AVR Microcontroller

(file size: 129551, 2 pages, revision C, updated: 11/2009)

This Application Note contains files which allow the user to use Register and Bit names from the databook when writing assembly programs for 8-bit AVR microcontrollers.

AVR001: Conditional Assembly and portability macros

(file size: 95161, 6 pages, revision E, updated: 04/2008)

This application note describes the Conditional Assembly feature present in the 8-bit AVR Assembler version 1.74 and later. Examples of how to use Conditional Assembly are included to illustrate the syntax and concept.

This Application Note describes how to use C to control the program flow among main program and assembly modules to control time critical I/O functions.

AVR035: Efficient C Coding for 8-bit AVR microcontrollers

(file size: 143596, 22 pages, revision D, updated: 01/2004)

This Application Note describes how to utilize the advantages of the 8-bit AVR architecture and the development tools to achieve more efficient c Code than for any other microcontroller.

AVR040: EMC Design Considerations

(file size: 107789, 18 pages, revision D, updated: 06/2006)

This Application Note covers the most common EMC problems designers encounter when using Microcontrollers.

AVR053: Calibration of the internal RC oscillator

(file size: 83199, 15 pages, revision G, updated: 05/2006)

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.

AVR060: JTAG ICE Communication Protocol

(file size: 139206, 20 pages, revision B, updated: 01/2004)

This application note describes the communication protocol used between AVR Studio and JTAG ICE.

AVR061: STK500 Communication Protocol

(file size: 814798, 31 pages, revision B, updated: 04/2003)

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

(file size: 618368, 24 pages, revision C, updated: 02/2006)

This application note explains how to use the ATmega169(P) and STK502 to display a temperature measurement on an LCD.

AVR065: LCD Driver for the STK502

(file size: 148652, 17 pages, revision E, updated: 07/2008)

This application notes provides LCD drivers for the STK502 which is powered by Atmel powerful ATmega169(P).

AVR070: Modifying AT90ICEPRO and ATICE10 to Support Emulation of AT90S8535

(file size: 978868, 5 pages, revision C, updated: 05/2002)

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

(file size: 78147, 4 pages, revision B, updated: 05/2002)

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

(file size: 615370, 8 pages, revision B, updated: 05/2002)

This Application Note describes how to upgrade the AT90ICEPRO emulator to ATICE10 Version 2.0

AVR094: Migrating from ATmega8 to ATmega88

(file size: 75459, 11 pages, revision C, updated: 04/2005)

This Application Note describes differences to be aware of when migrating from the ATmega8 to the ATmega88 Microcontroller.

AVR095: Migrating between ATmega48, ATmega88 and ATmega168

(file size: 39623, 5 pages, revision A, updated: 02/2004)

This Application Note describes differences to be aware of when migrating between the ATmega48, ATmega88 and ATmega168 Microcontrollers.

AVR100: Accessing the EEPROM on tinyAVR and megaAVR devices

(file size: 66448, 7 pages, revision C, updated: 09/2005)

This Application Note contains assembly routines for accessing the EEPROM for all 8-bit AVR devices. Includes code for reading and writing EEPROM addresses sequentially and at random addresses.

AVR101: High Endurance EEPROM Storage

(file size: 48384, 5 pages, revision A, updated: 09/2002)

This Application Note describes how to make safe, high endurance, parameter storage in EEPROM, insuring no wear-out of the memory.

AVR102: Block Copy Routines on tinyAVR and megaAVR devices

(file size: 86605, 5 pages, revision B, updated: 05/2002)

This Application Note contains routines for transfer of data blocks on tinyAVR and megaAVR devices.

This application note presents a buffered interrupt driven approach to preserve and restore system information when power is turned off, significantly increasing general performance and decreasing 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 self-programming feature of the AVR.

AVR108: Setup and use of the LPM Instructions on tinyAVR and megaAVR devices

(file size: 77728, 4 pages, revision B, updated: 05/2002)

This Application Note describes how to access constants saved in Flash program memory of tinyAVR and megaAVR devices.

AVR109: Using Self Programming on tinyAVR and megaAVR devices

(file size: 94446, 11 pages, revision B, updated: 06/2004)

This Application note describes how an tinyAVR or megaAVR device with the SPM instruction can be configured for Self Programming.

AVR120: Characterization and Calibration of the ADC on an AVR

(file size: 143621, 15 pages, revision D, updated: 02/2006)

This application note explains various ADC (Analog to Digital Converter) characterization parameters, how they affect ADC measurements and how to measure them and how to perform run-time compensation.

AVR128: Using the Analog Comparator on tinyAVR and megaAVR devices

(file size: 74183, 4 pages, revision B, updated: 05/2002)

This Application Note serves as an example on how to set up and use the AVR's on-chip Analog Comparator.

AVR130: Using the timers on tinyAVR and megaAVR devices

(file size: 184089, 16 pages, revision A, updated: 02/2002)

This Application Note describes how to use the different timers on tinyAVR and megaAVR devices. The intention of this document is to give a general overview of the timers, show their possibilities and explain how to configure them.

AVR131: Using the 8-bit AVR High-speed PWM

(file size: 1492, 8 pages, revision A, updated: 09/2003)

This application note is an introduction to the use of the high-speed Pulse Width Modulator (PWM) available on some tinyAVR and megaAVR devices.

AVR132: Using the Enhanced Watchdog Timer on tinyAVR and megaAVR devices

(file size: 142906, 17 pages, revision C, updated: 06/2008)

This Application Note describes how to utilize the Enhanced Watchdog Timer (WDT) used on new 8-bit 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 8-bit AVR Microcontroller

(file size: 232417, 8 pages, revision B, updated: 01/2004)

The solution presented here shows how the AVR AT90 series microcontrollers generate and handle long delays, without any software intervention, thus allowing the core to be in a low-power mode during the delay.

AVR180: External Brown-Out Protection

(file size: 201943, 16 pages, revision B, updated: 05/2002)

This Application Note shows in detail how to prevent system malfunction during periods of insufficient power supply voltage.

AVR182: Zero Cross Detector on tinyAVR and megaAVR devices

(file size: 97422, 8 pages, revision B, updated: 01/2004)

This Application Note describes how to implement an efficient zero cross detector for mains power lines using an tinyAVR and megaAVR devices

This Application Note lists program examples for arithmetic operation on 16-bit values on tinyAVR and megaAVR devices.

AVR204: BCD Arithmetics

(file size: 96638, 14 pages, revision B, updated: 01/2003)

This Application Note lists routines for BCD arithmetics.

AVR220: Bubble Sort

(file size: 94201, 5 pages, revision B, updated: 05/2002)

This Application Note implements the Bubble Sort algorithm on the AVR controllers.

AVR222: 8-Point Moving Average Filter on tinyAVR and megaAVR devices

(file size: 86818, 5 pages, revision B, updated: 05/2002)

This Application Note gives an demonstration of how the addressing modes in the tinyAVR and megaAVR architecture can be utlized.

AVR223: Digital Filters on tinyAVR and megaAVR devices

(file size: 23613, 18 pages, revision B, updated: 07/2008)

This application note explains how to implement digital filters on Atmel® tinyAVR®, and Atmel® megaAVR® devices, taking into consideration coefficient and data scaling and methods of optimization.

AVR230: DES Bootloader on tinyAVR and megaAVR devices

(file size: 1910487, 24 pages, revision D, updated: 04/2005)

This application note describes how firmware can be updated securely on microcontrollers with bootloader capabilities, using the Data Encryption Standard (DES) or triple DES to encrypt the firmware.

AVR236: CRC check of Program Memory on tinyAVR and megaAVR devices with LPM instruction

(file size: 117934, 9 pages, revision B, updated: 05/2002)

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 on tinyAVR and megaAVR devices

(file size: 77028, 14 pages, revision D, updated: 06/2006)

This Application Note describes a simple interface to a 4 x 4 keypad designed for low power battery operation.

AVR242: Multiplexing LED Drive & a 4x4 Keypad on tinyAVR and megaAVR devices

(file size: 151033, 26 pages, revision B, updated: 05/2002)

This Application Note describes a comprehensive system providing a 4 x 4 keypad as input into a real time clock/timer with two outputs and controls external loads and a four digit mulitplexed LED display.

AVR243: Matrix Keyboard Decoder on tinyAVR and megaAVR devices

(file size: 107554, 11 pages, revision A, updated: 01/2003)

This application note describes a software driver interfacing an 8x8 keyboard and 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

(file size: 56579, 8 pages, revision A, updated: 11/2003)

This application note describes some basic routines to interface an AVR microcontroller to a terminal window using the UART (hardware or software).

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 on tinyAVR and megaAVR devices

(file size: 51913, 3 pages, revision B, updated: 07/2002)

This Application Note describes how to set up and use the UART present in most 8-bit AVR devices. C code examples are included for polled and interrupt controlled UART applications

AVR307: Half Duplex UART Using the USI Module on tinyAVR and megaAVR devices

(file size: 8242, 18 pages, revision A, updated: 10/2003)

The Universal Serial Interface (USI) present in 8-bit AVR devices like the ATtiny26, ATtiny2313, and ATmega169, is a communication module designed for TWI and SPI communication, but can also be used for UART communication as well.

AVR308: Software LIN Slave on tinyAVR and megaAVR devices

(file size: 143208, 12 pages, revision B, updated: 05/2002)

This Application Note shows how to implement a LIN (Local Interconnect Network) slave task on tinyAVR and megaAVR devices without the need for any external components.

AVR313: Interfacing a PC AT Keyboard on tinyAVR and megaAVR devices

(file size: 154182, 13 pages, revision B, updated: 05/2002)

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 on tinyAVR and megaAVR devices

(file size: 113780, 8 pages, revision B, updated: 05/2002)

This Application Note describes how DTMF (Dual-Tone Multiple Frequencies) signaling can be implemented using any tinyAVR or megaAVR device with PWM and SRAM.

AVR320: Software SPI Master

(file size: 58758, 5 pages, revision C, updated: 09/2005)

This Application Note describes a set of low-level routines for software implementation of the SPI (Synchronous Peripheral Interface). These can be used for communicating with Atmel's 25xxx family of Serial EEPROM memories.

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.