Embedded Simply Blue Application Note

Similar documents
LMX9838 Cable Replacement

User's Graphical User Interface(GUI) for LP555x Evaluation Board PowerWise Technology. Compliant Energy Management Unit AN Overview.

The LM49370 PCM/I 2 S Bridge

LM48555 Evaluation Board

LM3509 Evaluation Board

USB I 2 C Interface Board Reference Manual

LM3881 Power Sequencer Evaluation Board

LM3410X LED Driver 6-Pin LLP Demo Board

Decompensated Operational Amplifiers

DS90LV004 4-Channel LVDS Buffer/Repeater with Pre-Emphasis

Developing Plug-and-Play COM Ports using TI Plug-and-Play Controllers

LP5526 Evaluation Kit

DP83848 Single 10/100 Mb/s Ethernet Transceiver Reduced Media Independent Interface (RMII ) Mode

PC87435 Enhanced IPMI Baseboard Management Controller

Writing TMS320C8x PP Code Under the Multitasking Executive

ESP8266 Application Note Firmware Download Protocol

Time Compensation) for TFT-LCD Monitors and TV (XGA/WXGA/HDTV I,II,-)

Interconnecting National Semiconductor s TP3420A SID to Motorola SCP/HDLC Devices

Programming Sequences for the QF1Da512

Programming Sequences for the QF1Da512

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

AND8386/D. Bootloading BelaSigna 250 Using the I 2 C Interface APPLICATION NOTE

Installing FTDI Device Drivers for the QF4A512-DK under Windows XP

Using an I 2 C EEPROM During MSC8157 Initialization

The LM4935 Headset/Push-Button Detection Guide

DS90LV804 4-Channel 800 Mbps LVDS Buffer/Repeater

As of October 1, 1998, our address is:

Low Power RS-232C Driver and Receiver in CMOS

STA400EP Enhanced Plastic Dual 2:1 Analog Mux with IEEE

DS3668 Quad Fault Protected Peripheral Driver

Dual Access into Single- Access RAM on a C5x Device

AN3154 Application note

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

LM A Dual Flash LED Driver System with I2C Compatible Interface

COP8 Flash ISP HANDBOOK Virtual E 2 Guide

AN4113 Application note

MPR121 Proximity Detection

Utilizing Extra FC Credits for PCI Express Inbound Posted Memory Write Transactions in PowerQUICC III Devices

As of October 1, 1998, our address is:

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

ESP-NOW User Guide Version 1.0 Copyright 2016

Implementation of a CELP Speech Coder for the TMS320C30 using SPOX

LM3704/LM3705 Microprocessor Supervisory Circuits with Power Fail Input, Low Line Output and Manual Reset

1. Implemented CM11 protocol

SCAN92LV090 9 Channel Bus LVDS Transceiver w/ Boundary SCAN

Text Record Type Definition. Technical Specification NFC Forum TM RTD-Text 1.0 NFCForum-TS-RTD_Text_

Hardware UART for the TMS320C3x

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

Digital UART Product Specification

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

UM0792 User manual. Demonstration firmware for the DMX-512 communication protocol transmitter based on the STM32F103Zx.

C Routines for Setting Up the AIC on the TMS320C5x EVM

Intel Platform Innovation Framework for EFI Boot Script Specification. Version 0.91 April 1, 2004

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

MAC Address programming for DP83816 MacPHYTER II and DP83815 MacPHYTER

APPLICATION NOTE 9.15

Simply Blue Smart User s Guide

Kinetis Bootloader to Update Multiple Devices in a Field Bus Network

_äìé`çêé» VM Memory Mapping and Memory Usage. Application Note. November CSR Cambridge Science Park Milton Road Cambridge CB4 0WH United Kingdom

AN2825 Application Note

Description of STM8 LIN software package (STSW-STM8A-LIN) release 4.1. Table 1. Release information. STM8 LIN package

STM8 I 2 C optimized examples

LM8333 Mobile I/O Companion Supporting Key-Scan, I/O Expansion, PWM, and ACCESS.bus Host Interface

Jump Test of ESP8266 s Secondary Bootloader (V1.6+)

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

MIC705/706/707/708. General Description. Features. Applications. Typical Application. µp Supervisory Circuit

Reading a 16-Bit Bus With the TMS320C5x Serial Port

One 32-bit counter that can be free running or generate periodic interrupts

Features. Applications. n Embedded Controllers and Processors n Intelligent Instruments n Automotive Systems n Critical µp Power Monitoring

AN2781 Application note

Bit-reversed Addressing without Data Alignment on the C3x

Enhanced Serial Peripheral Interface (espi)

AN NTAG I²C plus memory configuration options. Application note COMPANY PUBLIC. Rev June Document information

AN3155 Application note

TMS320C5x Memory Paging (Expanding its Address Reach)


EDBG. Description. Programmers and Debuggers USER GUIDE

I2C and the TAS3001C. Introduction. The I2C Protocol. Digital Audio Group ABSTRACT

Intel Platform Innovation Framework for EFI SMBus Host Controller Protocol Specification. Version 0.9 April 1, 2004

Mask Set Errata for Mask 5L35K

Getting started with DfuSe USB device firmware upgrade STMicroelectronics extension

BitCloud Software 1.2 Serial Bootloader User's Guide

ECO and Workarounds for Bugs in ESP32

Features. Applications. n Embedded Controllers and Processors n Intelligent Instruments n Automotive Systems n Critical µp Power Monitoring

ESP8266 Flash RW Operation

Multifunction Serial Interface (PDL_MFS) Features. General Description. When to Use a PDL_MFS Component. Quick Start 1.0

Getting Started with ESPI Interface Using the Z8 Encore! XP F1680

BlueMoon Universal Embedded PBA31309 V1.00. SPP-AT SW, Version 3.3. I n t e l P u b l i c. Revision 1.1,

F²MC-16FX FAMILY ALL SERIES FLASH SECURITY 16-BIT MICROCONTROLLER APPLICATION NOTE. Fujitsu Microelectronics Europe Application Note

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

LMV1022 / LMV1023 Digital Output PDM Microphone Amplifier Demo Board User's Guide

COMMON-ISDN-API Version 2.0 Extension for Fax Paper Formats and Resolutions

USER GUIDE EDBG. Description

Simple-Pair User Guide

LM3526 Dual Port USB Power Switch and Over-Current Protection

XGATE Library: Using the Freescale XGATE Software Library Steve McAslan MCD Applications, East Kilbride

Zilog Real-Time Kernel

SPECIFICATIONS SUBJECT TO CHANGE WITHOUT NOTICE

LM4934 I2C/SPI Interface Software Manual v1.0

AT91 ARM Thumb Microcontrollers. Application Note. AT91 Host Flash Loader. 1. Package Contents. 2. Definition of Terms. 3.

Transcription:

Embedded Simply Blue Application Note 1.0 Introduction SB_Custom has been created to give an embedded example of a Simply Blue device (LMX9820A, LMX9830 or LMX9838 based) communicating with a 16 bits microprocessor chip. Note that those files are not complete and can not be compiled and tested as is. The purpose of it is to give some 2.0 SB_Custom files overview SB_Custom contains the following files with their respective description: sbappli_custom.c: This file is the top level file of the project and contains the basic framework to create an embedded application using ucos-ii as Operating System. All high level initializations such as UART communication, host hardware initialization and module initialization have to be done in this file. National Semiconductor Application Note 1711 Sebastien Mathieu September 2007 guidelines for an embedded world and simplify the development process. In this document, the term Host refers to the 16 bits microprocessor platform which role is to initialize and manage the communication with the National Bluetooth module (LMX9820A, LMX9830 or LMX9838 based). The term Bluetooth module or module refers to the National Bluetooth module (LMX9820A, LMX9830 or LMX9838 based). A listing and definition of every command opcode of the SimplyBlue command interface is done in this file. The Simply- Blue command interface allows sending and receiving commands from/to the module in order to easier the communication with the module. Please refer to the Software User s Guide to get more information. sb_custom.c: This file implements the command interface on the host. Construction of a command, sending of a command to the module, command parser and wrapper are all included in this file. Embedded Simply Blue Application Note sbopcodes_custom.h: sb_custom.h: This header file contains the definition and important information for the sb_custom.c file. 3.0 SimplyBlue Command construction 3.1 UART PROTOCOL PRINCIPLES The Bluetooth module can be controlled by simple commands on the UART interface. The host should send those commands using the UART interface to set up the Bluetooth module. The commands have to be sent within a special package format. The following sections describe the format of the command set packages. 3.1.1 Framing The connection is considered Error free. But for packet recognition and synchronization, some framing is used. All packets sent in both directions are constructed after the following model: Start delimiter Packet Type identification Op code Table 1. Data length Package Framing 3.1.2 Start delimiter The start delimiter indicates the Bluetooth module the beginning of a new package. The STX char is used as start delimiter. STX = 0x02 Checksum End delimiter Packet Data 1 byte 1 byte 1 byte 2 bytes 1 byte <Data length> bytes 1 byte --------------- Checksum ---------------- 3.1.3 Packet type identification This byte identifies the type of packet. The following types are valid: 2007 National Semiconductor Corporation www.national.com

AN-1711 Table 2. Packet Type Identification Code Packet Type Description 0x52 'R' 0x43 'C' 0x69 'i' 0x72 'r' Request (REQ) Confirm (CFM) Indication (IND) Response (RES) A request sent to the Bluetooth module. All request are answered by exactly one confirm. The Bluetooth modules confirm to a request. All request are answered by exactly one confirm. Information sent from the Bluetooth module, that is not a direct confirm to a request. An optional response to an indication. This is used to respond to some type of indication messaged. All other values are reserved. 3.1.4 Opcode The opcode is a command specifier. Each command is represented by a one byte identifier. The complete list of command opcode can be found in Annex Command Opcode. 3.1.5 Data length Number of bytes in the Packet data area. The maximum size is 333 bytes. 3.1.6 Packet data The data fields hold binary data; hence both 0x02 (=STX) and 0x03 (=ETX) are allowed as data. 3.1.7 Checksum This is a simple Block Check Character (BCC) checksum of the bytes from Packet type to, and including, data length. The BCC checksum is calculated as the low byte of the sum of all bytes. E.g. if the sum of all bytes are 0x3724, the checksum is 0x24. 3.1.8 End delimiter The ETX char is used as end delimiter. ETX = 0x03 3.1.11 Byte Order The byte order of the protocol is Little Endian, if nothing else is specified. 3.1.9 Retransmission The connection is considered Error free, hence no need for implementing time-outs and retransmissions. 3.1.10 Flow control A transparent data-mode is supported for RFCOMM communication. When using this transparent mode, full hardware handshake is needed. When not in transparent mode, the protocol principle of REQ-CFM, limits the need of buffer capacity. As IND's can come out of REQ-CFM sequence, and is unconfirmed, the user device has to be able to read these data fast enough / have enough buffer capacity. www.national.com 2

4.0 Command Wrapper The Command Wrapper mechanism is packing the command bytes together and sending the command through UART to the module. One part of the Wrapping is done in the function specific to the command and the other part is done in the function SbSendCommand. Once the command is ready to be sent, the function will send it over UART interface to the module and wait for a status OK. This is done through the message box OSMboxPend(SbDevInfo.SbCmdMbox, BTCORE_CALLBACK_TIMEOUT, &err). This message box will block the function SbSendCommand until the status is received from the receiving function. AN-1711 The Command Wrapper function SbSendCommand is taking the command pointer and the command size as input parameters. This function fills out: Start delimiter Packet type identification Checksum End delimiter The rest of the command (Opcode, Data Length and Packet Data) should be filled previously in the specific command function calling this wrapper. For example, the user wants to send the reset command to the module. The function SbResetDevice will first create and allocate the command buffer in the memory, and fill: Opcode Data Length Packet Data For reference, see the following example code. 3 www.national.com

AN-1711 SBStatus_T SbResetDevice(void) { uint16 payloadlen; uint8 SbCommand[7]; payloadlen = 0x0000; SbCommand[2] = RESET; SbCommand[3] = (payloadlen & 0x00FF); // payload size is stored SbCommand[4] = (payloadlen >> 8); // in little endian fashion return SbSendCommand(SbCommand, 7 + payloadlen); SBStatus_T SbSendCommand(uint8* SbCommand, uint16 Size) { uint8 err; void *msg; uint16 checksum; SbCommand[0] = STX; SbCommand[1] = REQ; checksum = SbCommand[1] + SbCommand[2] + SbCommand[3] + SbCommand[4]; SbCommand[5] = checksum % 256; SbCommand[Size - 1] = ETX; if (usart_tx(sb_uart_port, SbCommand, Size) == Size) { msg = OSMboxPend(SbDevInfo.SbCmdMbox, BTCORE_CALLBACK_TIMEOUT, &err); if (err == OS_NO_ERR) { if ((uint32)msg == SBSTATUS_OK) { return SBSTATUS_OK; else { return SBSTATUS_ERROR; else { return SBSTATUS_TIMEOUT; else { return SBSTATUS_UART_INCOMPLETE_TRANSFER; www.national.com 4

5.0 Command Parser The Command Parser is in charge of analyzing an incoming frame to determine which command and information have been received from the module, and what is the action to take. This Embedded Simplyblue application is based on multitasking programming, using ucos RTOS core. In this application is running two tasks in parallel. The first one is dealing with the actions to take, and mainly sending commands to the modules and the second one is receiving and analyzing the incoming frames. In the code the function receiving the frames to be analyzed is called SbTimerTask. As soon as the host receives a Byte on the UART port, this function will check if the command received is valid, and this byte per byte. If one byte is not expected, it will return an invalid result and proceed another frame. Once the command has been completely received, this function will call the SbProcessFrame function which is the real Command Parser. If the message coming from the module is a confirmation to a command previously sent, the status will be given back through the message box OSMboxPost(SbDevInfo.SbCmdMbox, (void*)status); AN-1711 5 www.national.com

AN-1711 See the following source code: void SbProcessFrame(void) { int i; uint16 ServiceResponseStart=0; uint32 status; switch (SbEvent.bOpcode) { case GAP_DEVICE_FOUND: case SPP_LINK_ESTABLISHED: case SPP_INCOMING_LINK_ESTABLISHED: case SPP_LINK_RELEASED: case GAP_ESTABLISH_SCO_LINK: case GAP_RELEASE_SCO_LINK: case SPP_SEND_DATA: case SPP_INCOMING_DATA: case SDAP_SERVICE_BROWSE: case SDAP_SERVICE_REQUEST: case MODULE_READY: if ( COMMON_MboxWaitingTasks( SbDevInfo.SbCmdMbox )!= 0 ) { OSMboxPost(SbDevInfo.SbCmdMbox, (void*)1); /* At this point, the Simply Blue device is reset and ready to work */ return; default: break; if (SbEvent.bType == CFM) { //signal that sb command is completed status = ((!SbEvent.pPayload[0])? SBSTATUS_OK : SbEvent.pPayload[0]); OSMboxPost(SbDevInfo.SbCmdMbox, (void*)status); www.national.com 6

6.0 Tansparent mode Simplyblue devices have this in-built specificity called the command interpreter which allows the user to send predefined commands to the module. In case the user wants to use the device as a true cable replacement, the module will have to be switched to the so called transparent mode. Once in transparent mode, the module will not interpret the commands anymore and will just forward any bytes received as is, as a pure cable. To get more information about the transparent mode, please refer to National Semiconductor: LMX9820A or LMX9830 or LMX9838 Software User s Guide. An example of a function setting the module into transparent mode is detailed below. The function gets the local port number corresponding to the link to be switched to transparent mode. If the command has been successful, the transparent flag will be set to give the information that the transparent mode is now active, and the function will return the status OK If the command was not successful the function will return the status ERROR. AN-1711 SBStatus_T SbEnterTransparentMode(uint8 LocalPortNo) { int16 payloadlen; uint8 SbCommand[8]; uint8 err; void *msg; payloadlen = 0x0001; SbCommand[2] = SPP_TRANSPARENT_MODE; SbCommand[3] = (payloadlen & 0x00FF); // payload size is stored SbCommand[4] = (payloadlen >> 8); // in little endian fashion SbCommand[6] = LocalPortNo; if (SbSendCommand(SbCommand, 7 + payloadlen) == SBSTATUS_OK) { Transparent_flag = TRUE; // transparent mode is now active return SBSTATUS_OK; return SBSTATUS_ERROR; 7 www.national.com

AN-1711 7.0 UART Break Once the Bluetooth module is in transparent mode, the only way to go back to command mode and get control access over the module, is to send a UART Break. As defined in the UART specification, a UART Break is a contiguous transmission of 0 (space) for a certain length of time. The CCITT blue book specification states that the time duration for this is larger than 2M+3 bit time (where M is the character length). After the break sequence, another 2M+3 bit time consisting of the contiguous transmission of 1 (mark) is required to start the next character. Figure 1. Figure 1 shows the difference between the signal of a normal 0 and the BREAK signal. The left picture shows the signalling of 3 Zeros at 115.2kbit/s. Each character is started and ended with a start bit and a Stop bit. The normal length of 1 byte is therefore about 86.8μs (1startbit + 8bit data + 1stopbit). The picture on the right shows a BREAK signalled by the Bluetooth module after a released link. The signal is held low for over 4 ms. Theoretical minimum value for a BREAK at this speed would be about 165μS. Difference between a Standard 0 transmission and BREAK signal An example of how could be implemented this UART Break functionality in embedded environement, is detailed below. The function protects the execution core from an eventual OS interrupt. The transmit line TX of the UART is pulled down for about 10 ms to cover the worst case. Of course this time could be computed depending on the UART baudrate to get a more accurate time. Then the transmit line TX of the UART is raised again to finish the UART Break. void SbSendUartBreak(void) { uint32 ticks,new_tick=0; usart_t* usart = usart_tab[sb_uart_port]; OS_ENTER_CRITICAL(); UMDSL1 = UBRK; // asserts TX line to 0 ticks = OSTimeGet(); while(ostimeget() < (ticks+1)); // wait for 10 ms (1 tick) UMDSL1 &= (~UBRK); // asserts TX line to 1 Transparent_flag = FALSE; // command mode active OS_EXIT_CRITICAL(); www.national.com 8

9 www.national.com AN-1711 8.0 Annex 8.1 COMMAND OPCODE Table 3. Opcode Values Opcode Value GAP_INQUIRY 0x00 GAP_DEVICE_FOUND 0x01 GAP_REMOTE_DEVICE_NAME 0x02 GAP_READ_LOCAL_NAME 0x03 GAP_WRITE_LOCAL_NAME 0x04 GAP_READ_LOCAL_BDA 0x05 GAP_SET_SCANMODE 0x06 GAP_GET_FIXED_PIN 0x16 GAP_SET_FIXED_PIN 0x17 GAP_GET_PIN 0x75 GAP_GET_SECURITY_MODE 0x18 GAP_SET_SECURITY_MODE 0x19 GAP_REMOVE_PAIRING 0x1B GAP_LIST_PAIRED_DEVICES 0x1C GAP_ENTER_SNIFF_MODE 0x21 GAP_EXIT_SNIFF_MODE 0x37 GAP_ENTER_PARK_MODE 0x38 GAP_EXIT_PARK_MODE 0x39 GAP_ENTER_HOLD_MODE 0x3A GAP_SET_LINK_POLICY 0x3B GAP_GET_LINK_POLICY 0x3C GAP_POWER_SAVE_MODE_CHANGED 0x3D GAP_ACL_ESTABLISHED 0x50 GAP_ACL_TERMINATED 0x51 GAP_SET_AUDIO_CONFIG 0x59 GAP_GET_AUDIO_CONFIG 0x5A GAP_ESTABLISH_SCO_LINK 0x5D GAP_RELEASE_SCO_LINK 0x5E GAP_MUTE_MIC 0x5F GAP_SET_VOLUME 0x60 GAP_GET_VOLUME 0x61 GAP_CHANGE_SCO_PACKET_TYPE 0x62 SPP_SET_PORT_CONFIG 0x07 SPP_GET_PORT_CONFIG 0x08 SPP_PORT_CONFIG_CHANGED 0x09

www.national.com 10 AN-1711 SPP_ESTABLISH_LINK 0x0A SPP_LINK_ESTABLISHED 0x0B SPP_INCOMMING_LINK_ESTABLISHED 0x0C SPP_RELEASE_LINK 0x0D SPP_LINK_RELEASED 0x0E SPP_SEND_DATA 0x0F SPP_INCOMING_DATA 0x10 SPP_TRANSPARENT_MODE 0x11 SPP_CONNECT_DEFAULT_CON 0x12 SPP_STORE_DEFAULT_CON 0x13 SPP_GET_LIST_DEFAULT_CON 0x14 SPP_DELETE_DEFAULT_CON 0x15 SPP_SET_LINK_TIMEOUT 0x57 SPP_GET_LINK_TIMEOUT 0x58 SPP_PORT_STATUS_CHANGED 0x3E SPP_GET_PORT_STATUS 0x40 SPP_PORT_SET_DTR 0x41 SPP_PORT_SET_RTS 0x42 SPP_PORT_BREAK 0x43 SPP_PORT_OVERRUN_ERROR 0x44 SPP_PORT_PARITY_ERROR 0x45 SPP_PORT_FRAMING_ERROR 0x46 SDAP_CONNECT 0x32 SDAP_DISCONNECT 0x33 SDAP_CONNECTION_LOST 0x34 SDAP_SERVICE_BROWSE 0x35 SDAP_SERVICE_SEARCH 0x36 SDAP_SERVICE_REQUEST 0x1E SDAP_ATTRIBUTE_REQUEST 0x3F CHANGE_LOCAL_BDADDRESS 0x27 CHANGE_NVS_UART_SPEED 0x23 CHANGE_UART_SETTINGS 0x48 SET_PORTS_TO_OPEN 0x22 GET_PORTS_TO_OPEN 0x1F RESTORE_FACTORY_SETTINGS 0x1A STORE_CLASS_OF_DEVICE 0x28 FORCE_MASTER_ROLE 0x1D Table 3. Opcode Values Opcode Value

11 www.national.com AN-1711 READ_OPERATION_MODE 0x49 WRITE_OPERATION_MODE 0x4A SET_DEFAULT_LINK_POLICY 0x4C GET_DEFAULT_LINK_POLICY 0x4D SET_EVENT_FILTER 0x4E GET_EVENT_FILTER 0x4F SET_DEFAULT_LINK_TIMEOUT 0x55 GET_DEFAULT_LINK_TIMEOUT 0x56 SET_DEFAULT_AUDIO_CONFIG 0x5B GET_DEFAULT_AUDIO_CONFIG 0x5C SET_DEFAULT_LINK_LATENCY 0x63 GET_DEFAULT_LINK_LATENCY 0x64 SET_CLOCK_FREQUENCY 0x67 GET_CLOCK_FREQUENCY 0x68 SET_PCM_SLAVE_CONFIG 0x74 ENABLE_SDP_RECORD 0x29 DELETE_SDP_RECORDS 0x2A STORE_SDP_RECORD 0x31 RESET 0x26 Bluetooth module_ready 0x25 TEST_MODE 0x24 WRITE_ROM_PATCH 0x47 READ_RSSI 0x20 RF_TEST_MODE 0x4B DISABLE_TL 0x52 TL_ENABLED 0x53 HCI_COMMAND 0x65 AWAIT_INITIALIZATION_EVENT 0x66 ENTER_BLUETOOTH_MODE 0x66 SET_CLOCK_AND_BAUDRATE 0x69 SET_GPIO_WPU 0x6B GET_GPIO_STATE 0x6C SET_GPIO_DIRECTION 0x6D SET_GPIO_OUTPUT_HIGH 0x6E SET_GPIO_OUTPUT_LOW 0x6F READ_NVS 0x72 WRITE_NVS 0x73 Table 3. Opcode Values Opcode Value

AN-1711 9.0 Bibliography [1] National Semiconductor: LMX9820A or LMX9830 or LMX9838 Software User s Guide www.national.com 12

Embedded Simply Blue Application Note NOTES THE CONTENTS OF THIS DOCUMENT ARE PROVIDED IN CONNECTION WITH NATIONAL SEMICONDUCTOR CORPORATION ( NATIONAL ) PRODUCTS. NATIONAL MAKES NO REPRESENTATIONS OR WARRANTIES WITH RESPECT TO THE ACCURACY OR COMPLETENESS OF THE CONTENTS OF THIS PUBLICATION AND RESERVES THE RIGHT TO MAKE CHANGES TO SPEC- IFICATIONS AND PRODUCT DESCRIPTIONS AT ANY TIME WITHOUT NOTICE. NO LICENSE, WHETHER EXPRESS, IMPLIED, ARISING BY ESTOPPEL OR OTHERWISE, TO ANY INTELLECTUAL PROPERTY RIGHTS IS GRANTED BY THIS DOCUMENT. TESTING AND OTHER QUALITY CONTROLS ARE USED TO THE EXTENT NATIONAL DEEMS NECESSARY TO SUPPORT NA- TIONAL S PRODUCT WARRANTY. EXCEPT WHERE MANDATED BY GOVERNMENT REQUIREMENTS, TESTING OF ALL PARAM- ETERS OF EACH PRODUCT IS NOT NECESSARILY PERFORMED. NATIONAL ASSUMES NO LIABILITY FOR APPLICATIONS ASSISTANCE OR BUYER PRODUCT DESIGN. BUYERS ARE RESPONSIBLE FOR THEIR PRODUCTS AND APPLICATIONS USING NATIONAL COMPONENTS. PRIOR TO USING OR DISTRIBUTING ANY PRODUCTS THAT INCLUDE NATIONAL COMPONENTS, BUYERS SHOULD PROVIDE ADEQUATE DESIGN, TESTING AND OPERATING SAFEGUARDS. EXCEPT AS PROVIDED IN NATIONAL S TERMS AND CONDITIONS OF SALE FOR SUCH PRODUCTS, NATIONAL ASSUMES NO LIABILITY WHATSOEVER, AND NATIONAL DISCLAIMS ANY EXPRESS OR IMPLIED WARRANTY RELATING TO THE SALE AND/ OR USE OF NATIONAL PRODUCTS INCLUDING LIABILITY OR WARRANTIES RELATING TO FITNESS FOR A PARTICULAR PUR POSE, MERCHANTABILITY, OR INFRINGEMENT OF ANY PATENT, COPYRIGHT OR OTHER INTELLECTUAL PROPERTY RIGHT. LIFE SUPPORT POLICY NATIONAL S PRODUCTS ARE NOT AUTHORIZED FOR USE AS CRITICAL COMPONENTS IN LIFE SUPPORT DEVICES OR SYSTEMS WITHOUT THE EXPRESS WRITTEN APPROVAL OF THE PRESIDENT AND GENERAL COUNSEL OF NATIONAL SEMICONDUCTOR CORPORATION. As used herein: Life support devices or systems are devices which (a) are intended for surgical implant into the body, or (b) support or sustain life and whose failure to perform when properly used in accordance with instructions for use provided in the labeling can be reasonably expected to result in a significant injury to the user. A critical component is any component in a life support device or system whose failure to perform can be reasonably expected to cause the failure of the life support device or system or to affect its safety or effectiveness. National Semiconductor and the National Semiconductor logo are registered trademarks of National Semiconductor Corporation. All other brand or product names may be trademarks or registered trademarks of their respective holders. Copyright 2007 National Semiconductor Corporation For the most current product information visit us at www.national.com www.national.com National Semiconductor Americas Customer Support Center Email: new.feedback@nsc.com Tel: 1-800-272-9959 National Semiconductor Europe Customer Support Center Fax: +49 (0) 180-530-85-86 Email: europe.support@nsc.com Deutsch Tel: +49 (0) 69 9508 6208 English Tel: +49 (0) 870 24 0 2171 Français Tel: +33 (0) 1 41 91 8790 National Semiconductor Asia Pacific Customer Support Center Email: ap.support@nsc.com National Semiconductor Japan Customer Support Center Fax: 81-3-5639-7507 Email: jpn.feedback@nsc.com Tel: 81-3-5639-7560