Atmel Corporation
Products > AVRŽ 8-Bit RISC > Application Notes

ATmega32 -

Design Considerations
PDF Software Description
 
AVR040: EMC Design Considerations (18 pages, revision D, updated 6/06)
This Application Note covers the most common EMC problems designers encounter when using Microcontrollers.
 
AVR042: AVR Hardware Design Considerations (14 pages, revision F, updated 4/08)
This Application Note covers the most common problems encountered when switching to a new microcontroller architecture like the AVR. Solutions and considerations for the most common design challenges are covered.
Top
General Purpose
PDF Software Description
AVR000: Register and Bit-Name Definitions for the AVR Microcontroller (2 pages, revision C, updated 11/09)
This Application Note contains files which allow the user to use Register and Bit names from the databook when writing assembly programs.
AVR030: Getting Started with IAR Embedded Workbench for Atmel AVR (10 pages, revision D, updated 10/04)
The purpose of this application note is to guide new users through the initial settings of IAR Embedded Workbench, and compile a simple C-program.
 
AVR031: Getting Started with ImageCraft C for AVR (8 pages, revision B, updated 5/02)
The purpose of this Application Note is to guide new users through the initial settings of the ImageCraft IDE and compile a simple C program.
AVR032: Linker Command Files for the IAR ICCA90 Compiler (11 pages, revision B, updated 5/02)
This Application Note describes how to make a linker command file for use with the IAR ICCA90 C-compiler for the AVR Microcontroller.
AVR033: Getting Started with the CodeVisionAVR C Compiler (18 pages, revision C, updated 4/08)
The purpose of this Application Note is to guide the user through the preparation of an example C program using the CodeVisionAVR C compiler. The example is a simple program for the Atmel AT90S8515 microcontroller on the STK500 starter kit.
 
AVR034: Mixing C and Assembly Code with IAR Embedded Workbench for AVR (8 pages, revision B, updated 4/03)
This Application Note describes how to use C to control the program flow and main program and assembly modules to control time critical I/O functions.
 
AVR035: Efficient C Coding for AVR (22 pages, revision D, updated 01/04)
This Application Note describes how to utilize the advantages of the AVR architecture and the development tools to achieve more efficient c Code than for any other microcontroller.
AVR054: Run-time calibration of the internal RC oscillator (17 pages, revision C, updated 04/08)
This application note describes how to calibrate the internal RC oscillator via the UART.
 
AVR072: Accessing 16-bit I/O Registers (4 pages, revision B, updated 5/02)
This Application Note shows how to read and write the 16-bit registers in the AVR Microcontrollers. Since the AVR has an 8-bit I/O bus these registers must be written in two execution cycles. It explains how to safely read and write these 16-bit registers.
AVR102: Block Copy Routines (5 pages, revision B, updated 5/02)
This Application Note contains routines for transfer of data blocks.
AVR103: Using the EEPROM Programming Modes (5 pages, revision A, updated 03/05)
This application note implements a driver utilizing the programming modes available for the EEPROM in some new AVR parts, involving both time and power savings.
AVR105: Power efficient high endurance parameter storage in Flash memory (10 pages, revision A, updated 9/03)
This application note describes how to implement a high endurance parameter storage method in Flash memory using the self-programming feature of the AVR.
AVR108: Setup and use of the LPM Instructions (4 pages, revision B, updated 5/02)
This Application Note describes how to access constants saved in Flash program memory of the AVR microcontrollers
AVR109: Self Programming (11 pages, revision B, updated 06/04)
This Application note describes how an AVR with the SPM instruction can be configured for Self Programming.
 
AVR120: Characterization and Calibration of the ADC on an AVR (15 pages, revision D, updated 02/06)
This application note explains various ADC (Analog to Digital Converter) characterization parameters and how they effect ADC measurements. It also describes how to measure these parameters during application testing in production and how to perform run-time compensation.
AVR128: Setup and use the Analog Comparator (4 pages, revision B, updated 5/02)
This Application Note serves as an example on how to set up and use the AVR's on-chip Analog Comparator.
AVR130: Setup and use the AVR Timers (16 pages, revision A, updated 2/02)
This Application Note describes how to use the different timers of the AVR. The AT90S8535 is used as an example. The intention of this document is to give a general overview of the timers, show their possibilities and explain how to configure them. The code examples will make this clearer and can be used as guidance for other applications.
 
AVR133: Long Delay Generation Using the AVR Microcontroller (8 pages, revision B, updated 01/04)
The solution presented here shows how the AVR AT90 series microcontrollers generate and handle long delays. On-chip timers are used without any software intervention, thus allowing the core to be in a low-power mode during the delay. Since the timers are clocked by the system clock, there is no need for additional components.
AVR134: Real-Time Clock using the Asynchronous Timer (9 pages, revision G, updated 04/09)
This Application Note describes how to implement a real-time (RTC) on AVR microcontrollers that features the RTC module.
AVR151: Setup and use of the SPI (15 pages, revision C, updated 7/08)
This application note describes how to setup and use the on-chip Serial Peripheral Interface (SPI) of the AVR microcontrollers.
 
AVR180: External Brown-Out Protection (16 pages, revision B, updated 5/02)
This Application Note shows in detail how to prevent system malfunction during periods of insufficient power supply voltage.
AVR182: Zero Cross Detector (8 pages, revision B, updated 01/04)
This Application Note describes how to implement an efficient zero cross detector for mains power lines using an AVR microcontroller.
AVR200: Multiply and Divide Routines (21 pages, revision D, updated 5/06)
This Application Note lists subroutines for multiplication and division of 8 and 16-bit signed and unsigned numbers.
AVR201: Using the AVR Hardware Multiplier (11 pages, revision C, updated 6/02)
Examples of using the multiplier for 8-bit arithmetic.
AVR202: 16-Bit Arithmetics (3 pages, revision B, updated 5/02)
This Application Note lists program examples for arithmetic operation on 16-bit values.
AVR204: BCD Arithmetics (14 pages, revision B, updated 01/03)
This Application Note lists routines for BCD arithmetics.
AVR220: Bubble Sort (5 pages, revision B, updated 5/02)
This Application Note implements the Bubble Sort algorithm on the AVR controllers.
AVR221: Discrete PID controller (10 pages, revision A, updated 05/06)
This application note describes a simple implementation of a discrete Proportional-Integral-Derivative (PID) controller.
AVR222: 8-Point Moving Average Filter (5 pages, revision B, updated 5/02)
This Application Note gives an demonstration of how the addressing modes in the AVR architecture can be utlized.
AVR230: DES Bootloader (24 pages, revision D, updated 04/05)
This application note describes how firmware can be updated securely on AVR microcontrollers with bootloader capabilities. The method includes using the Data Encryption Standard (DES) to encrypt the firmware. This application note also supports the Triple Data Encryption Standard (3DES).
AVR231: AES Bootloader (29 pages, revision D, updated 08/06)
This application note describes how firmware can be updated securely on AVR microcontrollers with bootloader capabilities. The method uses the Advanced Encryption Standard (AES) to encrypt the firmware.
AVR236: CRC check of Program Memory (9 pages, revision B, updated 5/02)
The Application Note describes CRC (Cyclic Redundancy Check) theory and implementation of CRC checking of program memory for secure applications.
AVR240: 4x4 Keypad-Wake Up on Keypress (14 pages, revision D, updated 06/06)
This Application Note describes a simple interface to a 4 x 4 keypad designed for low power battery operation.
AVR242: 8-bit Microcontroller Multiplexing LED Drive & a 4x4 Keypad. (26 pages, revision B, updated 5/02)
This Application Note describes a comprehensive system providing a 4 x 4 keypad as input into a real time clock/timer with two outputs.
AVR244: UART as ANSI Terminal Interface (8 pages, revision A, updated 11/03)
This application note describes some basic routines to interface the AVR to a terminal window using the UART (hardware or software).
AVR245: Code Lock with 4x4 Keypad and I2C™ LCD (9 pages, revision A, updated 10/05)
This application note describes how to build a code lock with an AVR and a handful of components. The code lock uses a 4x4 keypad for user input, a piezoelectric buzzer for audible feedback and an LCD for informational output.
AVR301: C Code for Interfacing AVRŽ to AT17CXXX FPGA Configuration Memories (20 pages, revision D, updated 01/04)
This Application Note describes how to In-System-Program (ISP) and Atmel FPGA Configuration Memory using an Atmel AVR MCU and how to bit bang TWI using port pins on an AT90S8515 AVR MCU
AVR304: Half Duplex Interrupt Driven Software UART (8 pages, revision C, updated 4/08)
This Application Note describes how to make a half duplex UART on any AVR device using the 8-bit Timer/Counter0 and an external interrupt.
AVR305: Half Duplex Compact Software UART (9 pages, revision C, updated 09/05)
This Application Note describes how to implement a polled software UART capable of handling speeds up to 614,400 bps on an AT90S1200.
AVR306: Using the AVR UART in C (3 pages, revision B, updated 7/02)
This Application Note describes how to set up and use the UART present in most AVR devices. C code examples are included for polled and interrupt controlled UART applications
AVR308: Software LIN Slave (12 pages, revision B, updated 5/02)
This Application Note shows how to implement a LIN (Local Interconnect Network) slave task in an 8-bit RISC AVR microcontroller without the need for any external components.
AVR310: Using the USI module as a I2C master (8 pages, revision B, updated 09/04)
This Application Note describes how to use the USI for TWI master communication.
AVR311: Using the TWI module as I2C slave (12 pages, revision D, updated 8/09)
This application note describes a TWI slave implementation, in form of a fullfeatured driver and an example of usage for this driver.
AVR312: Using the USI module as a I2C slave (9 pages, revision C, updated 09/05)
This Application Note describes how to use the USI for TWI slave communication.
AVR313: Interfacing the PCAT Keyboard (13 pages, revision B, updated 5/02)
Most microcontrollers requires some kind of human interface. This Application Note describes one way of doing this using a standard PC AT Keyboard.
AVR314: DTMF Generator (8 pages, revision B, updated 5/02)
This Application Note describes how DTMF (Dual-Tone Multiple Frequencies) signaling can be implemented using any AVR microcontroller with PWM and SRAM.
AVR315: Using the TWI module as I2C master (11 pages, revision B, updated 09/04)
This Application Note describes a TWI master implementation, in form of a fullfeatured driver and an example of usage for this driver.
AVR316: SMBus Slave Using the TWI Module (20 pages, revision A, updated 10/05)
This application note provides background information on the SMBus specification and the AVR TWI module, an interrupt-driven SMBus slave driver and a sample implementation.
AVR318: Dallas 1-WireŽ master (21 pages, revision A, updated 09/04)
This application note shows how a 1-Wire master can be implemented on an AVR, either in software only, or utilizing the U(S)ART module.
AVR319: Using the USI module for SPI communication (8 pages, revision A, updated 09/04)
This application note describes a SPI interface implementation, in form of a fullfeatured driver and an example of usage for this driver.
AVR320: Software SPI Master (5 pages, revision C, updated 09/05)
The Synchronous Peripheral Interface (SPI) is gaining rapidly in popularity, allowing faster communication than I2C. For the smaller AVR Microcontrollers, which do not have hardware SPI, this Application Note describes a set of low-level routines for software implementation. These can be used as the basis for communicating with Atmel's 25xxx family of Serial EEPROM memories, as well as a host for other peripheral ICs such as display drivers.
AVR335: Digital Sound Recorder with AVR and DataFlash (20 pages, revision C, updated 04/05)
This Application Note describes how to record, store and play back sound using any AVR MCU with A/D converter, the AT45DB161 DataFlash memory and a few extra components
AVR360: Step Motor Controller (4 pages, revision B, updated 4/03)
This Application Note describes how to implement a compact size and high-speed interrupt driven step motor controller.
AVR400: Low Cost A/D Converter (6 pages, revision B, updated 5/02)
This Application Note targets cost and space critical applications that need an ADC.
AVR401: 8-Bit Precision A/D Converter (12 pages, revision C, updated 2/03)
This Application Note describes how to perform a kind of dual slope A/D conversion with an AVR Microcontroller.
AVR443: Sensor-based control of three phase Brushless DC motor (8 pages, revision B, updated 02/06)
This application note described the control of a BLDC motor with Hall effect position sensors. The implementation includes both direction and open loop speed control.
AVR444: Sensorless control of 3-phase brushless DC motors (14 pages, revision A, updated 10/05)
This application note describes how to implement sensorless commutation control of a 3-phase brushless DC (BLDC) motor with the low cost ATmega48 microcontroller.
AVR448: Control of High Voltage 3-Phase BLDC Motor (10 pages, revision C, updated 05/06)
Using a microcontroller as a control device, 3-phase motors can be used for a wide range of applications. Motor sizes below one horsepower are efficiently controlled in speed, acceleration, and power levels.
AVR910: In-System Programming (12 pages, revision E, updated 8/08)
This Application Note shows how to design the system to support in-system programming.
AVR911: AVR Open-source Programmer (13 pages, revision A, updated 7/04)
The AVR Open-source Programmer (AVROSP) is an AVR programmer application that replaces the AVRProg tool included in AVR Studio. It is a command-line tool, using the same syntax as the STK500 and JTAGICE command-line tools in AVR Studio.
Top
Migration Notes
PDF Software Description
 
AVR084: Replacing ATmega323 by ATmega32 (6 pages, revision C, updated 7/03)
This Application Note describes issues to be aware of when migrating from the ATmega323 to the ATmega32 Microcontroller.
 
AVR089: Migrating between ATmega16 and ATmega32 (3 pages, revision A, updated 06/03)
This application note is a guide to help current ATmega16 users convert existing designs to ATmega32. The information given will also help users migrating from ATmega32 to ATmega16.
 
AVR099: Replacing AT90S4433 by ATmega48 (11 pages, revision A, updated 07/04)
This application note is a guide to assist current AT90S4433 users in converting existing designs to ATmega48. ATmega48 is not designed to be a replacement for AT90S4433, but is pin compatible and has a very similar feature set.
 
AVR500: Migration between ATmega64 and ATmega645 (6 pages, revision A, updated 07/04)
This application note is a guide to assist a current ATmega64 user in converting existing designs to ATmega645, and vice versa. ATmega64 and ATmega645 coexisting devices and they are not designed to be a replacement device for each other
 
AVR505: Migration between ATmega16/32 and ATmega164P/324P/644(P) (11 pages, revision C, updated 06/06)
This application note summarizes the differences between ATmega16/32 and ATmega164P/324P/644(P) and is a guide to assist current ATmega16/32 users in converting existing designs to the ATmega164P/324P/644(P).
 
AVR521: Migrating from ATmega32 to ATmega32A (3 pages, revision A, updated 6/08)
The ATmega32A is a functionally identical, drop-in replacement for the ATmega32(L). All devices are subject to the same qualification process and same set of production tests but since the manufacturing process is not the same, some electrical characteristics differ.

ATmega32(L) and ATmega32A have separate data sheets. This application note aims to outline the differences between the two devices and the data sheets.
Top