29.12.2013 Views

ASF - Atmel QTouch with XMEGA USB HID - Atmel Corporation

ASF - Atmel QTouch with XMEGA USB HID - Atmel Corporation

ASF - Atmel QTouch with XMEGA USB HID - Atmel Corporation

SHOW MORE
SHOW LESS

Create successful ePaper yourself

Turn your PDF publications into a flip-book with our unique Google optimized e-Paper software.

APPLICATION NOTE<br />

<strong>Atmel</strong> AVR1632: <strong>ASF</strong> – <strong>Atmel</strong> <strong>QTouch</strong> <strong>with</strong> <strong>XMEGA</strong> <strong>USB</strong><br />

<strong>HID</strong><br />

Features<br />

8-bit <strong>Atmel</strong> Microcontrollers<br />

• Single-Chip solution<br />

• <strong>Atmel</strong> ® <strong>QTouch</strong> ® and <strong>USB</strong> <strong>HID</strong> on <strong>Atmel</strong> AVR ® ATxmega256A3BU<br />

• Using <strong>QTouch</strong> Library 4.4<br />

• Using <strong>Atmel</strong> Studio 6<br />

• Simple PC interface <strong>with</strong> Read/Write functions<br />

• Remote wake up and <strong>USB</strong> bus powered support<br />

Introduction<br />

This application note describes how to use the <strong>QTouch</strong> library <strong>with</strong> the<br />

ATxmega256A3BU microcontroller using <strong>QTouch</strong> button available on <strong>XMEGA</strong>-A3BU<br />

Xplained board. <strong>QTouch</strong> sensor status is acquired and reported over the <strong>USB</strong> <strong>HID</strong><br />

class to a host PC. It provides a single chip solution for sensing <strong>QTouch</strong> through <strong>USB</strong><br />

interface.<br />

<strong>USB</strong> interface<br />

42013A−AVR−07/12


Table of Contents<br />

1. Glossary ............................................................................................... 3<br />

2. Overview .............................................................................................. 3<br />

3. Quick start ............................................................................................ 4<br />

3.2 User interface .................................................................................................... 5<br />

4. Building a <strong>USB</strong> device <strong>HID</strong> Generic <strong>with</strong> <strong>QTouch</strong>................................ 5<br />

4.1 Importing and configuring <strong>USB</strong> module ............................................................. 5<br />

4.2 <strong>QTouch</strong> Library Integration ............................................................................... 6<br />

5. Project options ..................................................................................... 7<br />

5.1 Compiler and assembler options ....................................................................... 7<br />

5.2 Linker options .................................................................................................... 9<br />

6. Example firmware ................................................................................ 9<br />

6.1 <strong>QTouch</strong> interface file – touch.c.......................................................................... 9<br />

6.1.1 <strong>QTouch</strong> initialization............................................................................ 9<br />

6.1.1.1 config_sensor .................................................................... 9<br />

6.1.1.2 qt_init_sensing ................................................................ 10<br />

6.1.1.3 qt_set_parameters .......................................................... 10<br />

6.1.1.4 init_timer_isr .................................................................... 10<br />

6.1.2 Timer interrupt callback ..................................................................... 10<br />

6.1.3 Check key press ............................................................................... 10<br />

6.2 Example behavior ........................................................................................... 11<br />

6.2.1 ui_process ........................................................................................ 11<br />

7. Host application ................................................................................. 12<br />

8. Recommended reading ...................................................................... 13<br />

<strong>Atmel</strong> AVR1632: <strong>ASF</strong> – <strong>Atmel</strong> <strong>QTouch</strong> <strong>with</strong> <strong>XMEGA</strong> <strong>USB</strong> <strong>HID</strong> [APPLICATION NOTE]<br />

42013A−AVR−07/12<br />

2


1. Glossary<br />

<strong>ASF</strong><br />

<strong>HID</strong><br />

UDC<br />

UDD<br />

UDI<br />

<strong>USB</strong><br />

<strong>Atmel</strong> Studio 6<br />

<strong>Atmel</strong> <strong>QTouch</strong> Library<br />

<strong>Atmel</strong> Software Framework<br />

Human Interface Device<br />

<strong>USB</strong> Device Controller<br />

<strong>USB</strong> Device Descriptor<br />

<strong>USB</strong> Device Interface<br />

Universal Serial Bus<br />

Integrated Development Environment (IDE) for <strong>Atmel</strong> AVR applications<br />

Software library for touch applications on <strong>Atmel</strong> AT91SAM and AVR microcontrollers<br />

<strong>XMEGA</strong>-A3BU Xplained Evaluation Kit for the <strong>Atmel</strong> ATxmega256A3BU<br />

2. Overview<br />

This demo application acquires the change in <strong>QTouch</strong> key status (ON/OFF), generates the report, and sends it to a host<br />

(PC) on request. This application is built over the generic <strong>USB</strong> <strong>HID</strong> application which allows simple data exchange<br />

between host and the device. The host peridiocally requests for change in <strong>QTouch</strong> key status. The device will send<br />

changed status if available, otherwise it will send a NAK (No Acknowledge) to tell the host that there is no change in the<br />

key status. The data packet sent from the device to the host is called report IN.<br />

Figure 2-1. Application overview.<br />

<strong>USB</strong> + <strong>QTouch</strong> Application<br />

<strong>QTouch</strong> Library<br />

UDC<br />

UDI – <strong>HID</strong><br />

Generic<br />

UDI – <strong>HID</strong><br />

UDD<br />

<strong>USB</strong> Device stack from the <strong>ASF</strong><br />

The report sent to the host contains a set of bytes which can be used by the user application to transfer data depending<br />

on the requirement. Because this application transfers the status of one button at a time, one bit in a byte is sufficient to<br />

transfer the button status. The least significant byte (LSB) of the report byte has the value of the button status. This can<br />

be modified depending on the requirement.<br />

<strong>Atmel</strong> AVR1632: <strong>ASF</strong> – <strong>Atmel</strong> <strong>QTouch</strong> <strong>with</strong> <strong>XMEGA</strong> <strong>USB</strong> <strong>HID</strong> [APPLICATION NOTE]<br />

42013A−AVR−07/12<br />

3


Table 2-1.<br />

Push buttons and <strong>QTouch</strong> button mapping on <strong>XMEGA</strong>-A3BU Xplained.<br />

Button<br />

Push button SW0<br />

Push button SW1<br />

Push button SW2<br />

<strong>QTouch</strong> button QTB0<br />

Pin mapping<br />

PE5<br />

PF1<br />

PF2<br />

PF6 -> SNS, PF7 -> SNSK<br />

3. Quick start<br />

<strong>USB</strong> device generic <strong>HID</strong> example <strong>with</strong> <strong>QTouch</strong> for <strong>XMEGA</strong>-A3BU Xplained is available in <strong>Atmel</strong> Studio 6.<br />

<strong>Atmel</strong> Studio 6 allows the creation of a New Example Project. In the examples list, select a <strong>USB</strong> <strong>QTouch</strong> Device <strong>HID</strong><br />

Generic Example.<br />

The project does not require any modification and only needs to be built, loaded, and run.<br />

Figure 3-1. New example from <strong>Atmel</strong> Studio.<br />

<strong>Atmel</strong> AVR1632: <strong>ASF</strong> – <strong>Atmel</strong> <strong>QTouch</strong> <strong>with</strong> <strong>XMEGA</strong> <strong>USB</strong> <strong>HID</strong> [APPLICATION NOTE]<br />

42013A−AVR−07/12<br />

4


3.2 User interface<br />

The user interface consists of switches and LEDs. The resources used from <strong>XMEGA</strong>-A3BU Xplained board for this<br />

example are:<br />

• Two user LEDs – LED2 and LED3<br />

• One <strong>QTouch</strong> button QTB0<br />

• Three push buttons SW0, SW1 and SW2<br />

• LED0 is ON when <strong>USB</strong> line is in IDLE mode, and OFF in SUSPEND mode<br />

• LED1 blinks when <strong>USB</strong> Host has checked and enabled <strong>HID</strong> generic interface<br />

User LEDs<br />

Figure 3-2. <strong>XMEGA</strong> – A3BU Xplained.<br />

LED0<br />

Push buttons<br />

LED1<br />

<strong>QTouch</strong><br />

button<br />

4. Building a <strong>USB</strong> device <strong>HID</strong> Generic <strong>with</strong> <strong>QTouch</strong><br />

The <strong>USB</strong> device <strong>HID</strong> Generic modules provide a <strong>USB</strong> <strong>HID</strong> Generic interface which can be used to build a <strong>USB</strong><br />

application. These modules are available in <strong>Atmel</strong> Studio 6 and can be imported in an <strong>Atmel</strong> Studio 6 Project. To this,<br />

<strong>QTouch</strong> library should be added and configured.<br />

4.1 Importing and configuring <strong>USB</strong> module<br />

The <strong>USB</strong> device <strong>HID</strong> Generic modules can be added from the <strong>ASF</strong> wizard in <strong>Atmel</strong> Studio 6. Once these modules are<br />

added, it is necessary to configure them as per the application needs.<br />

The configuration details are illustrated in <strong>Atmel</strong> AVR4905: <strong>ASF</strong> – <strong>USB</strong> Device <strong>HID</strong> Generic Application:<br />

http://www.atmel.com/Images/doc8499.pdf [4] .<br />

<strong>Atmel</strong> AVR1632: <strong>ASF</strong> – <strong>Atmel</strong> <strong>QTouch</strong> <strong>with</strong> <strong>XMEGA</strong> <strong>USB</strong> <strong>HID</strong> [APPLICATION NOTE]<br />

42013A−AVR−07/12<br />

5


4.2 <strong>QTouch</strong> Library Integration<br />

To build the application, the appropriate <strong>QTouch</strong> header files, assembler files and library files (which are device and<br />

compiler specific) need to be integrated <strong>with</strong> other source files. To select the correct device and the application-specific<br />

library files, refer to the Library_Selection_Guide.xls file in the <strong>QTouch</strong> library [2] available for download on <strong>Atmel</strong><br />

website. The following should be options should be set for selecting the <strong>QTouch</strong> library for ATxmega256A3BU.<br />

Table 4-1.<br />

Options to be set for selecting <strong>QTouch</strong> Library for ATxmega256A3BU.<br />

Option<br />

Value<br />

Technology<br />

<strong>QTouch</strong><br />

MCU Family <strong>Atmel</strong> AVR <strong>XMEGA</strong> ®<br />

MCU Type<br />

8-bit<br />

MCU<br />

ATxmega256A3BU<br />

Ports available for <strong>QTouch</strong><br />

A, B, C, D, E, F<br />

Maximum number of channels 4<br />

Maximum number of rotors 0<br />

Toolchain<br />

GCC<br />

By selecting these parameters, the appropriate library files to be included can be seen.<br />

• libavrxmega6g1-4qt-k-0rs.a – GCC library file for the respective device<br />

• qt_asm_xmega.S – assembler file<br />

• touch_qt_config.h<br />

• touch_api.h<br />

<strong>Atmel</strong> AVR1632: <strong>ASF</strong> – <strong>Atmel</strong> <strong>QTouch</strong> <strong>with</strong> <strong>XMEGA</strong> <strong>USB</strong> <strong>HID</strong> [APPLICATION NOTE]<br />

42013A−AVR−07/12<br />

6


Figure 4-1. Library Selection Guide.<br />

5. Project options<br />

5.1 Compiler and assembler options<br />

For the <strong>QTouch</strong> application, certain options should be set in the compiler and assembler. In GCC, open Project Options<br />

-> Toolchain -> AVR/GNU C Compiler -> Symbols. Add the following to Defined symbols one by one in <strong>Atmel</strong> Studio 6<br />

(Figure 5-1).<br />

_QTOUCH_<br />

SNS1=F<br />

SNSK1=F<br />

_SNS1_SNSK1_SAME_PORT_<br />

QT_DELAY_CYCLES=1<br />

QT_NUM_CHANNELS=4<br />

QTOUCH_STUDIO_MASKS=1<br />

NUMBER_OF_PORTS=1<br />

<strong>Atmel</strong> AVR1632: <strong>ASF</strong> – <strong>Atmel</strong> <strong>QTouch</strong> <strong>with</strong> <strong>XMEGA</strong> <strong>USB</strong> <strong>HID</strong> [APPLICATION NOTE]<br />

42013A−AVR−07/12<br />

7


Figure 5-1. GCC compiler options.<br />

Add Symbols<br />

The above options have to be set in the assembler as well, as shown in Figure 5-2.<br />

Figure 5-2. GCC assembler options.<br />

Add here<br />

<strong>Atmel</strong> AVR1632: <strong>ASF</strong> – <strong>Atmel</strong> <strong>QTouch</strong> <strong>with</strong> <strong>XMEGA</strong> <strong>USB</strong> <strong>HID</strong> [APPLICATION NOTE]<br />

42013A−AVR−07/12<br />

8


5.2 Linker options<br />

In GCC, open Project Options -> Toolchain -> AVR/GNU C Linker -> Libraries. Add the following library (Figure 5-3)<br />

avrxmega6g1-4qt-k-0rs<br />

Also specify the path where the library is located.<br />

Figure 5-3. Linker options.<br />

Add library<br />

Add library path<br />

6. Example firmware<br />

This document explains only the <strong>QTouch</strong> interface file and example behavior. Description about <strong>USB</strong> Device <strong>HID</strong><br />

Generic is available in <strong>Atmel</strong> AVR4905: <strong>ASF</strong> – <strong>USB</strong> Device <strong>HID</strong> Generic Application:<br />

http://www.atmel.com/Images/doc8499.pdf.<br />

6.1 <strong>QTouch</strong> interface file – touch.c<br />

6.1.1 <strong>QTouch</strong> initialization<br />

The touch_init function is responsible for calling the initialization routines related to <strong>QTouch</strong> sensing.<br />

config_sensor();<br />

qt_init_sensing();<br />

qt_set_parameters();<br />

init_timer_isr();<br />

Each of the functions are described in the following sections.<br />

6.1.1.1 config_sensor<br />

The config_sensor function is responsible for configuring the sensors as keys and assigning the channel numbers.<br />

<strong>Atmel</strong> AVR1632: <strong>ASF</strong> – <strong>Atmel</strong> <strong>QTouch</strong> <strong>with</strong> <strong>XMEGA</strong> <strong>USB</strong> <strong>HID</strong> [APPLICATION NOTE]<br />

42013A−AVR−07/12<br />

9


channel_t<br />

qt_enable_key(CHANNEL_0, NO_AKS_GROUP, 10, HYST_6_25);<br />

– channel number to be configured for a key<br />

aks_group_t – Adjacent Key Suppression ® (AKS ® ) group associated <strong>with</strong> the sensor being configured as “key”<br />

threshold_t – Detect threshold for the sensor<br />

hysteresis_t – Detection hysteresis for the sensor<br />

Refer to the <strong>Atmel</strong> AVR <strong>QTouch</strong> Library User Guide:<br />

http://www.atmel.com/dyn/resources/prod_documents/doc8207.pdf for more information on this function.<br />

6.1.1.2 qt_init_sensing<br />

The qt_init_sensing function is used to initialize the <strong>QTouch</strong> sensing for all enabled channels. All required sensors<br />

should be configured before calling this function.<br />

#define qt_init_sensing( ) qt_init_sensing_<strong>with</strong>_burst( BURST_FUNC_NAME ,CALCULATE_MASKS)<br />

6.1.1.3 qt_set_parameters<br />

The qt_set_parameters function is used to initialize the global configuration settings in the variable qt_config_data of the<br />

<strong>QTouch</strong> acquisition method libraries. In other words, this will fill the default threshold values in the configuration data<br />

structure.<br />

6.1.1.4 init_timer_isr<br />

The example uses TC driver from <strong>ASF</strong>. It enables the timer, sets the timer period, clock source, interrupt level and<br />

interrupt callback functions. The timer period defines the time interval between consecutive <strong>QTouch</strong> measurements.<br />

6.1.2 Timer interrupt callback<br />

Sets the flag time_to_measure_touch and updates the current time that is used by the <strong>QTouch</strong> Library.<br />

6.1.3 Check key press<br />

The check_touch_key_pressed function in the <strong>QTouch</strong> interface file (touch.c) from example is responsible for<br />

measuring the <strong>QTouch</strong> sensing and reporting the key status.<br />

uint16_t status_flag;<br />

uint16_t burst_flag;<br />

#ifdef _DEBUG_INTERFACE_<br />

/* Process commands from PC */<br />

#endif<br />

QDebug_ProcessCommands();<br />

if (time_to_measure_touch)<br />

{<br />

time_to_measure_touch = false;<br />

do {<br />

status_flag = qt_measure_sensors( current_time_ms_touch );<br />

burst_flag = status_flag & QTLIB_BURST_AGAIN;<br />

#ifdef _DEBUG_INTERFACE_<br />

QDebug_SendData(status_flag);<br />

<strong>Atmel</strong> AVR1632: <strong>ASF</strong> – <strong>Atmel</strong> <strong>QTouch</strong> <strong>with</strong> <strong>XMEGA</strong> <strong>USB</strong> <strong>HID</strong> [APPLICATION NOTE]<br />

42013A−AVR−07/12<br />

10


#endif<br />

/* Time-critical host application code should be placed here since<br />

* a full burst cycle may delay critical task in the main application<br />

*/<br />

}while (burst_flag) ;<br />

#ifdef _DEBUG_INTERFACE_<br />

/* Process commands from PC */<br />

QDebug_ProcessCommands();<br />

#endif<br />

}<br />

if(GET_SENSOR_STATE(0))<br />

return 0;<br />

else<br />

return 1;<br />

6.2 Example behavior<br />

6.2.1 ui_process<br />

The main.c and ui.c implement the user interface for <strong>Atmel</strong> <strong>QTouch</strong> demonstration <strong>with</strong> <strong>Atmel</strong> <strong>XMEGA</strong> <strong>USB</strong> <strong>HID</strong><br />

application.<br />

The implementation is comprised of three steps:<br />

1. Start the <strong>USB</strong> Device<br />

udc_start();<br />

udc_attach(); // Must be called when the <strong>USB</strong> cable is plugged<br />

// Cable plugged is detected via VBUS events<br />

2. Wait for the <strong>HID</strong> Generic interface to be enabled via a callback<br />

UDI_<strong>HID</strong>_GENERIC_ENABLE_EXT() // Authorize the Generic <strong>HID</strong> events<br />

3. Scan the buttons and send the status<br />

b_btn_state = (!check_touch_key_pressed()) ? true : false;<br />

if (b_btn_state != btnq_last_state) {<br />

ui_hid_report[0]=b_btn_state;<br />

udi_hid_generic_send_report_in(ui_hid_report);<br />

btnq_last_state = b_btn_state;<br />

}<br />

Note:<br />

To simplify the <strong>USB</strong> implementation, the SOF event is used to scan switches every 1ms.<br />

More description on how Generic <strong>HID</strong> example works is available in the application note <strong>Atmel</strong> AVR4905: <strong>ASF</strong> – <strong>USB</strong><br />

Device <strong>HID</strong> Generic Application: http://www.atmel.com/Images/doc8499.pdf.<br />

<strong>Atmel</strong> AVR1632: <strong>ASF</strong> – <strong>Atmel</strong> <strong>QTouch</strong> <strong>with</strong> <strong>XMEGA</strong> <strong>USB</strong> <strong>HID</strong> [APPLICATION NOTE]<br />

42013A−AVR−07/12<br />

11


7. Host application<br />

<strong>Atmel</strong> PC tool allows communicating <strong>with</strong> the generic <strong>HID</strong> device. The PC tool is available <strong>with</strong> Application<br />

Note AVR153: <strong>USB</strong> PC Drivers Based on Generic <strong>HID</strong> Class:<br />

http://www.atmel.com/dyn/resources/prod_documents/doc7645.pdf AVR153 – <strong>USB</strong> PC Drivers Based on Generic <strong>HID</strong><br />

Class as AVR153.zip [6]. Whenever there is a key press and release, it updates in the display of PC Tool. The key<br />

press or release is displayed as shown in Figure 7-1.<br />

Use the LED2 ON/OFF and LED3 ON/OFF buttons to turn ON and OFF the LED2 and 3. Push and release the buttons<br />

SW0, SW1, SW2 and <strong>QTouch</strong> button QTB0 to see the status displayed on the PC application window.<br />

Information on integrating the <strong>Atmel</strong> <strong>USB</strong> <strong>HID</strong> DLL functions and simple code examples that demonstrate different types<br />

of implementation are available in the document “<strong>USB</strong> PC Drivers Based on Generic <strong>HID</strong> Class” [6].<br />

Figure 7-1. Ket status.<br />

Note:<br />

Caution:<br />

Use the PID 0x2402 in the graphic tool interface.<br />

The button ‘Firmware Upgrade’ only disconnects the <strong>USB</strong> device.<br />

<strong>Atmel</strong> AVR1632: <strong>ASF</strong> – <strong>Atmel</strong> <strong>QTouch</strong> <strong>with</strong> <strong>XMEGA</strong> <strong>USB</strong> <strong>HID</strong> [APPLICATION NOTE]<br />

42013A−AVR−07/12<br />

12


8. Recommended reading<br />

[1] <strong>Atmel</strong> <strong>XMEGA</strong> AU Manual: http://atmel.com/dyn/resources/prod_documents/doc8331.pdf<br />

[2] <strong>Atmel</strong> <strong>QTouch</strong> Library 4.4: http://www.atmel.com/tools/QTOUCHSTUDIO4_3_1.aspx<br />

[3] <strong>Atmel</strong> AVR <strong>QTouch</strong> Library User<br />

Guide: http://www.atmel.com/dyn/resources/prod_documents/doc8207.pdf<br />

[4] <strong>Atmel</strong> AVR4905: <strong>ASF</strong> – <strong>USB</strong> Device <strong>HID</strong> Generic Application: http://www.atmel.com/Images/doc8499.pdf<br />

[5] <strong>ASF</strong> Documentation: http://asf.atmel.com/docs/latest/<br />

[6] AVR153: <strong>USB</strong> PC Drivers Based on Generic <strong>HID</strong><br />

Class: http://www.atmel.com/dyn/resources/prod_documents/doc7645.pdf<br />

[7] AVR1923: <strong>XMEGA</strong>-A3BU Xplained Hardware User<br />

Guide: http://atmel.com/dyn/resources/prod_documents/doc8394.pdf<br />

[8] AVR1934: <strong>XMEGA</strong> A3BU Xplained Software User<br />

Guide: http://atmel.com/dyn/resources/prod_documents/doc8413.pdf<br />

[9] AVR1935: <strong>XMEGA</strong> A3BU Xplained Getting Started<br />

Guide: http://atmel.com/dyn/resources/prod_documents/doc8324.pdf<br />

<strong>Atmel</strong> AVR1632: <strong>ASF</strong> – <strong>Atmel</strong> <strong>QTouch</strong> <strong>with</strong> <strong>XMEGA</strong> <strong>USB</strong> <strong>HID</strong> [APPLICATION NOTE]<br />

42013A−AVR−07/12<br />

13


<strong>Atmel</strong> <strong>Corporation</strong><br />

1600 Technology Drive<br />

San Jose, CA 95110<br />

USA<br />

Tel: (+1)(408) 441-0311<br />

Fax: (+1)(408) 487-2600<br />

www.atmel.com<br />

<strong>Atmel</strong> Asia Limited<br />

Unit 01-5 & 16, 19F<br />

BEA Tower, Millennium City 5<br />

418 Kwun Tong Road<br />

Kwun Tong, Kowloon<br />

HONG KONG<br />

Tel: (+852) 2245-6100<br />

Fax: (+852) 2722-1369<br />

<strong>Atmel</strong> Munich GmbH<br />

Business Campus<br />

Parkring 4<br />

D-85748 Garching b. Munich<br />

GERMANY<br />

Tel: (+49) 89-31970-0<br />

Fax: (+49) 89-3194621<br />

<strong>Atmel</strong> Japan G.K.<br />

16F Shin-Osaki Kangyo Bldg.<br />

1-6-4 Osaki, Shinagawa-ku<br />

Tokyo 141-0032<br />

JAPAN<br />

Tel: (+81)(3) 6417-0300<br />

Fax: (+81)(3) 6417-0370<br />

© 2012 <strong>Atmel</strong> <strong>Corporation</strong>. All rights reserved. / Rev.: 42013A−AVR−07/12<br />

<strong>Atmel</strong> ® , <strong>Atmel</strong> logo and combinations thereof, AVR ® , Adjacent Key Suppression ® , AKS ® , Enabling Unlimited Possibilities ® , <strong>QTouch</strong> ® , <strong>XMEGA</strong> ® , and others are<br />

registered trademarks or trademarks of <strong>Atmel</strong> <strong>Corporation</strong> or its subsidiaries. Other terms and product names may be trademarks of others.<br />

Disclaimer: The information in this document is provided in connection <strong>with</strong> <strong>Atmel</strong> products. No license, express or implied, by estoppel or otherwise, to any intellectual property right is granted by this<br />

document or in connection <strong>with</strong> the sale of <strong>Atmel</strong> products. EXCEPT AS SET FORTH IN THE ATMEL TERMS AND CONDITIONS OF SALES LOCATED ON THE ATMEL WEBSITE, ATMEL ASSUMES<br />

NO LIABILITY WHATSOEVER AND DISCLAIMS ANY EXPRESS, IMPLIED OR STATUTORY WARRANTY RELATING TO ITS PRODUCTS INCLUDING, BUT NOT LIMITED TO, THE IMPLIED<br />

WARRANTY OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE, OR NON-INFRINGEMENT. IN NO EVENT SHALL ATMEL BE LIABLE FOR ANY DIRECT, INDIRECT,<br />

CONSEQUENTIAL, PUNITIVE, SPECIAL OR INCIDENTAL DAMAGES (INCLUDING, WITHOUT LIMITATION, DAMAGES FOR LOSS AND PROFITS, BUSINESS INTERRUPTION, OR LOSS OF<br />

INFORMATION) ARISING OUT OF THE USE OR INABILITY TO USE THIS DOCUMENT, EVEN IF ATMEL HAS BEEN ADVISED OF THE POSSIBILITY OF SUCH DAMAGES. <strong>Atmel</strong> makes no<br />

representations or warranties <strong>with</strong> 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<br />

<strong>with</strong>out notice. <strong>Atmel</strong> does not make any commitment to update the information contained herein. Unless specifically provided otherwise, <strong>Atmel</strong> products are not suitable for, and shall not be used in,<br />

automotive applications. <strong>Atmel</strong> products are not intended, authorized, or warranted for use as components in applications intended to support or sustain life.

Hooray! Your file is uploaded and ready to be published.

Saved successfully!

Ooh no, something went wrong!