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



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

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

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

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

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

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

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

General Porting Considerations. Memory EEPROM XRAM

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

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

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

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

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

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

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

AT89C5131A Starter Kit... Software User Guide

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

AVR1922: Xplain Board Controller Firmware. 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

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

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

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

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

AVR315: Using the TWI Module as I2C Master. Introduction. Features. AVR 8-bit Microcontrollers APPLICATION NOTE

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

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

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

Two-wire Serial EEPROM AT24C1024 (1)

AVR311: Using the TWI Module as I2C Slave. Introduction. Features. AVR 8-bit Microcontrollers APPLICATION NOTE

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

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

USB Test Environment ATUSBTEST- SS7400. Summary

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

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

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

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

AVR151: Setup and Use of the SPI. Introduction. Features. Atmel AVR 8-bit Microcontroller APPLICATION NOTE

AT91SAM ARM-based Flash MCU. Application Note

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

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

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

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

2-wire Serial EEPROM AT24C1024. Advance Information

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

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)

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

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

AVR444: Sensorless control of 3-phase brushless DC motors. 8-bit Microcontrollers. Application Note. Features. 1 Introduction

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

USER GUIDE EDBG. Description

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

AT88CK490 Evaluation Kit

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

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

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

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

8-bit RISC Microcontroller. Application Note. AVR910: In-System Programming

APPLICATION NOTE. Atmel AT02985: User s Guide for USB-CAN Demo on SAM4E-EK. Atmel AVR 32-bit Microcontroller. Features. Description.

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

AVR125: ADC of tinyavr in Single Ended Mode. 8-bit Microcontrollers. Application Note. Features. 1 Introduction

Application Note. Atmel ATSHA204 Authentication Modes. Prerequisites. Overview. Introduction

APPLICATION NOTE. Atmel LF-RFID Kits Overview. Atmel LF-RFID Kit. LF-RFID Kit Introduction

AVR068: STK500 Communication Protocol. 8-bit Microcontrollers. Application Note. Features. 1 Introduction

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

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

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

AVR106: C Functions for Reading and Writing to Flash Memory. Introduction. Features. AVR 8-bit Microcontrollers APPLICATION NOTE

AVR441: Intelligent BLDC Fan Controller with Temperature Sensor and Serial Interface. 8-bit Microcontrollers. Application Note.

2-wire Serial EEPROM AT24C512

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

Atmel AVR1017: XMEGA - USB Hardware Design Recommendations. 8-bit Atmel Microcontrollers. Application Note. Features.

8-bit RISC Microcontroller. Application Note. AVR335: Digital Sound Recorder with AVR and DataFlash

AVR2004: LC-Balun for AT86RF230. Application Note. Features. 1 Introduction

Transcription:

AVR155: Accessing an I 2 C LCD Display using the AVR 2-wire Serial Interface Features Compatible with Philips' I 2 C protocol 2-wire Serial Interface Master Driver for Easy Transmit and Receive Function Initialization and Use of a 2 x 16 I 2 C LCD Display C Source Code Matches the Most Common I 2 C LCD Drivers 1. Introduction The need for a cost effective inter-ic bus for use in consumer, telecommunications and industrial electronics, led to the development of the Philips I 2 C bus. Today the I 2 C bus is implemented in a large number of peripherals and microcontrollers, making it a good choice for low speed applications. To meet the large amount of ICs with I 2 C interface, the AVR TWI family has included the 2-wire Serial Interface (TWI) to it s perperihals. The TWI bus can communicate with any I 2 C compatible device both as slave and master. More information about I 2 C and details about TWI can be found in the Philips I 2 C specification and the AVR datasheet. This application note includes a TWI driver for bus handling and describes how to access a Philips I 2 C LCD driver on a Batron LCD display. 8-bit RISC Microcontroller Application te Figure 1-1. Hardware Connections VContrast (5.0V) VLCD LCD MODULE VCC SDA SCL POR GND 100N 10K 10K AVR Vcc PC1/SDA PC0/SCL GND 10K Rev.

2. Theory of Operation The Batron LCDs is a 2 x 16 alphanumeric display with an I 2 C user interface and an implemented ASCII table. The LCD is configured and controlled with I 2 C serial communication from the AVR and it s TWI hardware module. AVR s TWI is a fully I 2 C compatible and can access any I 2 C device following the I 2 C specification from Philips. This makes it easy to configure and use the Philips I 2 C LCD driver. The AVR software is written in C and divided into two main parts. Part one, LCD control, handles the necessary control and data bytes for the LCD while part two, TWI driver, takes care of the I 2 C bus handling. The AVR TWI module is basically controlled by the TWINT flag. The flag is used to start all actions to the bus and to flag when an action is done. When the TWINT flag is set, the TWSR contains a status value according to the last action and if it was successful or not. When sending a message to the I 2 C bus through TWI, the code will pretty much look like a state machine and the next step in the state machine should always be based on the result of the last step, read from the TWSR. See Figure 2-1. The TWI is very close to the I 2 C s signaling and data flow which makes it a very powerful module but also fairly complex to use. To ease the use of TWI, this application note is divided into two sections, a LCD control and a TWI master driver, both written in C. The TWI master is a communication driver handling all the signaling and data transmission through the TWI module to the I 2 C bus. It is a general driver and can be used to any master I 2 C access and will only need a minimum information from the calling function. The driver is realized in its own C file and can be included in any C program requiring a TWI driver. The LCD control takes care of the LCD specific setup and sends data and control bytes through the TWI master driver to the LCD. It configures the LCD to a dual-line display and display the string AVR ATmega163 with TWI interface to I 2 C as a scrolling text. 2 AVR155

AVR155 Figure 2-1. Basic TWI Handling Apply START Condition TWINT = 1? yes TWSR = Code for START Sent Correct? Send Slave Address + W TWINT = 1? TWSR = Code for Address ACK Received? Send Data Byte TWINT = 1? TWSR = Code for Data Byte ACK Received? Apply STOP Condition ERROR! 2.1 TWI Master Driver The TWI master driver handles the TWI modules signaling and data flow to and from the I 2 C bus. It only requires a minimum input from the calling function and will return a state according to the result of the action. The driver is released as a polling function which monitor the TWINT flag but can easily be changed to be interrupt driven. (See Implementation on page 5.) The driver needs information about the slaves address and the bytes to send or receive. This is passed on to the function as a table of structs ended by the masters own addressee. See Figure 2-2. 3

Figure 2-2. Table of Structs for Sending to One Slave SLA+W 0 Number of Bytes to Send Pointer to the Bytes to Send Own Address 1 Figure 2-2 shows a table for sending data to a slave. SLA+W is the slaves address and is setting it into slave receiver mode. Number of bytes indicates how many bytes the function will send to the slave and the pointer shows were to find the bytes. The function can handle a table with a infinite number of structs but will always be ended if it finds its own address as the slave address. If the table contains more than one package plus the one with it s own address, it will use repeated start between the packages. If a table as Figure 2-3 is used, it will send a START, SLA+W, ndata bytes, a repeated START, SLA+W, ndata bytes and a STOP. Figure 2-3. Table for Sending to One or Two Slaves SLA+W 0 Number of Bytes to Send Pointer to the Bytes to Send SLA+W 1 Number of Bytes to Send Pointer to the Bytes to Send Own Address 2 The function can also handle master receive. The pointer in the struct will then be a pointer to a temporarily buffer for the received bytes. See Figure 2-4. Figure 2-4. Table for Receiving from One Slave SLA+R 0 Number of Bytes to Receive Pointer to a Temporarily Buffer Own Address 1 4 AVR155

AVR155 The driver can also handle mixed master receive and transmit with repeated START in between. After the driver is done with the communication, it will return to the calling function with a state value. This value is the result of the transfer and will be 0xFF if success or TWSR if it failed. For a complete list see Table 2-1. 2.2 LCD_control function The LCD code gives an example on how to initialize the LCD, clear the display and make a scroll text. For more specific details and all the features of the display, please see the Batron LCD datasheet and Philips 2119 I 2 C LCD driver datasheet. 3. Implementation Table 2-1. Return Value 0x00 0x20 0x30 0x38 0x48 0x58 0xFF Return Values from the TWI Master Driver Function Description Bus Error due to illegal START or STOP conditions Slave address + W transmitted and NACK is received Data byte transmitted and NACK is received Arbitration Lost Slave address +R transmitted and NACK is received Data byte received and NACK is transmitted Buffer transmit OK/ buffer receive OK The code is written to be as self explaining as possible and for more details about the program please read the comments in the code. The functions are not interrupt driven as a polled version is a less complex way of doing a TWI driver. It is fairly easy to convert it to a interrupt driven version and could be done by moving the entire TWI driver function into the TWINT interrupt routine. Change the function to be a state machine and define a global variable to keep control of the state machine. You will also need a global table for the data to send or as a buffer for receiving. The code is written in C divided into two files, TWI_driver.c and LCD_control.c. Both files have separate header files and are written for IAR C-compiler Version 1.50C/WIN. They are written in ANSI C and it should be simple to change them for other compilers. I/O and linker files are included in the code package added to the application note. 3.1 TWI Driver Functions The TWI driver handles all the communication against the I 2 C bus for the calling function. For more details about the function please see the comments in the code. 5

Figure 3-1. TWI Driver Flow Chart Start Send START Send_start() Send Slave adr + W/R Send_adr() Read or Write Data? Write Read Send data Send_byte() Read data Get_byte() Last Byte? Last Byte? Last Package? Send STOP Send_stop() Return 3.1.1 char Init_TWI (void) Setup for the AVR TWI module. Initialize the AVR slave address, sets the baudrate for the communication and enable the module. 3.1.2 void Wait_TWI_int (void) Loop until the TWI interrupt flag (TWINT) get set. 3.1.3 unsigned char Send_start (void) Apply a START condition to the bus, waits until the condition is done and returns 0xFF if success. If a error occur it will return TWSR. 3.1.4 void Send_stop (void) Apply a STOP condition to the bus and return immediately. 3.1.5 unsigned char Send_to_TWI (unsigned char *tx_frame, unsigned char *rx_frame) The main driver function which handles all the transfer activity and calls the other functions for applying START/STOP conditions, transmit/receive data and transmit/receive address bytes. Return 0xFF if success, TWSR if error. 3.1.6 unsigned char Send_byte (unsigned char data) Send a data byte to the slave and wait for a ACK/NACK. Return 0xFF if ACK, TWSR if error. 6 AVR155

AVR155 3.1.7 unsigned char Send_adr (unsigned char adr) Send a slave address to the bus and wait for a ACK/NACK. Return 0xFF if success, TWSR if error. 3.1.8 unsigned char Get_byte (unsigned char *rx_frame) Waits until you get a TWINT flag set and read out the TWI data registry. The read value is saved in SRAM at *rx_frame. Return 0xFF if success, TWSR if error. 3.1.9 void Delay_mS (char ms) A simple delay function. The delay is decided by the variable ms which decides number of ms delay. 3.1.10 void Reset_TWI (void) Reset the TWI module and release the bus. Used to free the bus if a error occur. 3.2 LCD Control Functions The LCD control takes care of the LCD specific setup and sends data and control bytes through the TWI master driver to the LCD. It configures the LCD to a dual-line display and display the string AVR ATmega163 with TWI interface to I 2 C as a scrolling text on the top line. 3.2.1 char setup(void) Setup function for the AVR. 3.2.2 unsigned char Init_DSP (void) Setup function for the display. Configure it to two lines with 40 characters each. 3.2.3 unsigned char Clear_DSP (void) The display has a internal clear display function which writes 0x20 to the entire memory area. At this version of the driver 0x20 is not a blank character, this function will write blank characters to the entire display instead of 0x20. 7

Figure 3-2. LCD Control Flow Chart Start Setup AVR setup() LCD Busy? Read_LCD_ controlreg() Initialize the LCD Init_LCD() LCD Busy? Read_LCD_ controlreg() Clear the LCD Clear_LCD() LCD Busy? Read_LCD_ controlreg() Write a String to the LCD Write_String1() 3 Second Delay delay1s() 1 Second Delay delay1s() LCD Busy? Read_LCD_ controlreg() Scroll Displayed Text Once to the Left Shift_left() 3.2.4 unsigned char Write_String1 (void) Writes the string AVR ATmega163 with TWI interface to I 2 C to the display starting at line one, position 0. 3.2.5 unsigned char Shift_left (void) Shifts part of the display memory that is viewable once to the left and makes a scrolling effect. Shifts one time every half second. 3.2.6 unsigned char Read_read_controlbyte (void) Read out the displays read control byte including the busy flag and display address counter. Used to check if the display is busy or ready for new commands. 8 AVR155

AVR155 3.3 Hardware 4. References The LCD is connected to the AVR through a I 2 C interface as shown in Figure 2-2. Philips The I 2 C-bus Specification Version 2.0 - (December 1998) Philips PCF2119x LCD controllers/drivers datasheet - (March 1999) Batron BT21605V-SRE-I 2 C-COG LCD module datasheet Atmel ATmega163 datasheet 9

Atmel Corporation 2325 Orchard Parkway San Jose, CA 95131, USA Tel: 1(408) 441-0311 Fax: 1(408) 487-2600 Regional Headquarters Europe Atmel Sarl Route des Arsenaux 41 Case Postale 80 CH-1705 Fribourg Switzerland Tel: (41) 26-426-5555 Fax: (41) 26-426-5500 Asia Room 1219 Chinachem Golden Plaza 77 Mody Road Tsimshatsui East Kowloon Hong Kong Tel: (852) 2721-9778 Fax: (852) 2722-1369 Japan 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 Memory 2325 Orchard Parkway San Jose, CA 95131, USA Tel: 1(408) 441-0311 Fax: 1(408) 436-4314 Microcontrollers 2325 Orchard Parkway San Jose, CA 95131, USA Tel: 1(408) 441-0311 Fax: 1(408) 436-4314 La Chantrerie BP 70602 44306 Nantes Cedex 3, France Tel: (33) 2-40-18-18-18 Fax: (33) 2-40-18-19-60 ASIC/ASSP/Smart Cards Zone Industrielle 13106 Rousset Cedex, France Tel: (33) 4-42-53-60-00 Fax: (33) 4-42-53-60-01 1150 East Cheyenne Mtn. Blvd. Colorado Springs, CO 80906, USA Tel: 1(719) 576-3300 Fax: 1(719) 540-1759 Scottish Enterprise Technology Park Maxwell Building East Kilbride G75 0QR, Scotland Tel: (44) 1355-803-000 Fax: (44) 1355-242-743 RF/Automotive Theresienstrasse 2 Postfach 3535 74025 Heilbronn, Germany Tel: (49) 71-31-67-0 Fax: (49) 71-31-67-2340 1150 East Cheyenne Mtn. Blvd. Colorado Springs, CO 80906, USA Tel: 1(719) 576-3300 Fax: 1(719) 540-1759 Biometrics/Imaging/Hi-Rel MPU/ High Speed Converters/RF Datacom Avenue de Rochepleine BP 123 38521 Saint-Egreve Cedex, France Tel: (33) 4-76-58-30-00 Fax: (33) 4-76-58-34-80 Literature Requests www.atmel.com/literature Disclaimer: The information in this document is provided in connection with Atmel products. license, express or implied, by estoppel or otherwise, to any intellectual property right is granted by this document or in connection with the sale of Atmel products. EXCEPT AS SET FORTH IN ATMEL S TERMS AND CONDI- TIONS OF SALE LOCATED ON ATMEL S WEB SITE, ATMEL ASSUMES NO LIABILITY WHATSOEVER AND DISCLAIMS ANY EXPRESS, IMPLIED OR STATUTORY WARRANTY RELATING TO ITS PRODUCTS INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTY OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE, OR NON-INFRINGEMENT. IN NO EVENT SHALL ATMEL BE LIABLE FOR ANY DIRECT, INDIRECT, CONSEQUENTIAL, PUNITIVE, SPECIAL OR INCIDEN- TAL DAMAGES (INCLUDING, WITHOUT LIMITATION, DAMAGES FOR LOSS OF PROFITS, BUSINESS INTERRUPTION, OR LOSS OF INFORMATION) ARISING OUT OF THE USE OR INABILITY TO USE THIS DOCUMENT, EVEN IF ATMEL HAS BEEN ADVISED OF THE POSSIBILITY OF SUCH DAMAGES. Atmel makes no representations or warranties with respect to the accuracy or completeness of the contents of this document and reserves the right to make changes to specifications and product descriptions at any time without notice. Atmel does not make any commitment to update the information contained herein. Unless specifically provided otherwise, Atmel products are not suitable for, and shall not be used in, automotive applications. Atmel s products are not intended, authorized, or warranted for use as components in applications intended to support or sustain life. Atmel Corporation 2005. All rights reserved. Atmel, logo and combinations thereof, Everywhere You Are, AVR, AVR Studio, and others, are registered trademarks or trademarks of Atmel Corporation or its subsidiaries. Other terms and product names may be trademarks of others. Printed on recycled paper.