APPLICATION NOTE. Atmel AT02260: Driving AT42QT1085. Atmel QTouch. Features. Description

Similar documents
APPLICATION NOTE. Atmel AVR3009: Driving QTouch Device with I 2 C Interface. Atmel QTouch. Introduction

APPLICATION NOTE. Atmel AT03160: Migrating Bootloader from ATxmega128A1 to other Atmel XMEGA Devices. Atmel AVR XMEGA. Features.

APPLICATION NOTE. AT03324: Atmel REB212BSMA-EK Quick Start Guide. Atmel MCU Wireless. Introduction

APPLICATION NOTE. Atmel AVR1638: XMEGA RTC Calibration. 8-bit Atmel Microcontrollers. Features. Introduction

APPLICATION NOTE. Atmel AT03304: SAM D20 I 2 C Slave Bootloader SAM D20. Description. Features

APPLICATION NOTE. Atmel AT01080: XMEGA E Schematic Checklist. Atmel AVR XMEGA E. Features. Introduction

Section 5 SERCOM. Tasks SPI. In this section you will learn:

Hardware Prerequisites Atmel Xplained Pro Evaluation Kit Atmel WINC1500 extension USB Micro Cable (TypeA / MicroB)

Atmel QT600 Quick Start Guide Touch Solutions

Atmel ATMXT143E touchscreen controller Capacitive touch ITO 320 x 240 pixel LCD display with SPI interface LED backlight

APPLICATION NOTE. Atmel AVR057: Internal RC Oscillator Calibration for ATtiny4/5/9/10/20/40. 8-bit Atmel Microcontrollers. Features.

Atmel AVR32847: Migration from/to the UC3L0 64/32/16 from/to the UC3L0 256/ bit Atmel Microcontrollers. Application Note.

AVR1518: XMEGA-A1 Xplained Training - XMEGA Clock System. 8-bit Atmel Microcontrollers. Application Note. Prerequisites.

APPLICATION NOTE. Atmel AVR536: Migration from ATmega644 to ATmega644A. 8-bit Atmel Microcontrollers. Introduction

OLED display with pixels resolution Ambient light sensor CPU load Analog filter Quadrature Encoder with push button Digital I/O

Atmel AVR1619: XMEGA-B1 Xplained Demonstration. 8-bit Atmel Microcontrollers. Application Note. Features. 1 Introduction

STK521. User Guide B AVR 01/12

APPLICATION NOTE. Atmel AVR116: Wear Leveling on DataFlash. 32-bit Atmel Microcontrollers. Features. Description. Wear leveling

USER GUIDE. Wireless Production Test Reference Protocol Specification Document. Atmel MCU Wireless. Description

APPLICATION NOTE. Atmel AT03782: Using Low Power Modes in SAM4N Microcontroller. Atmel 32-bit Microcontroller. Features.

Atmel LF-RFID Kit Comparison Chart. Application Note. Atmel LF-RFID Kit Comparison Chart. 1. Description

32Kbytes on-chip SRAM. Viterbi decoding and CRC PRIME compliant 128-bit AES encryption Channel sensing and collision pre-detection

Atmel AVR ATxmega384C3 microcontroller OLED display with 128x32 pixels resolution Analog sensors. Ambient light sensor Temperature sensor

AVR1503: Xplain training - XMEGA Programmable Multi Interrupt Controller 8-bit Microcontrollers Application Note Prerequisites

APPLICATION NOTE. Atmel AVR2131: Lightweight Mesh Getting Started Guide. Atmel MCU Wireless. Features. Description

OLED display Sensors readout. Light sensor Temperature sensor

Atmel AVR1924: XMEGA-A1 Xplained Hardware User's Guide. 8-bit Atmel Microcontrollers. Application Note. Preliminary. Features.

Atmel CryptoAuthentication Starter Kit

Atmel AT697F. Rad-Hard 32-bit SPARC v8 Processor ERRATA SHEET. Active Errata List

Atmel AVR944: Atmel LED Driver Library for 8- bit AVR. 8-bit Atmel. Microcontroller. Application Note. Features. 1 Introduction

Atmel AVR473: ATAVRSB202 Hardware User Guide. 8-bit Atmel Microcontrollers. Application Note. Features. 1 Introduction

AVR4018: Inertial Two (ATAVRSBIN2) Hardware User's Guide. 8-bit Microcontrollers. Application Note. Features. 1 Introduction

Atmel AVR ATxmega384C3 microcontroller OLED display with pixels resolution Analog sensors. Ambient light sensor Temperature sensor

QTouch 8-key Touch Sensor IC AT42QT1085. Summary

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

AT03975: Getting Started with SAM L21. Descripton. Features. SMART ARM-Based Microcontroller APPLICATION NOTE

AVR42789: Writing to Flash on the New tinyavr Platform Using Assembly

Atmel AT32UC3A3256 microcontroller 64MBit SDRAM Analog input (to ADC) Temperature sensor RC filter

SAM4 Reset Controller (RSTC)

ATAES132A Firmware Development Library. Introduction. Features. Atmel CryptoAuthentication USER GUIDE

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

Atmel AT697F. Rad-Hard 32-bit SPARC v8 Processor ERRATA SHEET. Active Errata List

AVR1501: Xplain training XMEGA Timer/Counter 8-bit Microcontrollers Application Note Prerequisites 1 Introduction

AVR32917: picopower Board getting started. 32-bit Microcontrollers. Application Note. Preliminary. Features. 1 Introduction

USER GUIDE. Atmel QT1 Xplained Pro. Preface

Getting Started with the SAM4L-EK Demo

One-channel Toggle-mode Touch Sensor IC with Power Management Functions AT42QT1012. Summary

Atmel AVR1926: XMEGA-B1 Xplained Getting Started Guide. 8-bit Atmel Microcontrollers. Application Note. Features. 1 Introduction

AVR1512: XMEGA-A1 Xplained training - XMEGA Basics. 8-bit Atmel Microcontrollers. Application Note. Prerequisites. 1 Introduction

AVR1508: Xplain training - XMEGA DAC 8-bit Microcontrollers Application Note Features 1 Introduction

AVR1303: Use and configuration of IR communication module. 8-bit Microcontrollers. Application Note. Features. 1 Introduction

AVR32752: Using the AVR32 UC3 Static Memory Controller. 32-bit Microcontrollers. Application Note. Features. 1 Introduction

USER GUIDE. Atmel OLED1 Xplained Pro. Preface

a clock signal and a bi-directional data signal (SCL, SDA)

AVR532: Migration from ATmega48/88/168 to ATmega48A/88A/168A. 8-bit Microcontrollers. Application Note. 1 Introduction

USER GUIDE EDBG. Description

QT2 Xplained Pro. Preface. Atmel QTouch USER GUIDE

USER GUIDE. Atmel QT6 Xplained Pro. Preface

QT3 Xplained Pro. Preface. Atmel QTouch USER GUIDE

APPLICATION NOTE. Atmel QT4 Xplained Pro User Guide ATAN0114. Preface

AVR32901: EVKLCD100/EVKLCD101 Hardware User's Guide. 32-bit Microcontrollers. Application Note. Features. 1 Introduction

ATECC108/ATSHA204 USER GUIDE. Atmel Firmware Library. Features. Introduction

EDBG. Description. Programmers and Debuggers USER GUIDE

Ethernet1 Xplained Pro

AVR1315: Accessing the XMEGA EEPROM. 8-bit Microcontrollers. Application Note. Features. 1 Introduction

AT06467: Getting started with SAM D09/D10/D11. Features. Description. SMART ARM-based Microcontrollers APPLICATION NOTE

AVR32401: AVR32 AP7 Linux Interfacing DataFlash. 8-bit Microcontrollers. Application Note. Features. 1 Introduction

AT21CS Series Reset and Discovery. Introduction. Serial EEPROM APPLICATION NOTE

8-bit Microcontroller with 16K Bytes In-System Programmable Flash. ATtiny87 ATtiny167 Automotive

AT03262: SAM D/R/L/C System Pin Multiplexer (SYSTEM PINMUX) Driver. Introduction. SMART ARM-based Microcontrollers APPLICATION NOTE

8-bit Microcontroller. Application Note. AVR320: Software SPI Master

AT09381: SAM D - Debugging Watchdog Timer Reset. Introduction. SMART ARM-based Microcontrollers APPLICATION NOTE

AVR based 125kHz RFID Evaluation Kit (Re)Programming Guide ATA2270-EK1. Overview. Fuse Settings: ISP Programming

APPLICATION NOTE. AT6486: Using DIVAS on SAMC Microcontroller. SMART ARM-Based Microcontroller. Introduction. Features

APPLICATION NOTE. Atmel AVR3005: Low Power QTouch Design. Atmel QTouch. Features. Introduction

USER GUIDE. ATWINC1500 Xplained Pro. Preface

AT11512: SAM L Brown Out Detector (BOD) Driver. Introduction. SMART ARM-based Microcontrollers APPLICATION NOTE

APPLICATION NOTE. How to Securely Switch Atmel s LIN Transceiver ATA6662/ATA6662C to Sleep Mode ATA6662/ATA6662C. Concerning Atmel ATA6662

Atmel ATtiny1634 MCU Atmel ATA SBC LIN transceiver with integrated voltage regulator Touch. Three Atmel QTouch buttons One Atmel QTouch slider

USER GUIDE. Atmel PROTO1 Xplained Pro. Preface

AVR42772: Data Logger Demo Application on XMEGA A1U Xplained Pro. Introduction. Features. AVR XMEGA Microcontrollers APPLICATION NOTE

AT60142H/HT. Rad-Hard 512Kx8 Very Low Power CMOS SRAM ERRATA-SHEET. Active Errata List. Errata History. Abbreviations. 1.

Embedded AVR Microcontroller Including RF Transmitter and Immobilizer LF Functionality for Remote Keyless Entry ATA5795. Summary.

USER GUIDE. Atmel maxtouch Xplained Pro. Preface

AVR32 UC3 Software Framework... User Manual

APPLICATION NOTE. AT06863: SAM4L Peripheral Event Controller (PEVC) SAM4L Peripheral Event Controller (PEVC) ASF PROGRAMMERS MANUAL

Native route discovery algorithm

AVR097: Migration between ATmega128 and ATmega1281/ATmega bit Microcontrollers. Application Note. Features. 1 Introduction

8-megabyte, 4-megabyte, and 2-megabyte 2.7-volt Only DataFlash Cards AT45DCB008D AT45DCB004D AT45DCB002D. Not Recommended for New Design

AT89ISP Programmer Cable Introduction AT89ISP Programmer Cable Parallel Port Settings Application Note AT89ISP Software AT89ISP Cable polarized

SBAT90USB162 Atmel. SBAT90USB162 Development Board User s Manual

USER GUIDE. ZigBit USB Stick User Guide. Introduction

ATtiny817 QTouch Moisture Demo User Guide. Description. Features. AVR 8-bit Microcontrollers USER GUIDE

USER GUIDE. ATmega168 Xplained Mini User Guide. Introduction

APPLICATION NOTE. Atmel AT03261: SAM D20 System Interrupt Driver (SYSTEM INTERRUPT) SAM D20 System Interrupt Driver (SYSTEM INTERRUPT)

AT697E. Application Note. Checking AT697E Code for Occurrence of LDF/FPOPd Instructions Sequence with a dependency on an Odd-Numbered Register

Asynchronous SRAM Operating Voltage: 5V Read Access Time: 40 ns Write Cycle Time: 30 ns Very Low Power Consumption (Pre-RAD)

Non Volatile Rad Hard Reprogrammable FPGA. ATF280 SRAM-based FPGA AT69170 Serial EEPROM. 2x SRAM-based FPGA designed for Space use - ATF280

CAN Microcontrollers. Application Note. Migrating from T89C51CC01 to AT89C51CC03. Feature Comparison

APPLICATION NOTE. AT05567: TC Capture on External Interrupt with the Event System on SAM D20. Preface ASF PROJECT DOCUMENTATION

Transcription:

APPLICATION NOTE Atmel AT02260: Driving AT42QT1085 Atmel QTouch Features Overview of Atmel AT42QT1085 Circuit configuration with Host MCU SPI communication Demonstration program Description This application note explains the communication of Master SPI controller with AT42QT1085 as a slave device. It demonstrates configuring and controlling various parameters of this device. The host code demonstration program provided has been developed for 8-bit Atmel megaavr (Atmel ATmega2560) microcontroller but can be easily adapted for other platforms. The demonstration program is written in C and supports both GCC (Atmel Studio) and IAR (IAR Embedded Workbench ) compiler.

Table of Contents 1. Overview of Atmel AT42QT1085... 3 1.1 Introduction... 3 1.2 Host interface... 3 2. Circuit Configuration with Host Microcontroller... 4 3. SPI Communication... 5 3.1 Specifications for the Atmel AT42QT1085... 5 3.2 SPI driver implementation... 5 3.3 SPI Communication Protocol for the Atmel AT42QT1085... 6 4. Demonstration Program... 7 4.1 Program flow... 7 4.2 Files.... 8 4.3 Functions... 9 5. Porting Code to Other Platforms... 11 5.1 Change pin... 11 5.2 Reset pin... 11 5.3 SPI driver... 11 5.3.1 Pins for SPI communication... 11 5.3.2 SPI Initialization... 11 5.3.3 SPI data transfer... 11 6. References... 12 7. Revision History... 13 2

1. Overview of Atmel AT42QT1085 1.1 Introduction AT42QT1085 is a device based on the Atmel QTouchADC technology designed for capacitive touch key applications. This device supports up to eight keys, where four are dedicated channels for keys (Key0 to Key3) and another four channels can be configured either as keys (Key4 to Key7) or as GPIO channels (GPIO_12 to GPIO _15). This device also supports 12 dedicated GPIO channels (GPIO_0 to GPIO_11). This device has a haptics engine integrated in it, which allows haptic effects to be triggered on key detection or directly controlled by the host microcontroller. 1.2 Host interface The host microcontroller communicates with the AT42QT1085 over SPI interface using master-slave relationship, with the AT42QT1085 acting in slave mode. This bus protocol takes care of all addressing functions and bidirectional data transfer. In addition, the device also features a CHANGE signal, which is asserted when there is a message waiting to be read. This can be used either to wake the host or as an interrupt signal to inform the host when the QT device has detected a touch. The host should always use CHANGE line as an indication to read messages from QT device and the host should not read messages at any other time, when CHANGE line is not asserted. 3

2. Circuit Configuration with Host Microcontroller Following are the connections used in the demonstration program. Table 2-1. Connection between Host microcontroller and QT device. Atmel ATmega2560 PD1 (Pin 44) PB4 (Pin 23) PB0 (Pin 19) PB1 (Pin 20) PB2 (Pin 21) PB3 (Pin 22) Atmel AT42QT1085 CHANGE RESET SS SCK MOSI MISO The hardware SPI module of the ATmega2560 is used in this demonstration. The SPI module of ATmega2560 is available in the corresponding pins mentioned in the Table 2-1. Figure 2-1. Circuit configuration with Host microcontroller. Touch keys (K0 K7) are connected to the KEY0 to KEY7 sense pins of AT42QT1085. In the demonstration source code provided, PORT C (PC0 to PC7) of the Host microcontroller has been configured for touch status indication on keys K0 to K7 using LEDs. Note: External pull-up resistors of 100kΩ are required on the SS, RESET and the CHANGE lines. 4

3. SPI Communication 3.1 Specifications for the Atmel AT42QT1085 The AT42QT1085 communicates with the host over a full-duplex 4-wire (MISO, MOSI, SCK, SS ) SPI interface. The AT42QT1085 supports an object-based protocol that is used to communicate with the device. There are a few specifications with regards to AT42QT1085 communication, which are mentioned below. The AT42QT1085 SPI Interface can operate at a speed of up to 750kHz The Least Significant Bit (LSB) is the first byte in a multi-byte data transmission (Little-Endian Configuration) The AT42QT1085 set up data on the rising edge and replace data on the falling edge The AT42QT1085 require that the clock idles to high state In AT42QT1085 a minimum delay of 100μs is required between transmissions of each byte in case of multibyte communication To begin a new communication exchange with AT42QT1085, SS must be pulled high for at least 2ms after performing a read operation or 10ms after performing a write operation Note: Refer to the AT42QT1085 device datasheet for other timing specifications. 3.2 SPI driver implementation The SPI driver in this demonstration program is developed for the Atmel ATmega2560. SPI Peripheral for this device is available in PORTB. Refer to Table 2-1 and Figure 2-1 for details. Following are the functions used to implement the SPI driver: Function void SPI_MasterInit (uint8_t sck_fosc_div) void SPI_Transfer (uint8_t *command, uint8_t command_length, uint8_t *data, uint8_t data_length) Description Initializes the SPI module of the Host microcontroller sck_fosc_div - Division Factor to generate SCK Frequency. The following macros are the allowable inputs as arguments SCK_FOSC_DIV_2 SCK_FOSC_DIV_4 SCK_FOSC_DIV_8 SCK_FOSC_DIV_16 SCK_FOSC_DIV_32 SCK_FOSC_DIV_64 SCK_FOSC_DIV_128 Sends command and simultaneously transmits and receives the number of data bytes specified *command Pointer to command array command_length Number of command bytes to be transmitted by master *data Pointer to local array to send data from host data_length Number of data bytes to be written by master or read back from the slave *data Pointer to local array to read data from QT device 5

3.3 SPI Communication Protocol for the Atmel AT42QT1085 The Object Protocol of the AT42QT1085 device organizes different features of the device into objects that can be controlled individually. The Objects must be configured before use and the modified settings need to be written into the nonvolatile memory using the Command Processor object. Using the Object Protocol The host should perform the following initialization to communicate with the AT42QT1085 using SPI: a. Read the start positions and sizes of all the objects from the Object Table in the AT42QT1085 and build up a list of all these addresses. b. Use the Object Table to calculate the report IDs so that messages from the QT device can be correctly interpreted. Host Command A 3-byte command sequence is transmitted by the host on MOSI, setting the memory map address pointer, a Read / Write indication, and the number of bytes which will be read or written. Reading from / Writing to the device The SPI Transfer routine sends the appropriate command to the QT device for reading or writing. This routine receives a pointer to command array and length of the command array as inputs. The command array byte indicates read or write operation. This routine also receives a pointer to local array and number of data bytes to be read from the QT device or written into the QT device. The local array is dumped with the received SPI data during read operation and during write operation, the host controller fills the local array with data to be written into the QT device. Note: Refer to the AT42QT1085 Protocol Guide for detailed information on configuring objects. 6

4. Demonstration Program The demonstration program shows how to use the host interface to read real-time touch information from QT devices. It also demonstrates the procedure to perform read and write operations into objects on the Object Protocol memory map structure. This helps in tuning different operating parameters of the device. 4.1 Program flow 7

4.2 Files The folder structure for the demonstration program is shown below. The source code consists of the following files: File name main.c configuration.h QT1085.c QT1085.h SPI_Master.c SPI_Master.h checksum.c checksum.h LED.c LED.h Description It consists the main() function and the body of the application program Device selection and port pin selections for RESET and CHANGE pins are configured here It consists the application interfaces to drive the QT device Consists of function prototypes and memory map structure for object protocol SPI driver code Header file for the SPI driver Contains algorithm for 24-bit CRC checksum calculation and verifies the information block checksum read Header file for CRC computation Handling LED update based on touch key status Header file for Host Control source file 8

4.3 Functions Function void InitQtInterface(void) void ResetQT(void) void GetCommsReady(void) void ReadObjectTable(void) uint32_t InformationBlockCRC (void) Uint8_t VerifyInfoBlockChecksum (uint32_t checkcum_calc) uint8_t ReadSetupBlock (struct QT1085_objects_config_t *objects_config_ptr) struct object_table_t* GetObjectInfo (uint8_t type) uint8_t WriteSetupBlock (struct QT1085_objects_config_t *objects_config_ptr) Description Performs SPI Master initialization, configures a selected GPIO as input for CHANGE pin and configures a GPIO as output for RESET pin Performs a hardware reset of the QT device by pulling down the RESET pin of the QT device Uses the SPI command to ensure proper communication, by verifying information block checksum read Reads the information block bytes of the QT device Computes CRC for the information block bytes s the computed CRC Verifies the computed CRC of the information block checkcum_calc - computed CRC of the information block s TRUE if successful or FALSE otherwise Reads the configurable Object parameters from memory map structure *objects_config_ptr: Pointer to configuration objects structure *objects_config_ptr: Pointer to configuration objects structure, Configured data filled in objects_config structure s TRUE if successful or FALSE otherwise Determines the starting address of the requested Object table element in memory map structure, which matches with the type input type - type code for the object details requested s the starting address of the object table element Writes the modified Object parameters into memory map structure *objects_config_ptr: Pointer to configuration objects structure s TRUE if successful or FALSE otherwise 9

void BackupConfigSetting(void) uint8_t ReadKeyStatus (uint8_t *msg_ptr) uint8_t ReadMessageProcessorData (uint8_t *msg_ptr) uint8_t ConfigurationCheck(void) void InitTouchStatusPorts(void) void UpdateLedStatus (uint8_t * QtStatusPtr) Sends command to backup configuration settings in nonvolatile memory Reads the message waiting to be read from QT device *msg_ptr: Pointer to message status array s TRUE if there is a touch status message, else FALSE Reads the object generated message from message processor *msg_ptr: Pointer to message status array s the report ID of the object that sent the message Checks whether the Configuration Error Bit is set in received message s the Configuration Error bit status Configure the PORTC pins 0 to 7 for displaying touch status of Keys 0 to 7 Update touch key status through LED indications *QtStatusPtr: Pointer to QT Touch status message array 10

5. Porting Code to Other Platforms This chapter discusses the parts of the demonstration program which needs modification while porting to other MCUs. 5.1 Change pin The CHANGE pin of the QT device must be connected to a MCU pin which can be configured as an input. To assign any particular pin the following MACROs declared in configuration.h needs to be modified. // CHANGE Status port and pin configuration #define CHANGE_STATUS_PORT D // PORT #define CHANGE_STATUS_PIN 1 // Pin Number 5.2 Reset pin The RESET pin of the QT device must be connected to a MCU pin which can be configured as an output. To assign any particular pin the following MACROs declared in configuration.h needs to be modified. // RESET port and pin configuration #define RESET_PORT B // PORT #define RESET_PIN 4 // Pin Number 5.3 SPI driver The device level drivers for SPI communication will be specific to the MCU platform used. The details of the SPI driver implementation has been provided in Section 3.2. 5.3.1 Pins for SPI communication Pins for the SPI communication are configured in SPI_Master.h file. For porting to any other Atmel megaavr or Atmel tinyavr one can simply configure the SPI pins as per the device datasheet. In the current demonstration program the following configuration has been made. #define SPI_PORT PORTB #define SPI_DDR DDRB #define SPI_SS PB0 #define SPI_SCK PB1 #define SPI_MOSI PB2 #define SPI_MISO PB3 5.3.2 SPI Initialization The initialization routine for SPI master module must be done in void SPI_MasterInit(uint_8 sck_fosc_div). The implementation can be made for a fixed SCK frequency rather than a configurable one. The SCK frequency should not exceed the maximum speed supported by the QT device. 5.3.3 SPI data transfer The data transfer routine should be able to handle bidirectional data transfer. This routine sends three command bytes and simultaneously transmits and receives the number of data bytes specified. This routine should receive a pointer to command array, length of the command array as inputs, a pointer to local array and number of data bytes to be read from QT device or written into QT device. 11

6. References AT42QT1085 Protocol Guide Complete AT42QT1085 Complete device datasheet 12

7. Revision History Doc. Rev. Date Comments 42092A 03/2013 Initial document release 13

Atmel Corporation 1600 Technology Drive San Jose, CA 95110 USA Tel: (+1)(408) 441-0311 Fax: (+1)(408) 487-2600 www.atmel.com Atmel Asia Limited Unit 01-5 & 16, 19F BEA Tower, Millennium City 5 418 Kwun Tong Road Kwun Tong, Kowloon HONG KONG Tel: (+852) 2245-6100 Fax: (+852) 2722-1369 Atmel Munich GmbH Business Campus Parkring 4 D-85748 Garching b. Munich GERMANY Tel: (+49) 89-31970-0 Fax: (+49) 89-3194621 Atmel Japan G.K. 16F Shin-Osaki Kangyo Building 1-6-4 Osaki Shinagawa-ku Tokyo 141-0032 JAPAN Tel: (+81)(3) 6417-0300 Fax: (+81)(3) 6417-0370 2013 Atmel Corporation. All rights reserved. / Rev.: Atmel, Atmel logo and combinations thereof, AVR, Enabling Unlimited Possibilities, megaavr, QTouch, tinyavr, and others are registered trademarks or trademarks of Atmel Corporation or its subsidiaries. Other terms and product names may be trademarks of others. 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 THE ATMEL TERMS AND CONDITIONS OF SALES LOCATED ON THE ATMEL WEBSITE, 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 AND 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 products 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 products are not intended, authorized, or warranted for use as components in applications intended to support or sustain life.