AVR274: Single-wire Software UART. 8-bit Microcontrollers. Application Note. Features. 1 Introduction

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

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

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

General Porting Considerations. Memory EEPROM XRAM

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

AT89C5131A Starter Kit... Software User Guide

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

AVR442: PC Fan Control using ATtiny13. 8-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. AVR134: Real-Time Clock (RTC) using the Asynchronous Timer. Features. Theory of Operation.

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

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

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

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

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

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

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

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

USER GUIDE EDBG. Description

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

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

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

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

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

AVR1321: Using the Atmel AVR XMEGA 32-bit Real Time Counter and Battery Backup System. 8-bit Microcontrollers. Application Note.

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

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

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

APPLICATION NOTE. Atmel AVR443: Sensor-based Control of Three Phase Brushless DC Motor. Atmel AVR 8-bit Microcontrollers. Features.

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

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

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

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

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

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

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

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

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

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

AT91SAM ARM-based Flash MCU. Application Note

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

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

Develop a Dallas 1-Wire Master Using the Z8F1680 Series of MCUs

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

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

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

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

AVR131: Using the AVR s High-speed PWM. Introduction. Features. AVR 8-bit Microcontrollers APPLICATION NOTE

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

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

USB Test Environment ATUSBTEST- SS7400. Summary

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

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

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

APPLICATION NOTE. Atmel AT04389: Connecting SAMD20E to the AT86RF233 Transceiver. Atmel SAMD20. Description. Features

APPLICATION NOTE. Atmel AT01095: Joystick Game Controller Reference Design. 8-/16-bit Atmel Microcontrollers. Features.

Two-wire Serial EEPROM AT24C1024 (1)

2-wire Serial EEPROM AT24C1024. Advance Information

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

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

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)

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

AT15007: Differences between ATmega328/P and ATmega328PB. Introduction. Features. Atmel AVR 8-bit Microcontrollers APPLICATION NOTE

AT88CK490 Evaluation Kit

Transcription:

AVR274: Single-wire Software Features Software implemented Half-duplex single-wire communication Interrupt driven Supports baud rates up to 9600 @ 1MHz System Clock Compatible with any AVR supporting external interrupt and a 8-bit timer compare interrupt 8-bit Microcontrollers Application te 1 Introduction communications are usually implemented using separate data wires for reception and transmission. A single-wire is using only one wire for communication, and is therefore ideal in low cost solutions where no high-speed full duplex communication is needed. This application note describes a software implementation of a single wire. 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. Rev.

2 Theory of Operation 2.1 frame The protocol is an asynchronous serial communication standard. Data is transferred sequentially, one bit at a time. This implementation uses a frame consisting of 8 data bits, one start bit and two stop bits as shown in Figure 2-1. Other implementations may use different frame formats consisting of 5 to 9 data bits, 1 parity bit for error control and 1 stop bit. The line is high when no transmission is ongoing. Figure 2-1. frame format Receiver sampling Start Bit D0 D1 D2 D3 D4 D5 D6 D7 Stop Bits Bit Period Frame Figure 2-2. Serial frame for ASCII a (0x61) Start Bit 1 0 0 0 0 1 1 0 Stop Bits 2.2 Transmission 2.3 Reception 2 AVR274 Transmission is initialized by sending the start bit (pulling the line low) for one bit period. The receiver detects the falling edge and is then able to synchronize to the transmitter. The least significant bit of the data bits is sent first. Open collector outputs are used to drive the line, but if both devices are transmitting at the same time, the transmitter sending a low bit will pull the line low even if the other transmitter is sending a high bit. To handle this situation the never starts transmitting while receiving. The transmitter is also sampling the line before transmitting a new bit to make sure the line has not changed since the last bit was transmitted. An error flag is set if a low bit is received when a high bit was last transmitted. Reception is started when the start bit is detected. The data bits are then sampled in the middle of every period. The first data bit is then sampled one and a half bit period after the start bit is detected. This implementation is not using the three samples majority vote found in most hardware s to minimize clock cycles used by the driver.

AVR274 2.4 Baud Rate 2.5 Error Conditions 3 Implementation 3.1 Baud Rate Settings In communication speed is defined by the baud rate. The baud rate is in this case equal to the number of bits transmitted per second including the start and stop bits. The receiver and transmitter have to be set up using the same baud rate, or else they will not be able to synchronize. Common baud rates are 4800, 9600, 19200, 28800 and 38400, but other rates may also be used. There are several error conditions that can occur. If the baud rate differs too much on the two devices, they can get unsynchronized. Since the baud rate is dependent on a clock frequency, this problem can occur if the clock differs from the intended value. If using an internal RC oscillator, it is recommended to calibrate it before using the. Please refer to relevant application notes on how to calibrate the internal RC oscillator. The received data byte is stored in a single byte buffer. If the data is not handled before the next byte is received, the buffer is overflowed and old data overwritten. An overflow flag is set if this occur. To help this situation speed can be reduced, buffer increased, or the receive routine may be called more frequently if possible. If a noise pulse forces the line low, the AVR will detect the falling edge and start receiving. If the start bit is received as a high bit the AVR will stop reception and not save any data, but if the noise pulse lasts more than a couple of cycles a corrupted byte will be saved. ise may also corrupt a frame under transmission. A bit is sampled only once so the frame will have an incorrect value if only one sample is corrupted by noise. To detect these errors a parity bit can be added to the frame. Since an interrupt driven approach is used, application code may execute in parallel to the communication. te that if other interrupt sources are active this may affect the timing and may cause the communication to fail. It is recommended to use the driver in a master/slave configuration where the slave only sends data when requested by the master. This will prevent situations where both devices are transmitting at the same time. If the slave is in an error condition it may signal the master by pulling the line low for a specified time. The master s error flag will then be set, and the communication may be continued when the slave stops pulling the line low. The code described in this application note is written as drivers for the communication. A timer compare interrupt is used to generate the bit sampling and bit transmission intervals. The timer is set in Clear Timer on Compare (CTC) mode and to generate an interrupt when the timer equals the output compare register. The time between each interrupt is dependent on the system clock, timer prescaler and value in the compare register as shown in Equation 3-1. Setting the compare value to 10 will generate 11 ticks between each interrupt. Baud rate settings are set in the header file (single_wire_.h). 3

Equation 3-1. Baud Rate Calculation System Clock Baud Rate = ( One Period Compare Setting + 1) Timer Prescaler Equation 3-2. One Period Compare Setting Calculation One Period Compare Setting = System Clock Baud Rate Timer Prescaler 1 Table 3-1 shows timer settings for some common clock speeds and baud rates. The error values are calculated using Equation 3-3. Table 3-1. One Period Settings for 1, 2, 4 and 8 MHz Oscillator Baud Rate (bps) One Period Setting 1 MHz Oscillator 2 MHz Oscillator Prescaler Setting Error One Period Setting Prescaler Setting Error 4800 207 1-0.16% 51 8-0.16% 9600 103 1-0.16% 207 1-0.16% 19200 NA 103 1-0.16% 4 MHz Oscillator 8 MHz Oscillator 4800 103 8-0.16% 207 8-0.16% 9600 51 8-0.16% 103 8-0.16% 19200 207 1-0.16% 51 8-0.16% 28800 138 1 0.08% 34 8 0.82% 38400 103 1-0.16% 207 1-0.16% Equation 3-3. Error calculation Baud RateClosest Match Error [%] = ( 1) 100% Baud Rate Please note that there is a maximum setting for the baud rate. This is because the timer interrupt has to be finished before a new interrupt is generated. Equation 3-4 gives the maximum baud rate possible. The interrupt must finish before a new compare interrupt is triggered. The maximum cycles in a compare interrupt are about 100-110 depending on the compiler settings. Using a 1MHz system clock the maximum baud rate is about 10,000 bit/s. The will consume about all CPU resources when communicating at this baud rate. The application using the must also have time to read the received data before a new frame is received, or else an overflow error will occur. It is recommended to set the baud rate well below the maximum setting depending on the application. 4 AVR274

AVR274 Equation 3-4. Maximum Baud Rate Setting System Clock Baud Rate < Maximum Cycles in Compare Interrupt 3.2 Hardware This implementation is designed using an external pull-up circuit. The I/O pins must therefore use open-collector outputs. In addition they need to generate an external interrupt to detect an incoming frame. A typical value for a pull-up resistor on an AVR microcontroller is 15-40kΩ. When sending a high bit or receiving the AVR port is tri-stated. A low bit is sent by configuring the port to output low. If communicating with a device supporting the RS-232 standard, voltage levels from about -15 to 15V are needed. A circuit is then needed to convert the signals to these voltages. An example of a single chip interface circuit is Maxims MAX232. It operates from a single 5V power supply, and has an onboard DC/DC converter to generate the RS-232 levels. 3.3 Status register The single-wire has a status register containing the following four flags: SW TX_BUFFER_FULL Set if TX data is ready to be transmitted. This flag must be zero when calling the SW transmit function. SW RX_BUFFER_FULL Set if data is available in the receive buffer. This flag must be one when calling the SW Receive function. SW RX_BUFFER_OVERFLOW Set if incoming data is lost due to overflow in the receive buffer. SW FRAME_ERROR Set when receiving if a high start bit or a low stop bit is sampled. Also set when transmitting if a different bit then the last transmitted is sampled. To decrease code size and increase speed the status register may be put in a GPIO register if available. (t available on the ATmega32). 3.4 counter A counter variable is used in the driver to control the state and which bit to be transmitted/received by the. The is idle when the counter value is 0. The counter value is even when transmitting and odd when receiving as shown in Figure 3-1. 5

Figure 3-1. Counter Values 1 3 5 7 9 11 13 15 17 19 21 23 Reception Start Bit D0 D1 D2 D3 D4 D5 D6 D7 Stop Bits Transmission 2 4 6 8 10 12 14 16 18 20 22 3.5 functions The driver consists of three global functions: void void uint8_t SW Enable(void) SW Transmit(uint8_t) SW Receive(void) The SW status is a global variable holding the status flags. The SET_FLAG, CLEAR_FLAG and READ_FLAG macros can be used to access the status flags defined in single_wire_.h. The following interrupts routines are used in the implementation: interrupt void External_SW ISR() interrupt void Timer_Compare_SW ISR() The next section contains brief descriptions and flowcharts for the functions: 3.5.1 SW Enable Before data can be received or transmitted the needs to be enabled by calling the SW Enable function. It tri-states the pin so the line is idle high. The status register and counter is cleared so all ongoing transmissions are stopped. Disabling the external and timer interrupt will stop the. 6 AVR274

AVR274 Figure 3-2. SW Enable() function SW Enable Set bus idle high Clear status register Initialize external interrupt Clear external interrupt flag Set state IDLE Enable external interrupt Return 3.5.2 SW Transmit The SW Transmit() function takes one byte as parameter and adds this byte to the transmit buffer. The SW TX_BUFFER_FULL flag must be zero when calling this function, or else data will be lost. If a data transfer is not in progress when this function is called, a new transmission will be started by sending a start bit and enabling the timer interrupt. 7

Figure 3-3. SW Transmit() function SW Transmit (data) Set Tx data buffer full flag Copy Tx buffer to Tx data Copy data to Tx buffer Clear Tx buffer full flag counter = 0? Disable external interrupts Send start bit counter = 2 Clear timer Set timer compare = start transmit Clear timer interrupt flag Enable timer interrupt Start timer Return 3.5.3 SW Receive This function returns the byte received in Rx_data. The _RX_BUFFER_FULL flag must be checked before calling this function to make sure there is valid data in Rx_data. When receiving multiple bytes it is important to call this function before next byte is received, or else the receive buffer will be overflowed and data lost. 8 AVR274

AVR274 Figure 3-4. SW Receive() function SW Receive Copy content of RX_buffer to data Clear Rx buffer full flag Return data 3.5.4 SW_External ISR The External_SW ISR() is triggered when a falling edge is detected on the line when there is no ongoing transmission or reception. The routine checks if the pin is low. If not, no reception is started. It also disables further external interrupts so no falling edges on the data bits will trigger a new interrupt, as it is only used to detect the start bit. Figure 3-5. External_SW ISR() External ISR pin low? Set counter = 3 Clear Rx data Set timer compare = start receive Clear timer interrupt flag Enable timer interrupt Clear timer Return 3.5.5 Timer_Compare_SW ISR The Timer_Compare_SW ISR() (Figure 3-1) controls the handling for transmitting and receiving frames. It is called automatically when the output compare register equals the timer and the timer interrupt is set. Data is transmitted when the counter is even, and received when the counter is odd. The receive - (Figure 3-8) and transmit handler (Figure 3-7) is implemented directly into the timer interrupt. Please refer to Figure 3-1 for details on the different counter values. 9

Figure 3-6. Timer_Compare_SW ISR() Timer Compare ISR Set line value = bit_in counter is odd=? Transmit Handler Receive Handler Increment counter by 2 Return 10 AVR274

AVR274 Figure 3-7. Transmit Handler() Transmit Handler counter!= 2? Set last_bit_sent = 1 counter <= 16? counter <= 18? Set last_bit_sent = Tx data & 0x01 counter = 18? Right shift _Tx_data counter = 20? Clear external interrupt flag Set frame error flag if last_bit_sent!= bit_in Tx buffer full flag set? Enable external interrupt Set bit_out according to Tx_data Set bit_out = 1 Copy Tx buffer to Tx data Stop timer Clear Tx buffer full flag Disable timer interrupt Set counter = 0 Set bit_out = 0 Set counter = 0 Disable external interrupt Exit interrupt Set pin according to bit_out Return 11

Figure 3-8. Receive Handler() Receive Handler counter <= 17? counter = 19? counter = 23? Set frame error if bit_in == 0 Right shift Rx data Update Rx data according to bit_in Tx buffer full flag set? Stop timer Set counter = 0 Copy Tx buffer to Tx data Clear Tx buffer full flag Disable external interrupt Set Rx buffer overflow flag if Rx buffer full flag is set Copy Rx data to Rx buffer Set Rx buffer full flag Disable timer interrupt Send start bit Set counter = 2 Clear timer Clear external interrupt flag Enable external interrupt Set timer compare = start transmit Clear timer interrupt flag Exit interrupt Return 3.6 Example Program The main.c contains an example program for testing the. It receives data to a byte array and transmits the data back when the array is full or when a return character is received. 12 AVR274

AVR274 3.7 Code Size 4 Getting Started When complied with IAR EWAVR 4.21A and maximum speed optimization turned on the code size for the driver is 500 bytes. The source code can be downloaded as a zip-file from www.atmel.com/avr. The code is written for the ATmega32 and complied using the IAR EWAVR 4.20A complier. To compile the source without any changes the IAR EWAVR complier is needed. Doxygen documentation is available in readme.html. 13

Disclaimer Headquarters Atmel Corporation 2325 Orchard Parkway San Jose, CA 95131, USA Tel: 1(408) 441-0311 Fax: 1(408) 487-2600 International Atmel Asia Room 1219 Chinachem Golden Plaza 77 Mody Road Tsimshatsui East Kowloon Hong Kong Tel: (852) 2721-9778 Fax: (852) 2722-1369 Atmel Europe Le Krebs 8, Rue Jean-Pierre Timbaud BP 309 78054 Saint-Quentin-en-Yvelines Cedex France Tel: (33) 1-30-60-70-00 Fax: (33) 1-30-60-71-11 Atmel 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 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 Avenue de Rochepleine BP 123 38521 Saint-Egreve Cedex France Tel: (33) 4-76-58-47-50 Fax: (33) 4-76-58-47-60 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 CONDITIONS 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 INCIDENTAL 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. 2007 Atmel Corporation. All rights reserved. Atmel, logo and combinations thereof, Everywhere You Are, AVR, and others, are the registered trademarks or trademarks of Atmel Corporation or its subsidiaries. Other terms and product names may be trademarks of others.