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



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

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

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

Atmel AVR4905: ASF - USB Device HID Generic. 8-/32-bit Atmel Microcontrollers. Application Note. Features. 1 Introduction

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

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

Atmel AVR4904: ASF - USB Device HID Keyboard Application. Atmel Microcontrollers. Application Note. Features. 1 Introduction

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

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

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

Atmel AVR4950: ASF - USB Host Stack. 8-bit Atmel Microcontrollers. Application Note. Features. 1 Introduction

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

AT91SAM ARM-based Flash MCU. Application Note

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

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

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

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

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

AT89C5131A Starter Kit... Software User Guide

Introducing a platform to facilitate reliable and highly productive embedded developments

AVR1318: Using the XMEGA built-in AES accelerator. 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. AVR293: USB Composite Device

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

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

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

Atmel AVR4027: Tips and Tricks to Optimize Your C Code for 8-bit AVR Microcontrollers. 8-bit Atmel Microcontrollers. Application Note.

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

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

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

USER GUIDE EDBG. Description

USER GUIDE. ZigBit USB Stick User Guide. Introduction

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

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

General Porting Considerations. Memory EEPROM XRAM

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

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

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

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

AT88CK490 Evaluation Kit

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

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

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

APPLICATION NOTE. Secure Personalization with Transport Key Authentication. ATSHA204A, ATECC108A, and ATECC508A. Introduction.

AT09333: USB Host Interface (UHI) for Communication Class Device (CDC) Introduction. Atmel Microcontrollers APPLICATION NOTE

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

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

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

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

Designing Feature-Rich User Interfaces for Home and Industrial Controllers

Capacitive Touch Technology Opens the Door to a New Generation of Automotive User Interfaces

Dell Statistica Statistica Enterprise Installation Instructions

AN3354 Application note

CryptoAuth Xplained Pro

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

HANDLING SUSPEND MODE ON A USB MOUSE

APPLICATION NOTE. Atmel AT01180: Barcode and QR code scanner User Guide. Atmel 32-bit Microcontroller. Features. Introduction

APPLICATION NOTE. AT12405: Low Power Sensor Design with PTC. Atmel MCU Integrated Touch. Introduction

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

MODFLEX MINI GATEWAY ETHERNET USER S GUIDE

ChangeAuditor 6.0 For Windows File Servers. Event Reference Guide

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

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

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

Dell One Identity Cloud Access Manager How to Configure vworkspace Integration

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

ChangeAuditor 5.6. For Windows File Servers Event Reference Guide

Atmel ATSAM3X8E microcontroller Atmel AT86RF GHz radio transceiver Atmel proprietary Lightweight Mesh software stack 10/100Mbps Ethernet

Dell Spotlight on Active Directory Server Health Wizard Configuration Guide

Application Note. 1. Introduction. 2. Associated Documentation. 3. Gigabit Ethernet Implementation on SAMA5D3 Series. AT91SAM ARM-based Embedded MPU

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

AVR1324: XMEGA ADC Selection Guide. 8-bit Atmel Microcontrollers. Application Note. Features. 1 Introduction

4.0. Offline Folder Wizard. User Guide

formerly Help Desk Authority Quest Free Network Tools User Manual

AT11805: Capacitive Touch Long Slider Design with PTC. Introduction. Features. Touch Solutions APPLICATION NOTE

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

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

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

Universal Serial Bus Implementers Forum EHCI and xhci High-speed Electrical Test Tool Setup Instruction

New Features and Enhancements

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

Spotlight Management Pack for SCOM

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

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

AN3265 Application note

Dell One Identity Cloud Access Manager How To Deploy Cloud Access Manager in a Virtual Private Cloud

Transcription:

Atmel AVR4903: ASF - USB Device HID Mouse Application Features USB 2.0 compliance - Chapter 9 compliance - HID compliance - Low-speed (1.5Mb/s) and full-speed (12Mb/s) data rates Standard USB HID mouse implementation - XY move - Left, right, middle buttons - Wheel scrolling Remote wake up support USB bus powered support Real time (OS compliance, interrupt driven) Supports 8-bit and 32-bit Atmel AVR MCUs Atmel Microcontrollers Application Note 1 Introduction The aim of this document is to provide an easy way to integrate a USB mouse device application on a new or existing project. Figure 1-1. USB device HID mouse application. Rev.

2 Abbreviations ASF: CD: FS: HID: HS: LS: UDC: UDD: UDI: USB: SOF: ZLP: AVR Software Framework Composite device: a USB device with more than one interface USB full speed Human interface device USB high speed USB low speed USB device controller USB device descriptor USB device interface Universal serial bus Start of frame Zero length packet 2 Atmel AVR4903

Atmel AVR4903 3 Overview This document includes four sections for all types of requirements when building a USB device HID mouse application: Quick start Describes how to start a ready to use HID mouse device example Example description Describes a HID mouse device example Building a USB device mouse Describes how to add a USB device mouse interface in a project Mouse in a USB composite device Describes how to integrate a mouse interface in a composite device project For all these sections, it is recommended to know the main module organization of a HID mouse application: User application USB device interface HID mouse (UDI-HID mouse) USB device interface HID (UDI-HID) USB device controller (UDC) USB device driver (UDD) For more advanced information concerning the USB stack implementation, please refer to the application note, AVR4900: ASF - USB Device Stack. Figure 3-1. USB device HID mouse architecture. Application UDC UDI HID mouse UDD UDI HID USB Device stack from the ASF NOTE The USB device stack is found in the ASF in the common/services/usb directory. 3

4 Quick start 4.1 User interface USB device mouse examples are available in Atmel AVR Studio 5. AVR Studio 5 allows the creation of a New Example Project. In the examples list, select a USB device HID mouse example corresponding to the Atmel board used. A USB device HID mouse example is available for all AVR parts with USB hardware interface. The project does not require any modification and only needs to be compiled, loaded, and run. The USB device HID mouse example may run with or without external power (only USB cable connection), depending on the hardware used. The user interface depends on switches and LEDs available on the hardware. With two LEDs available: - LED0 is on when the USB device is in idle mode and is off in suspend mode - LED1 blinks showing that the mouse interface is enabled by the USB host The following actions can be done using switches or sensors: - move pointer on X and Y axes - move scroll wheel - click left, right, middle buttons - remote wake up The user interface description (specific to the board) is defined at the end of the ui.c source file. This file is available within the project folder. Figure 4-1. Example with EVK1100 board. LED1 blinks, showing mouse is enabled LED0 is on, showing USB in idle mode Joystick is used to move mouse Mouse buttons left, middle, right Joystick s button is pushed to wake up USB host 4 Atmel AVR4903

Atmel AVR4903 5 Example description The ASF provides a USB device mouse example for various Atmel AVR products. All these examples share common files. File descriptions and execution behavior are described below in this section. 5.1 Example content Table 5-1 introduces a summary of the main files included in the USB device HID mouse example. These files are associated with the modules described in Figure 3-1. USB device HID mouse architecture. Table 5-1. USB Device HID mouse example files. Modules Files ASF paths Description Application UDI HID mouse UDI HID UDC UDD main.c ui.c conf_usb.h udi_hid_mouse.c/h udi_hid_mouse_desc.cu di_hid_mouse_conf.h Examples folder common/services/usb/class/hid/device/ mouse/ common/services/usb/class/hid/device/ mouse/ Main loop Set up hardware switches to mouse operations USB device configuration Standard HID mouse class implementation USB descriptors for a USB device with HID mouse interface (not applicable for USB composite device) udi_hid.c/h common/services/usb/class/hid/device/ Common HID class implementation usb_protocol_hid.h common/services/usb/class/hid/ HID protocol constants udc.c/h udc_desc.h udi.h common/services/usb/udc/ USB device core udd.h usb_protocol.h usb_atmel.h common/services/usb/ USB protocol constants usbb_device.c/h usbc_device.c/h usb_device.c/h avr32/drivers/usbb/ avr32/drivers/usbc/ xmega/drivers/usb/ USB drivers 5.2 Example behavior The main.c and ui.c files implement the user interface of the HID mouse application. The implementation is comprised of three steps: 1. Start the USB Device udc_start(); udc_attach(); // Must be called when the USB cable is plugged // Cable plugged is detected via VBus events 2. Wait for the HID mouse interface to be enabled via a callback UDI_HIDMOUSE_ENABLE_EXT() // Authorize the HID mouse events 3. Scan the switches and send mouse events, if any If(switch_left_down) udi_hid_mouse_btnleft(hid_mouse_btn_down); Tip: To simplify the implementation, the SOF event is used to scan switches each 1ms. 5

Figure 5-1. Example behavior sequence. Application UDC / UDI / UDD Step 1 Start the USB device Startup udc start() VBus high udc attach() Step 2 - Wait for the mouse interface to be enabled Enable switch scan Step 3 - Scan the switches Scan switches No mouse event Scan switches Send mouse events UDI_HIDMOUSE_ENABLE_EXT() UDC_SOF_EVENT() UDC_SOF_EVENT() udi_hid_mouse_btnleft() SOF SOF Enumeration Manage power consumption in suspend mode UDC_SUSPEND_EVENT() Turn off external components UDC_RESUME_EVENT() Turn on external components Suspend Resume SOF UDC SOF EVENT() 6 Atmel AVR4903

6 Building a USB device mouse Atmel AVR4903 The USB device mouse modules are available in Atmel AVR Studio 5, and can be imported into an AVR Studio 5 project. This section describes how to add a USB device mouse in a project: 1. Import the USB mouse module. 2. Configure personal USB parameters. 3. Call USB routines to run the USB device. 6.1 Import USB module To import the USB HID mouse module, follow the instructions below: 1. Open or create your project: 2. From the Project menu, choose Select Drivers from AVR Software Framework. 3. Select Services, choose USB HID Mouse (Single Interface Device), and click on the Add to selection button. 1 2 3 7

6.2 USB configuration 6.3 USB implementation 6.3.1 USB device control All USB stack configurations are stored in the conf_usb.h file in the application module. These configurations are simple and do not require any specific USB knowledge. There is one configuration section for each USB module: UDC, UDI, and UDD. The UDC configuration possibilities are described in the application note, AVR4900: ASF USB Device Stack, Section 7.1.1 - USB device configuration. The UDD configuration possibilities are described in the application note, AVR4900: ASF USB Device Stack, Section 7.1.3 - USB driver configuration. The UDI, which is the mouse interface, does not require any configuration. This section describes the source code to add and to run a USB device mouse application. The implementation comprises three steps: 1. Start the USB device. 2. Wait for the HID mouse interface to be enabled by the host. 3. Scan the sensors and send USB mouse events, if any. Only two function calls are needed to start a USB device application (see Figure 6-1). Figure 6-1. USB device application sequence. 8 Atmel AVR4903

Atmel AVR4903 NOTE In the case of a new project, the USB stack requires interrupts to be enabled and the clock and sleepmgr services to be initialized. Example <conf_usb.h> #define UDC_VBUS_EVENT(b_vbus_high) \ vbus_event(b_vbus_high) <main C file>: main() { // Authorize interrupts irq_initialize_vectors(); cpu_irq_enable(); // Initialize the sleep manager service sleepmgr_init(); // Initialize the clock service sysclk_init(); // Enable USB stack device udc_start(); } vbus_event(b_vbus_high) { if (b_vbus_high) { // Connect USB device udc_attach(); }else{ // Disconnect USB device udc_detach(); } } 6.3.2 USB interface control After the device enumeration (detecting and identifying USB devices), the USB host starts the device configuration. When the USB mouse interface from the device is accepted by the host, the USB host enables this interface and the UDI_HIDMOUSE_ENABLE_EXT() callback function is called. When the USB device is unplugged or is reset by the USB host, the USB interface is disabled and the UDI_HIDMOUSE_DISABLE_EXT() callback function is called. Thus, it is recommended to enable/disable sensors used by the mouse in these functions. Example <conf_usb.h> #define UDI_HIDMOUSE_ENABLE_EXT() \ mouse_enable() #define UDI_HIDMOUSE_DISABLE_EXT() \ mouse_disable() <main C file>: mouse_enable() { 9

// Enable sensor and start process to scan sensor return true; } mouse_disable() { // Disable sensor and stop process to scan sensor } 6.3.3 USB mouse control The USB HID mouse functions described in Table 6-1 allow the application to control the mouse. Table 6-1. UDI HID mouse functions. Declaration udi_hid_mouse_movescroll(int8_t pos) udi_hid_mouse_movey(int8_t pos_y) udi_hid_mouse_movex(int8_t pos_x) udi_hid_mouse_btnmiddle(bool b_state) udi_hid_mouse_btnright(bool b_state) udi_hid_mouse_btnleft(bool b_state) Description Sends a value at scroll wheel Sends an Y axis value at mouse pointer Sends an X axis value at mouse pointer Sends a middle click event Sends a right click event Sends a left click event Example <sensor C file>: sensor_process() { if (is_sensor_move_up()) udi_hid_mouse_movey(sensor_get_move_value()); if (is_button_left_press()) udi_hid_mouse_btnleft(hid_mouse_btn_down); if (is_button_left_release()) udi_hid_mouse_btnleft(hid_mouse_btn_up);... } 10 Atmel AVR4903

Atmel AVR4903 7 Mouse in a USB composite device 7.1 USB configuration 7.2 USB descriptor This section provides the HID mouse information to create a USB composite device together with the application note, AVR4902 ASF - USB Composite Device. In addition to the USB configuration described in Section 6.2, the following values must be defined in the conf_usb.h file: USB_DEVICE_EP_CTRL_SIZE: Endpoint control size. This must be: 8 for a low speed device 8, 16, 32, or 64 for a full speed device (8 is recommended to save RAM) 64 for a high speed device UDI_HID_MOUSE_EP_IN: IN endpoint number used by the HID mouse interface. UDI_HID_MOUSE_IFACE_NUMBER: Interface number of the HID mouse interface. USB_DEVICE_MAX_EP: Total number of endpoints in the application. This must include one endpoint for the HID mouse interface. The USB device descriptor of the composite device, defined in the conf_usb.h file, must include the HID mouse interface descriptor: //! Define structure of composite interfaces descriptor #define UDI_COMPOSITE_DESC_T \ udi_hid_mouse_desc_t udi_hid_mouse; \... //! Fill composite interfaces descriptor for full speed #define UDI_COMPOSITE_DESC_FS \.udi_hid_mouse = UDI_HID_MOUSE_DESC, \... //! Fill composite interfaces descriptor for high speed #define UDI_COMPOSITE_DESC_HS \.udi_hid_mouse = UDI_HID_MOUSE_DESC, \... //! Fill interface APIs corresponding to interfaces descriptor #define UDI_COMPOSITE_API \ &udi_api_hid_mouse, \... 11

8 Table of contents Features... 1 1 Introduction... 1 2 Abbreviations... 2 3 Overview... 3 4 Quick start... 4 4.1 User interface... 4 5 Example description... 5 5.1 Example content... 5 5.2 Example behavior... 5 6 Building a USB device mouse... 7 6.1 Import USB module... 7 6.2 USB configuration... 8 6.3 USB implementation... 8 6.3.1 USB device control... 8 6.3.2 USB interface control... 9 6.3.3 USB mouse control... 10 7 Mouse in a USB composite device... 11 7.1 USB configuration... 11 7.2 USB descriptor... 11 8 Table of contents... 12 12 Atmel AVR4903

Atmel Corporation 2325 Orchard Parkway San Jose, CA 95131 USA Tel: (+1)(408) 441-0311 Fax: (+1)(408) 487-2600 www.atmel.com Atmel Asia Limited Unit 01-5 & 16, 19F BEA Tower, Milennium 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 9F, Tonetsu Shinkawa Bldg. 1-24-8 Shinkawa Chou-ku, Tokyo 104-0033 JAPAN Tel: (+81) 3523-3551 Fax: (+81) 3523-7581 2011 Atmel Corporation. All rights reserved. Atmel, Atmel logo and combinations thereof, 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. 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 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 products are not intended, authorized, or warranted for use as components in applications intended to support or sustain life.