DMX512 Receiver Datasheet DMX512Rx V 1.0. Features and Overview

Similar documents
24-Bit Pseudo Random Sequence Generator Data Sheet

CY8C29/27/24/23/21xxx, CY8CLED02/04/08/16, CY8CLED0xD, CY8CLED0xG, CY8C28x45, CY8CPLC20, CY8CLED16P01, CY8C28xxx. Main UM

For one or more fully configured, functional example projects that use this user module go to

8 to 1 Analog Multiplexer Datasheet AMux8 V 1.1. Features and Overview

CY7C603xx CYWUSB

LPF (Optional) CY8C24x93. Without LPF and ISR to 3* With LPF only** to 3* With ISR only to 3*

Programmable Gain Amplifier Datasheet PGA V 3.2. Features and Overview

Supported Devices: CY8C28x13, CY8C28x33, CY8C28x43, CY8C28x45, CY8C28x52, CY8C21x45, CY8C22x45, CY8C24x93. CY8C24x

Preliminary. Gas Sensor Analog Front End Datasheet GasSensorAFE V Features and Overview. This datasheet contains Preliminary information.

32-Bit Counter Datasheet Counter32 V 2.5. Features and Overview

CapSense I 2 C/SPI Timer Flash RAM

Shadow Registers Datasheet ShadowRegs V 1.1. Features and Overview

4 to 1 Analog Multiplexer Data Sheet

This optional pin is present if the Mode parameter is set to SyncMode or PulseMode. Otherwise, the clock input does not show.

Use the Status Register when the firmware needs to query the state of internal digital signals.

Programmable Threshold Comparator Data Sheet

This optional pin is present if the Mode parameter is set to SyncMode or PulseMode. Otherwise, the clock input does not show.

16-Bit Hardware Density Modulated PWM Data Sheet

Use the Status Register when the firmware needs to query the state of internal digital signals.

Incremental ADC Data Sheet

PSoC Blocks. CY8C20xx6/6A/6AS/6H/6L, CY8C20xx7/7S, CY7C643xx, CY7C604xx, CYONS2xxx, CYONSxNxxxx, CYRF89x35, CY8C20065, CY8C24x93, CY7C69xxx

Writing to Internal Flash in PSoC 3 and PSoC 5

Filter_ADC_VDAC_poll Example Project Features. General Description. Development Kit Configuration

For one or more fully configured, functional example projects that use this user module go to

For one or more fully configured, functional example projects that use this user module go to

Supported devices: CY8C29x66, CY8C27x43, CY8C28xxx, CY8C24x23, CY8C24x33, CY8C21x23, CY8C21x34, CY8C21x45, CY8C22x45, CY8C24x94

Voltage Reference (Vref) Features. General Description. Input/Output Connections. When to Use a Vref Voltage references and supplies

PSoC 4 Low Power Comparator (LPComp) Features. General Description. When to Use a LPComp 2.0. Low input offset. User controlled offset calibration

Reviving Bit-slice Technology in a Programmable Fashion

Comparator (Comp) Features. General Description. When to use a Comparator 1.60

CE PSoC 4: Time-Stamped ADC Data Transfer Using DMA

PSoC 1 I 2 C Bootloader

Cypress HX2VL Configuration Utility Blaster User Guide

HX2VL Development Kit Guide. Doc. # Rev. **

HX2VL Development Kit Guide. Doc. # Rev. *A

Libraries Guide. Arithmetic Libraries User Guide. Document #: Rev. *A

CE56273 Associated Part Families: CY8C38xx/CY8C55xx Software: PSoC Creator Related Hardware: CY8CKIT-001 Author: Anu M D

Use the IDAC8 when a fixed or programmable current source is required in an application.

The color of the Clock component waveform symbol will change based on the clock's domain (as shown in the DWR Clock Editor), as follows:

THIS SPEC IS OBSOLETE

GPIF II Designer - Quick Start Guide

Cypress HX2VL Configuration Utility Blaster User Guide

6 to 14-Bit Delta Sigma ADC DatasheetDelSigMultiV 1.30

PSoC Creator Component Datasheet

This Application Note demonstrates an SPI-LIN slave bridge using a PSoC device. Demonstration projects are included.

CE58957 demonstrates how to implement the fade and toggle feature to the backlight LEDs of CapSense buttons.

AN SIO Tips and Tricks in PSoC 3 / PSoC 5. Application Note Abstract. Introduction

THIS SPEC IS OBSOLETE

EZ I 2 C Slave. Features. General Description. When to use a EZ I 2 C Slave 1.50

FTG Programming Kit CY3670. Spec. # Rev. *C

The following table lists user modules used in this code example and the hardware resources occupied by each user module.

Bootloader project - project with Bootloader and Communication components

CYClockMaker Programming Kit Guide CY3675. Doc. # Rev. **

1st Order Modulator nd Order Modulator

Next-Generation Hot-Swap Controllers

This optional pin is present if the Mode parameter is set to SyncMode or PulseMode. Otherwise, the clock input does not show.

CY3660-enCoRe V and encore V LV DVK Kit Guide

CYClockMaker Programming Kit Guide CY3675. Doc. # Rev. *C

PSoC Designer Release Notes

AN EZ-USB FX3 I 2 C Boot Option. Application Note Abstract. Introduction. FX3 Boot Options

1st Order Modulator nd Order Modulator

Supports one or two address decoding with independent memory buffers. Memory buffers provide configurable Read/Write and Read Only regions

This section describes the various input and output connections for the Voltage Fault Detector.

Clock Programming Kit

Comparator Datasheet CMP V 1.1. Features and Overview

PSoC Programmer 3.12 Release Notes

FM3 MB9B100A/300A/400A/500A Series Inverter Solution GUI User Guide

Use the Status Register when the firmware needs to query the state of internal digital signals.

THIS SPEC IS OBSOLETE

Triple Input 8-Bit Incremental ADC Datasheet TriADC8 V Features and Overview. See AN2239, ADC Selection Guide for other converters.

Digital Logic Gates. Features. General Description. Input/Output Connections. When to Use a Logic Gate. Input 1. Input 2. Inputs 3-8 * 1.

CY8C29/27/24xxx, CY8CLED04/08/16, CY8CLED0xD, CY8CLED0xG, CY8C28x45, CY8CPLC20, CY8CLED16P01, CY8C28x43, CY8C28x52

This section describes the various input and output connections for the Voltage Fault Detector.

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

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

This input determines the next value of the output. The output does not change until the next rising edge of the clock.

12-Mbit (512 K 24) Static RAM

144-Mbit QDR -II SRAM 2-Word Burst Architecture

Automatic reload of the period to the count register on terminal count

EZ-USB FX3 Development Kit Guide

Programmer User Guide

Optional Pause Pulse for constant frame length of 282 clock ticks

Voltage Fault Detector (VFD) Features. General Description. Input/Output Connections. When to Use a VFD. Clock Input 2.30

Use the Status Register when the firmware needs to query the state of internal digital signals.

Supports a range of speeds of external memories (from 5 to 200 ns) Supports external memory power-down, sleep, and wakeup modes

AN1090. NoBL : The Fast SRAM Architecture. Introduction. NoBL SRAM Description. Abstract. NoBL SRAM Operation

PSoC 4 Current Digital to Analog Converter (IDAC)

The AMuxSeq is capable of having between 2 and 32 analog inputs. The paired inputs are present when the MuxType parameter is set to "Differential.

Digital Multiplexer and Demultiplexer. Features. General Description. Input/Output Connections. When to Use a Multiplexer. Multiplexer 1.

4K x 8 Dual-Port Static RAM and 4K x 8 Dual-Port SRAM with Semaphores

Capable of adjusting detection timings for start bit and data bit

7- to 13-Bit Variable Resolution Incremental ADC Datasheet ADCINCVR V 4.00

This section describes the various input and output connections for the SysInt Component.

PSoC 6 Current Digital to Analog Converter (IDAC7)

Use a DieTemp component when you want to measure the die temperature of a device.

Comparator (Comp) Features. General Description. When to use a Comparator Low input offset. User controlled offset calibration

Setting Oscillation Stabilization Wait Time of the main clock (CLKMO) and sub clock (CLKSO)

H O S T. FX2 SX2 Back - to - Back Setup. Project Objective. Overview

PSoC 4 Voltage Comparator (Comp) Features. General Description. When to Use Comparator Low input offset. User controlled offset calibration

Analog Multiplexer (AMux) Features. General Description. Input/Output Connections. When to Use an AMux Single or differential connections

Transcription:

Datasheet DMX512Rx V 1.0 001-14404 Rev. *G DMX512 Receiver Copyright 2007-2014 Cypress Semiconductor Corporation. All Rights Reserved. Resources PSoC Blocks API Memory (Bytes) Digital Analog CT Analog SC Flash RAM Pins (per External I/O) CY8CLED02/04/08/16, CY8CLED0xD, CY8CLED0xG, CY8CLED16P01, CY8C29x66, CY8C27x43, CY8C24x94, CY8C21x23 2 0 0 242 11 1 Features and Overview 250 kbps DMX512 protocol receiver Selectable address Selectable captured slots count Interrupt on byte received Interrupt on start-of-frame The DMX512Rx User Module is used to receive data via the DMX512 bus and store it in RAM, similar to the EzI2Cs User Module. The user module is composed of two digital blocks. Figure 1. DMX512Rx Block Diagram Cypress Semiconductor Corporation 198 Champion Court San Jose, CA 95134-1709 408-943-2600 Document Number: 001-14404 Rev. *G Revised July 24, 2014

Functional Description The DMX512 data stream is passed in the form of a packet that is repeated continually. This data packet consists of the synchro preamble which informs the receiver of the start of a packet. The preamble is followed by a serial data frame. The data frame contains the values for each channel in use. The minimum channel count is 24. The maximum is 512. The duration of every bit for DMX512 protocol is 4 µs. If the information is given over all 512 channels, then the maximum possible frequency of information update is 44 Hz. Figure 2. DMX512 Data Packet Reference Description Duration 1 Space for break (reset) min 88 µs 2 Mark after break (MAB) 8 µs - 1s 3 Slot time 44 µs 4 Mark time between slots 0 µs -1s 5 Start bit 4 µs 6 Least significant data bit 4 µs 7 Most significant data bit 4 µs 8 Stop bit 4 µs 9 Mark before break (MBB) 0 µs -1s The DMX512Rx User Module employs two digital PSoC blocks: One RX block for the data receiver One Pulse Width Discriminator (PWD) for detecting the break signal The configuration of the underlying connective hardware, the digital PSoC blocks, coordinates the operation of the PSoC blocks as a single DMX512Rx User Module. The RX and PWD operate independently. Each have their own registers and interrupts. They share the same enable and input. Setting the enable bit in the RX and PWD control registers enables the DMX512Rx User Module for operation. Use the provided API functions to enable and disable the user module. The DMX512Rx User Module uses different clocks for RX and PWD components. The clock frequency for the RX must be exactly 2 MHz to meet 4 µs data bits requirement. The clock frequency for the PWD must be between 135 khz and 166 khz so the PWD block can catch the space for break. Document Number: 001-14404 Rev. *G Page 2 of 13

The RX block uses the UART RX function of the communication digital block with no parity settings. The PWD block uses CRCPRS function of the digital block with the polynomial register equal to zero and the compare register set to 255. The DMX512Rx User Module provides one interrupt each time space for break is detected and one interrupt for each byte received by the RX block. When data is sent with the mark time between slots set to zero, the interrupt occurrence frequency is equal to 44 µs. If the CPU clock is set to 24 MHz, the time required to execute the interrupt service routine (ISR) for bytes that are included into the active slot is 5.7 µs. For this reason, a CPU clock of 12 MHz is recommended. In no case should the CPU clock be set less than 6 MHz. DC and AC Electrical Characteristics Table 1. DMX512Rx AC Electrical Characteristics Parameter Typical Limit Units Conditions and Notes RX input frequency -- 2 MHz PWD input frequency -- 135...166 khz Allowed CPU clock range -- 6...24 MHz Placement The RX block of the user module may be placed in any digital communication block and the PWD block of the user module may be placed in any digital block, but both blocks should be placed in the same digital row. The same input source is used for both RX and PWD components. Parameters and Resources RX Clock Clock source for the RX block. Choose any one of the available sources. The Global I/O buses may be used to connect the clock input to an external pin or a clock function generated by a different PSoC block. When using an external digital clock for the block, the row input synchronization should be turned off for best accuracy, and sleep operation. One of the divided clocks (VC1, VC2, or VC3), or another PSoC block output can be specified as the clock input. The clock for RX block must be equal to 2 MHz for correct user module operations. PWD Clock Clock source for the PWD block. Choose any one of the available sources. The Global I/O buses may be used to connect the clock input to an external pin or a clock function generated by a different PSoC block. When using an external digital clock for the block, the row input synchronization should be turned off for best accuracy, and sleep operation. One of the divided clocks (VC1, VC2, or VC3), or another PSoC block output can be specified as the clock input. The clock for PWD block should be set in the range of 135 to 166 khz for correct user module operations. Input The input can be connected to a low, a high, the analog comparator output bus, or one of the global buses. Using the global bus, the input can be connected to one of the external pins. Document Number: 001-14404 Rev. *G Page 3 of 13

InvertInput StartSlotID This parameter gives you the ability to invert the InputDataStream. The StartSlotID parameter contains a value ranging from 1 to 512. This parameter defines first slot ID that will be captured. ClockSync In the PSoC devices, digital blocks may provide clock sources in addition to the system clocks. Digital clock sources may even be chained in ripple fashion. This introduces skew with respect to the system clocks. This parameter may be used to control clock skew and ensure proper operation when reading and writing PSoC block register values. Appropriate values for this parameter should be determined from the following table. ClockSync Value Sync to SysClk Use Use this setting for any 24 MHz (SysClk) derived clock source that is divided by two or more. Examples include VC1, VC2, VC3 (when VC3 is driven by SysClk), 32KHz, and digital PSoC blocks with SysClk-based sources. Externally generated clock sources should also use this value to ensure that proper synchronization occurs. Sync to SysClk*2 Use this setting for any 48 MHz (SysClk*2) based clock unless the resulting frequency is 48 MHz (in other words, when the product of all divisors is 1). Unsynchronized Use when unsynchronized inputs are desired. Application Programming Interface The Application Programming Interface (API) routines are provided as part of the user module to allow the designer to deal with the module at a higher level. This section specifies the interface to each function together with related constants provided by the include files. Note In this, as in all user module APIs, the values of the A and X register may be altered by calling an API function. It is the responsibility of the calling function to preserve the values of A and X prior to the call if those values are required after the call. This registers are volatile? policy was selected for efficiency reasons and has been in force since version 1.0 of PSoC Designer. The C compiler automatically takes care of this requirement. Assembly language programmers must ensure their code observes the policy, too. Though some user module API function may leave A and X unchanged, there is no guarantee they will do so in the future. For Large Memory Model devices, it is also the caller's responsibility to preserve any value in the CUR_PP, IDX_PP, MVR_PP, and MVW_PP registers. Even though some of these registers may not be modified now, there is no guarantee that will remain the case in future releases. There are nine functions in this API: DMX512Rx_Start DMX512Rx_Stop DMX512Rx_SetStartSlotID DMX512Rx_SetRamBuffer DMX512Rx_bGetBusActivity Document Number: 001-14404 Rev. *G Page 4 of 13

DMX512Rx_bGetSlotActivity DMX512Rx_bGetStartCode DMX512Rx_EnableInt DMX512Rx_DisableInt DMX512Rx_Start Enables the DMX512Rx User Module for operation. void DMX512Rx_Start(void) lcall DMX512Rx_Start DMX512Rx_Stop Disables the DMX512Rx User Module. void DMX512Rx_Stop(void) lcall DMX512Rx_Stop Document Number: 001-14404 Rev. *G Page 5 of 13

DMX512Rx_SetStartSlotID Redefines first slot ID that will be captured. Call this function only after the DMX512Rx_Start() function, because the Start function sets the first slot ID to the value entered in the Device Editor parameters. This function is optional and only needed if you change the first slot ID from the value set in the device editor. New StartSlotID value will be applied as soon as Space For Break symbol is detected in input bitstream. This guarantees that User Buffer will remain in consistent state even when Start- SlotID is altered during data reception. void DMX512Rx_SetStartSlotID(WORD wstartslotid) mov A, <[wstartslotid + 1] mov X, >[wstartslotid + 0] lcall DMX512Rx_SetStartSlotID wstartslotid: A value from 1 to 512. The parameter value is passed in the A and X registers. DMX512Rx_SetRamBuffer This function sets the location and size of the RAM buffer (up to 256 bytes) that is used by DMX512 slots. This function is required and must be called before calling DMX512Rx_Start(). This function can also be called at any time after calling DMX512Rx_Start() but if it is called during data reception current receive operation will be immediatelly aborted to prevent memory corruption. Previous user buffer will possibly remain in inconsistent state with partially received packet. Reception will be resumed as soon as Space For Break symbol is detected in input bitstream. void DMX512Rx_SetRamBuffer(BYTE bsize, (BYTE *)paddr) mov A, >paddr push A mov A, <paddr push A mov A, [bsize] push A lcall DMX512Rx_SetRamBufer add SP,-3 Document Number: 001-14404 Rev. *G Page 6 of 13

bsize: Size of the data structure available to DMX512 slots. paddr: A pointer to the data array DMX512Rx_bGetBusActivity This function returns a nonzero value if a DMX512 bus activity occurred since last time this function was called. The activity flag is reset to zero before the function returns. BYTE DMX512Rx_bGetBusActivity() lcall DMX512Rx_bGetBusActivity mov [bactivityflag],a This function returns zero value if no DMX512 bus activity is detected since the last time the function has been called. Otherwise it returns one of the following values : DMX512Rx_bGetSlotActivity Return Value HEX Value Meaning DMX512Rx_SFB_RECEIVED 0x01 Space For Break sequence was detected in input bitstream. DMX512Rx_SC_RECEIVED 0x02 StartCode was received. Use DMX512Rx_bGetStartCode function to retrive Start Code value. This function returns a non-zero value if a read of last required DMX512 slot occurred since last time this function was called. The activity flag resets to zero at the end of this function call. Document Number: 001-14404 Rev. *G Page 7 of 13

BYTE DMX512Rx_bGetSlotActivity() lcall DMX512Rx_bGetSlotActivity mov [bactivityflag],a Returns a nonzero value if a read of the last required DMX512 slot has occurred. Returns zero otherwise. DMX512Rx_bGetStartCode This function returns Start Code value retrieved from recently received DMX512 packet. Start Code is a data byte that precedes the DMX512 slots and tells the receiver what kind of data will follow. Return value is valid only when at least one Start Code has been received. Use DMX512Rx_bGetBusActivity function to detect reception of Start Code. BYTE DMX512Rx_bGetStartCode() lcall DMX512Rx_bGetStartCode mov [bstartcode],a BYTE bstartcode: Start Code retived from recently received DMX512 packet. DMX512Rx_EnableInt Enables the interrupts for the DMX512Rx RX and PWD blocks. void DMX512Rx_EnableInt(void) Document Number: 001-14404 Rev. *G Page 8 of 13

lcall DMX512Rx_EnabeInt DMX512Rx_DisableInt Disables the interrupts for the DMX512Rx RX and PWD blocks. void DMX512Rx_DisableInt(void) lcall SSDM_DisableInt Sample Firmware Source Code In the following examples, the correspondence between the C and assembly code is simple and direct. The following is assembly language source that illustrates the use of the APIs. include "PSoCAPI.inc" ; PSoC API definitions for all user modules area bss DMX_RAM_BUF_SIZE: equ 8 DMX_RAM_BUF: blk DMX_RAM_BUF_SIZE export _main area text _main: ;;... Document Number: 001-14404 Rev. *G Page 9 of 13

M8c_EnableGInt mov A, >DMX_RAM_BUF push A mov A, <DMX_RAM_BUF push A mov A, DMX_RAM_BUF_SIZE push A call DMX512Rx_SetRamBuffer add SP, -3 call DMX512Rx_Start call DMX512Rx_EnableInt mov X, 0 mov A, 5 call DMX512Rx_SetStartSlotID ;Enable global interrupts ;Save MSB of RAM buffer address ;Save LSB of RAM buffer address ;Save RW size parameter ;Set buffer ;Reset Stack ;Turn on DMX512Rx user module ;Enable DMX512Rx interrupts ;Redefine StartSlotID.MainLoop: call DMX512Rx_bGetSlotActivity ;Waiting for data... cmp A, 0 jz.mainloop ;---------------------------- ; Now data is ready ; User code goes here ;---------------------------- jmp.mainloop The same code in C is as follows: #include "PSoCAPI.h" #define DMX_RAM_BUF_SIZE 8 BYTE DMX_RAM_BUF[DMX_RAM_BUF_SIZE]; //... // PSoC API definitions for all user modules void main(void){ M8C_EnableGInt; // Enable global interrupts DMX512Rx_SetRamBuffer(DMX_RAM_BUF_SIZE, &DMX_RAM_BUF[0]); //Set buffer DMX512Rx_Start(); // Turn on DMX512Rx User Module DMX512Rx_EnableInt(); // Enable DMX512Rx interrupts DMX512Rx_SetStartSlotID(5); // Redefine StartSlotID while(1){ while(!dmx512rx_bgetslotactivity()); // Wait for slot received //---------------------------- // Now data is ready // User code goes here //---------------------------- } } Document Number: 001-14404 Rev. *G Page 10 of 13

Configuration Registers The DMX512Rx uses two digital PSoC blocks named RX and PWD. Each block is personalized and parameterized through registers. The following tables shows the register values as constants and the parameters as named bit-fields with brief descriptions. Symbolic names for these registers are defined in the user module instance C and assembly language interface files (the.h and.inc files). Table 2. Block RX, Function Register, Bank 1 Value InvertInput BCEN 0 0 0 1 0 1 InvertInput allows to invert input data stream. This parameter is set in the Device Editor. BCEN gates the output onto the row broadcast bus line. This bit field is set in the Device Editor by directly configuring the broadcast line. Table 3. Block RX, Input Register, Bank 1 Value Input RXClock The user module Input parameter in the Device Editor determines the value of the RXInput. RXClock selects the clock to drive the receiver timing. Table 4. Block RX, Output Register, Bank 1 Value ClockSync 0 0 0 0 0 0 The user module ClockSync parameter in the Device Editor determines the value of the ClockSync. Table 5. Block RX, Shift Register (DR0), Bank 0 Value RX Shift Register RX Shift Register: When a start bit is detected on the input, the RX state machine hardware generates a divide-by-8 bit clock that shifts data into this register. Table 6. Block RX, Buffer Register (DR2), Bank 0 Value RX Buffer Register RX Buffer Register: Data is transferred from the RX Shift register after the stop bit has been sampled. Table 7. Block RX, Control Register (CR0), Bank 0 Value 0 Overrun Framing 0 0 0 0 Start/Stop Overrun is a flag that indicates that the RX Buffer register data is overwritten. Framing is a flag that indicates the stop bit was properly received. Start/Stop indicates that the DMX512Rx is enabled when set. It is modified using the DMX512RX API. Document Number: 001-14404 Rev. *G Page 11 of 13

Table 8. Block PWD, Function Register, Bank 1 Value InvertInput BCEN 1 0 0 0 1 0 InvertInput allows to invert input data stream. This parameter is set in the Device Editor. BCEN gates the output onto the row broadcast bus line. This bit field is set in the Device Editor by directly configuring the broadcast line. Table 9. Block PWD, Input Register, Bank 1 Value Input PWDClock The user module Input parameter in the Device Editor determines the value of the Input. PWDClock selects the clock to drive the receiver timing. Table 10. Block PWD, Output Register, Bank 1 Value ClockSync 0 0 0 0 0 0 The user module ClockSync parameter in the Device Editor determines the value of the ClockSync. Table 11. Block PWD, Shift Register (DR0), Bank 0 Value PWD Shift Register PWD Shift Register is the PWD Linear Feedback Shift register. Table 12. Block PWD, Polynomial Register (DR1), Bank 0 Value 0 0 0 0 0 0 0 0 Table 13. Block PWD, Compare Register (DR2), Bank 0 Value 1 1 1 1 1 1 1 1 Table 14. Block PWD, Control Register (CR0), Bank 0 Value 0 0 0 0 0 0 0 Start/Stop Start/Stop indicates that the DMX512Rx is enabled when set. It is modified using the DMX512RX API. Document Number: 001-14404 Rev. *G Page 12 of 13

Version History Version Originator Description 1.0 DHA Initial version Note PSoC Designer 5.1 introduces a Version History in all user module datasheets. This section documents high level descriptions of the differences between the current and previous user module versions. Document Number: 001-14404 Rev. *G Revised July 24, 2014 Page 13 of 13 Copyright 2007-2014 Cypress Semiconductor Corporation. The information contained herein is subject to change without notice. Cypress Semiconductor Corporation assumes no responsibility for the use of any circuitry other than circuitry embodied in a Cypress product. Nor does it convey or imply any license under patent or other rights. Cypress products are not warranted nor intended to be used for medical, life support, life saving, critical control or safety applications, unless pursuant to an express written agreement with Cypress. Furthermore, Cypress does not authorize its products for use as critical components in life-support systems where a malfunction or failure may reasonably be expected to result in significant injury to the user. The inclusion of Cypress products in life-support systems application implies that the manufacturer assumes all risk of such use and in doing so indemnifies Cypress against all charges. PSoC Designer and Programmable System-on-Chip are trademarks and PSoC is a registered trademark of Cypress Semiconductor Corp. All other trademarks or registered trademarks referenced herein are property of the respective corporations. Any Source Code (software and/or firmware) is owned by Cypress Semiconductor Corporation (Cypress) and is protected by and subject to worldwide patent protection (United States and foreign), United States copyright laws and international treaty provisions. Cypress hereby grants to licensee a personal, non-exclusive, non-transferable license to copy, use, modify, create derivative works of, and compile the Cypress Source Code and derivative works for the sole purpose of creating custom software and or firmware in support of licensee product to be used only in conjunction with a Cypress integrated circuit as specified in the applicable agreement. Any reproduction, modification, translation, compilation, or representation of this Source Code except as specified above is prohibited without the express written permission of Cypress. Disclaimer: CYPRESS MAKES NO WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, WITH REGARD TO THIS MATERIAL, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE. Cypress reserves the right to make changes without further notice to the materials described herein. Cypress does not assume any liability arising out of the application or use of any product or circuit described herein. Cypress does not authorize its products for use as critical components in life-support systems where a malfunction or failure may reasonably be expected to result in significant injury to the user. The inclusion of Cypress' product in a life-support systems application implies that the manufacturer assumes all risk of such use and in doing so indemnifies Cypress against all charges. Use may be limited by and subject to the applicable Cypress software license agreement.