S32 SDK
LIN SLAVE

Example that shows the usage of the LIN stack in slave mode

Application description


This example demonstrates the LIN communication between S32K148 EVB Master and Slave using unconditional frames.

  • The Master SeatECU is in NormalTable schedule table and it uses the LIN frame Motor1State_Cycl to receive temperature signal Motor1Temp from Slave Motor1 and send selection signal Motor1Selection to Slave Motor1 by frame Motor1Control.
  • If value of temperature signal is higher than MOTOR1_OVER_TEMP value, Master SeatECU will send STOP command through Motor1Selection signal to stop motor.
  • If value of temperature signal is in range from MOTOR1_MAX_TEMP value to MOTOR1_OVER_TEMP value, master SeatECU will send DECREASE MOTOR SPEED command through Motor1Selection signal to reduce motor speed.
  • If value of temperature signal is lower than MOTOR1_MAX_TEMP value, master will send INCREASE MOTOR SPEED command through Motor1Selection signal to increase motor speed.
  • When users press button SW2 on the Master board, the Master SeatECU switches its schedule table to go-to-sleep table. So the Slave and Master enter sleep mode, RGB LEDS are off.
  • When LIN cluster is in sleep mode, users press button SW3 on the Master board, the Master board sends a wakeup signal to wakeup slave nodes, then switches its table to NormalTable.

Prerequisites


The run the example you will need to have the following items:

  • 1 S32K148 board
  • 1 Power Adapter 12V
  • 4 Dupont male to male cable
  • 1 Personal Computer
  • 1 Jlink Lite Debugger (optional, users can use Open SDA)

Boards supported


The following boards are supported by this application:

  • S32K148EVB-Q100
  • S32K148-MB

Hardware Wiring


The following connections must be done to for this example application to work:

PIN FUNCTION S32K148EVB-Q100 S32K148-MB
BUTTON 2 (PTC13) BTN1 - wired on the board BTN3 - wired on the board
BUTTON 1 (PTC12) BTN0 - wired on the board BTN2 - wired on the board
RED_LED (PTD15) RGB_RED - wired on the board J12.17 - J11.31
GREEN_LED (PTD16) RGB_GREEN - wired on the board J12.16 - J11.30
BLUE_LED (PTD16) RGB_GREEN - wired on the board J12.31 - J11.29
GND (GND) J3-11 - Master GND J6 - Master GND
LIN (*) J11-1 - Master LIN J48.4 - Master LIN

(*) Those lines must be modulated using a transceiver, if it is not specified the boards already include the LIN transceiver

How to run


1. Importing the project into the workspace

After opening S32 Design Studio, go to File -> New S32DS Project From... and select lin_slave_s32k148. Then click on Finish.
The project should now be copied into you current workspace.

2. Generating the Processor Expert configuration

First go to Project Explorer View in S32 DS and select the current project(lin_slave_s32k148). Then go to Project and click on Generate Processor Expert Code
Wait for the code generation to be completed before continuing to the next step.

3. Building the project

Select the configuration to be built FLASH (Debug_FLASH) or RAM (Debug_RAM) by left clicking on the downward arrow corresponding to the build button(. Wait for the build action to be completed before continuing to the next step.

4. Running the project

Go to Run and select Debug Configurations. There will be four debug configurations for this project:

Configuration Name Description
lin_slave_s32k148 Debug_RAM Jlink Debug the RAM configuration using Segger Jlink debuggers
lin_slave_s32k148 Debug_FLASH Jlink Debug the FLASH configuration using Segger Jlink debuggers
lin_slave_s32k148 Debug_RAM PEMicro Debug the RAM configuration using PEMicro debuggers
lin_slave_s32k148 Debug_FLASH PEMicro Debug the FLASH configuration using PEMicro debuggers


Select the desired debug configuration and click on Launch. Now the perspective will change to the Debug Perspective.
Use the controls to control the program flow.

Note
For more detailed information related to S32 Design Studio usage please consult the available documentation.