S32K144EVB快速入门

上次修改时间: 2019-05-09 16:43:00支持 S32K144-Q100通用评估板

本文档内容

  • 1

    开箱即用
  • 2

    获取软件
  • 3

    连接
  • 4

    构建、运行
  • 5

    调试

1. 开箱即用

适用于S32K144EVB评估板(REV B)

1.1 评估板介绍

S32K144-Q100 Callouts

S32K144-Q100 Callouts

1.2 接头/引脚排列介绍

S32K144-Q100 Pins

S32K144-Q100 Pins

1.3 HMI映射介绍

组件 S32K144
LED红灯 PTD15 (FTM0 CH0)
LED蓝灯 PTD0 (FTM0 CH2)
LED绿灯 PTD16 (FTM0 CH1)
电位计 PTC14 (ADC0_SE12)
SW2 PTC12
SW3 PTC13
OpenSDA UART Tx PTC7 (LPUART1_TX)
OpenSDA UART Rx PTC6 (LPUART1_RX)
CAN Tx PTE5 (CAN0_TX)
CAN Rx PTE4 (CAN0_RX)
LIN Tx PTD7 (LPUART2_TX)
LIN Rx PTD6 (LPUART2_RX)
SBC_SCK PTB14 (LPSPI1_SCK)
SBC_MISO PTB15 (LPSPI1_SIN)
SBC_MOSI PTB16 (LPSPI1_SOUT)
SBC_CS PTB17 (LPSPI1_PCS3)

2. 获取软件

2.1 集成开发环境(IDE)

如使用S32 Design Studio for Arm v1.3,则S32K144EVB性能更佳。

下载S32 Design Studio IDE

2.2 运行时调试工具

S32K144EVB评估板采用FreeMASTER工具进行运行时调试效果更好。也可以下载并安装FreeMASTER通信驱动程序(源代码已经包含在示例项目中)。

下载FreeMASTER工具

3. 连接

3.1 在S32K144EVB评估板上设置跳线

跳线 设置 说明
J104 1-2 将信号复位到OpenSDA,用于进入OpenSDA引导加载程序模式。
2-3 (默认) 将信号直接复位到MCU,用于复位S32K144。
J107 1-2 S32K144由12V电源供电。
2-3 (默认) S32K144由USB micro连接器供电。
J109/J108 1-2 (默认) 拆下CAN终端电阻。

观看视频或遵循下面的分步指南进行操作。

3.2 连接12V电源

S32K144EVB评估板由USB或外接12V电源供电。默认情况下,USB电源通过J107跳线(2-3闭合)启用。

将USB线的一端连接到PC,并将USB线(microUSB)的另一端连接至S32K144EVB上的J7mini-B端口。

如果需要,允许PC自动配置USB驱动程序。使用OpenSDA通过J7进行调试。

板被识别出来后,它应在PC中显示为名为EVB-S32K144的大容量存储设备。

S32K144EVB_GS-3.2a-RECOGNIZED

S32K144EVB评估板预装了一个软件,其中红色、蓝色和绿色LED将以不同的速率切换:

LED Toggle

LED Toggle

4. 构建、运行

开始试用!

4.1 与运行时调试器通信

Launch FREEMASTER

Launch FREEMASTER
  • 手动= Project → Options → Comm

    S32K144EVB_GS-4.1b-MANUALLY
  • 自动= Tools → Connection Wizard

    S32K144EVB_GS-4.1c-AUTOMATICALLY

在“项目和教程”部分了解OpenSDA的详情。

4.2 FreeMASTER JumpStart项目已加载

Jumpstart Loader

Jumpstart Loader

Jumpstart Project

Jumpstart Project

4.3 将项目导入IDE并进行调试

观看视频,了解如何创建新项目并加载代码示例,使LDE闪烁。视频将介绍如何构建和调试项目。您还可以使用分步指南。


启动S32 Design Studio for Arm,选择一个默认工作区或指定一个新工作区,然后点击OK (确定)。

S32K144EVB_GS-4.4a-PROJECT-IDE

要创建新项目,选择File>New>Project(文件>新建>项目)

Project IDE

Project IDE

选择项目名称,然后选择项目类型,再点击Next (下一步)。

Project IDE

Project IDE

选择Debugger(调试器)和Library(库),然后点击Finish(完成)。

Project IDE

Project IDE

4.4 设置调试配置

选择OpenSDA,用其进行调试。

选择项目,点击Debug Configuration(调试配置)。

Debug Configuration

Debug Configuration

在“GDB PEMicro” Interface Debugging(接口调试)下选择调试配置,点击Debugger(调试器)选项卡。

Debug Configuration

Debug Configuration

在Interface(接口)中选择OpenSDA。如果板已连接,则将显示在Port(端口)中。点击Apply(应用),然后点击Debug(调试),结束操作。

Debug Configuration

Debug Configuration

5. 调试

5.1 调试基础知识

步进,运行,暂停,恢复

进入(F5)

S32K144EVB_GS-PT2a-DEBUG-BASICS

跳过(F6)

S32K144EVB_GS-PT2b-DEBUG-BASICS

返回(F7)

S32K144EVB_GS-PT2c-DEBUG-BASICS

运行

S32K144EVB_GS-PT2d-DEBUG-BASICS

暂停

S32K144EVB_GS-PT2e-DEBUG-BASICS

恢复(F8)

S32K144EVB_GS-PT2f-DEBUG-BASICS

5.2 查看变量

点击Variables (变量)选项卡。要输入不同的值,点击Value字段。

S32K144EVB_GS-PT2g-DEBUG-BASIC

5.3 查看和更改寄存器

要查看CPU寄存器,点击Registers(寄存器)选项卡。要输入不同的值,点击Value字段。

S32K144EVB_GS-PT2h-DEBUG-BASICS

在EmbSys Registers选项卡中查看外设寄存器:

Debug Basics

Debug Basics

5.4 查看和更改存储器

选择“Add Memory Monitor”(添加存储器监测仪),然后选择基址:40000000

S32K144EVB_GS-PT2j-DEBUG-BASICSS32K144EVB_GS-PT2k-DEBUG-BASICS

5.5 查看存储器

S32K144EVB_GS-PT2l-DEBUG-BASICS

5.6 断点

要添加断点,指向并点击目标位置。

Debug Basics

Debug Basics

5.7 重置和终止调试会话

要重置程序计数器,选择Terminate (Ctrl+F2)。

S32K144EVB_GS-PT2n-DEBUG-BASICS

5.8 使用FreeMASTER进行调试

只需进行一次调试配置。后续启动调试器无需这些步骤。

有3种选择来启动调试:

  • 如果Debug Configuration(调试配置)仍打开,点击右下方的Debug(调试)。
  • 选择Run → Debug(运行→调试)(或按F11) S32K144EVB_GS-5.1a-DEBUG
  • 选择bug图标,选择…_debug.elf目标 S32K144EVB_GS-5.1b-DEBUG

在“项目和教程”部分了解调试基础知识的详情。

5.9 可选——P&E调试配置

  1. 选择Debug Configurations(调试配置):

    Debug

    Debug
  2. 创建新的P&E启动配置:

    点击创建新的P&E启动,然后点击Debugger(调试器)。

    Debug

    Debug
  3. 选择S32K144,然后点击Apply(应用),对应用进行调试。

    Select Potentiometer

    Select Potentiometer

FreeMASTER

FreeMASTER

要显示主项目面板,前往Project → View → Project Tree(项目→视图→项目树)

S32K144EVB_GS-PT1a-JUMPSTART

要显示实时示波器图形示例,选择Potentiometer(电位计)或Touch Sense Electrodes(触摸传感电极):

  • 来自电位计的模拟数值:

    Select Potentiometer

    Select Potentiometer
  • 来自触摸传感电极的响应:

    Touch Sense Electrodes Responses

    Touch Sense Electrodes Responses

OpenSDA

OpenSDA

OpenSDA是一种开放标准串行调试适配器,它桥接USB主机和嵌入式目标处理器之间的串行调试通信。OpenSDA软件包括驻留在闪存中的USB大容量存储设备(MSD)引导加载程序和一系列OpenSDA应用。

S32K144EVB预装了MSD闪存编程器OpenSDA应用。

按照说明运行OpenSDA引导加载程序,更新或更改安装的OpenSDA应用。

进入OpenSDA引导加载程序模式 加载OpenSDA应用
  1. 如已连接USB线,则将其拔下。
  2. J104设置到1-2位置。
  3. 按住Reset(SW5)
  4. 将USB线(不含)分别连接到USB主机和OpenSDA USB连接器(标记为“SDA”)。
  5. 释放Reset

主机文件系统中应能够看到可删除的驱动,卷标为BOOTLOADER。现在处于OpenSDA引导加载程序模式。

  1. 当在OpenSDA引导加载程序模式时,双击引导加载程序驱动程序中的SDA_INFO.HTML。通过Web浏览器可打开包含已安装应用名称和版本的OpenSDA主页。还可以从SDA_INFO.HTML直接读取该信息的文本。
  2. 找到OpenSDA应用。
  3. 复制粘贴MSD闪存编程器应用或将其拖放到引导加载程序驱动程序
  4. 拔下USB线并再次将其连接。新的OpenSDA应用现在可运行,并且S32K144 EVB驱动器在主机文件系统中可见。

现在运行最新版MSD闪存编程器。使用相同的流程,加载其他OpenSDA应用。

MSD闪存编程器是一个复合USB应用,它提供了一个虚拟串行端口,可轻松便捷地将应用烧写到KEA MCU中。它模拟FAT16文件系统,在主机文件系统中显示为卷标为EVB-S32K144的可移动驱动器。复制到驱动器的原始二进制文件和摩托罗拉S-record文件被直接烧写到KEA的闪存中并自动执行。虚拟串行端口枚举为可用标准串行终端应用打开的标准串行端口设备。

使用MSD闪存编程器 使用虚拟串行端口
  1. 找到项目的.srec文件,它位于S32DS项目的Debug文件夹下。
  2. 复制粘贴一个.srec文件或将其拖放到EVB-S32K144驱动器。

新应用现在在S32K144EVB上运行。从MSD闪存编程器的v1.03开始,可以重复进行编程,无需在重新编程之前拔下USB线并重新连接。

通过USB拖动S32K144和S32K144EVB板的一个.srec代码,将预加载的代码示例重新烧写到另一个示例。

  1. 确定分配给EVB-S32K144虚拟串行端口的符号名称。在Windows中,打开“设备管理器”,寻找名为PEMicro/Freescale–CDC Serial Port的COM端口。
  2. 打开选择的串行模拟程序。
  3. 随时按下和释放Reset (SW0),重启示例应用。重置嵌入式应用不会影响虚拟串行端口到终端程序的连接。
  4. 可同时对串行端口执行调试和通信操作。无需停止调试。

Processor Expert

Processor Expert

观看视频,了解如何创建新项目并加载代码示例,使LED闪烁。视频将介绍如何构建和调试项目。您还可以使用分步指南。

RTD示例

借助这些实用示例,开启您的RTD之旅吧。我们收集了一些常见的用例,助您获取灵感,推动您向前迈进。

RTD示例

ADC

C:\NXP\S32DS.3.6.1\S32DS\software\PlatformSDK_S32K1_S32M24\RTD\Adc_TS_T40D2M30I0R0\examples\S32DS\S32K1\Adc_example_S32K144

ADC PDB IP

C:\NXP\S32DS.3.6.1\S32DS\software\PlatformSDK_S32K1_S32M24\RTD\Adc_TS_T40D2M30I0R0\examples\S32DS\S32K1\Adc_Pdb_Ip_example_S32K144

CAN

C:\NXP\S32DS.3.6.1\S32DS\software\PlatformSDK_S32K1_S32M24\RTD\Can_43_FLEXCAN_TS_T40D2M30I0R0\examples\S32DS\S32K1\Can_example_S32K144

FLEX CAN IP

C:\NXP\S32DS.3.6.1\S32DS\software\PlatformSDK_S32K1_S32M24\RTD\Can_43_FLEXCAN_TS_T40D2M30I0R0\examples\S32DS\S32K1\FlexCAN_Ip_example_S32K144

CRC

C:\NXP\S32DS.3.6.1\S32DS\software\PlatformSDK_S32K1_S32M24\RTD\Crc_TS_T40D2M30I0R0\examples\S32DS\S32K1\Crc_Example_S32K144

CRC IP

C:\NXP\S32DS.3.6.1\S32DS\software\PlatformSDK_S32K1_S32M24\RTD\Crc_TS_T40D2M30I0R0\examples\S32DS\S32K1\Crc_Ip_Example_S32K144

DIO

C:\NXP\S32DS.3.6.1\S32DS\software\PlatformSDK_S32K1_S32M24\RTD\Dio_TS_T40D2M30I0R0\examples\S32DS\S32K1\Dio_Example_S32K144

GPIO DIO IP

C:\NXP\S32DS.3.6.1\S32DS\software\PlatformSDK_S32K1_S32M24\RTD\Dio_TS_T40D2M30I0R0\examples\S32DS\S32K1\Gpio_Dio_Ip_Example_S32K144

EEP

C:\NXP\S32DS.3.6.1\S32DS\software\PlatformSDK_S32K1_S32M24\RTD\Eep_TS_T40D2M30I0R0\examples\S32DS\S32K1\Eep_Example_S32K144

FTFC EEP IP

C:\NXP\S32DS.3.6.1\S32DS\software\PlatformSDK_S32K1_S32M24\RTD\Eep_TS_T40D2M30I0R0\examples\S32DS\S32K1\Ftfc_Eep_Ip_Example_S32K144

FEE

C:\NXP\S32DS.3.6.1\S32DS\software\PlatformSDK_S32K1_S32M24\RTD\Fee_TS_T40D2M30I0R0\examples\S32DS\S32K1\Fee_Example_S32K144

FLS

C:\NXP\S32DS.3.6.1\S32DS\software\PlatformSDK_S32K1_S32M24\RTD\Fls_TS_T40D2M30I0R0\examples\S32DS\S32K1\Fls_Example_S32K144

FTFC IP

C:\NXP\S32DS.3.6.1\S32DS\software\PlatformSDK_S32K1_S32M24\RTD\Fls_TS_T40D2M30I0R0\examples\S32DS\S32K1\Ftfc_Ip_Example_S32K144

FTM GPT

C:\NXP\S32DS.3.6.1\S32DS\software\PlatformSDK_S32K1_S32M24\RTD\Gpt_TS_T40D2M30I0R0\examples\S32DS\S32K1\Ftm_Gpt_Example_S32K144

GPT

C:\NXP\S32DS.3.6.1\S32DS\software\PlatformSDK_S32K1_S32M24\RTD\Gpt_TS_T40D2M30I0R0\examples\S32DS\S32K1\Gpt_example_S32K144

FPIT GPT

C:\NXP\S32DS.3.6.1\S32DS\software\PlatformSDK_S32K1_S32M24\RTD\Gpt_TS_T40D2M30I0R0\examples\S32DS\S32K1\Lpit_Gpt_Example_S32K144

I²C

C:\NXP\S32DS.3.6.1\S32DS\software\PlatformSDK_S32K1_S32M24\RTD\I2c_TS_T40D2M30I0R0\examples\S32DS\S32K1\I2c_Example_S32K144

I²C IP

C:\NXP\S32DS.3.6.1\S32DS\software\PlatformSDK_S32K1_S32M24\RTD\I2c_TS_T40D2M30I0R0\examples\S32DS\S32K1\I2c_Ip_Example_S32K144

I²S leader

C:\NXP\S32DS.3.6.1\S32DS\software\PlatformSDK_S32K1_S32M24\RTD\I2s_TS_T40D2M30I0R0\examples\S32DS\S32K1\I2s_Flexio_to_Flexio_Example_Master_S32K144

I²S follower

C:\NXP\S32DS.3.6.1\S32DS\software\PlatformSDK_S32K1_S32M24\RTD\I2s_TS_T40D2M30I0R0\examples\S32DS\S32K1\I2s_Flexio_to_Flexio_Example_Slave_S32K144

I²S IP leader

C:\NXP\S32DS.3.6.1\S32DS\software\PlatformSDK_S32K1_S32M24\RTD\I2s_TS_T40D2M30I0R0\examples\S32DS\S32K1\I2s_Flexio_to_Flexio_Ip_example_Master_S32K144

I²S IP follower

C:\NXP\S32DS.3.6.1\S32DS\software\PlatformSDK_S32K1_S32M24\RTD\I2s_TS_T40D2M30I0R0\examples\S32DS\S32K1\I2s_Flexio_to_Flexio_Ip_example_Slave_S32K144

FTM ICU IP

C:\NXP\S32DS.3.6.1\S32DS\software\PlatformSDK_S32K1_S32M24\RTD\Icu_TS_T40D2M30I0R0\examples\S32DS\S32K1\Ftm_Icu_Ip_BlinkLed_S32K144

ICU

C:\NXP\S32DS.3.6.1\S32DS\software\PlatformSDK_S32K1_S32M24\RTD\Icu_TS_T40D2M30I0R0\examples\S32DS\S32K1\Icu_BlinkLed_S32K144

PORT CI ICU IP

C:\NXP\S32DS.3.6.1\S32DS\software\PlatformSDK_S32K1_S32M24\RTD\Icu_TS_T40D2M30I0R0\examples\S32DS\S32K1\Port_Ci_Icu_Ip_BlinkLed_S32K144

LIN

C:\NXP\S32DS.3.6.1\S32DS\software\PlatformSDK_S32K1_S32M24\RTD\Lin_43_LPUART_FLEXIO_TS_T40D2M30I0R0\examples\S32DS\S32K1\Lin_Flexio_MasterFrameTransfer_S32K144

LIN IP

C:\NXP\S32DS.3.6.1\S32DS\software\PlatformSDK_S32K1_S32M24\RTD\Lin_43_LPUART_FLEXIO_TS_T40D2M30I0R0\examples\S32DS\S32K1\Lin_Ip_FrameTransfer_S32K144

LIN LPUART

C:\NXP\S32DS.3.6.1\S32DS\software\PlatformSDK_S32K1_S32M24\RTD\Lin_43_LPUART_FLEXIO_TS_T40D2M30I0R0\examples\S32DS\S32K1\Lin_Lpuart_MasterFrameTransfer_S32K144

DMA IP

C:\NXP\S32DS.3.6.1\S32DS\software\PlatformSDK_S32K1_S32M24\RTD\Mcl_TS_T40D2M30I0R0\examples\S32DS\S32K1\Dma_Ip_DmaTransfer_S32K144

MCL DMA

C:\NXP\S32DS.3.6.1\S32DS\software\PlatformSDK_S32K1_S32M24\RTD\Mcl_TS_T40D2M30I0R0\examples\S32DS\S32K1\Mcl_DmaTransfer_S32K144

CLOCK IP

C:\NXP\S32DS.3.6.1\S32DS\software\PlatformSDK_S32K1_S32M24\RTD\Mcu_TS_T40D2M30I0R0\examples\S32DS\S32K1\Clock_Ip_Example_S32K144

MCU

C:\NXP\S32DS.3.6.1\S32DS\software\PlatformSDK_S32K1_S32M24\RTD\Mcu_TS_T40D2M30I0R0\examples\S32DS\S32K1\Mcu_Example_S32K14

POWER IP

C:\NXP\S32DS.3.6.1\S32DS\software\PlatformSDK_S32K1_S32M24\RTD\Mcu_TS_T40D2M30I0R0\examples\S32DS\S32K1\Power_Ip_Example_S32K144

FTM OCU IP

C:\NXP\S32DS.3.6.1\S32DS\software\PlatformSDK_S32K1_S32M24\RTD\Ocu_TS_T40D2M30I0R0\examples\S32DS\S32K1\Ftm_Ocu_Ip_Example_S32K144

OCU

C:\NXP\S32DS.3.6.1\S32DS\software\PlatformSDK_S32K1_S32M24\RTD\Ocu_TS_T40D2M30I0R0\examples\S32DS\S32K1\Ocu_Example_S32K144

MPU IP

C:\NXP\S32DS.3.6.1\S32DS\software\PlatformSDK_S32K1_S32M24\RTD\Platform_TS_T40D2M30I0R0\examples\S32DS\S32K1\Mpu_Ip_Example_S32K144

PLATFORM MPU HLD

C:\NXP\S32DS.3.6.1\S32DS\software\PlatformSDK_S32K1_S32M24\RTD\Platform_TS_T40D2M30I0R0\examples\S32DS\S32K1\Platform_Mpu_Hld_Example_S32K144

PORT CI PORT IP

C:\NXP\S32DS.3.6.1\S32DS\software\PlatformSDK_S32K1_S32M24\RTD\Port_TS_T40D2M30I0R0\examples\S32DS\S32K1\Port_Ci_Port_Ip_Example_S32K144

PORT

C:\NXP\S32DS.3.6.1\S32DS\software\PlatformSDK_S32K1_S32M24\RTD\Port_TS_T40D2M30I0R0\examples\S32DS\S32K1\Port_Example_S32K144

FTM PWM IP

C:\NXP\S32DS.3.6.1\S32DS\software\PlatformSDK_S32K1_S32M24\RTD\Pwm_TS_T40D2M30I0R0\examples\S32DS\S32K1\Ftm_Pwm_Ip_Example_S32K144

PWM

C:\NXP\S32DS.3.6.1\S32DS\software\PlatformSDK_S32K1_S32M24\RTD\Pwm_TS_T40D2M30I0R0\examples\S32DS\S32K1\Pwm_example_S32K144

FTM QDEC IP

C:\NXP\S32DS.3.6.1\S32DS\software\PlatformSDK_S32K1_S32M24\RTD\Qdec_TS_T40D2M30I0R0\examples\S32DS\S32K1\Ftm_Qdec_Ip_Example_S32K144

QDEC

C:\NXP\S32DS.3.6.1\S32DS\software\PlatformSDK_S32K1_S32M24\RTD\Qdec_TS_T40D2M30I0R0\examples\S32DS\S32K1\Qdec_Example_S32K144

RM DMAMUX

C:\NXP\S32DS.3.6.1\S32DS\software\PlatformSDK_S32K1_S32M24\RTD\Rm_TS_T40D2M30I0R0\examples\S32DS\S32K1\Rm_DMAMUX_Example_S32K144

LPSPI

C:\NXP\S32DS.3.6.1\S32DS\software\PlatformSDK_S32K1_S32M24\RTD\Spi_TS_T40D2M30I0R0\examples\S32DS\S32K1\Lpspi_Flexio_Ip_Transfer_S32K144

LPSPI half-duplex

C:\NXP\S32DS.3.6.1\S32DS\software\PlatformSDK_S32K1_S32M24\RTD\Spi_TS_T40D2M30I0R0\examples\S32DS\S32K1\Lpspi_Ip_HalfDuplexTransfer_S32K144

SPI half-duplex

C:\NXP\S32DS.3.6.1\S32DS\software\PlatformSDK_S32K1_S32M24\RTD\Spi_TS_T40D2M30I0R0\examples\S32DS\S32K1\Spi_HalfDuplexTransfer_S32K144

SPI

C:\NXP\S32DS.3.6.1\S32DS\software\PlatformSDK_S32K1_S32M24\RTD\Spi_TS_T40D2M30I0R0\examples\S32DS\S32K1\Spi_Transfer_S32K144

LPUART

C:\NXP\S32DS.3.6.1\S32DS\software\PlatformSDK_S32K1_S32M24\RTD\Uart_TS_T40D2M30I0R0\examples\S32DS\S32K1\LpuartFlexio_Uart_Ip_Example_S32K144

UART

C:\NXP\S32DS.3.6.1\S32DS\software\PlatformSDK_S32K1_S32M24\RTD\Uart_TS_T40D2M30I0R0\examples\S32DS\S32K1\Uart_Example_S32K144

WDOG

C:\NXP\S32DS.3.6.1\S32DS\software\PlatformSDK_S32K1_S32M24\RTD\Wdg_TS_T40D2M30I0R0\examples\S32DS\S32K1\Wdg_Example_S32K144

WDOG EWM IP

C:\NXP\S32DS.3.6.1\S32DS\software\PlatformSDK_S32K1_S32M24\RTD\Wdg_TS_T40D2M30I0R0\examples\S32DS\S32K1\Wdog_Ewm_Ip_Example_S32K144

支持

论坛

在恩智浦技术社区与其他工程师交流,获取如何使用S32K144EVB进行设计的专业建议。