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



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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

General Porting Considerations. Memory EEPROM XRAM

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

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

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

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

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

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

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

USER GUIDE EDBG. Description

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

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

AT88CK490 Evaluation Kit

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. Secure Personalization with Transport Key Authentication. ATSHA204A, ATECC108A, and ATECC508A. Introduction.

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

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

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

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

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

AT91SAM ARM-based Flash MCU. Application Note

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

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

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

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

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

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

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

Application Note. Atmel CryptoAuthentication Product Uses. Atmel ATSHA204. Abstract. Overview

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

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

AT89C5131A Starter Kit... Software User Guide

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

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

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

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

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

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

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

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

APPLICATION NOTE. Authentication Counting. Atmel CryptoAuthentication. Features. Introduction

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

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

Application Note. USB Microcontrollers. USB PC Drivers Based on Generic HID Class. 1. Introduction

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

AVR223: Digital Filters with AVR. 8-bit Microcontrollers. Application Note. Features. 1 Introduction

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

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

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

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

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

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

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

USER GUIDE. ZigBit USB Stick User Guide. Introduction

256K (32K x 8) Battery-Voltage Parallel EEPROMs AT28BV256

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

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

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

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

APPLICATION NOTE. Atmel AVR600: STK600 Expansion, Routing and Socket Boards. Atmel Microcontrollers. Introduction

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

MODFLEX MINI GATEWAY ETHERNET USER S GUIDE

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

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

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

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

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

CryptoAuth Xplained Pro

APPLICATION NOTE. AT16268: JD Smart Cloud Based Smart Plug Getting. Started Guide ATSAMW25. Introduction. Features

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

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

USB Test Environment ATUSBTEST- SS7400. Summary

Quest vworkspace Virtual Desktop Extensions for Linux

AN3155 Application note

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

How To Design An Ism Band Antenna For 915Mhz/2.4Ghz Ism Bands On A Pbbb (Bcm) Board

AT89LP Flash Data Memory. Application Note. AT89LP Flash Data Memory API. 1. Introduction. 2. Theory of Operation. 2.1 Flash Memory Operation

Transcription:

Using CryptoMemory in Full I 2 C Compliant Mode 1. Introduction This application note describes how to communicate with CryptoMemory devices in full I 2 C compliant mode. Full I 2 C compliance permits use of I 2 C hardware peripheral controllers within microcontrollers to communicate with CryptoMemory, thus eliminating the need for software drivers and General Purpose Input/Output (GPIO) pins. This leads to performance improvement by lowering CPU utilization and firmware footprint. This application note comes with downloadable code examples for the Atmel AVR microcontroller platform. The download includes source and project Makefile files for user trials on any AVR based development platforms, including Atmel s Aris, Aris+, and Aris++ development kits 2. CryptoMemory Devices That Support Full I 2 C Compliance Support for full compliance to I 2 C communication is available to newer generation CryptoMemory devices. These devices are identifiable by a CA termination of their base names as in AT88SC0104CA. They offer full backward compatibility to older generation CryptoMemory devices identifiable by a C termination in their base names as in AT88SC0104C. 3. CryptoMemory and I 2 C Compliance All generations of CryptoMemory comply with I 2 C communications to some extent. The older generation devices only offer partial compliance. The entire command set for this generation requires the least significant bit of the command byte also known as the R/W bit of an I 2 C command structure, is always at logic 0. In I 2 C communications, this signifies a WRITE operation. The implications of having the R/W bit always at logic 0 is that any microcontroller attempting to use its hardware I 2 C buss controller to implement the CryptoMemory command set will always try to send data to CryptoMemory irrespective of the command intent. When the command in question happens to be a READ command which requires transfer of data from CryptoMemory to the microcontroller, a buss contention will result as both microcontroller and CryptoMemory try to put information on the buss. Older generation CryptoMemory devices therefore require I 2 C buss controllers implemented entirely in firmware and using General Purpose Input/Output (GPIO) pins for physical connectivity. Using CryptoMemory in Full I 2 C Compliant Mode AT88SC0104CA AT88SC0204CA AT88SC0404CA AT88SC0808CA Application Note

Figure 1. The R/W bit of the I 2 C command byte is always logic 0 in the command set for older generation CryptoMemory. R/W bit = 0 ONLY START Command Figure 2. The R/W bit of the I 2 C command byte is either logic 0 or 1 in the command set for the new generation CryptoMemory. R/W bit = 0 or 1 START Command Newer generation CryptoMemory adds a new command, Random Read, to the existing CryptoMemory command set that has the least significant bit of the I 2 C command byte set to logic 1. While older generation CryptoMemory devices are only partially compliant to the I 2 C communication protocol by supporting only WRITE type transactions, new generation devices are fully compliant and natively support both READ and WRITE transactions. 4. The CryptoMemory Random Read Command New generation CryptoMemory devices support the command, Random Read, in addition to the entire command set of older generation CryptoMemory. Random Read is the command that enables full compliance by encoding both the device address and setting the I 2 C R/W bit to logic 1 to conform to the requirements of the I 2 C command structure s READ command. Unlike the rest of CryptoMemory commands that are 4-bytes in length, for efficiency and throughput, the Random Read command is only one-byte long. This means quicker initiation of read operations. However, this also requires that the READ address would already have been defined within the CryptoMemory device prior to using this command. Initial usage for any given memory segment therefore entails two phases: an address setup and a data read phase. 4.1. The Address Setup Phase The address setup phase allows passing of the start address of the CryptoMemory location to read from. It entails use of a CryptoMemory WRITE command with the desired READ address populated in the command s address fields. The microcontroller sends the four bytes of the command, but instead of following these with data bytes as would be expected, terminates the command. By so doing, the microcontroller has succeeded in clocking the desired address bytes into the CryptoMemory device and the CryptoMemory device s buffers now hold this address information. 2 Using CryptoMemory in Full I2C Compliant Mode

Using CryptoMemory in Full I2C Compliant Mode Figure 3. The Random Read command address setup phase Address to Read From Abort transaction START I2C Addr 0 P1 P2 N CM WRITE cmd MSB LSB # Bytes The value of N (number of bytes) in this address setup phase is irrelevant for reasons that will be clear soon. The actual number of bytes received during a random read transaction depends on the number of bytes the microcontroller acknowledges during the data read phase. Figure 4. Code snippet illustrating the address setup transaction for setting the address to 0x0A. /* STEP 1: Setup the command to use a WRITE operation for setting the READ address */ /* Collect the four command bytes into ptx buffer*/ ptx [0] = 0xB4; // CryptoMemory SYSTEM_WRITE Command byte ptx [1] = 0x00; // Most significant byte of address ptx [2] = 0x0A; // Least significant byte of address (MTZ base in this example) ptx [3] = 0x01; // 'don't care' byte; address has been catured by now /* STEP 2: Send the command. */ twi_transmit(ptx,0x04); 4.2. The Read Phase This phase comprises actual extraction of data from the CryptoMemory device. It entails issuance of the single byte Random Read command. After aborting the WRITE transaction of the address setup phase, the microcontroller may immediately send a START signal followed by the Random Read command byte. Figure 5. The data read phase of the Random Read command. START I2C Addr 1 Random Read Figure 6. The Random Read command showing both address setup and data read phase initiation. Address to Read From Abort transaction START I2C Addr 0 P1 P2 N START I2C Addr 1 CM WRITE cmd MSB LSB # Bytes Random Read 3

On receiving the Random Read command byte, the CryptoMemory device immediately clocks out the byte from the location defined by the address current in its address buffer. It then automatically increments the address value by one so as to point to the next data byte in anticipation of the next action from the microcontroller. If the microcontroller sends a receipt acknowledgement signal (ACK), CryptoMemory will clock out the next byte and again increment the address. CryptoMemory will continue to do so until the microcontroller sends a non-acknowledgement signal (NACK). Use of ACK and NACK signaling explains the non-relevance of the value of the byte count parameter, N, within the address setup phase. At this point, CryptoMemory expects the microcontroller to send a protocol STOP signal for formal termination of the transaction. Figure 7. The Random Read command complete data read phase ACK ACK ACK NACK START I2C Addr 1 Random Read STOP It is therefore important that the internal address buffer contains the current address to read from prior to issuing the Random Read command. The address setup phase establishes this requirement. Figure 8. Code snippet illustrating the data read transaction for reading two bytes. /* Send CryptoMemory's I2C compliant RANDOM_READ READ command. */ /* Send 0xB1 command byte, receive two bytes and store them in prx buffer */ cm_twi_receive(0xb1,prx,0x2); If subsequent READ operations are to continue from the last read location, then no additional address setup operations are necessary. This provides a big boost in transaction throughput. The code snippets of figures 4 and 8 illustrate reading from the CryptoMemory device s configuration memory. Other read operations that pertain to CryptoMemory are fuse byte and user memory reads. The next two sections describe this in more detail. 5. Reading the Fuse Byte The Random Read command takes care of all I2C compliant READ commands with the exception of the CryptoMemory Fuse Read command. To read the current value of the fuse, simply point to any address of the reserved section of the CryptoMemory device s configuration memory and read a single byte. This read operation will return the fuse byte. 4 Using CryptoMemory in Full I2C Compliant Mode

Using CryptoMemory in Full I2C Compliant Mode Figure 9. Code snippet illustrating a complete Fuse Read transaction. /* STEP 1: Setup the command to use a WRITE operation for setting the READ address */ ptx [0] = 0xB4; // CryptoMemory SYSTEM_WRITE command byte ptx [1] = 0x00; // MSB of address ptx [2] = 0xFF; // LSB of address (Any address from the RESERVED memory) ptx [3] = 0x00; // 'don't care' byte; address has been captured by now /* STEP 2: Send the command. */ twi_transmit(ptx,0x04); /* STEP 3: Send CryptoMemory's I2C compliant RANDOM_READ READ command. */ /* Receive the fuse byte and put it in prx buffer */ cm_twi_receive(0xb1,prx,0x1); 6. Reading the User Memory The Random Read command allows for reading of the configuration memory, fuses, and user memory. Previous sections show how to read configuration memory and the fuse byte. Usage of the Random Read command fundamentally remains the same in both cases and so equally applies to reading of the user memory. One just has to point to the right user memory zone. The following example illustrates this. Figure 10. Code snippet illustrating a read of user memory /* STEP 1: Issue a SetUserZone command for zone */ ptx [0] = 0xB4; // SYSTEM_WRITE command byte ptx [1] = 0x03; // Set User Zone command code ptx [2] = 0x00; // Zone ID ptx [3] = 0x00; // 'don't care' /* STEP 2: Send the command */ twi_transmit(ptx,0x04); /* STEP 3: Setup the READ address */ ptx [0] = 0xB0; // WRITE_USER_ZONE command byte ptx [1] = 0x00; // MSB of address ptx [2] = 0x00; // LSB of address ptx [3] = 0x00; // 'don't care' /* STEP 4: Send the command. */ twi_transmit(ptx,0x04); /* STEP 5: Send CryptoMemory's I2C compliant RANDOM_READ READ command. */ cm_twi_receive(random_read, prx,0x4); 5

7. Example As an example, a complete transaction to setup the address and read two bytes from CryptoMemory device s Memory Test Zone (MTZ) having a starting address of 0x0A would look thus: Figure 11. A complete Random Read command address setup and data read transaction example. Address to Read From Abort transaction ACK NACK START 10110100 0x00 0x0A don't care START 10110001 STOP System Write MSB LSB # Bytes Random Read Although all the commands of the command set inherited from the older generation CryptoMemory devices look like I 2 C WRITE commands and potentially are viable for use in the address setup phase, it is important to use WRITE rather than READ commands for setting up the address. Using a READ command will succeed in setting the address but runs the risk of buss contention as CryptoMemory may legitimately also begin to respond. Figure 12. Code snippet illustrating a complete transaction for reading 10 bytes from CryptoMemory device s configuration memory. /* Read 10 bytes of Configuration Memory starting from address 0x02 */ /* ----------------------------------------------------------------------- */ /* STEP 1: Setup the command to use a WRITE operation for setting the READ address */ /* Collect the four command bytes into ptx buffer*/ ptx [0] = 0xB4; // CryptoMemory SYSTEM_WRITE Command byte ptx [1] = 0x00; // Most significant byte of address ptx [2] = 0x02; // Least significant byte of address ptx [3] = 0x00; // 'don't care' byte; address has been captured by now /* STEP 2: Send the command. */ twi_transmit(ptx,0x04); /* STEP 3: Send CryptoMemory's I2C compliant RANDOM_READ READ command. */ /* Send 0xB1 command byte, receive two bytes and store them in prx buffer */ cm_twi_receive(0xb1,prx,0x0a); 8. Conclusion This application note demonstrates how to use CryptoMemory in full I 2 C compliant mode. Full I 2 C compliance permits use of hardware I 2 C buss controllers within any microcontroller for CPU offloading and low firmware footprint advantages. It examines the degree of compliancy by older generation CryptoMemory devices in contrast with full compliance by new generation devices. The application note comes with separate downloadable code examples using the AVR microcontroller hardware I 2 C controllers complete with source code and project Makefile files for any AVR microcontroller platforms including Atmel s Aris, Aris+, and Aris++ development kits. 9. Revision History Doc. Rev. Date Comments 8662A 03/2009 Initial document release 6 Using CryptoMemory in Full I2C Compliant Mode

Headquarters International Atmel Corporation 2325 Orchard Parkway San Jose, CA 95131 USA Tel: 1(408) 441-0311 Fax: 1(408) 487-2600 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 Product Contact Web Site www.atmel.com Technical Support CryptoMemory@atmel.com Sales Contact www.atmel.com/contacts Literature Requests www.atmel.com/literature Disclaimer: The information in this document is provided in connection with Atmel products. No 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 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. 2009 Atmel Corporation. All rights reserved. Atmel, Atmel logo and combinations thereof, CryptoMemory and others are registered trademarks or trademarks of Atmel Corporation or its subsidiaries. Other terms and product names may be trademarks of others.