APPLICATION NOTE. AT6493: SAM C21/CAN BUS/Firmware. SMART ARM-Based Microcontroller. Introduction. Features

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

CryptoAuth Xplained Pro

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

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

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

AT88CK490 Evaluation Kit

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

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

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

USER GUIDE EDBG. Description

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

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

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

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

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

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

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

USER GUIDE. ZigBit USB Stick User Guide. Introduction

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

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

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

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

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

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

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

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

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

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

QT1 Xplained Pro. Preface. Atmel QTouch USER GUIDE

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

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

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

AN3998 Application note

APPLICATION NOTE. AT05558: Wireless Manufacturing Test Kit. Atmel ATmega256RFR2. Description. Features

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

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

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

General Porting Considerations. Memory EEPROM XRAM

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

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

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

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

AVR127: Understanding ADC Parameters. Introduction. Features. Atmel 8-bit and 32-bit Microcontrollers APPLICATION NOTE

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

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

AN3332 Application note

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

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

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

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

APPLICATION NOTE. RF System Architecture Considerations ATAN0014. Description

Dell Statistica. Statistica Document Management System (SDMS) Requirements

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

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

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

Designing Feature-Rich User Interfaces for Home and Industrial Controllers

Atmel SMART ARM Core-based Embedded Microprocessors

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

AT12181: ATWINC1500 Wi-Fi Network Controller - AP Provision Mode. Introduction. Features. Atmel SmartConnect APPLICATION NOTE

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

AN AES encryption and decryption software on LPC microcontrollers. Document information

AT91SAM ARM-based Flash MCU. Application Note

Dell One Identity Cloud Access Manager How to Configure vworkspace Integration

Dell Spotlight on Active Directory Server Health Wizard Configuration Guide

More Secure, Less Costly IoT Edge Node Security Provisioning

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

Dell InTrust Preparing for Auditing Cisco PIX Firewall

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

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

Programming Audio Applications in the i.mx21 MC9328MX21

USER GUIDE. ATWINC1500B Hardware Design Guidelines - IEEE b/g/n IoT Module. Atmel SmartConnect. Introduction

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

SAMA5D2. Scope. Reference Documents. Atmel SMART ARM-based MPU ERRATA

AN3265 Application note

Spotlight Management Pack for SCOM

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

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

DACC (Digital-to-Analog Converter Controller) The outline of this documentation is as follows: Module Overview. Special Considerations

Using the RS232 serial evaluation boards on a USB port

Introduction to Version Control in

Simplifying System Design Using the CS4350 PLL DAC

formerly Help Desk Authority Quest Free Network Tools User Manual

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

Wireless Subwoofer TI Design Tests

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

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

MODFLEX MINI GATEWAY ETHERNET USER S GUIDE

AN3354 Application note

AN Boot mode jumper settings for LPC1800 and LPC4300. Document information

New Features and Enhancements

Atmel Power Line Communications. Solutions for the Smart Grid

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

APPLICATION NOTE. AT17284: Proximetry Cloud Based Smart Plug User Guide. SMART ARM-based Microcontrollers. Introduction. Features

AVR126: ADC of megaavr in Single Ended Mode. Introduction. Features. AVR 8-bit Microcontrollers APPLICATION NOTE

Dell One Identity Cloud Access Manager How to Configure for SSO to SAP NetWeaver using SAML 2.0

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

Dell Statistica Statistica Enterprise Installation Instructions

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

AN2680 Application note

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

Transcription:

APPLICATION NOTE AT6493: SAM C21/CAN BUS/Firmware SMART ARM-Based Microcontroller Introduction CAN bus is a message based protocol designed specifically for automotive applications, but is also used in areas such as aerospace, maritime, railway vehicles, industrial automation, and medical equipment. This application note will cover the firmware required to initialize and start the SAM C21 CAN controller and send/receive message in both standard and extended formats. Firmware within this document was created using Atmel Software Framework (ASF), which is an extension to Atmel Studio. Features +5V operation Dual independent CAN controllers Supports CAN 2.0, which is the latest specification consisting of two parts Part A (CAN 2.0A) Standard format with an 11-bit identifier Data rates up to 256kbit/sec Part B (CAN 2.0B) Extended format with a 29-bit identifier Data rates up to 1Mbit/sec

Table of Contents 1 CAN Hardware...3 1.1 Connecting the SAM C21 to the CAN bus... 3 2 CAN Setup...4 2.1 CAN bus Bitrate... 4 2.2 Message IDs... 4 2.2.1 Transmit Message ID... 4 2.2.2 Receive Message ID... 4 3 CAN Configuration...6 3.1 CAN TX/RX Pins... 6 3.2 CAN Module Initialization... 6 3.3 Standard RX Filtering (11-bit Message ID)... 7 3.4 Extended RX Filtering (29-bit Message ID)... 7 3.5 Sending a Standard Message (11-bit Message ID)... 8 3.6 Sending an Extended Message (29-bit Message ID)... 8 3.7 Interrupt Handler (Received Messages)... 9 4 Summary... 10 5 Revision History... 11 2

1 CAN Hardware 1.1 Connecting the SAM C21 to the CAN bus CAN is a multi-master serial bus used for connected nodes called Electronic Control Units (ECUs) these are usually referred to as Nodes; all nodes are connected to each other over a two-wire bus. In order to connect the SAM C21 to the CAN bus, an external CAN transceiver is required. The bus should be terminated at both ends with 120Ω resistors. Figure 1-1 shows a typical CAN bus layout. Figure 1-1. Typical CAN bus Layout CAN bus transceivers are readily available from a number of semiconductor manufacturers, however, we would prefer that you use the Atmel ATA6560 or ATA6561 CAN bus transceivers. 3

2 CAN Setup 2.1 CAN bus Bitrate The nominal and databit rates, among other basic CAN settings, can be found in the header file conf_can.h. Assuming the use of a 48MHz generic clock (GLCK) and a desired CAN bus speed of 500kHz the following defines are used to set the nominal bitrate: Nominal Bitrate Prescaler #define CONF_CAN_NBTP_NBRP_VALUE 5 Nominal bit (Re)Synchronization Jump Width #define CONF_CAN_NBTP_NSJW_VALUE 3 Nominal bit Time segment before sample point #define CONF_CAN_NBTP_NTSEG1_VALUE 10 Nominal bit Time segment after sample point #define CONF_CAN_NBTP_NTSEG2_VALUE 3 Given the above #defines the time quanta is 48MHz / (5 + 1) = 8MHz, and each bit is (3 + 10 + 3) or 16 time quanta which is 8MHz / 16 = 500kHz. In a similar manner, the following defines are used to set the databit rate: Databit Baud Rate Prescaler #define CONF_CAN_DBTP_DBRP_VALUE 5 Databit (Re)Synchronization Jump Width #define CONF_CAN_DBTP_DSJW_VALUE 3 Databit Time segment before sample point #define CONF_CAN_DBTP_DTSEG1_VALUE 10 Databit Time segment after sample point #define CONF_CAN_DBTP_DTSEG2_VALUE 3 Given the above #defines the time quanta is 48MHz / (5 + 1) = 8MHz, and each bit is (3 + 10 + 3) or 16 time quanta which is 8MHz / 16 = 500kHz. 2.2 Message IDs 2.2.1 Transmit Message ID The CAN message ID not only provides identification for the type of message being sent or received, it also determines the priority of the message. For example a message with an ID of 10 is of higher priority than a message with an ID of 15. In addition message IDs must be unique on a single CAN bus no two nodes should send a message with the same ID. The transmit message ID should be based on the type of data being sent and its priority. 2.2.2 Receive Message ID The CAN offers the possibility to configure two sets of acceptance filters; one for standard identifiers and one for extended identifiers. These filters can be assigned to an RX Buffer or to RX FIFO 0 or 1. For acceptance filtering each list of filters is executed from element #0 until the first matching element. Acceptance filtering stops at the first matching element. The following filter elements are not evaluated for this message. 4

The main features of the acceptance filters are: Each filter element can be configured as Range filter (from - to) Filter for one or two dedicated IDs Classic bit mask filter Each filter element is configurable for acceptance or rejection filtering Each filter element can be enabled / disabled individually Filters are checked sequentially, execution stops with the first matching filter element The type of filtering is based on the settings of register bits SF1ID/SF2ID for standard frames and EF1ID/EF2ID for extended frames. Range Filtering The filter matches for all received frames with Message IDs in the range defined by SF1ID/SF2ID for standard frames or EF1ID/EF2ID for extended frames There are two possibilities when range filtering is used with extended frames: EFT = 00 : The Message ID of received frames is AND ed with the Extended ID AND Mask (XIDAM) before the range filter is applied EFT = 11 : Filter for Specific IDs The Extended ID AND Mask (XIDAM) is not used for range filtering A filter element can be configured to filter for one or two specific Message IDs. To filter for one specific Message ID, the filter element has to be configured with SF1ID = SF2ID for standard message format and EF1ID = EF2ID for extended format. Classic Bit Mask Filter Classic bit mask filtering is intended to filter groups of Message IDs by masking single bits of a received Message ID. With classic bit mask filtering SF1ID/EF1ID is used as Message ID filter, while SF2ID/EF2ID is used as filter mask. A zero bit at the filter mask will mask out the corresponding bit position of the configured ID filter, e.g. the value of the received Message ID at that bit position is not relevant for acceptance filtering. Only those bits of the received Message ID where the corresponding mask bits are one are relevant for acceptance filtering. In case all mask bits are one, a match occurs only when the received Message ID and the Message ID filter are identical. If all mask bits are zero, all Message IDs match. Settings of acceptance filtering will be done during initialization of the SAM C21 s CAN module as shown later in this application note. 5

3 CAN Configuration 3.1 CAN TX/RX Pins In order to connect the CAN controllers TX and RX pins to the I/O pins of the processor, the pin MUX and correct I/O pins need to be set. There are two discrete CAN controllers on the SAM C21, referred to as CAN0 and CAN1, each can be connected to one of two I/O pairs (refer to the I/O Multiplexing section of the SAM C21 datasheet for more details). The pin MUX and I/O pin settings are handled by the following code: #define CAN_TX_MUX_SETTING #define CAN_TX_PIN #define CAN_RX_MUX_SETTING #define CAN_RX_PIN MUX_PA24G_CAN0_TX PIN_PA24G_CAN0_TX MUX_PA25G_CAN0_RX PIN_PA25G_CAN0_RX struct system_pinmux_config pin_config; system_pinmux_get_config_defaults(&pin_config); pin_config.mux_position = CAN_TX_MUX_SETTING; system_pinmux_pin_set_config(can_tx_pin, &pin_config); pin_config.mux_position = CAN_RX_MUX_SETTING; system_pinmux_pin_set_config(can_rx_pin, &pin_config); The CAN_TX_PIN and CAN_RX_PIN pin constants can be modified to select either one of the two I/O pin pairs supported by the pin MUX. 3.2 CAN Module Initialization Once the CAN TX and RX pins have been defined the CAN module can be initialized. Sample initialization code for the CAN module running in normal mode is shown below: #define CAN_MODULE CAN0 struct can_config config_can; can_get_config_defaults(&config_can); can_init(&can_instance, CAN_MODULE, &config_can); can_switch_operation_mode(&can_instance, CAN_OPERATION_MODE_NORMAL_OPERATION); system_interrupt_enable(system_interrupt_module_can0); The code initializes the CAN0 module, similar code can be placed for the CAN1 module for SAM C21 parts supporting its I/O pins. 6

3.3 Standard RX Filtering (11-bit Message ID) The following function will enable standard message filtering: #define CAN_RX_STANDARD_FILTER_INDEX 0 static void can_set_standard_filter(uint32_t filter_value) struct can_standard_message_filter_element sd_filter; can_get_standard_message_filter_element_default(&sd_filter); sd_filter.s0.bit.sfid1 = filter_value; can_set_rx_standand_filter(&can_instance, &sd_filter, CAN_RX_STANDARD_FILTER_INDEX); can_enable_interrupt(&can_instance, CAN_RX_FIFO_0_NEW_MESSAGE); 3.4 Extended RX Filtering (29-bit Message ID) The following function will enable extended message filtering: #define CAN_RX_EXTENDED_FILTER_INDEX 0 static void can_set_extended_filter(uint32_t filter_value) struct can_extended_message_filter_element et_filter; can_get_extended_message_filter_element_default(&et_filter); et_filter.f0.bit.efid1 = filter_value; can_set_rx_extended_filter(&can_instance, &et_filter, CAN_RX_EXTENDED_FILTER_INDEX); can_enable_interrupt(&can_instance, CAN_RX_FIFO_1_NEW_MESSAGE); 7

3.5 Sending a Standard Message (11-bit Message ID) The following function is used to send a standard message with 11-bit message identifier: static void can_send_standard_message(uint32_t id_value, uint8_t *data) uint32_t i; struct can_tx_element tx_element; can_get_tx_buffer_element_defaults(&tx_element); tx_element.t0.reg = CAN_TX_ELEMENT_T0_ID(id_value << 18); for (i = 0; i < 8; i++) tx_element.data[i] = *data; data++; can_set_tx_buffer_element(&can_instance, &tx_element, CAN_TX_BUFFER_INDEX); can_tx_transfer_request(&can_instance, 1 << CAN_TX_BUFFER_INDEX); 3.6 Sending an Extended Message (29-bit Message ID) The following function is used to send an extended message with 29-bit message identifier: static void can_send_extended_message(uint32_t id_value, uint8_t *data) uint32_t i; struct can_tx_element tx_element; can_get_tx_buffer_element_defaults(&tx_element); tx_element.t0.reg = CAN_TX_ELEMENT_T0_ID(id_value) CAN_TX_ELEMENT_T0_XTD; for (i = 0; i < 8; i++) tx_element.data[i] = *data; data++; can_set_tx_buffer_element(&can_instance, &tx_element, CAN_TX_BUFFER_INDEX); can_tx_transfer_request(&can_instance, 1 << CAN_TX_BUFFER_INDEX); 8

3.7 Interrupt Handler (Received Messages) Messages received by the CAN controller are placed in one or two FIFOs depending on the message type (these were set using defines in the file conf_can.h ). The files also contains defines for the TX data size, and the size of the FIFOs and buffers used by the CAN controller. The example below uses data blocks of eight bytes for both standard and extended messages. In this example, data received in a message with a standard 11-bit identifier are placed in FIFO 0, and in FIFO 1 if the message received contains an extended 29-bit identifier. void CAN0_Handler(void) uint32_t status; status = can_read_interrupt_status(&can_instance); if (status & CAN_RX_FIFO_0_NEW_MESSAGE) can_clear_interrupt_status(&can_instance, CAN_RX_FIFO_0_NEW_MESSAGE); can_get_rx_fifo_0_element(&can_instance, &rx_element_fifo_0, standard_receive_index); can_rx_fifo_acknowledge(&can_instance, 0, standard_receive_index); standard_receive_index++; if (standard_receive_index == CONF_CAN0_RX_FIFO_0_NUM) standard_receive_index = 0; // Received data is in rx_element_fifo_0_data->data[x], where x is 0..7 if (status & CAN_RX_FIFO_1_NEW_MESSAGE) can_clear_interrupt_status(&can_instance, CAN_RX_FIFO_1_NEW_MESSAGE); can_get_rx_fifo_1_element(&can_instance, &rx_element_fifo_1, extended_receive_index); can_rx_fifo_acknowledge(&can_instance, 0, extended_receive_index); extended_receive_index++; if (extended_receive_index == CONF_CAN0_RX_FIFO_1_NUM) extended_receive_index = 0; // Received data is in rx_element_fifo_1_data->data[x], where x is 0..7 9

4 Summary The firmware used as a basis for this application note is attached. 10

5 Revision History Doc Rev. Date Comments 6493A 06/2015 Initial document release. 11

SAFETY-CRITICAL, MILITARY, AND AUTOMOTIVE APPLICATIONS DISCLAIMER: Atmel products are not designed for and will not be used in connection with any applications where the failure of such products would reasonably be expected to result in significant personal injury or death ( Safety -Critical Applications ) without an Atmel officer's specific written consent. Safety-Critical Applications include, without limitation, life support devices and systems, equipment or systems for the operation o f nuclear facilities and weapons systems. Atmel products are not designed AT6493: nor intended SAM for use C21/CAN in military or BUS/Firmware aerospace applications or [APPLICATION environments unless specifically NOTE] designated by Atmel as military -grade. Atmel products are not designed nor intended for use in automotive applications unless specifically designated by as automotive -grade. 12 Atmel Corporation 1600 Technology Drive, San Jose, CA 95110 USA T: (+1)(408) 441.0311 F: (+1)(408) 436.4200 www.atmel.com 2015 Atmel Corporation. / Rev.:. Atmel, Atmel logo and combinations thereof, Enabling Unlimited Possibilities, and others are registered trademarks or trademarks of Atmel Corporation in U.S. and other countries. ARM, ARM Connected logo, and others are the registered trademarks or trademarks of ARM Ltd. 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 rig ht is granted by this document or in connection with the sale of Atmel products. EXCEPT AS SET FORTH IN THE ATMEL TERMS AND COND ITIONS OF SALES LOCATED ON THE ATMEL WEBSITE, ATMEL ASSUMES NO LIABILITY WHATSOEVER AND DISCLAIMS ANY EXPRESS, IMPLIED OR STATUTORY WARRANTY RELATING TO ITS PRODU CTS 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, DAMAG ES 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 com mitment 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.