AT91 ARM Thumb Microcontrollers. Application Note. AT91 Library. Scope. What is the AT91 Library? Definition of Terms

Similar documents
8-bit Microcontroller. Application Note. AVR222: 8-point Moving Average Filter

8-bit RISC Microcontroller. Application Note. AVR236: CRC Check of Program Memory

AT89C5131A Starter Kit... Software User Guide

AVR106: C functions for reading and writing to Flash memory. 8-bit Microcontrollers. Application Note. Features. Introduction

AT91 ARM Thumb Microcontrollers. Application Note. Interfacing a PC Card to an AT91RM9200-DK. Introduction. Hardware Interface

AVR317: Using the Master SPI Mode of the USART module. 8-bit Microcontrollers. Application Note. Features. Introduction

Application Note. C51 Bootloaders. C51 General Information about Bootloader and In System Programming. Overview. Abreviations

AVR319: Using the USI module for SPI communication. 8-bit Microcontrollers. Application Note. Features. Introduction

General Porting Considerations. Memory EEPROM XRAM

8-bit Microcontroller. Application Note. AVR400: Low Cost A/D Converter

AVR305: Half Duplex Compact Software UART. 8-bit Microcontrollers. Application Note. Features. 1 Introduction

8-bit RISC Microcontroller. Application Note. AVR182: Zero Cross Detector

Quick Start Guide. CAN Microcontrollers. ATADAPCAN01 - STK501 CAN Extension. Requirements

Tag Tuning/RFID. Application Note. Tag Tuning. Introduction. Antenna Equivalent Circuit

8-bit Microcontroller. Application Note. AVR415: RC5 IR Remote Control Transmitter. Features. Introduction. Figure 1.

AVR030: Getting Started with IAR Embedded Workbench for Atmel AVR. 8-bit Microcontrollers. Application Note. Features.

AVR134: Real Time Clock (RTC) using the Asynchronous Timer. 8-bit Microcontrollers. Application Note. Features. 1 Introduction

8-bit Microcontroller. Application Note. AVR105: Power Efficient High Endurance Parameter Storage in Flash Memory

How to Calculate the Capacitor of the Reset Input of a C51 Microcontroller 80C51. Application Note. Microcontrollers. Introduction

USB Test Environment ATUSBTEST- SS7400. Summary

8-bit Microcontroller. Application Note. AVR314: DTMF Generator

AVR245: Code Lock with 4x4 Keypad and I2C LCD. 8-bit Microcontrollers. Application Note. Features. 1 Introduction

8-bit Microcontroller. Application Note. AVR201: Using the AVR Hardware Multiplier

8-bit Microcontroller. Application. Note. AVR204: BCD Arithmetics. Features. Introduction. 16-bit Binary to 5-digit BCD Conversion bin2bcd16

AVR034: Mixing C and Assembly Code with IAR Embedded Workbench for AVR. 8-bit Microcontroller. Application Note. Features.

8-bit Microcontroller. Application Note. AVR461: Quick Start Guide for the Embedded Internet Toolkit. Introduction. System Requirements

AT91 ARM Thumb Microcontrollers. AT91SAM CAN Bootloader. AT91SAM CAN Bootloader User Notes. 1. Description. 2. Key Features

8-bit Microcontroller. Application Note. AVR134: Real-Time Clock (RTC) using the Asynchronous Timer. Features. Theory of Operation.

AVR1900: Getting started with ATxmega128A1 on STK bit Microcontrollers. Application Note. 1 Introduction

ATF15xx Product Family Conversion. Application Note. ATF15xx Product Family Conversion. Introduction

AVR32100: Using the AVR32 USART. 32-bit Microcontrollers. Application Note. Features. 1 Introduction

AVR32110: Using the AVR32 Timer/Counter. 32-bit Microcontrollers. Application Note. Features. 1 Introduction

AVR033: Getting Started with the CodeVisionAVR C Compiler. 8-bit Microcontrollers. Application Note. Features. 1 Introduction

Step Motor Controller. Application Note. AVR360: Step Motor Controller. Theory of Operation. Features. Introduction

8-bit RISC Microcontroller. Application Note. AVR155: Accessing an I 2 C LCD Display using the AVR 2-wire Serial Interface

AVR241: Direct driving of LCD display using general IO. 8-bit Microcontrollers. Application Note. Features. Introduction AVR

AVR1922: Xplain Board Controller Firmware. 8-bit Microcontrollers. Application Note. Features. 1 Introduction

AVR1600: Using the XMEGA Quadrature Decoder. 8-bit Microcontrollers. Application Note. Features. 1 Introduction. Sensors

AVR1318: Using the XMEGA built-in AES accelerator. 8-bit Microcontrollers. Application Note. Features. 1 Introduction

Application Note. USB Mass Storage Device Implementation. USB Microcontrollers. References. Abbreviations. Supported Controllers

AVR1309: Using the XMEGA SPI. 8-bit Microcontrollers. Application Note. Features. 1 Introduction SCK MOSI MISO SS

Using CryptoMemory in Full I 2 C Compliant Mode. Using CryptoMemory in Full I 2 C Compliant Mode AT88SC0104CA AT88SC0204CA AT88SC0404CA AT88SC0808CA

3-output Laser Driver for HD-DVD/ Blu-ray/DVD/ CD-ROM ATR0885. Preliminary. Summary

AVR32701: AVR32AP7 USB Performance. 32-bit Microcontrollers. Application Note. Features. 1 Introduction

USB 2.0 Full-Speed Host/Function Processor AT43USB370. Summary. Features. Overview

8-bit. Application Note. Microcontrollers. AVR282: USB Firmware Upgrade for AT90USB

Application Note. Migrating from RS-232 to USB Bridge Specification USB Microcontrollers. Doc Control. References. Abbreviations

AVR353: Voltage Reference Calibration and Voltage ADC Usage. 8-bit Microcontrollers. Application Note. Features. 1 Introduction

Application Note. 8-bit Microcontrollers. AVR280: USB Host CDC Demonstration. 1. Introduction

AVR1301: Using the XMEGA DAC. 8-bit Microcontrollers. Application Note. Features. 1 Introduction

AVR1510: Xplain training - XMEGA USART. 8-bit Microcontrollers. Application Note. Prerequisites. 1 Introduction

AVR442: PC Fan Control using ATtiny13. 8-bit Microcontrollers. Application Note. Features. 1 Introduction

AVR120: Characterization and Calibration of the ADC on an AVR. 8-bit Microcontrollers. Application Note. Features. Introduction

32-bit AVR UC3 Microcontrollers. 32-bit AtmelAVR Application Note. AVR32769: How to Compile the standalone AVR32 Software Framework in AVR32 Studio V2

Atmel AVR4903: ASF - USB Device HID Mouse Application. Atmel Microcontrollers. Application Note. Features. 1 Introduction

AVR115: Data Logging with Atmel File System on ATmega32U4. Microcontrollers. Application Note. 1 Introduction. Atmel

Table of Contents. Section 1 Introduction Section 2 Getting Started Section 3 Hardware Description

ATF1500AS Device Family. Application Note. In-System Programming of Atmel ATF1500AS Devices on the HP3070. Introduction.

2-wire Serial EEPROM AT24C512

AVR287: USB Host HID and Mass Storage Demonstration. 8-bit Microcontrollers. Application Note. Features. 1 Introduction

AT91 ARM Thumb Microcontrollers. Application Note. GNU-Based Software Development on AT91SAM Microcontrollers. 1. Introduction. 2.

Application Note. 8-bit Microcontrollers. AVR270: USB Mouse Demonstration

Atmel AVR4921: ASF - USB Device Stack Differences between ASF V1 and V2. 8-bit Atmel Microcontrollers. Application Note. Features.

8-bit Microcontroller. Application Note. AVR410: RC5 IR Remote Control Receiver

How To Prevent Power Supply Corruption On An 8Bit Microcontroller From Overheating

DIP Top View VCC A16 A15 A12 A7 A6 A5 A4 A3 A2 A1 A0 I/O0 I/O1 I/O2 GND A17 A14 A13 A8 A9 A11 A10 I/O7 I/O6 I/O5 I/O4 I/O3. PLCC Top View VCC A17

8051 Flash Microcontroller. Application Note. A Digital Thermometer Using the Atmel AT89LP2052 Microcontroller

Application Note. 8-bit Microcontrollers. AVR272: USB CDC Demonstration UART to USB Bridge

AT91SAM ARM-based Flash MCU. Application Note

APPLICATION NOTE. Atmel AVR134: Real Time Clock (RTC) Using the Asynchronous Timer. Atmel AVR 8-bit Microcontroller. Introduction.

Atmel AVR4920: ASF - USB Device Stack - Compliance and Performance Figures. Atmel Microcontrollers. Application Note. Features.

Two-wire Automotive Serial EEPROM AT24C01A AT24C02 AT24C04 AT24C08 (1) AT24C16 (2)

UM0834 User manual. Developing and debugging your STM8S-DISCOVERY application code. Introduction. Reference documents

Application Note. 8-bit Microcontrollers. AVR091: Replacing AT90S2313 by ATtiny2313. Features. Introduction

2-wire Serial EEPROM AT24C1024. Advance Information

AVR318: Dallas 1-Wire master. 8-bit Microcontrollers. Application Note. Features. Introduction

Application Note. 8-bit Microcontrollers. AVR293: USB Composite Device

AVR32138: How to optimize the ADC usage on AT32UC3A0/1, AT32UC3A3 and AT32UC3B0/1 series. 32-bit Microcontrollers. Application Note.

JTAG ICE.... User Guide

AVR2006: Design and characterization of the Radio Controller Board's 2.4GHz PCB Antenna. Application Note. Features.

2-Wire Serial EEPROM AT24C32 AT24C64. 2-Wire, 32K Serial E 2 PROM. Features. Description. Pin Configurations. 32K (4096 x 8) 64K (8192 x 8)

AVR ONE!... Quick-start Guide. EVK Windows 32104B AVR ONE! 02/10

APPLICATION NOTE. AT07175: SAM-BA Bootloader for SAM D21. Atmel SAM D21. Introduction. Features

Software Prerequisites Linux Ubuntu LTS. Estimated completion time: 15min. The goal of this hands-on is to:

GIVE WINGS TO YOUR IDEAS TOOLS MANUAL

3-output Laser Driver for HD-DVD/ Blu-ray/DVD/ CD-ROM ATR0885. Preliminary. Summary. Features. Applications. 1. Description

AN3354 Application note

AT86RF230 (2450 MHz band) Radio Transceiver... User Guide

etpu Host Interface by:

AVR32788: AVR 32 How to use the SSC in I2S mode. 32-bit Microcontrollers. Application Note. Features. 1 Introduction

AVR055: Using a 32kHz XTAL for run-time calibration of the internal RC. 8-bit Microcontrollers. Application Note. Features.

UM1680 User manual. Getting started with STM32F429 Discovery software development tools. Introduction

tinyavr Microcontrollers White Paper is the registered trademark of Atmel Corporation, 2325 Orchard Parkway, San Jose, CA Rev.

AVR1003: Using the XMEGA Clock System. 8-bit Microcontrollers. Application Note. Features. 1 Introduction

APPLICATION NOTE Atmel AT02509: In House Unit with Bluetooth Low Energy Module Hardware User Guide 8-bit Atmel Microcontroller Features Description

How To Use An Atmel Atmel Avr32848 Demo For Android (32Bit) With A Microcontroller (32B) And An Android Accessory (32D) On A Microcontroller (32Gb) On An Android Phone Or

Application Note. 8-bit Microcontrollers. AVR307: Half Duplex UART Using the USI Module

Two-wire Serial EEPROM AT24C1024 (1)

SMARTCARD XPRO. Preface. SMART ARM-based Microcontrollers USER GUIDE

AN2146 APPLICATION NOTE

Transcription:

AT91 Library Scope This document describes the contents of the AT91 Library V2.0, explains its uses and defines the naming and coding rules used in the source files. It applies to version 2.0. The section Getting Started with the AT91 Library on page 4 provides installation instructions to get up and running quickly. What is the AT91 Library? The AT91 Library is a set of C and assembly source code modules and project files that enable AT91 developers to quickly and easily define the architecture and the peripherals of their intended application, using any of the supported toolkits. This AT91 Library software package supports all the AT91 ARM Thumb microcontrollers and the associated evaluation boards. The AT91 Library V2.0 contains: Header files in C that define the AT91 peripherals and parts Assembly Include files that define the AT91 peripheral and part assembly language Examples of how to access the AT91 peripherals with or without interrupt handling C start-up files that explain how to boot an AT91 part, and how to branch on the main C function Project examples that show different aspects of the debug features, such as semihosting Target tools with which to evaluate the AT91 parts The AT91 Library V2.0 also provides one software library for each of the supported parts and one common software library for the complete set of drivers. All projects and tools use these libraries by mounting a part library and, if required, the driver library. AT91 ARM Thumb Microcontrollers Application Note Definition of Terms Device is used to indicate devices used by the operating systems, such as Flash memory. Part (or parts) is used for any device of the AT91 ARM Thumb family (AT91M40800, AT91M63200, etc.). It is used instead of device to prevent any confusion with the devices used by the operating systems. Periph is used to mean peripherals. Target (or targets) refers to any evaluation board or any customer-specific board fitting an AT91 ARM Thumb microcontroller. Rev. 1385A 11/00 1

Warnings Backward Compatibility The AT91 Library V2.0 is not compatible with the previous version, which was provided as an example for developing and running code for the AT91M40400 only. Warranty All delivered sources are free of charge and can be copied or modified without authorization. The software is delivered as is, without warranty or condition of any kind, either express, implied or statutory. This includes, without limitation, any warranty or condition with respect to merchantability or fitness for any particular purpose, or against the infringements of intellectual property rights of others. AT91 Library Rules These rules are used to improve readability and to obtain information on the library tools. File Naming and Extensions File names are written in lowercase to ensure maximum compatibility with all operating systems that the development tools may run on. Table 1. File Names and Extensions File Type File Format Comments Header files <periph_name>.h <driver_name>.h For example, the USART header file is usart.h and the wait driver interface header file is wait.h. Assembly Include files <periph_name>.inc For example, the assembly include file for the USART is usart.inc. C Library files lib_<periph_name>.c Contains the library functions Prototyping Header files For C file <c_file>.c, prototyping header file is <c_file>.h Each C file has a C header file that prototypes the functions of the C file. This header file also defines the descriptor of the drivers. Assembly Source files.s extension Assembly source files are named differently from C files in order to prevent the creation of an object file name with extension.o, which negates both sets of files. Assembly coding is required for interrupt handling (at least interrupt handler entry and exit). Assembly Macro files.mac extension The assembly macro file names have the extension.mac (and not.s as generally used in the ARM examples). 2 AT91 ARM Thumb

AT91 ARM Thumb Coding Rules Constants All assembly or C constants are defined in uppercase. The constant names have the format <periph_short>_<field>. <periph_short> is the name used in the datasheet (US for the USART, AIC for the AIC, etc.). <field> refers to the name of the register fields as described in the datasheet. Peripheral Structure Definitions Each AT91 peripheral is described by a C structure. This structure is composed of registers and a corresponding list of offsets. This structure enables a modular architecture that can be used with any peripheral. The peripheral base address identifies the peripheral. File Inclusions All AT91 Library header files are protected against multiple inclusion each file can be defined only once. Each Library header file can include another header file. Function name All functions of the AT91 Library have one of the following names: at91_<module>_open at91_<module>_close at91_<module>_get_status at91_<module>_trig_cmd at91_<module>_read at91_<module>_write at91_<module>_set_mode Each of these names corresponds to a logical operation to be performed on the peripheral or on the driver. For example, the function at91_usart_open enables the clock on the peripheral, validates the I/O lines and programs the main configuration register of the peripheral. Comments All C and assembly constants are commented. The comments are placed before the code lines and use the same indentation. 3

Getting Started with the AT91 Library Installation To install the AT91 Library V2.0, copy the complete hierarchy onto the hard disk of the computer, using the following path: C:\at91\software All projects provided use this path. If you change the path, you must define the new path before building the projects. Building the Libraries Library object files are delivered already built. However, if you want to modify the sources and rebuild the libraries, all the files are provided and you can do so by running one of the following DOS commands: To build the library for the part <part>: make -f c:\at91\parts\<parts>\makefile To build the driver library: make -f c:\at91\drivers\lib_drv\makefile 4 AT91 ARM Thumb

AT91 Library Source Hierarchy Figure 1. AT91 Library Directory software periph drivers parts targets projects tools debug_monitor Peripheral Directories The directory /software/periph contains a directory for each of the AT91 on-chip peripherals. These directories contain C and assembly source code files that provide examples of how to use the AT91 peripherals. The peripheral access functions are written in C. They are associated with an assembly file if the peripheral needs interrupt handling. 5

Figure 2. AT91 Peripheral Hierarchy periph aic ebi usart timer_counter power_saving Each peripheral directory contains at least: A peripheral header file (extension.h) that describes the peripheral structure and, when necessary, the descriptor structure of the peripheral A peripheral assembly Include file (extension.inc) A peripheral C access file (lib_<peripheral>.c) that works on a peripheral descriptor structure when it exists or directly on the peripheral from its base address A peripheral C header that prototypes functions of the C access file The Power-saving Directory The subdirectory \software\periph\power_saving contains description files of all the different power-saving modules, or power management controllers integrated in the AT91 microcontroller. It also contains a C access peripheral file and a corresponding C header file (lib_power_save.h). The C Standard Directory The directory \software\periph\stdc contains the C definitions used as a standard by all the components of the AT91 Library. It includes the file std_c.h, which defines the AT91 peripheral registers and the TRUE and FALSE labels. It also includes the files lib_err.c and lib_err.h, which enable management of errors inside the AT91 Library. Parts Directory The directory \software\parts contains a folder for each part supported by the AT91 Library. This folder uses the part name, minus the AT91 prefix, in lowercase. For example, the AT91M40800 is described in the folder \software\parts\m40800. 6

Each part is described as follows: The file <part>.h includes all the peripheral definition files of the part, providing a shortcut to loading the core and each relevant peripheral. This file also defines the base addresses of the on-chip user peripherals and memories. The file reg_<part>.h defines a complete list of the on-chip peripheral registers, making these registers easily accessible. The file lib_<part>.h includes all the C peripheral access header files that define the functions (defined in lib_<part>.c) and prototyping for the part. It also defines the external reference for the on-chip peripheral descriptors. The file lib_<part>.c defines the peripheral descriptor of the part. Driver Directory The AT91 Library drivers are functional objects described in the directory software\drivers. Each driver has its own directory, which includes: The file <driver>.h, which defines the driver descriptor, the data driver descriptor (if necessary) and the external references to the driver functions The file <driver>.c, which defines the driver functions The file irq_<driver>.mac, which is an assembly macro file that enables the driver user layer to easily define a driver interrupt handler Depending on the complexity of the driver, other C access and C header files may also be included. The driver library is created in the directory lib_drv, which includes subdirectories for each compiler variant. To use a driver library, you have to link it to the file lib_drv_16.alf in the appropriate variant directory. Target Directory Each AT91 evaluation board is described inside a subdirectory of the directory \software\targets. Each of these subdirectories contains the following files: The <target>.h file, which defines the components of the boards in C The <target>.inc file, which defines the components of the boards in assembly One or more cstartup.s files, which define a standard boot for the boards C Start-up Files The C start-up files provide examples of how to boot with an AT91 part, taking into account the part-specific features, the board-specific characteristics and the debug level required. A final production boot that works with Angel and enables semi-hosting requires a different initialization sequence to the production boot, which uses an ICE interface. When working with Angel, the boot sequence must not re-initialize the interrupt controller (used by Angel to communicate with the debugger). Project Directory The directory software\projects contains project files that include examples of programming and show how to use the AT91 Library using direct register access and access using the peripheral and driver libraries. Each project is in a separate subdirectory, which contains all the relevant C assembler and project files. These project files are provided for building the part library. Each project file has a different optimization variant (for example, Debug mode, Flash mode) in order to match build needs. 7

Table 1. Project Folders Project Directory software/projects/boot_eb01 software/projects/boot_eb40 software/projects/boot_eb63 Contents Projects programmed in EB01 boot Flash devices Projects programmed in EB40 boot Flash devices Projects programmed in EB63 boot Flash devices Tools Directory The AT91 Library directory \software\tools contains tools that run on a target. The directory includes: The Flash downloaders for the Flash devices fitted on the AT91 evaluation boards Power consumption measurement utilities that enable AT91 devices to operate under different conditions (Idle mode, running out of internal or external memories, memories programmed with or without wait states) The Dhrystone program, which enables evaluation of a complete development chain and device environment The DataFlash A large image generator The sources and the project files are provided for each tool. Angel Debug Monitor Directory This directory contains the Angel Debug Monitor sources and the project files so you can use the Angel Debug Monitor on your own board. The Angel Debug Monitor is programmed in the program nonvolatile memory of the AT91 Evaluation Board. The AT91 Application Group can offer only limited support on the Angel sources, as the Angel development and port on evaluation board were not developed by Atmel. Angel Image Files The Angel binary image files to be programmed on the AT91 evaluation boards are: software\debug_monitor\angel\image\sram_eb01\angel_at91.rom for the EB01 software\debug_monitor\angel\image\sram_eb40\angel_at91.rom for the EB40 software\debug_monitor\angel\image\sram_eb63\angel_at91.rom for the EB63 The corresponding ELF image files have the same name with the extension.axf. The ELF image files help to debug the start-up sequence by downloading it to a target. They can also be used to download symbols when debugging Angel from nonvolatile memory. Rebuild Angel for an AT91 Evaluation Board To rebuild Angel for one of the AT91 evaluation boards: 1. Open the project file software\debug_monitor\angel\image\angel_at91.apj with the ARM Software Development Toolkit V2.5 (or older). 2. Click on the required variant (sram_eb01, sram_eb40, sram_eb63, etc.) and select Force Build from the Project menu. 8

Using the AT91 Library Direct Register Accesses All the registers of a part can be easily accessed using the following C code: #include part\<part_name>\reg_<part_name>.h... status = US0_SR ; \* read the USART 0 Status Register */ US1_MR = 0 ; \* Clear the USART 1 Mode Register */ If the register or the peripheral does not exist, an error is provided when compiling. The syntax for the register access is the one defined in the relevant AT91 datasheet. If the part uses more than one peripheral, the peripheral index is added after the peripheral abbreviation. Part and Driver Software Layers Figure 3. AT91 Library Software Layers Projects/Tools Drivers USARTs, Timers, AIC, EBI, etc. Software Layer Peripheral USARTs, Timers, AIC, EBI, etc. Peripheral Registers Parts Layer AT91 Hardware Dynamic Referencing Considerations In order to increase the reuse of any code provided in the AT91 Library, dynamic references are used for the peripherals, the drivers and their data spaces and for the interrupt handling definitions. Peripheral Descriptors A peripheral descriptor contains a data structure and specific constants that define the characteristics of the peripheral. For example, a USART descriptor defines the USART base address, the peripheral identifier (i.e., its interrupt number in the AIC and its clock number in the power-saving module), and the PIO Controller descriptor (to which its I/O lines and the number of these I/O lines are connected). Only user peripherals require a descriptor. However, because the PIO Controller has a system role (assigning I/O lines to a peripheral) and a user role (the direct control of the I/O lines), it also needs a peripheral descriptor. The AT91 Library functions that operate on a user peripheral accept, as a first argument, a peripheral descriptor pointer. 9

Driver and Data Driver Descriptors Each driver uses a driver descriptor that includes the peripheral descriptor pointer or pointers that the driver must use. For example, the serial driver descriptor s first parameter is the USART descriptor pointer that the driver has to use. When necessary, a data driver descriptor is also defined for the drivers requiring a data space be defined. The second parameter of a driver descriptor is the pointer on a data driver descriptor. Interrupt Handler Macros As all the library components can be defined dynamically, the peripheral handler must be defined by the highest software layer. To make this definition easier, each driver that requires interrupt handling defines a macro named (in uppercase): AT91_<DRIVER>_ASM_HANDLER. To create a handler, an assembly file (.s) must be defined that includes the driver macro file. 10

Atmel Headquarters Corporate Headquarters 2325 Orchard Parkway San Jose, CA 95131 TEL (408) 441-0311 FAX (408) 487-2600 Europe Atmel SarL Route des Arsenaux 41 Casa Postale 80 CH-1705 Fribourg Switzerland TEL (41) 26-426-5555 FAX (41) 26-426-5500 Asia Atmel Asia, Ltd. Room 1219 Chinachem Golden Plaza 77 Mody Road Tsimhatsui East Kowloon Hong Kong TEL (852) 2721-9778 FAX (852) 2722-1369 Japan Atmel Japan K.K. 9F, Tonetsu Shinkawa Bldg. 1-24-8 Shinkawa Chuo-ku, Tokyo 104-0033 Japan TEL (81) 3-3523-3551 FAX (81) 3-3523-7581 Atmel Operations Atmel Colorado Springs 1150 E. Cheyenne Mtn. Blvd. Colorado Springs, CO 80906 TEL (719) 576-3300 FAX (719) 540-1759 Atmel Rousset Zone Industrielle 13106 Rousset Cedex France TEL (33) 4-4253-6000 FAX (33) 4-4253-6001 Atmel Smart Card ICs Scottish Enterprise Technology Park East Kilbride, Scotland G75 0QR TEL (44) 1355-803-000 FAX (44) 1355-242-743 Atmel Grenoble Avenue de Rochepleine BP 123 38521 Saint-Egreve Cedex France TEL (33) 4-7658-3000 FAX (33) 4-7658-3480 Fax-on-Demand North America: 1-(800) 292-8635 International: 1-(408) 441-0732 e-mail literature@atmel.com Web Site http://www.atmel.com BBS 1-(408) 436-4309 Atmel Corporation 2000. Atmel Corporation makes no warranty for the use of its products, other than those expressly contained in the Company s standard warranty which is detailed in Atmel s Terms and Conditions located on the Company s web site. The Company assumes no responsibility for any errors which may appear in this document, reserves the right to change devices or specifications detailed herein at any time without notice, and does not make any commitment to update the information contained herein. No licenses to patents or other intellectual property of Atmel are granted by the Company in connection with the sale of Atmel products, expressly or by implication. Atmel s products are not authorized for use as critical components in life support devices or systems. ARM, Thumb and ARM Powered are registered trademarks of ARM Limited. Marks bearing and/or are registered trademarks and trademarks of Atmel Corporation. Terms and product names in this document may be trademarks of others. Printed on recycled paper. 1385A-11/00/0M