1. Power Line Transceiver

Powerline Communication Data Sheet PLT Copyright © 2009 Cypress Semiconductor, All Rights Reserved.

PSoC® Blocks

API Memory (Bytes)

Digital

Analog CT

Analog SC

Flash

RAM

Pins (per External I/O)

FSK Modem Only

8

3

6

TBD

TBD

12

FSK Modem with Network

8

3

6

TBD

TBD

12

FSK Modem with Network and I2C Slave

8

3

6

TBD

TBD

12

Resources CY8CPLC20, CY8CLED16P01

Features and Overview • Choice between three implementations: • • •

FSK Modem only FSK Modem proprietary Powerline Communication Protocol FSK Modem proprietary Powerline Communication Protocol along with built-in communication to external microcontrollers via I2C

• • • • • • • • • • •

Bidirectional half-duplex communication Master and Slave and peer-to-peer network to Powerline nodes Multiple masters on Powerline network Each device has a built-in unique 64-bit address 8-bit logical addressing supports up to 256 Powerline nodes 16-bit extended logical addressing supports upto 65535 Powerline nodes Individual, broadcast, or group mode addressing Carrier Sense Multiple Access (CSMA) Full control over transmission parameters Built-in repeater functionality for sending packets over long distances Automatic Gain Control (AGC) The Powerline Communication (PLT) User Module provides a control interface within the PLC device for communicating between the application and the FSK Modem. The application may either be an application running on a PSoC device or an application running on a separate device and communicating with the PLT device via serial I2C communication link.

Cypress Semiconductor Corporation Document Number: 001-13103 Rev. **



198 Champion Court



San Jose, CA 95134-1709 • 408-943-2600 Revised March 26, 2009

PRELIMINARY

Power Line Transceiver

FSK Modem

PLC Device Custom Networking Protocol

Physical Layer FSK Modem

FSK Modem + Network Stack

PLC Device Physical Layer FSK Modem

Powerline Network Protocol

Custom Application

FSK Modem + Network Stack + I2C Bridge

PLC Device

PSoC Powerline Network Protocol

Custom Application

I2C Master

I2C

Powerline Bridge

Physical Layer FSK Modem

Custom Application

Figure 1. Block Diagram

Quick Start In the user module catalog, select the Power Line Comm -> PLT User Module and the required selection for your application.

For the FSK Modem Only 1. 2. 3. 4. 5.

In the Properties Window, select the required Baud rate from 2400, 1800, 1200 and 600 bps. If the internal TX band pass filter is required, enable it. Set the Noise Level Threshold to the required value for your application. Generate the application. Use the FSK Modem sample code from the Sample Code section of this data sheet to program the main.c source file.

For the FSK Modem with Network 1. 2. 3. 4. 5. 6. 7. 8.

In the Workspace Explorer, right click on the PLT user module and select the PLC Config Wizard. Set Transmit Enable to "Enable" Set Receive Enable to "Enable" Set Transmit Source Address Type to "Logical" Set Transmit Destination Address Type to "Logical" Set Transmit Service Type to "acknowledgment mode" Assign a value (1-255) for the Logical Address of the Node Generate the application.

Document Number: 001-13103 Rev. **

PRELIMINARY

Page 2 of 32

Power Line Transceiver

9. Use the FSK Modem with Network and I2C Slave sample code given in the Sample Code section of this data sheet to program the main.c source file.

For the FSK Modem with Network and I2C Slave 1. In the Properties Window, set the I2C slave address. The value should be between 1 and 127. 2. Generate the application. 3. Use the FSK Modem with Network and I2C Slave sample code given in the sample code section of this data sheet to program the main.c source file.

Functional Description The PLT User Module implements an FSK Modem and optionally a network protocol stack and I2C slave communication capability. The FSK Modem is implemented using the digital and analog resources available on the parts belonging to the PLC family. The optional Powerline Protocol used in this solution is a proprietary Protocol designed by Cypress. Communication over a Powerline between Powerline Devices is performed using a defined Protocol. The Protocol supports a flexible architecture allowing full control over transmission parameters (acknowledged vs. unacknowledged, and repeated transmit), addressing formats, and address types (single node, broadcast, or group). The Protocol provides robust error checking to detect data loss.

Powerline Transmitter The application residing on a host microcontroller generates messages to be transmitted on the Powerline. These messages are delivered to the PLC device over an I2C serial link. The Powerline Network Layer residing on the PLC device receives these I2C messages and generates a Powerline Transceiver (PLT) packet. These packets are modulated by the FSK Modem and coupled to the Powerline by the external coupling circuit.

Powerline Receiver Powerline signals are received by the coupling circuit and demodulated by the FSK Modem PHY. These PLT packets are decoded by the Powerline Network Protocol and then transferred to the external host microcontroller in an I2C format.

Detailed Description The PLC device consists of two main functional components:

• •

Powerline Modem PHY Powerline Network Protocol

Document Number: 001-13103 Rev. **

PRELIMINARY

Page 3 of 32

Power Line Transceiver

Powerline Communication Solution

Powerline FSK Modem PHY

PLC Device

I2C Packet

Powerline Network Protocol

Figure 2. The Physical Layer of a PLC Solution

Document Number: 001-13103 Rev. **

PRELIMINARY

Page 4 of 32

Power Line Transceiver

The physical layer of Cypress’s PLC solution is implemented using an FSK modem that enables half duplex communication on a Powerline. This modem supports raw data rates up to 2400 bps.

Network Protocol

Digital Receiver

Logic ‘1’ or Logic ‘0’

Local Oscillator

Hysteresis Comparator Low Pass Filter

Modulator

External Low Pass Filter

Square Wave at FSK Frequencies

Correlator

IF Band Pass Filter

TX Filter

TX Filter Bypass

Sine Wave at FSK Frequencies

Programmable Gain Amplifier

Local Oscillator

Mixer

Receiver

Transmitter

Powerline Modem PHY

Digital Transmitter

HF Band Pass Filter RX Amplifier

Automatic Gain Control

Coupling Circuit Figure 3. FSK Modem PHY Block Diagram

Transmitter Section Digital data from the network layer is serialized by the digital transmitter and fed as input to the modulator. The modulator divides the local oscillator frequency by a definite factor depending on whether the input data is high level logic ‘1’ or low level logic ‘0’. It then generates a sine wave at 133.3 kHz (Logic ‘0’) or 131.8 kHz (Logic ‘1’), which is fed to the Programmable Gain Amplifier to generate FSK modulated signals. The logic ‘1’ frequency can also be configured as 130.4 kHz for wider FSK bandwidth. The device also provides a provision to bypass the internal TX filter and output a square wave at the respective FSK frequencies.

Receiver Section The incoming FSK signal from the Powerline is input to a High Frequency (HF) Band Pass Filter that filters out-of-band frequency components and outputs filtered signal within the desired spectrum of 125 kHz to

Document Number: 001-13103 Rev. **

PRELIMINARY

Page 5 of 32

Power Line Transceiver

140 kHz for further demodulation. The Mixer block multiplies the filtered FSK signals with a locally generated signal to produce heterodyned frequencies. The Intermediate Frequency (IF) Band Pass Filters further remove out-of-band noise as required for further demodulation. This signal is fed to the correlator which produces a DC component (consisting of Logic ‘1’ and ‘0’) and a higher frequency component. The output of the correlator is fed to a Low Pass FIlter (LPF) that outputs only the demodulated digital data at 2400 baud and suppresses all other higher frequency components generated in the correlation process. The output of the LPF is digitized by the hysteresis comparator. This eliminates the effects of correlator delay and false logic triggers due to noise. The Digital Receiver deserializes this data and outputs to the Network Layer for interpretation. The receiver also implements Automatic Gain Control (AGC). This functionality allows the receiver to adjust its gain automatically depending on the signal strength of the input FSK signal.

Coupling Circuit Reference Design The coupling circuit couples low voltage signals from PLC device to the Powerline. The topology of this circuit is determined by the voltage on the Powerline and design constraints mandated by Powerline usage regulations. Cypress provides reference designs for a range of Powerline voltages such as 110V AC, 240V AC, 12V DC, 24V DC, and 24V AC. The 110V AC and 240V AC designs are compliant to the following Powerline usage regulations:

• •

FCC part 15 for North America EN50065-1:2001

Powerline Network Protocol Cypress’s Powerline optimized Network Protocol performs the functions of the data link, network and transport layers in an ISO/OSI Equivalent Model.

Powerline Communication Solution

Powerline FSK Modem PHY

Document Number: 001-13103 Rev. **

PLC Device

I2C Packet

Powerline Network Protocol

PRELIMINARY

Page 6 of 32

Power Line Transceiver

The Network Protocol implemented on the PLC device chip supports the following features:

• • • • • • • • •

Bidirectional half-duplex communication Master and slave and peer-to-peer network of Powerline nodes Multiple masters on Powerline network 8-bit logical addressing supports up to 256 Powerline nodes 16-bit extended logical addressing supports up to 65530 Powerline nodes 64-bit physical addressing supports up to 264 Powerline nodes Individual broadcast or group mode addressing Carrier Sense Multiple Access (CSMA) Full control over transmission parameters • Acknowledged • Unacknowledged • Repeated transmit • Sequence numbering

CSMA and Timing Parameters

• •



CSMA: The protocol provides the random selection of a period between 85 and 115 ms (out of 7 possible values in this range) in which the band in use detector must indicate that the line is not in use, before attempting a transmission Band-In-Use (BIU): A Band-In-Use detector, as defined under CENELEC EN 50065-1, is active whenever a signal that exceeds 86 dBuVrms anywhere in the range 131.5 KHz to 133.5 KHz is present for atleast 4 ms. This threshold can be configured for different end-system applications not requiring CENELEC compliance.The modem tries to retransmit after every 85 to 115 ms when the Band is in use. The Transmitter times out after 1.1 seconds and generates an interrupt to indicate that the transmitter was unable to acquire the Powerline. Throughput: Each unit of data (symbol) consists of 10 bits because each character requires one start bit and one stop bit and 8 bits of data. At 2400 baud, this gives a throughput of 240 bytes/sec. 240 bytes/sec = 4.167 ms/byte = 66.6 ms/16 byte-packet

Equation 1

Assuming back to back transmission, this corresponds to: 240 bps/ 16 byte-packet =15 packets per second

Equation 2

Powerline Transceiver Packet The Powerline Network Protocol defines a Powerline Transceiver (PLT) packet structure, which is used for data transfer between nodes across the Powerline. Packet formation and data transmission across the Powerline network is implemented internally in PLC device. A PLT Packet is apportioned into a variable length header (minimum 6 bytes to maximum 20 bytes) and variable length payload (minimum 0 bytes to maximum 31 bytes).

Document Number: 001-13103 Rev. **

PRELIMINARY

Page 7 of 32

Power Line Transceiver

This packet is then transmitted by the Powerline Modem PHY and the external coupling circuit across the Powerline. Powerline Transceiver (PLT) Packet Structure Bit Offset

Byte Offset

7

0x00

SA Type

6

5 DA Type

0x01

4

3

2

1

0

Service Type

RSVD

RSVD

Response

RSVD

Destination Address (8-bit Logical, 16-bit Extended Logical or 64-bit Physical)

0x02

Source Address (8-bit Logical, 16-bit Extended Logical or 64-bit Physical)

0x03

Command

0x04

RSVD

0x05

Payload Length

Seq Num

Powerline Packet Header CRC

0x06

Payload (0 to 31 Bytes)

Powerline Transceiver Packet CRC

Packet Header The Packet Header comprises the first six bytes of the packet when 1-byte logical addressing is used. When 8-byte physical addressing is used, the source and destination addresses each contain eight bytes. In this case, the header can consist of a maximum of 20 bytes. Unused fields marked RSVD are for future expansion and are transmitted as bit 0. Powerline Transceiver (PLT) Packet Header Field Name SA Type

Number of Bits 1

Tag Source Address Type

Document Number: 001-13103 Rev. **

Description 0 - Logical Addressing 1- Physical Addressing

PRELIMINARY

Page 8 of 32

Power Line Transceiver

Powerline Transceiver (PLT) Packet Header Field Name

Number of Bits

DA Type

2

Service Type

1

Seq Num

4

Header CRC

4

Tag Destination Address Type

Description 00 - Logical Addressing 01 - Group Addressing 10 - Physical Addressing 11 - Invalid 0 - Unacknowledged Messaging 1 - Acknowledged Messaging

Sequence Number

Four bit Unique Identifier for each packet between source and destination Four bit CRC Value. This enables the receiver to suspend receiving the rest of the packet if its header is corrupted

Payload The packet payload has a length of 0 to 31 bytes. Payload content is user defined and can be read or written through I2C.

Packet CRC The last byte of the packet is an 8-Bit CRC value used to check packet data integrity. This CRC calculation includes the header and payload portions of the packet and is in addition to the Powerline Packet Header CRC.

Addressing The logical address of the PLC node is set via software by the external host controller or by a remote node on the Powerline. The logical address can also be set through hardware with the 3-bit LOG_ADDR (Logical Address) Port (for example, an on-board 3-bit DIP switch). However, it is over-written when set in software. Every PLC node also has a unique 64-bit physical address which is used for assigning the logical addresses. All the address pins are logically inverted i.e. applying a high voltage on these pins corresponds to writing a logic ‘0’ and vice versa.

Group Membership Group Membership enables the user to multicast messages to select groups. The PLC device supports two types of Group Addressing. Single Group Membership: The Network protocol supports up to 256 different groups on the network in this mode. In this mode, each PLC node can only be part of a single group. For example, multiple PLC nodes can be part of Group 131. Multiple Group Membership: The Network protocol supports eight different groups in this mode and each PLC node can be a part of multiple groups. For example, a single PLC node can be a part of Group 3, Group 4, and Group 7at the same time. Both these modes can also be used together for Group membership. For example, a single PLC node can be a part of Group 131 and also multiple groups such as Group 3, Group 4, and Group 7. The Group membership ID for broadcasting messages to all nodes in the network is 0x00. The Service Type is always set to Unacknowledgment Mode in Group Addressing Mode. This is to avoid Acknowledgment flooding on the Powerline during multicast.

Document Number: 001-13103 Rev. **

PRELIMINARY

Page 9 of 32

Power Line Transceiver

Repeater Functionality The network protocol has the in-built repeater functionality which allows the Powerline nodes to repeat the packets on the Powerline to achieve longer distances. For example, if two nodes A and B are 150m apart and a single node can communicate only up to 100m, then a third node C (in the range of both A and B) can repeat the packet sent by A so that it reaches its destination B.

150m

A

B Destination

Source

C Repeater

75m

75m

Figure 4. PLC Repeater Functionality

PLC Device Memory Map The following table gives detailed information on PLC device memory locations. This information can be used for Application development on an external host controller. Several PLC Commands are instantiated from the Powerline Network Protocol based on which memory location is written into. PLC Device Memory Map Offset

Register Name Access

7 INT_Cle ar

6

5

4

3

2

1

0

0x00

INT_Ena ble

RW

0x01

Local_L A_LSB

RW

8-bit Logical Address / LSB for extended 16-bit address

0x02

Local_L A_MSB

RW

MSB for 16-bit Extended Address

0x03

Local_Gr oup

RW

8-bit Group Address

0x04

Local_Gr oup_Hot

RW

One Hot Encoded (e.g. if byte = 0b00010001, then member of groups #5 and #1)

0x05

PLC_Mo de

RW

TX_Ena ble

Document Number: 001-13103 Rev. **

INT_Pol INT_Una INT_TX_ INT_TX_ INT_RX INT_RX INT_TX_ arity bleToTX NO_AC NO_RE _Packet _Data_A Data_Se K SP _Droppe vailable nt d

RX_Ena Lock_Co Disable_ RX_Ove Set_Ext_ Promisc ble nfiguraBIU rride Address uous_M tion ASK

PRELIMINARY

Promisc uous_C RC_MA SK

Page 10 of 32

Power Line Transceiver

PLC Device Memory Map Offset

Register Name Access

7

6

5

4

3

2

1

0

0x06

TX_Mes sage_Le ngth

RW

Send_M Repeate Reserve essage r d

0x07

TX_Conf ig

RW

TX_SA_ Type

0x08

TX_DA

RW

Remote Node Destination Address (8 bytes)

0x10

TX_Com mandID

RW

TX Command ID

0x11

TX_Data _1

RW

TX Data (31 bytes)

0x30

Threshol d_Noise

RW

Get_Noi se

Reserved

0x31

Tx_Filter

RW

Tx_Filter _Active

Reserved

0x320x3F

Reserve d

RW

0x40

RX_Mes sage_IN FO

R

0x41

RX_SA_ 7

R

Remote Node Source Address(8 Bytes)

0x49

RX_Com mandID

R

RX Command ID

0x4a

RX_Data _1

R

RX Data (31 bytes)

0x69

INT_Stat us

R

Status_V Reserve Status_B Status_T Status_T Status_R Status_R Status_T alue_Ch d USY X_NO_A X_NO_R X_Packe X_Data_ X_Data_ ange CK ESP t_Dropp Available Sent ed

0x6A

Local_P A_7

R

Physical Address (8 bytes), "0x6A -> MSB"

0x72

Local_F W

R

Version Number

0x73

Noise_St rength

R

Noise Strength on the powerline

TX_DA_Type

Payload_Length_MASK

TX_Serv ice_Type

Rx_Threshold_Constant Modem_ FSKBW _Mask

New_RX RX_DA_ RX_SA_ _Msg Type Type

Document Number: 001-13103 Rev. **

TX_Retry

Modem_BPS_Mask

RX_Msg_Length

PRELIMINARY

Page 11 of 32

Power Line Transceiver

The following table describes the fields specified in the previous table. Memory Field Description

Field Name

Number of Bits

Description

INT_Enable (Interrupt Config Register 0x00) INT_Clear

1

0 - INT Cleared (W) 1 - INT Triggered (Set Internally)

INT_Polarity

1

0 - Active High 1 - Active Low

INT_UnableToTX

1

Enable Interrupt for BIU Timeout and the Modem is unable to Transmit, if Disable BIU = 0

INT_TX_NO_ACK

1

Enable Interrupt for no acknowledgment received after if Service Type = 1 (Ack Mode)

INT_TX_NO_RESP

1

Enable Interrupt for No Response Received

INT_RX_Packet_Dropped

1

Enable Interrupt when RX Packet is dropped bacause RX Buffer is full

INT_RX_Data_Available

1

Enable Interrupt when RX buffer has new data

INT_TX_Data_Sent

1

Enable Interrupt when TX data is sent successfully PLC_Mode Register (0x05)

TX_Enable

1

0 - TX Disabled (Can send ACKs only) 1 - TX Enabled

RX_Enable

1

0 - RX Disabled (Can Receive ACKs only) 1 - RX Enabled

Lock_Configuration

1

0 - Allow Remote Access to change config (TX Enable, Ext Address, Disable BIU, Threshold Value, Logical Address, Group Membership ) 1 - Lock Remote Access to change config

Disable_BIU

1

0 - Enables Band-In-Use 1 - Disables Band-In-Use

RX_Override

1

0 - If RX Buffer is full, new RX Message will be dropped 1 - If RX Buffer is full, new RX Message will overwrite RX Buffer

Set_Ext_Address

1

0 - 8-bit Addressing Mode 1 - Extended 16-bit Addressing Mode Note: This mode should be the same in all the devices in the network

Promiscuous_MASK

1

0 - Drops the RX Message if Destination Address does not match the Local Address 1- Ignores Destination Address match and accepts all CRCverified RX Messages

Promiscuous_CRC_MASK

1

0 - Drops the RX Message if CRC fails 1- Ignores CRC and accepts all RX Messages if Destination Address matches Local Address

Document Number: 001-13103 Rev. **

PRELIMINARY

Page 12 of 32

Power Line Transceiver

Memory Field Description

Field Name

Number of Bits

Description

TX_Message_Length Register (0x06) Send_Message

1

0 - Transmitter is idle. Automatically cleared after each Transmit 1 - Triggers the Transmit to send message in TX Data across Powerline Note: The registers TX Config, TX Destination Address, TX Command ID and TX Data need to be set before the user sets this bit to Logic 1

Repeater

1

0 - Non-Repeater Mode 1 - Repeater Mode: All nodes in the network will act as repeaters and forward the Message to the Final Destination.

Payload_Length_MASK

5

5-bit value for variable payload length. The payload length can vary from 0 to 31.

TX_Configuration Register (0x07) TX_SA_Type

1

0 - Logical Address 1 - Physical Address

TX_DA_Type

2

00 - Logical Address 01 - Group Address 10 - Physical Address 11 - Invalid

TX_Service_Type

1

0 - Unacknowledgement mode 1 - Acknowledgement Mode

TX_Retry

4

4-bit value for variable TX Retry Count

TX Destination Address Register (0x08 - 0x0F) 8-bit Logical Address

0x08

16-bit Logical Address

0x08 - LSB 0x09 - MSB

64-bit Physical Address

0x08 - MSB | 0x0F - LSB Threshold Noise Register (0x30)

Get_Noise

1

0 - Disable Powerline noise measurement 1 - Get noise strength on Powerline and store it in the Noise Strength Register

Rx_Threshold_Constant

3

000 - 81 dBuV 001 - 83 dBuV 002 - 85 dBuV 003 - 86 dBuV (default) 004 - 87 dBuV 005 - 91 dBuV 006 - 93 dBuV 007 - 95 dBuV

FSK Configuration Register (0x31) Tx_Filter_Active

Document Number: 001-13103 Rev. **

1

0 - TX Filter Disabled 1 - TX Filter Enabled

PRELIMINARY

Page 13 of 32

Power Line Transceiver

Memory Field Description

Field Name

Number of Bits

Description

Modem_FSKBW_1_5M for 1.5MHz Modem_FSKBW_3M for 3MHz

1

0 - Logic '0' - 133.3kHz Logic '1' - 131.8kHz 1 - Logic '0' - 133.3kHz Logic '1' - 130.4kHz

Modem_BPS_600 Modem_BPS_1200 Modem_BPS_1800 Modem_BPS_2400

2

00 - 600 bps 01 - 1200 bps 10 - 1800 bps 11 - 2400 bps

RX Message Information Register (0x40) New_RX_Msg

1

0 - No Packet received 1 - New Packet received Note: User sets this bit to Logic 0 after reading the RX Message. This allows the device to receive a new RX message

RX_DA_Type

1

0 - Logical / Physical Addressing 1 - Group Addressing

RX_SA_Type

1

0 - Logical Address 1 - Physical Address

RX_Msg_Length

5

5-bit value for variable payload length. The payload length can vary from 0 to 31.

RX Source Address Register (0x41 - 0x48) 8-bit Logical Address

0x41

16-bit Logical Address

0x41 - LSB 0x42 - MSB

64-bit Physical Address

0x41 - MSB | 0x48 - LSB

Status change Register (0x69) Note: This register is cleared when the user sets INT Clear to Logic 0 Status_Value_Change

1

0 - No Change 1 - Change

Status_BUSY

1

0 - No BIU Timeout 1- BIU Timeout and the Modem is unable to Transmit, if Disable BIU = 0

Status_TX_NO_ACK

1

If Service Type = 1 (ACK Mode) 0 - ACK Received (when TX Data sent = 1) 1 - No ACK received (when TX Data sent = 0) Note: The timeout window for receiving the ACK is 500ms

Document Number: 001-13103 Rev. **

PRELIMINARY

Page 14 of 32

Power Line Transceiver

Memory Field Description

Field Name

Number of Bits

Description

Status_TX_NO_RESP

1

0 - Response Received (when TX Data sent = 1) 1 - No Response Received (when TX Data sent = 0) Note: The timeout window for receiving Responses is 3s

Status_RX_Packet_Dropped

1

If RX Overwrite = 0 0 - No RX Packet is dropped 1- RX Packet is dropped bacause RX Buffer is full

Status_RX_Data_Available

1

0 - No new data available in RX buffer 1- RX buffer has new data available

Status_TX_Data_Sent

1

0 - No TX data sent 1- TX data sent successfully

External Host Application The application residing on the external host microcontroller has direct access to the local PLC memory over I2C. The I2C communication enables the host controller to instantiate several PLC functions by reading or writing to the appropriate memory locations in the PLC chip. Thus the host application can configure the PLC device, read status, and configuration information, and transmit data to remote Powerline nodes. Refer to the CY8CPLC10 Application Note on how to build a PLC command set using the PLC device memory map. The device has a dedicated pin (I2C_ADDR) for selecting the I2C slave address while communicating with the external controller. The two I2C slave addresses available are 0x01 and 0x7F. The PLC commands can be classified into two types based on which Powerline node they are designated to: local node or remote node.

Local Commands These commands act solely on the attached local PLC device. No transmissions are sent over the Powerline to a remote PLC device when executing these local transceiver commands. These commands are used for configuring the local PLC node such as setting the local logical address or reading the status and configuration information.

Remote Commands These commands initiate transmission over the Powerline to a remote PLC node. These commands when instantiated over I2C enable the host application to send and receive data over Powerline. Along with the data payload, the I2C packets also carry additional information for the Powerline transmission to a remote node: • • •

Destination address (8-bit logical, 16-bit extended logical, or 64-bit physical) Transmission retries Payload length

Document Number: 001-13103 Rev. **

PRELIMINARY

Page 15 of 32

Power Line Transceiver

Variable header and payload definitions enable flexibility in application development. The available remote commands are described in the following table with the respective Command IDs. Remote Commands

Command ID

Command Name

Description

Payload (TX Data)

Response (RX Data)

0x01

SetRemote_TXEnable

Sets the TX Enable bit in 0 - Disable Remote TX the PLC Mode Register. 1 - Enable Remote TX Rest of the PLC Mode register is unaffected

If Remote Lock Config = 0, Response = 00 (Success) If Remote Lock Config = 1, Response = 01 (Denied)

0x02

SetRemote_Reset

Reset the Remote Node None Configuration

If Remote Lock Config = 0, Response = 00 (Success) If Remote Lock Config = 1, Response = 01 (Denied)

0x03

SetRemote_ExtendedA ddr

Set the Addressing to Extended Addressing Mode

None

If Remote Lock Config = 0, Response = 00 (Success) If Remote Lock Config = 1, Response = 01 (Denied)

0x04

SetRemote_LogicalAddr Assigns the specified logical address to the remote PLC node

If Ext Address = 0, Payload = 8-bit Logical Address If Ext Address = 1, Payload = 16-bit Logical Address

If Remote Lock Config = 0, Response = 00 (Success) If Remote Lock Config = 1, Response = 01 (Denied)

0x05

GetRemote_LogicalAdd Get the Logical Address None r of the remote PLC node

If Remote TX Enable = 0, Response = None If Remote TX Enable = 1, {If Ext Address = 0, Response = 8-bit Logical Address If Ext Address = 1, Response = 16-bit Logical Address}

0x06

GetRemote_PhysicalAd Get the Physical dr Address of the remote PLC node

None

If Remote TX Enable = 0, Response = None If Remote TX Enable = 1, Response = 64-bit Physical Address

0x07

GetRemote_State

None

If Remote TX Enable = 0, Response = None If Remote TX Enable = 1, Response = Remote PLC Mode register

Document Number: 001-13103 Rev. **

Request data from a Remote PLC node

PRELIMINARY

Page 16 of 32

Power Line Transceiver

Remote Commands

Command ID

Command Name

Description

Payload (TX Data)

Response (RX Data)

0x08

GetRemote_Version

Get the Version NumNone ber of the Remote Node

If TX Enable = 0, Response = None If TX Enable = 1, Response = Remote Version register

0x09

SendRemote_Data

Transmit data to a Remote Node.

Payload = Local TX Data

If Local Service Type = 0, Response = None If Local Service Type = 1, Response = Ack

0x0A

RequestRemote_Data

Request data from a Remote Node

Payload = Local TX Data

If Remote TX Enable = 0, Response = None If Remote TX Enable = 1, Response = Remote TX Data

0x0B

ResponseRemote_Data Transmit response data to a Remote Node.

Payload = Local TX Data

None

0x0C

SetRemote_BIU

0 - Enable Remote BIU 1 - Disable Remote BIU

If Remote Lock Config = 0, Response = 00 (Success) If Remote Lock Config = 1, Response = 01 (Denied)

0x0D

SetRemote_ThresholdV Sets the Threshold alue Value at the Remote node

3-bit Remote Threshold Value

If Remote Lock Config = 0, Response = 00 (Success) If Remote Lock Config = 1, Response = 01 (Denied)

0x0E

SetRemote_GroupMem Sets the Group Member- Byte0 - Remote SIngle bership ship of the Remote node Group Membership Address Byte1- Remote Multiple Group Membership Address

If Remote Lock Config = 0, Response = 00 (Success) If Remote Lock Config = 1, Response = 01 (Denied)

0x0F

GetRemote_GroupMem Gets the Group Membership bership of the Remote node

If Remote TX Enable = 0, Response = None If Remote TX Enable = 1, Response = Byte0 - Remote SIngle Group Membership Address Byte1- Remote Multiple Group Membership Address

0x10 0x2F

Reserved

0x30 0xFF

User Defined Command Set

Document Number: 001-13103 Rev. **

Enables/Disables BIU functionality at the remote node

None

PRELIMINARY

Page 17 of 32

Power Line Transceiver

EEPROM Back Up for Remote Reset The device also has an EEPROM to back up Memory Registers 0x00-0x05 and 0x30-0x32. When the device is reset remotely by the SetRemote_Reset command, it clears its memory map and loads from the EEPROM and returns to idle mode.

Timing FSK Modem The following RX Timing diagram illustrates the operation of the RX component of the FSK Modem for the PLC User Module. Input Clock - 8X Start

Rx Input

0

0

1

1

0

1

0

1

Parity

Stop

1

Bit Clock

3 00000000 00000010 00000010 00001010 00011010 0011010 01011010

x

Rx Shift Register Rx Buffer Register

01011010

4

x

01011010

2

Rx Active Rx Register Full Parity/Overrun/ Framing Error Int Request

5

Read Rx Control Start

RX Data Out

0 (LSB)

0

1

1

0

1

0 (MSB)

1

Parity

Stop

RX Clock Out

The following TX Timing diagram illustrates the operation of the TX component of the FSK Modem for the PLC User Module. Input Clock - 8X Bit Clock Load Buffer Reg

2 1

( uProc Write Pulse )

Buffer Register

X

X

X

11110000

01011010

Buffer Empty Buffer Empty Int Shift Register Tx Output

4 X

01011010

Start

0 (LSB)

00101101 00010110 00001011 00000101 00000010 00000001 00000000

1

0

1

1

0

1

0 (MSB)

00000000

Parity

11110000

Stop 3 Start

Tx Complete (reset when read)

Tx Clock Out

Placement The PLT User Module occupies eight digital blocks, three analog CT blocks, six analog SC blocks, and the PLC modem block. Because the user module needs to use specific columns and rows for internal connections, no alternative placement is available.

Document Number: 001-13103 Rev. **

PRELIMINARY

Page 18 of 32

Power Line Transceiver

Parameters and Resources Not all parameters are available with all selection options. The following table shows which parameters are available depending on selection options.

Parameter

FSK Modem Only

FSK Modem with Network

FSK Modem with Network and I2C Slave

Baud rate TX Filter Noise Level Threshold Band in Use BIU Timeout Interrupt No ACK Received Interrupt No Response Received Interrupt Rx Packet Dropped Interrupt Rx Data Available Interrupt Tx Data Sent Interrupt Addressing mode Logical Address of Node Transmit Enable Transmit Source Address Type Transmit Destination Address Type Transmit Service Type Transmit Retry Count Transmit Payload Length Receive Enable Lock Configuration Rx Overwrite Destination Address Verification CRC Messages Verification

Document Number: 001-13103 Rev. **

PRELIMINARY

Page 19 of 32

Power Line Transceiver

Parameter

FSK Modem Only

FSK Modem with Network

FSK Modem with Network and I2C Slave

Repeater Mode Single Group Membership ID Multiple Group Membership ID E2PROM Parameter I2C Slave Address

Baud rate Sets the baud rate for the Powerline Communication PHY. You can configure the baud rate to 600, 1200, 1800, or 2400 bits per second.

TX Filter Enables or disables the output filter in the transmitter. When disabled the modem will output a square wave FSK output.

Noise Level Threshold Sets the Noise Level Threshold.

Band in Use Enables the Band In Use (BIU) option.

BIU Timeout Interrupt Enables the BIU Timeout interrupt. This interrupt fires when the BIU times out and the Modem is unable to transmit. The interrupt service routine (ISR) is located in PLTINT.asm.

No ACK Received Interrupt Enables an interrupt that fires when no acknowledgment is received after transmit when the Service Type is set to ACK Mode. The ISR is located in PLTINT.asm.

No response Received Interrupt Enables an interrupt that fires when no response is received. The ISR is located in PLTINT.asm.

Rx Packet Dropped Interrupt Enables an interrupt that fires when a receive packet is dropped because the Rx buffer is full. The ISR is located in PLTINT.asm.

Rx Data Available Interrupt Enables an interrupt that fires when the receive buffer has new data. The ISR is located in PLTINT.asm.

Document Number: 001-13103 Rev. **

PRELIMINARY

Page 20 of 32

Power Line Transceiver

Tx Data Sent Interrupt Enables an interrupt that fires when transmit data is sent successfully. The ISR is located in PLTINT.asm.

Addressing Mode Sets the logical addressing length to 8-bit or 16-bit. Available only when Logical Address option is selected.

Logical Address of Node Set the logical address for the Powerline node. The available addresses will vary depending on whether 8bit or 16-bit addressing is used.

Transmit Enable Enables Transmit Mode operation. When transmit mode is disabled, no new messages will be transmitted. Acknowledgments will be transmitted, regardless of Transmit Enable.

Transmit Source Address Type Sets the Transmit SA Type. Choose Logical Address or Physical Address. You cannot change this parameter if Transmit Enable is set to Disable.

Transmit Destination Address Type Sets the Transmit DA Type. Choose from Logical Address, Group Address, and Physical Address. This parameter is not editable if the Transmit Enable option is set to Disable.

Transmit Service Type Sets the Transmit Acknowledgment Mode. Transmissions are ACKed in acknowledgement mode. This parameter is not editable if the Transmit Enable option is set to Disable.

Transmit Retry Count Sets the transmitter retry count. In Acknowledgment mode, sets the maximum transmit retries if no acknowledgment is received. In Un-acknowledgment mode, sets how many times the transmitter will retransmit the same packet. This parameter is not editable if the Transmit Enable option is set to Disable.

Transmit Payload Length Sets the Payload Length from 0 to 31 bytes. This parameter is not editable if the Transmit Enable option is set to Disable.

Receive Enable Enables Receive Mode. When receive mode is disabled, no new messages will be accepted.

Lock Configuration Allows remote access to change the configuration.

Document Number: 001-13103 Rev. **

PRELIMINARY

Page 21 of 32

Power Line Transceiver

Rx Overwrite Enables receive buffer overwrite mode. When enabled, newly received messages overwrite the Rx Buffer when it contains an unread packet. When disabled and the Rx Buffer contains an unread packet, the newly received message is dropped

Destination Address Verification Allows the receiver to ignore destination address verification. When the setting is Do Not Ignore the received packet is dropped if it does not match the local address. When set to Ignore, the received packet is accepted regardles of the local address.

CRC Messages Verification Allows the receiver to ignore cyclic redundancy check message verification. When the setting is Do Not Ignore the packet is dropped if the CRC fails.

Repeater Mode In repeater mode, all nodes in the network act as repeaters and forward message to the final destination.

Single Group Membership ID Sets the group number when the network is placed in ‘single group membership’ mode.

Multiple Group Membership ID Sets the group number when network is placed in ‘multiple group membership’ mode. This parameter is an 8-bit value and is expressed in binary. Each instance of 1 in the number indicates that the group is member of the group corresponding the to the binary position of the number. For example if the value is 01000001, then the particular node is part of the 1st and 7th group.

E2PROM Parameter Sets the first block of E2PROM area for used to back up configuration settings when reset by a remote node.

I2C Slave Address Can be any value from 0x01 to 0x7F.

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. Each time a user module is placed, it is assigned an instance name. By default, PSoC Designer assigns the PLT_ to the first instance of this user module in a given project. It can be changed to any unique value that follows the syntactic rules for identifiers. The assigned instance name becomes the prefix of every global function name, variable, and constant symbol. In the following descriptions the instance name has been shortened to PLT for simplicity. 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

Document Number: 001-13103 Rev. **

PRELIMINARY

Page 22 of 32

Power Line Transceiver

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 functions may leave A and X unchanged, there is no guarantee they will do so in the future.

PLT_Start Description: Before the Powerline Transceiver User Module can be used, it must first be initialized by calling this function. The functions executed by this API depend on whether you chose Modem Only, Modem with Network, or Modem with Network and I2C Slave when you placed the user module. The FSK Modem is initialized in all cases. The Networking Protocol Layer is not initialized when the FSK Modem option is chosen. The I2C Bridge Protocol Layer and associated hardware is initialized only when the FSK Modem + Protocol Stack + I2C Bridge option is selected. C Prototype: void PLT_Start(void); Assembly: call PLT_Start Parameters: None Return Value: None Side Effects: See Note ** at the beginning of the API section.

PLT_Stop Description: This function disables all digital and analog blocks that were initialized to create the FSK modem. C Prototype: void PLT_Stop(void); Assembly: call PLT_Stop Parameters: None Return Value: None Side Effects: See Note ** at the beginning of the API section.

PLT FSK Modem Only API Commands PLT_SwitchToReceiver Description: Configures the PSoC device to be an FSK receiver. Automatically stops the FSK transmitter if it is already loaded.

Document Number: 001-13103 Rev. **

PRELIMINARY

Page 23 of 32

Power Line Transceiver

C Prototype: void PLT_SwitchToReceiver(void); Assembly: call PLT_SwitchToReceiver Parameters: None Return Value: None Side Effects: See Note ** at the beginning of the API section.

PLT_SwitchToTransmitter Description: Configures the PSoC device to be an FSK transmitter. Automatically stops the FSK receiver if it is already loaded. C Prototype: void PLT_SwitchToTransmitter (void); Assembly: call PLT_SwitchToTransmitter Parameters: None Return Value: None Side Effects: See Note ** at the beginning of the API section.

PLT_SendData Description: The function provides control to the FSK transmitter (if not already started) and sends the data over the powerline. C Prototype: BOOL PLT_SendData (BYTE *bPacketBuffer, BYTE bPktLen); Assembly: mov a, bPacketBuffer Mov X, bPktLen call PLT_SendData Parameters: bPacketBuffer: A pointer to the first byte of the data to be transmitted. bPktLen: The length of the data to be transmitted in bytes. Return Value: Returns a one if the transmit request was processed. Returns a zero if the transmit request was not processed. Side Effects: See Note ** at the beginning of the API section.

Document Number: 001-13103 Rev. **

PRELIMINARY

Page 24 of 32

Power Line Transceiver

PLT_AcquirePowerline Description: Checks whether the powerline is in use. Returns a one if the powerline is clear for transmission. A zero return indicates the line is in use. C Prototype: BOOL PLT_AcquirePowerline(void); Assembly: call PLT_AcquirePowerline mov [bIsAcquired], A Parameters: None Return Value: Returns a one, passed in the accumulator, if the powerline is clear for transmission. A zero return indicates the line is in use. Side Effects: See Note ** at the beginning of the API section.

PLT_RXEnableInt Description: Enables the receiver interrupts by setting the appropriate interrupt enable bits. C Prototype: void PLT_RXEnableInt(void); Assembly: call PLT_RXEnableInt Parameters: None Return Value: None Side Effects: See Note ** at the beginning of the API section.

PLT_RXDisableInt Description: Disables the receiver interrupts by clearing the appropriate interrupt enable bits. C Prototype: void PLT_DisableInt(void); Assembly: call PLT_DisableInt Parameters: None Return Value: None Side Effects: See Note ** at the beginning of the API section.

Document Number: 001-13103 Rev. **

PRELIMINARY

Page 25 of 32

Power Line Transceiver

PLT_bReadRxStatus Description: Returns the contents of the receiver control register. C Prototype: BYTE PLT_bReadRxStatus(void); Assembly: call PLT_bReadRxStatus mov [bRdStatus], A Parameters: None Return Value: Returns the status byte read, passed in the accumulator. Use the defined masks below, to test for specific status conditions. Note that masks can be OR’ed together to check for combined conditions. RX Status Masks

Value

PLT_RX_ACTIVE

0x10

PLT_RX_COMPLETE

0x08

PLT_RX_PARITY_ERROR

0x80

PLT_RX_OVERRUN_ERROR

0x40

PLT_RX_FRAMING_ERROR

0x20

PLT_RX_NO_ERROR

0xE0

Side Effects: See Note ** at the beginning of the API section.

PLT_bReadRxData Description: Reads the received data byte from the Rx Buffer Register. Also returns the status of the receiver control register. C Prototype: BYTE bReadRxData (void); Assembly: call bReadRxData mov [bRxData], A Parameters: None Return Value: Returns the receive status passed in the accumulator. Symbolic names are provided in C and assembly. Their associated values are given in the following table: Symbolic Name PLT_RX_REG_FULL

Document Number: 001-13103 Rev. **

Value 0x08

PRELIMINARY

Description The receive register is full.

Page 26 of 32

Power Line Transceiver

Symbolic Name

Value

Description

PLT_RX_PARITY_ERROR

0x80

There was a parity error.

PLT_RX_OVERRUN_ERROR

0x40

There was a buffer overrun error.

PLT_RX_FRAMING_ERROR

0x20

There was a receive framing error.

PLT_RX_ERROR

0xE0

There was a receive error.

Side Effects: See Note ** at the beginning of the API section.

FSK Modem with Network API Commands PLT_MeasureNoise Description: This function measures the static and dynamic noise level on the powerline. C Prototype: BYTE PLT_MeasureNoise(void); Assembly: call PLT_MeasureNoise mov [bNoiseLevel], A Parameters: None Return Value: Returns the noise level on the powerline passed in the accumulator. Side Effects: See Note ** at the beginning of the API section.

PLT_SendMsg Description: This is a generic transmit function that is used for communications over the powerline network in custom applications. This function sends a node packet to a remote node whose destination address is specified in the stSENDMSG structure. A bit within this structure indicates whether a response is expected, however an ACK can be requested even if there is no response needed. The custom application defines it’s own custom command codes which are then carried in the payload portion of the packet. C Prototype: BOOL PLT_SendMsg(void); Assembly: call PLT_SendMsg mov [bSendStatus], A Parameters: None Return Value: Returns a one, passed in the accumulator, if the function was successful, a zero otherwise. Side Effects: See Note ** at the beginning of the API section.

Document Number: 001-13103 Rev. **

PRELIMINARY

Page 27 of 32

Power Line Transceiver

PLT_Poll Description: This function runs through a predefined state machine for data packet transmission and reception. It reacts to settings in the memory map array. C Prototype: void PLT_Poll(void); Assembly: call PLT_Poll Parameters: None Return Value: None Side Effects: See Note ** at the beginning of the API section.

FSK Modem with Network and I2C Slave APIs PLT_Poll Description: This function runs through a predefined state machine for data packet transmission and reception. It reacts to settings in the memory map array. C Prototype: void PLT_Poll(void); Assembly: call PLT_Poll Parameters: None Return Value: None Side Effects: See Note ** at the beginning of the API section.

PLT_Check_I2C_Activity Description: This function allows the external host application to interface with the PLC device via I2C communication. The user can change the protocol parameters in the memory map array through I2C read/writes. C Prototype: void PLT_Check_I2C_Activity(void); Assembly: call PLT_Check_I2C_Activity Parameters: None Return Value: None

Document Number: 001-13103 Rev. **

PRELIMINARY

Page 28 of 32

Power Line Transceiver

Side Effects: See Note ** at the beginning of the API section.

Sample Code Modem The following sample code configures a PLC transmitter. //-----------------------------------------------------------------------// C main line //-----------------------------------------------------------------------#include #include "PSoCAPI.h"

// part specific constants and macros // PSoC API definitions for all User Modules

void main() { // This code mimics a packet of payload two bytes 0xAA and 0xBB sent to // a destination address of 0x01 using the same packet structure as the // network protocol. BYTE aTx_Data[10] = {0xab,0x10,0x01,0x02,0x09,0x02,0x01,0xaa,0xbb,0x34}; PLT_Start(); //Check whether the powerline is free if (PLT_AcquirePowerline()) { PLT_SendData(aTx_Data,0x0a); //Transmit the packet } } The following sample code configures a PLC receiver. //-----------------------------------------------------------------------// C main line //-----------------------------------------------------------------------#include #include "PSoCAPI.h" #define cRX_Reg_Full 0x08;

// part specific constants and macros // PSoC API definitions for all User Modules

void main() { // This code waits for a packet from a fixed function device and checks // whether the first byte is 0xAB and proceeds to read further bytes. // This adheres to the same structure as a packet sent from the network // layer. BYTE Temp,bRx_Data; PLT_Start(); PLT_RXEnableInt(); do //This loop prevents false triggers { do //Loop until data is recieved by the RX Block { // Check whether the receieve register is full Temp = PLT_bReadRxStatus(); Temp &= cRX_Reg_Full; //Break if so.. }while (Temp == 0x00); bRx_Data = PLT_bReadRxData(); //Read received data Document Number: 001-13103 Rev. **

PRELIMINARY

Page 29 of 32

Power Line Transceiver

} while(bRx_Data!=0xab); //Exit the loop only if the byte is 0xAB // Loop until the next byte is recieved. Use the same loop structure for // reading the rest of the packet. do { Temp = PLT_bReadRxStatus(); //Get the status of the receiver Temp &= cRX_Reg_Full; //Check if the receieve register is full }while (Temp == 0x00); //Break if so.. // Read the next byte from the packet. bRx_Data = PLT_bReadRxData(); }

FSK Modem with Network The following sample code configures a PLC transmitter with the network protocol. //-----------------------------------------------------------------------// C main line //-----------------------------------------------------------------------#include #include "PSoCAPI.h"

// part specific constants and macros // PSoC API definitions for all User Modules

void main() { PLT_Start(); // Start the Powerline Transceiver // Set the local logical address to 2 PLT_Memory_Array[Local_LA_LSB] = 0x02; PLT_Memory_Array[PLC_Mode] |= (TX_Enable | RX_Enable | RX_Override); // Enable the transmitter and receiver. Enable RX Overwrite. // Use Acknowledgment Service Type PLT_Memory_Array[TX_Config] |= TX_Service_Type; // Set the destination address to 1 PLT_Memory_Array[TX_DA] = 0x01; // Use the Send Message command for sending normal data PLT_Memory_Array[TX_CommandID] = CMD_SENDMSG; // Set the first byte of data to 0xAA PLT_Memory_Array[TX_Data_1] = 0xAA; // Set the second byte of data to 0xBB PLT_Memory_Array[TX_Data_1 + 1] = 0xBB; // Set the message length to 2 PLT_Memory_Array[TX_Message_Length] = 0x02; // Prepare the message to be transmitted PLT_SendMsg() do { PLT_Poll(); // Run the network protocol to send the message // Check if the message was sent successfully if (PLT_Memory_Array[INT_Status] & Status_TX_Data_Sent) { // If so, ... // Clear the INT_Status register PLT_Memory_Array[INT_Enable] &= ~INT_Clear; break; } } while (1); }

Document Number: 001-13103 Rev. **

PRELIMINARY

Page 30 of 32

Power Line Transceiver

The following sample code configures a PLC receiver with the network protocol. //-----------------------------------------------------------------------// C main line //-----------------------------------------------------------------------#include #include "PSoCAPI.h"

// part specific constants and macros // PSoC API definitions for all User Modules

void main() { PLT_Start(); // Start the Powerline Transceiver // Set the local logical address to 2 PLT_Memory_Array[Local_LA_LSB] = 0x02; PLT_Memory_Array[PLC_Mode] |= (TX_Enable | RX_Enable | RX_Override); // Enable the transmitter and receiver. Enable RX Overwrite. // Use Acknowledgment Service Type PLT_Memory_Array[TX_Config] |= TX_Service_Type; // Loop until a packet with the received payload 1st byte = 0xAA do { PLT_Poll(); // Run the network protocol // Check if there is a new received message available if (PLT_Memory_Array[INT_Status] & Status_RX_Data_Available) // If so, check if the first data byte of received message is 0xAA if (PLT_Memory_Array[RX_Data_1] == 0xAA) { // If so, ... // Clear the received new message bit PLT_Memory_Array[RX_Message_INFO] &= ~New_RX_Msg; // Clear the INT_Status register PLT_Memory_Array[INT_Enable] &= ~INT_Clear; break; // Exit the loop } }while(1); }

FSK Modem with Network and I2C Slave The following sample code can be run with an external host application. This same sample code applies for both a transmitter and a receiver. //-----------------------------------------------------------------------// C main line //-----------------------------------------------------------------------#include #include "PSoCAPI.h"

// part specific constants and macros // PSoC API definitions for all User Modules

void main() { //Initialize the PLT module PLT_Start(); do { //Act on any I2C activity Document Number: 001-13103 Rev. **

PRELIMINARY

Page 31 of 32

Power Line Transceiver

PLT_Check_I2C_Activity(); PLT_Poll(); }while(1); }

Document Number: 001-13103 Rev. **

Revised March 26, 2009

Page 32 of 32

© Cypress Semiconductor Corporation, 2009. 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 lifesupport 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.