CE96999 - Basic LIN Slave Implementation in PSoC® 4.

CE96999 - Basic LIN Slave Implementation in
PSoC® 4
Objective
®
These code examples demonstrate the implementation of LIN slave communication in PSoC 4.
Overview
These code examples show how to implement a LIN slave using the LIN Component in PSoC 4. PSoC 4 devices support LIN
slaves with both LIN v1.3 and LIN v2.1/2.2 protocol specifications. Two examples are provided:
Example1 - LIN Slave Communication:
In this code example, PSoC 4 responds to LIN master commands to:


Set the RGB LED color on PSoC development kits such as CY8CKIT-042 and CY8CKIT-044.
Report the current RGB LED color setting
Example2 – Multiple-Instance LIN Slave Communication:
In this code example, PSoC 4 is initialized to have two LIN slave Components, which are connected to two different LIN
networks (masters). PSoC 4 responds to both LIN master (LIN master1 and LIN master2) commands to do the following:
Respond to LIN master1 commands:


®
Store the CapSense linear slider centroid position
Report the saved CapSense linear slider centroid position value
Respond to LIN master2 commands:


Set the RGB LED color on PSoC development kits such as CY8CKIT-042
Report the current RGB LED color setting
Requirements
Tool: PSoC Creator 3.3 SP1 or later
®
Programming Language: C (ARM GCC 4.9.3 and ARM MDK compilers)
Associated Parts: All PSoC 4100, 4200, 4100-M and 4200-M parts
Related Hardware: CY8CKIT-042, CY8CKIT-044, CY8CKIT-026, Model 9011 LIN to USB Data Converter or equivalent,
1
Jumper wires .
1
Wires that are used to connect from CY8CKIT-026 Arduino™ headers to LINx Tx, LINx Rx and LINx NSLP pins on the same board.
www.cypress.com
Document No. 001-96999 Rev.*A
1
Basic LIN Slave Implementation in PSoC® 4
Example1 – LIN Slave Communication
Design
In this example, PSoC 4 acts as a simple LIN slave. The slave monitors for data, which is transmitted from the LIN master
(analyzer). If a predefined frame is received from the master, the slave controls the RGB LED color as per the data that is
available in the received frame. The LIN master can get the RGB LED status by sending a frame with a predefined frame ID.
This example project can be used with both CY8CKIT-042 and CY8CKIT-044.
Figure 1 shows the PSoC Creator schematic design of the code example.
Figure 1. LIN Slave Design with PSoC 4
Note: NSLP is the output pin used to keep the LIN transceiver either in sleep mode or active mode.
Design Considerations


This code example has been designed for both the CY8CKIT-042 PSoC 4 Pioneer Kit and CY8CKIT-044 PSoC 4 MSeries Pioneer Kit.
The maximum baud rate that LIN protocol supports is 20 kbps. The LIN Component has four different baud rates in the
configuration UI: 19.2 kbps, 10.4 kbps, 9.6 kbps, and 2.4 kbps.
www.cypress.com
Document No. 001-96999 Rev.*A
2
Basic LIN Slave Implementation in PSoC® 4
Hardware Setup
The hardware setup block diagram and connections are shown in Figure 2; detailed hardware connections are explained
below.
Figure 2. LIN Slave Communication Hardware Setup
CY8CKIT-042/044
(PSoC 4)
Arduino
Header
CY8CKIT-026
P4[0]
P4[1]
P0[0]
LINx RX
LINx TX
LINx NSLP
J3_10 *
J3_9 **
J14/J5
LIN USB
LIN Analyzer
USB
Computer
(LIN Analyzer
software)
J2_13 ***
RGB LED
* Connect J3_10 to J15_1 (LIN1_RX) or J6_1 (LIN2_RX)
** Connect J3_9 to J15_2 (LIN1_TX) or J6_2 (LIN2_TX)
*** Connect J2_13 to J15_3 (LIN1_NSLP) or J6_3 (LIN2_NSLP)
www.cypress.com
Document No. 001-96999 Rev.*A
3
Basic LIN Slave Implementation in PSoC® 4
Follow these instructions to set up the hardware:
1.
Because there are two LIN transceivers on CY8CKIT-026, choose either of the transceivers to use (U5 – LIN1 transceiver
or U3 – LIN2 transceiver). Connect the Arduino header pins (which are connected to the base board controller) to the
appropriate LIN transceiver using jumper wires as shown in Table 1.
Table 1. Pin Connection on CY8CKIT-026
CY8CKIT-026 Pins
Arduino Header Pins
LIN1 Transceiver
2.
LIN2 Transceiver
J3_10
J15_1 (LIN1_RX)
J6_1 (LIN2_RX)
J3_9
J15_2 (LIN1_TX)
J6_2 (LIN2_TX)
J2_13
J15_3 (LIN1_NSLP)
J6_3 (LIN2_NSLP)
Make sure that jumper J16 (if the LIN1 transceiver is being used) is shorted or jumper J7 (if the LIN2 transceiver is being
used) is shorted.
Note: This is to provide a 12-V supply to the Silicon Engines LIN-USB analyzer; if any other analyzer is being used, then
follow the instructions for power supply requirements and short the jumper only if it requires a 12-V supply.
3.
The baseboard can be powered using USB or it can be powered from the Shield kit by selecting jumper J20 appropriately
as shown in Table 2. See the CY8CKIT-026 user guide for more details.
Table 2. Powering Options with Jumper (J20)
J20 Connection
Power Option
Baseboard (CY8CKIT-042/44) Requirement
Short pin 2 and 3
Power baseboard using Shield
Kit with 5 V
Baseboard power selection jumper (J9 on
CY8CKIT-042/ 044) should be at 3.3 V (only if USB
is not connected to the baseboard).
Short pin 3 and 4
Power baseboard using Shield
Kit with 12 V
Baseboard power selection jumper (J9 on
CY8CKIT-042/ 044) should be at 3.3 V (only if USB
is not connected to the baseboard).
Note: If the baseboard is powered through USB, and a 12-V supply is connected to the Shield Kit, the position of the
power jumper selection (J20) is not significant.
4.
Plug in CY8CKIT-026 to CY8CKIT-042/044 through the Arduino-compatible connectors.
5.
Connect the LIN analyzer to the J14 connector to use LIN1 transceiver or J5 connector to use LIN2 transceiver.
Warning: Be careful to not power up the Shield Kit with multiple supplies.
6.
If the LIN analyzer DOES NOT provides 12 V to the VBAT pin, connect a 12-V supply to CY8CKIT-026 through the J11
power jack or J12 screw terminal connector.
7.
If the LIN analyzer DOES provide 12 V to the VBAT pin, the Shield kit can be powered from the LIN analyzer if desired.
For that configuration, the J16 jumper (for LIN1 transceiver) or the J7 jumper (LIN2 transceiver) should be placed.
Note: The Silicon Engines LIN-USB analyzer requires a 12-V input supply, so either J16 (for LIN1) or J7 (for LIN2) must
be placed and a 12-V supply must be provided.
www.cypress.com
Document No. 001-96999 Rev.*A
4
Basic LIN Slave Implementation in PSoC® 4
Components
Table 3 lists the PSoC Creator Components used in this example, as well as the hardware resources used by each.
Table 3. List of PSoC Creator Components
Component
LIN
Hardware Resources
SCB
3 pins for LEDs,
Pin
1 pin for LIN transceiver sleep functionality
2 pins for LIN Tx/Rx (part of the LIN Component)
Parameter Settings
Figure 3 and Figure 4 shows the parameter settings for the PSoC Creator LIN Component used in the code example. Only the
parameters that vary from their default values are shown.
LIN Component
Figure 3 shows the Frame tab settings for the LIN Component. Use this tab to add a new frame or delete an existing frame
from the LIN slave. Click the ‘Add’ button to add a new frame. For this example, two frames named “InFrame” and “OutFrame”
are used as shown in Figure 3.


InFrame: The frame ID value is 0x10, the direction of the frame is ‘Subscribe’ and the frame type is ‘Unconditional’.
OutFrame: The frame ID value is 0x11, the direction of the frame is ‘Publish’ and the frame type is ‘Unconditional’.
Note: If the direction (publish/subscribe) is set as ‘Publish’, the slave responds to master; if the direction is set as ‘Subscribe’,
the slave uses the received data from the master for its application.
Figure 3. LIN Component Frames Tab Settings
www.cypress.com
Document No. 001-96999 Rev.*A
5
Basic LIN Slave Implementation in PSoC® 4
Figure 4 shows the Signals tab settings for the LIN Component. Click the ‘+’ button to add new signals and select the signal
properties such as signal name, type, length, and initial value. Place the signals to the corresponding frames as shown the
Figure 4.
Figure 4. LIN Component Signals Tab Settings
All other configuration settings are left at their default.
Design-Wide Resources
Figure 5 and Figure 6 shows the pin assignments for this code example.
Figure 5. Pin Assignments for PSoC 4200 (CY8CKIT-042) Example
Figure 6. Pin Assignments for PSoC 4200M (CY8CKIT-044) Example
All other design-wide resources are left at their default values.
www.cypress.com
Document No. 001-96999 Rev.*A
6
Basic LIN Slave Implementation in PSoC® 4
Operation
To test the project a “Silicon Engines LIN-USB Converter – Model 9011” is used as LIN analyzer. Other LIN analyzers may
also be used.
Do the following to complete the testing:





Make the hardware connections as described in Hardware Setup section on page 3.
Program the hex file on to the baseboard (CY8CKIT-044/042) using PSoC programmer or PSoC Creator.
Install the ‘SE9004 and 9011 LINUSB Message Center’ software (if a different analyzer is being used, install the
appropriate software) on your PC.
Connect the LIN analyzer to a PC through a USB cable and open the LIN analyzer software in PC.
On the LIN analyzer software, go to Configure LIN/USB. The Configure LIN Box Interface window is displayed. Set the
LIN Bus Baud Rate to 19200 bps, and then select the LIN 2.0-2.1 Protocol checkbox, as shown in Figure 7.
Figure 7. LIN Analyzer Configurations


If you are using any other analyzer, make sure that the checksum setting is selected as enhanced checksum since LIN
v2.1/2.2 specification supports only enhanced checksum (this option is not required in Silicon Engines LIN-USB converter
software).
Add the message in the analyzer software that should be transmitted to the slave and send it through the analyzer, as
shown in Figure 8, Note that the message must start with the ID.
www.cypress.com
Document No. 001-96999 Rev.*A
7
Basic LIN Slave Implementation in PSoC® 4
Figure 8. Adding and Sending Message Using LIN Analyzer

If a frame with ID = 0x10 is received from the master (analyzer), the slave controls the RGB LED based on the received
data command from the master as shown in Table 4. Note that the message must start with the ID and must contain eight
data bytes even though only the first byte is used to control the LEDs. The other seven data bytes can be any value.
Table 4. Slave Response per Commands from Master
Command

Slave Response
0x11
Turns on Red LED
0x22
Turns on Green LED
0x33
Turns on Blue LED
0x00
Turns off RGB LED
If a frame with ID = 0x11 is received from the master (analyzer), then the slave sends the RGB LED status back to the
master as shown in Table 5. The message in this case only needs the message ID. No data bytes are required.
Table 5. RGB LED Status
RGB LED status
www.cypress.com
Data byte
Red LED on
0xAA
Green LED on
0xBB
Blue LED on
0xCC
RGB LED off
0xDD
Document No. 001-96999 Rev.*A
8
Basic LIN Slave Implementation in PSoC® 4

The result of transmitted and received data at the LIN analyzer is shown in Figure 9.
Figure 9. Results at LIN Analyzer
In this figure, InFrame refers to “10 22 FF FF FF FF FF FF FF” where 10 is the frame ID and 22, FF, FF, FF, FF, FF, FF,
FF are the eight data bytes. Because the 'InFrame' in LIN slave is configured with only two bytes named as ‘InSig’ and
‘InArraySig’, the rest of the data bytes (3 to 8) are ignored by the slave. When the 'OutFrame' is received from the
analyzer as marked in this figure, the slave responds to the frame with the RGB LED status along with frame ID as “11 22
BB” where '11' is frame ID, '22' is the previous 'InFrame' data byte (command) and 'BB' is the RGB LED status (i.e., Green
LED is ON).
Note: If there is an error message such as “BUS STUCK HIGH” or “TX FRAME ERROR”, reset the baseboard (CY8CKIT042/44) and LIN analyzer.
www.cypress.com
Document No. 001-96999 Rev.*A
9
Basic LIN Slave Implementation in PSoC® 4
Example2 – Multiple-Instance LIN Slave Communication
Design
1
In this example, PSoC 4 acts as two LIN slave nodes; each node is connected to a different LIN network . PSoC 4
continuously scans the CapSense linear slider and then responds to LIN master1 and LIN master2 frames as follows:

Depending on the frame (Frame ID) received from LIN master1, slave1 (LINS_1) either saves the current CapSense linear
slider centroid position or sends the saved linear slider centroid value back to the master.

Depending on the frame (Frame ID) received from LIN master2, slave2 (LINS_2) either controls the RGB LED color per
the data that is available in the received frame or sends the RGB LED status to the master. Note that this is the same
functionality as the first example.
Figure 10 shows the PSoC Creator schematic design of the code example2.
Figure 10. Multiple LIN Slaves Design with PSoC 4
Note L1_NSLP, L2_NSLP are the output pins used to keep the LIN transceivers either in sleep mode or active mode.
1
Note * LIN slave nodes are connected to a LIN master forming a LIN network.
Design Considerations



This code example has been specifically designed for the CY8CKIT-042 PSoC 4 Pioneer Kit.
The maximum baud rate that LIN protocol supports is 20 kbps. The LIN Component has four different baud rates in the
configuration UI: 19.2 kbps, 10.4 kbps, 9.6 kbps, and 2.4 kbps.
Only two instances of LIN slaves are supported in PSoC 4.
www.cypress.com
Document No. 001-96999 Rev.*A
10
Basic LIN Slave Implementation in PSoC® 4
Hardware Setup
The hardware setup block diagram and connections are shown in Figure 11 and the detailed hardware connections are
explained below in detail.
Figure 11. Example2 Hardware Setup
CY8CKIT-042
(PSoC 4)
Arduino
Header
CY8CKIT-026
P4[0]
P4[1]
P0[0]
P0[4]
P0[5]
P0[1]
LIN1 RX
LIN1 TX
LIN1 NSLP
LIN2 RX
LIN2 TX
LIN2 NSLP
J3_10
J3_9
J14
LIN USB
LIN Analyzer1
USB
Computer
(LIN Analyzer1
Software)
LIN Analyzer2
USB
Computer
(LIN Analyzer2
Software)
J2_13
D0 (J4_1)
D1 (J4_2)
J2_15
J5
LIN USB
CapSense
Linear Slider
RGB LED
www.cypress.com
Document No. 001-96999 Rev.*A
11
Basic LIN Slave Implementation in PSoC® 4
Follow these instructions to set up the hardware:
1.
Connect the Arduino-compatible header pins (which are connected to the baseboard controller) to the appropriate LIN
transceiver through jumper wires as shown in Table 6.
Table 6. Pin Connection to CY8CKIT-026
2.
Arduino Header Pins
CY8CKIT-026 Pins
J3_10
J15_1 (LIN1_RX)
J3_9
J15_2 (LIN1_TX)
J2_13
J15_3 (LIN1_NSLP)
D0
J6_1 (LIN2_RX)
D1
J6_2 (LIN2_TX)
J2_15
J6_3 (LIN2_NSLP)
Short the two pins on the J16 and J7 jumpers.
Note: This is to provide a 12-V supply to the Silicon Engines LIN-USB analyzers; if any other analyzer is being used, then
follow the analyzer instructions on the power supply requirements and short the jumper only if it requires a 12-V supply.
3.
The baseboard can be powered using USB or from the Shield kit by selecting the jumper J20 as shown in Table 7. See
the CY8CKIT-026 user guide for more details.
Table 7. Powering Options with Jumper (J20)
J20 Connection
Power Option
Baseboard (CY8CKIT-042/44) Requirement
Short pin 2 and 3
Power baseboard using Shield
Kit with 5 V
Baseboard power selection jumper (J9 on
CY8CKIT-042/ 044) should be at 3.3 V (only if USB
is not connected to the baseboard).
Short pin 3 and 4
Power baseboard using Shield
Kit with 12 V
Baseboard power selection jumper (J9 on
CY8CKIT-042/ 044) should be at 3.3 V (only if USB
is not connected to the baseboard).
Note: If the baseboard is powered through USB and a 12-V supply is connected to the Shield Kit, then the position of the
power jumper selection (J20) is irrelevant.
4.
Plug in CY8CKIT-026 to CY8CKIT-042 through the Arduino connector.
5.
Connect the LIN analyzer1 to the J14 connector and LIN analyzer2 to J5 connector on the CY8CKIT-026 kit.
Warning: Be careful to not power up the Shield Kit with multiple supplies.
6.
If the LIN analyzers DO NOT provide 12 V to the VBAT pin, connect a 12-V supply to CY8CKIT-026 through the J11
power jack or the J12 screw terminal connector.
7.
If one or both LIN analyzers DO provide 12 V to VBAT pin, the Shield Kit can be powered from one of the analyzers. For
that option, either the J16 jumper (for LIN1 transceiver) or J7 jumper (LIN2 transceiver) should be placed. Be careful not
to power up the Shield Kit with multiple supplies.
www.cypress.com
Document No. 001-96999 Rev.*A
12
Basic LIN Slave Implementation in PSoC® 4
Components
Table 8 lists the PSoC Creator Components used in this example, as well as the hardware resources used by each.
Table 8. List of PSoC Creator Components
Component
Hardware Resources
LIN (2 instances)
2xSCBs
CapSense
CSD0
3 pins for LEDs
2 pins for LIN slave sleep functionality
Pin
5 pins for CapSense (part of the CapSense
Component)
1 pin for Cmod (part of the CapSense Component)
2 pins for LIN1 Tx/Rx (part of the LIN Component)
2 pins for LIN2 Tx/Rx (part of the LIN Component)
Parameter Settings
Figure 12 through Figure 17 show the parameter settings for each of the PSoC Creator LIN Components used in the code
example. Only the parameters that vary from their default values are shown.
LIN Component - 1 (LINS_1)
Figure 12 shows the General configuration tab for the first LIN slave (i.e., for LINS_1) Component. Note that the ‘Multiple
instance support’ checkbox is checked. Also note that the instance number is set to 1 because it is the first instance of the LIN
Component.
Figure 12. LIN Component General Tab Settings
www.cypress.com
Document No. 001-96999 Rev.*A
13
Basic LIN Slave Implementation in PSoC® 4
Figure 13 shows the Frames configuration tab for the LIN Component. Use this tab to add a new frame or delete an existing
frame from the LIN slave. Click the ‘Add’ button to add a new frame. For this example, there are two frames named “InFrame1”
and “OutFrame1” respectively as shown in Figure 13.


InFrame1: The frame ID value is 0x10, the direction of the frame is ‘Subscribe’ and the frame type is ‘Unconditional’.
OutFrame1: The frame ID value is 0x11, the direction of the frame is ‘Publish’ and the frame type is ‘Unconditional’.
Note: If the direction (publish/subscribe) is set as ‘Publish’, the slave responds to the master; if the direction is set as
‘subscribe’, the slave uses the received data for its application.
Figure 13. LIN Component Frames Tab Settings
Figure 14 shows the Signals configuration tab for the LIN Component. Click the ‘+’ button to add new signals and select the
signal properties such as the signal name, type, length and initial value. After that, place the signals to the corresponding
frames as shown the Figure 14.
For LIN v2.x, the Response_Error (1-bit) signal is present by default, which needs to be placed in any of the publish frames.
www.cypress.com
Document No. 001-96999 Rev.*A
14
Basic LIN Slave Implementation in PSoC® 4
Figure 14. LIN Component Signals Tab Settings
LIN Component – 2 (LINS_2):
Figure 15 shows the General configuration tab for the second LIN slave (i.e., for LINS_2) Component. Note that the ‘LIN 1.3
compatibility’ checkbox is selected, which makes the Component compatible with the LIN v1.3 specification. Make sure that
the ‘Multiple instance support’ checkbox is checked, followed by the instance number set as ‘2’ because it is the second
instance of the LIN Component.
Figure 15. LIN Component General Tab Settings
www.cypress.com
Document No. 001-96999 Rev.*A
15
Basic LIN Slave Implementation in PSoC® 4
Figure 16 shows the Frames configuration tab for the LIN Component. Use this tab to add a new frame or delete an existing
frame from the LIN slave. Click the ‘Add’ button to add a new frame. For this example, there are two frames named “InFrame2”
and “OutFrame2” respectively as shown in Figure 16.


InFrame2: The frame ID value is 0x12, the direction of the frame is ‘Subscribe’ and the frame type is ‘Unconditional’.
OutFrame2: The frame ID value is 0x13, the direction of the frame is ‘Publish’ and the frame type is ‘Unconditional’.
Figure 16. LIN Component Frames Tab Settings
Figure 17 shows the Signals configuration tab for the LIN Component. Click the ‘+’ button to add new signals and select the
signal properties such as Signal name, type, length and initial value by double-clicking on the corresponding signal. After that,
place the signals to the corresponding frame slot as shown the Figure 17.
Figure 17. LIN Component Signals Tab Settings
All other configuration settings are left at their default values.
www.cypress.com
Document No. 001-96999 Rev.*A
16
Basic LIN Slave Implementation in PSoC® 4
Design-Wide Resources
The pin assignments for this code example are shown in Figure 18.
Figure 18. Pin Assignments for PSoC 4200 Example
All other design-wide resources are left at their default values.
Operation
To test the project, a “Silicon Engines LIN-USB Converter – Model 9011” is used as the LIN analyzer; two such analyzers are
required for this project. Other LIN analyzers may alternately be used.
Do the following steps to complete the testing:




Make the necessary hardware connections as shown in Hardware Setup section on page 11
Program the hex file in to the baseboard (CY8CKIT-042) using PSoC Programmer or PSoC Creator.
Install the ‘SE9004 and 9011 LINUSB Message Center’ software (if a different analyzer is being used, install the
appropriate software) on your PC and connect the two LIN analyzers to different PCs through USB cables.
Verifying the LIN slave1 output:
a.
Open the LIN analyzer1 software and go to Configure LIN/USB, set the LIN Bus Baud Rate to 19200 bps, and then
select the LIN 2.0-2.1 Protocol checkbox as shown in Figure 7.
b.
If you are using any other analyzer, make sure that the checksum setting is selected as ‘enhanced checksum’
because LIN v2.1/2.2 specification supports only enhanced checksum (this option is not required in Silicon Engines
LIN-USB converter software).
c.
Add the message/frame in the analyzer software, which needs to be transmitted to the slave and send it through the
analyzer shown in Figure 8.
d.
Place your finger on the CapSense linear slider (on CY8CKIT-042) and send a frame with ID = 0x10 and 8 data
bytes. The first data byte should be 0x22. The other data bytes can be any value.
e. If a frame with ID = 0x10 with first data byte = 0x22 is received from LIN analyzer1, the slave stores the current
CapSense linear slider centroid position.
f.
If a frame with ID = 0x11 is received from the LIN analyzer1, the slave sends the stored CapSense linear slider
centroid position back to the analyzer.
www.cypress.com
Document No. 001-96999 Rev.*A
17
Basic LIN Slave Implementation in PSoC® 4
g.
The result of transmitted and received data at the LIN analyzer1 is shown in Figure 19.
Figure 19. Results at LIN Analyzer1
In the above figure, 'InFrame1' refers to “10 22 FF FF FF FF FF FF FF” where 10 is the frame ID and 22, FF, FF, FF, FF, FF,
FF, FF are the eight data bytes. Because 'InFrame1' in LIN1 slave is configured with only two bytes named ‘InSig1’ and
‘InArraySig1’, the rest of the data bytes (3 to 8) are ignored by the slave. After receiving this command, the slave stores the
current CapSense linear slider centroid position. When 'OutFrame1' is received from the analyzer as shown in the above
figure, the slave responds to the frame with the previously stored CapSense linear slider centroid position value along with
frame ID as 11 22 3E where '11' is frame ID, '22' is the previous 'InFrame1' data byte (command) and '3E' is the centroid
value.

Verifying the LIN slave2 output:
a.
Open the LIN analyzer2 software and go to Configure LIN/USB, set the LIN Bus Baud Rate to 19200 bps, and then
deselect the LIN 2.0-2.1 Protocol checkbox as shown in Figure 20.
Figure 20. LIN Analyzer2 Configuration
b.
If you are using any other analyzer, make sure that the checksum setting is selected as ‘classic checksum’ because
the LIN v1.3 specification supports only classic checksum (this option is not required in Silicon Engines LIN-USB
converter software).
www.cypress.com
Document No. 001-96999 Rev.*A
18
Basic LIN Slave Implementation in PSoC® 4
c.
Add the message/frame in the analyzer software which needs to be transmitted to the slave and send it through the
analyzer shown in Figure 8.
d.
If a frame with ID = 0x12 is received from the LIN analyzer2, the slave controls the RGB LED based on the received
data command from master, as provided in Table 9. Note that the frame must contain eight data bytes even though
the first data byte is the only one used by the slave. The other seven data bytes may be set to any value.
Table 9. Slave Response as per the Commands from Master
Command
e.
Slave Response
0x11
Turns on Red LED
0x22
Turns on Green LED
0x33
Turns on Blue LED
0x00
Turns off RGB LED
If a frame with ID = 0x13 is received from the LIN analyzer2, then the slave will send the RGB LED status back to the
master, as provided in Table 10. The message in this case only needs the message ID. No data bytes are required.
Table 10. RGB LED Status
RGB LED status
f.
Data byte
Red LED on
0Xaa
Green LED on
0xBB
Blue LED on
0xCC
RGB LED off
0xDD
The result of transmitted and received data at the LIN analyzer2 is shown in Figure 21.
Figure 21. Results at LIN Analyzer2
In the above figure, ‘InFrame2’ refers to “12 11 FF FF FF FF FF FF FF” where 12 is the frame ID and 11, FF, FF, FF, FF, FF,
FF, FF are the eight data bytes. Because ‘InFrame2’ in LIN slave2 is configured with only two bytes named ‘InSig2’ and
‘InArraySig2’, the rest of the data bytes (3 to 8) are ignored by the slave. When ‘OutFrame2’ is received from the analyzer as
marked in this figure, the slave responds to the frame with the RGB LED status along with frame ID as 13 11 AA where ‘13’ is
frame ID, ‘11’ is the previous ‘InFrame2’ data byte (command) and ‘AA’ is the RGB LED status (i.e., Red LED is ON).
Note: If there is an error message such as “BUS STUCK HIGH” or “TX FRAME ERROR”, reset the baseboard (CY8CKIT-042)
and LIN analyzer.
www.cypress.com
Document No. 001-96999 Rev.*A
19
Basic LIN Slave Implementation in PSoC® 4
Related Documents
Table 11 lists all relevant application notes, code examples, knowledge base articles, device datasheets, and Component
datasheets.
Table 11. Related Documents
PSoC Creator Component Datasheets
LIN
Implements the industry standard LIN v2.1/v2.2 and LIN v1.3 protocol
specifications
CapSense
Controls CapSense CSD block and detects change in capacitance in
applications such as touch sense buttons, sliders, touchpad, and proximity
detection.
Pins
Controls interface with physical I/O port pins
Device Documentation
PSoC 4 Datasheets
PSoC 4 Technical Reference Manuals
Development Kit (DVK) Documentation
PSoC 4 Kits
www.cypress.com
Document No. 001-96999 Rev.*A
20
Basic LIN Slave Implementation in PSoC® 4
Document History
®
Document Title: CE96999 - Basic LIN Slave Implementation in PSoC 4
Document Number: 001-96999
Revision
ECN
Orig. of
Change
Submission
Date
**
4774377
MVRE
05/13/2015
*A
5168074
MVRE
03/09/2016
Description of Change
New spec
Replaced CY8CKIT-017 with CY8CKIT-026
Updated project Operation section
Updated the latest Creator version details
www.cypress.com
Document No. 001-96999 Rev.*A
21
Basic LIN Slave Implementation in PSoC® 4
Worldwide Sales and Design Support
Cypress maintains a worldwide network of offices, solution centers, manufacturer’s representatives, and distributors. To find
the office closest to you, visit us at Cypress Locations.
PSoC® Solutions
Products
®
®
ARM Cortex Microcontrollers
cypress.com/arm
cypress.com/psoc
Automotive
cypress.com/automotive
PSoC 1 | PSoC 3 | PSoC 4 | PSoC 5LP
Clocks & Buffers
cypress.com/clocks
Cypress Developer Community
Interface
cypress.com/interface
Lighting & Power Control
cypress.com/powerpsoc
Memory
cypress.com/memory
PSoC
cypress.com/psoc
Touch Sensing
cypress.com/touch
USB Controllers
cypress.com/usb
Wireless/RF
cypress.com/wireless
Community | Forums | Blogs | Video | Training
Technical Support
cypress.com/support
PSoC is a registered trademark and PSoC Creator is a trademark of Cypress Semiconductor Corp. All other trademarks or registered trademarks
referenced herein are the property of their respective owners.
Cypress Semiconductor
198 Champion Court
San Jose, CA 951341709
Phone
Fax
Website
: 408-943-2600
: 408-943-4730
: www.cypress.com
© Cypress Semiconductor Corporation, 2015-2016. This document is the property of Cypress Semiconductor Corporation and its subsidiaries, including
Spansion LLC (“Cypress”). This document, including any software or firmware included or referenced in this document (“Software”), is owned by
Cypress under the intellectual property laws and treaties of the United States and other countries worldwide. Cypress reserves all rights under such
laws and treaties and does not, except as specifically stated in this paragraph, grant any license under its patents, copyrights, trademarks, or other
intellectual property rights. If the Software is not accompanied by a license agreement and you do not otherwise have a written agreement with
Cypress governing the use of the Software, then Cypress hereby grants you under its copyright rights in the Software, a personal, non-exclusive,
nontransferable license (without the right to sublicense) (a) for Software provided in source code form, to modify and reproduce the Software solely for
use with Cypress hardware products, only internally within your organization, and (b) to distribute the Software in binary code form externally to end
users (either directly or indirectly through resellers and distributors), solely for use on Cypress hardware product units. Cypress also grants you a
personal, non-exclusive, nontransferable, license (without the right to sublicense) under those claims of Cypress’s patents that are infringed by the
Software (as provided by Cypress, unmodified) to make, use, distribute, and import the Software solely to the minimum extent that is necessary for you
to exercise your rights under the copyright license granted in the previous sentence. Any other use, reproduction, modification, translation, or
compilation of the Software is prohibited.
CYPRESS MAKES NO WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, WITH REGARD TO THIS DOCUMENT OR ANY SOFTWARE,
INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE.
Cypress reserves the right to make changes to this document without further notice. Cypress does not assume any liability arising out of the application
or use of any product or circuit described in this document. Any information provided in this document, including any sample design information or
programming code, is provided only for reference purposes. It is the responsibility of the user of this document to properly design, program, and test
the functionality and safety of any application made of this information and any resulting product. Cypress products are not designed, intended, or
authorized for use as critical components in systems designed or intended for the operation of weapons, weapons systems, nuclear installations, lifesupport devices or systems, other medical devices or systems (including resuscitation equipment and surgical implants), pollution control or hazardous
substances management, or other uses where the failure of the device or system could cause personal injury, death, or property damage (“Unintended
Uses”). A critical component is any component of a device or system whose failure to perform can be reasonably expected to cause the failure of the
device or system, or to affect its safety or effectiveness. Cypress is not liable, in whole or in part, and Company shall and hereby does release Cypress
from any claim, damage, or other liability arising from or related to all Unintended Uses of Cypress products. Company shall indemnify and hold
Cypress harmless from and against all claims, costs, damages, and other liabilities, including claims for personal injury or death, arising from or related
to any Unintended Uses of Cypress products.
Cypress, the Cypress logo, Spansion, the Spansion logo, and combinations thereof, PSoC, CapSense, EZ-USB, F-RAM, and Traveo are trademarks or
registered trademarks of Cypress in the United States and other countries. For a more complete list of Cypress trademarks, visit cypress.com. Other
names and brands may be claimed as property of their respective owners.
www.cypress.com
Document No. 001-96999 Rev.*A
22