FRDM-A-MOTABS2板快速入门

上次修改时间: Jul 17, 2026 new 支持 FRDM-A-MOTABS2, SB0400, 防抱死制动系统(ABS), 两轮车

本文档内容

  • 1

    开箱即用
  • 2

    获取硬件
  • 3

    安装软件
  • 4

    配置硬件

1. 开箱即用

恩智浦的模拟产品开发板提供了一个易于使用的恩智浦产品评估平台。这些开发板支持各种模拟、混合信号和电源解决方案。它们采用成熟的高容量技术,整合了单片集成电路(IC)及系统级封装(SiP)器件。恩智浦产品电池寿命长,外型小巧,组件数量少,成本低,性能高,帮助您打造先进的系统。

本指南将指导您完成设置和使用FRDM-A-MOTABS2板的过程。

1.1 套件内含物

FRDM-A-MOTABS2套件内含物包括:

  • FRDM-A-MOTABS2板
  • 12V DC、5A电源,配有适配器

1.2 其他硬件

除了套件内含物外,使用此板时,还需要使用以下硬件:

1.3 软件

在使用该评估板之前,需要先安装软件。FRDM-A-MOTABS2评估板的信息页面上提供了所有列出的软件。

2. 获取硬件

2.1 板特性

FRDM-A-MOTABS2套件包含以下组件:

  • 面向SB04防抱死制动系统(ABS)芯片的评估板
  • 紧凑型
  • FRDM shield扩展板,用于连接恩智浦微控制器评估板

2.2 板说明

FRDM‑A-MOTABS2上的跳线块提供了一种配置方式,使该板能够搭配其他MCU使用。跳线J16 (DOSV)可根据所用MCU的要求,在3.3V和5.0V之间进行选择。需确保将跳线J16设置为正确的电压(对于S32K144和KEAZ128,将DOSV设置为5V)。

2.3 板组件

下图展示了FRDM-A-MOTABS2板的整体布局。

Figure 1. FRDM-A-MOTABS2 Board

3. 安装软件

S32 Design Studio是一款基于恩智浦软件开发套件(SDK)构建的软件驱动工具。本节将介绍如何安装S32 Design Studio,并利用它进行应用程序开发。

3.1 安装S32 Design Studio

以下步骤说明了如何获取并安装最新版本的S32 Design Studio以及本指南中所列的受支持ABS控制器型号。

  1. 从恩智浦官网获取最新的S32 Design Studio安装程序
  2. 运行可执行文件并按照屏幕上的指示操作

对于S32 Design Studio,SDK库随IDE一起提供,无需手动添加或链接。

3.2 获取软件驱动程序与示例项目

以下步骤介绍了如何获取最新版本的软件驱动和示例项目。

  1. 从链接下载包含驱动和示例项目的ZIP文件
  2. 解压下载的文件,并查看表1中列出的文件夹内容
文件夹名称 文件夹内容
S32DS_Examples 适用于S32 Design Studio 1.2及更高版本的示例项目文件夹。
ABS_S32K144_BM14 该示例展示了如何使用ABS控制器软件驱动程序来监测ABS控制器的状态。示例内容包括读取测量值和状态信息,以及执行清除故障等操作,以确保驱动程序正常运行。

本示例项目旨在展示如何为泵电机预驱动器实现脉宽调制(PWM)。

该项目演示了两种方式:

  1. 串行外设接口(SPI)控制:泵电机预驱动器的输出状态由SPI命令驱动(该方案的优势在于无需额外的MCU引脚即可直接控制泵电机预驱动器)
  2. 定时器生成PWM:PWM信号由MCU侧的定时器/PWM模块(TPM)外设生成(该方案占用CPU时间更少)
本示例项目演示了如何使用轮速传感器接口。该示例不涉及最终轮速的计算,计算轮速需要额外的硬件设备,例如车轮。该示例侧重于统计给定时间段内的边沿数量。
Programmer_Guide 此文件夹包含本软件驱动程序的详细API文档。

3.3 将示例项目导入S32 Design Studio

以下步骤展示如何将下载的zip文件中的示例导入S32 Design Studio。

  1. 在S32 Design Studio菜单栏中,点击“文件”→“导入”,在弹出窗口中选择“常规”→“现有项目到工作区”,然后选择“下一步”,如图2所示
  2. Figure 2. Importing an Example Project (a)

    Figure 2. Importing an Example Project (a)
  3. 点击“浏览”,查找解压后的示例文件所在的文件夹,找到ABS_S32K144_BM14文件夹,选择要导入的项目,如图3所示,然后选择“确定”
  4. Figure 3. Importing an Example Project (b)

    Figure 3. Importing an Example Project (b)
  5. 在“选择根目录”框中加载了项目后,勾选“将项目复制到工作区”复选框,然后点击“完成”。 该项目将显示在 S32 Design Studio工作区中,您可在此进行构建和运行,如图4所示
  6. Figure 4. Importing an Example Project (c)

    Figure 4. Importing an Example Project (c)

3.4 使用ABS控制器SDK软件驱动程序创建新项目

如不使用示例项目,以下说明介绍了如何创建和设置一个使用ABS控制器SDK软件驱动程序的新项目。

要创建项目,请按以下步骤操作:

  1. 在S32 Design Studio菜单栏中,选择“文件”→“新建”→“新建S32DS项目”,如图5所示
  2. Figure 5. New S32DS Project Wizard

    Figure 5. New S32DS Project Wizard
  3. 当弹出“新建S32DS项目”对话框后,在文本框中输入项目名称,为项目选择MCU(本教程使用S32K144),然后选择“下一步”,如图6所示
  4. Figure 6. S32DS Project Name and MCU Board Selection

    Figure 6. S32DS Project Name and MCU Board Selection
  5. 在下一步中,设置所需的项目选项,例如所使用的SDK和框架,如图7所示,然后点击“完成”
  6. Figure 7. S32DS Project Settings and SDK Selection

    Figure 7. S32DS Project Settings and SDK Selection
  7. 图8显示了创建新项目后的Project Explorer面板和main.c的内容
  8. Figure 8. Created S32DS Project in S32DS Project Explorer and main.c Template

    Figure 8. Created S32DS Project in S32DS Project Explorer and main.c Template

设置Processor Expert组件

本节介绍如何使用Processor Expert组件来配置MCU,这些组件通过提供用户友好的图形用户界面(GUI),帮助您轻松配置时钟、引脚复用和外设等常见功能,从而简化整个设置流程。

  1. 首先,通过在S32DS菜单中选择“Processor Expert”→ “显示视图”,确保将工作区设置为Processor Expert,如图9所示。此操作会在工作区中添加选项卡,包括Components、Component Inspector和Component Library
  2. Figure 9. Processor Expert Show View

    Figure 9. Processor Expert Show View
  3. 要在选定的MCU上运行软件驱动程序,请配置使用的SPI和通用输入/输出(GPIO)引脚。根据支持的MCU列表,在PinMux组件中选择与所用MCU对应的正确引脚,如图10所示。可将某个示例项目作为此步骤的模板
  4. Figure 10. PinMux Component in S32DS Project

    Figure 10. PinMux Component in S32DS Project
  5. 从S32 SDK存储库中添加所需MCU外设的组件,包括低功耗SPI (LPSPI) (spi_pal)。如果使用调试控制台,则添加低功耗通用异步收发器(LPUART) (lpuart)组件,如图11所示
  6. Figure 11. Add Components from S32 SDK Repository

    Figure 11. Add Components from S32 SDK Repository
  7. 所有添加的组件现在都会出现在“组件”(Components)树中,如图12所示。S32 SDK和Processor Expert界面紧密关联。该项目SDK文件夹仅包含与项目中所用组件对应的外设驱动程序。在S32DS中,Processor Expert作为配置S32 SDK驱动程序结构的图形界面,代码随后会将这些结构传递给初始化函数
  8. Figure 12. Used Components in S32DS Project

    Figure 12. Used Components in S32DS Project
  9. 下一步是在Processor Expert Component Inspector中配置已添加的组件。一套通用的配置步骤适用于所有项目。如果所需选项不明确,请参考所用MCU和MC33SB0400/401的数据手册,或参考现有示例
    1. 时钟配置应通过clock_manager完成。可以通过该工具为MCU及其外设选择时钟源、频率、预分频器和时钟门控
    2. 在Pin_Settings中执行引脚复用(如前文步骤所述),对于每个使用输入/输出(I/O)引脚的MCU外设,选择正确的路由(复用)
    3. 在专用组件中配置外设组件,例如spi_pallpspilpuart (参见图13中LPSPI组件的配置示例)
  10. Figure 13. Configuration of spi_pal Component Using Processor Expert Inspector

    Figure 13. Configuration of spi_pal Component Using Processor Expert Inspector
  11. MCU及所用外设的配置完成后,下一步是使用Processor Expert为这些组件生成代码:
    1. 点击图14所示的图标
    2. Figure 14. Generate Processor Expert Code

      Figure 14. Generate Processor Expert Code
    3. 在包含所生成文件的项目文件夹中找到Generated_Code文件夹
    4. 检查这些文件,以确定传递给SDK驱动初始化函数的配置结构名称

将ABS软件驱动程序添加到项目中

本节介绍如何将ABS控制器软件驱动程序添加到项目中。

  1. 将“ABS_S32K144_BM14”驱动文件夹中的内容复制到新建项目的“Sources”文件夹(图15显示了已复制文件的列表)
  2. Figure 15. Add the ABS Controller SW Driver to the Project

    Figure 15. Add the ABS Controller SW Driver to the Project
  3. 在main.c中添加图16中高亮显示的行,以便在用户代码中访问ABS控制器软件驱动程序
  4. Figure 16. Link ABS Controller SW Driver

    Figure 16. Link ABS Controller SW Driver

设置ABS软件驱动程序

创建新项目并添加ABS控制器软件驱动后,进行驱动设置,并将其与预配置的MCU外设关联。 阅读《ABS控制器嵌入式SDK软件驱动程序》,其中描述了驱动程序的功能及所需的配置步骤。

  1. abs/abs_model.h中相应地更改ABS控制器型号
  2. 创建一个abs_drv_data_t类型的变量,并将其传递给所有使用的函数(该变量存储MCU外设的配置和ABS控制器软件驱动程序的内部数据)
  3. 通过控制该变量,确保软件驱动程序与使用的实例数量无关(实例数量仅受MCU资源的限制)
  4. 确保该变量在运行时始终可访问
  5. 在函数main()中声明该变量,或将其设置为全局变量
  6. 如图17所示,配置ABS软件驱动程序时,首先调用ABS_GetDefaultUserConfig(),然后根据需要修改各项设置;最终生成的配置结构会在内部映射到所选型号的设备寄存器数组
  7. 将所用的SPIGPIO接口与ABS软件驱动程序的运行时数据相关联,从而让驱动内核能够通过GPIO实现复位和软件控制的片选,通过SPI进行通信(这样可通过FTMPITGPIO等附加外设实现PWM和轮速传感器(WSS)处理等扩展功能,用于PDIWSOxVSO_INWSAI等信号)
  8. 可选择使用ABS_SetupSPI()函数,通过名为fsl_lpspi的Processor Expert组件生成的配置对SPI外设进行初始化
  9. 在S32DS中,ABS_SetupSPI()函数将配置结构传递给SDK SPI驱动初始化函数(S32 SDK中未使用ABS_SetupGPIOs()函数)
  10. 使用Pins_DRV_Init()函数,配合PinMux组件生成的配置结构对引脚进行初始化
  11. 最后,调用ABS软件驱动程序初始化函数,此时必须传递已配置MCU外设的参考(这些外设是驱动数据结构的一部分),并包含设备的用户配置(这种方式将MCU外设的配置与其使用功能分开,明确划分了职责)
  12. Figure 17. Setup Function for ABS Software Driver

    Figure 17. Setup Function for ABS Software Driver

编写应用代码

所有应用代码都存放在项目目录中的“Sources”文件夹下。可以修改main.c中的代码,同时保留原有的使用相关注释。

请按照以下步骤使用ABS控制器,对代码进行初始化:

  1. 调用所有所用MCU外设的初始化函数,若之前已使用了ABS_SetupSPI(),则不调用SPI。将指针传递给Generated_Code文件夹中.h文件中的生成的配置结构。图18展示了一个初始化示例。该代码复用了之前介绍的所有步骤,并假定用户已完成时钟配置、引脚复用、外设配置、代码生成,以及ABS软件驱动程序设置函数的实现。请参考代码注释来理解具体实现
  2. Figure 18. Initialization of MCU and Used Peripherals

    Figure 18. Initialization of MCU and Used Peripherals
  3. 调用ABS软件驱动程序的设置函数(本教程中,调用SetupABSDriver()),如图19所示
  4. 在完成软件驱动配置后,使用可用的函数来构建应用程序(请参考《程序员指南》了解函数签名和所需参数,同时查阅sources/abs/abs.h头文件,其中包含所有可用函数的原型)
  5. 为保持ABS控制器的正常运行,应每隔约50毫秒调用一次ABS_FeedWatchdog(),可以通过周期中断实现,也可以通过带嵌套延迟的无限循环实现(该延迟可避免SPI通信开销过大,并防止MCU过载)
  6. Figure 19. User Application Using ABS SW Driver

    Figure 19. User Application Using ABS SW Driver

编写用户应用程序的方式与前面步骤中展示的方法相同。对于更复杂的ABS控制器应用场景,请参考随附的示例项目。

编译、下载与调试

要编译项目,请选择工具栏中的“编译”图标,如图20所示。

Figure 20. Compiling the Project

Figure 20. Compiling the Project

在S32 Design Studio中,将应用程序下载到板上的过程因具体MCU板而异。如需进一步帮助,请参阅S32 Design Studio用户指南。要在S32K144 MCU板上进行下载和调试,请按以下步骤操作:

  1. 在工具栏中,点击调试图标旁的箭头,然后选择“调试配置”,如图21所示
  2. Figure 21. Downloading the Application (a)

    Figure 21. Downloading the Application (a)
  3. 在“调试配置”对话框中,从“GDB PEMicro接口调试”下选择S32K144_SDK_Project_Debug
  4. 确保“C/C++ Application”中包含项目的to.elf文件路径,如图22所示
  5. Figure 22. Downloading the Application (b)

    Figure 22. Downloading the Application (b)
  6. 选择“调试器”选项卡,并将“接口”选项设置为“OpenSDA Embedded Debug - USB Port”(OpenSDA嵌入式调试- USB端口)。然后,点击“端口”设置旁的“刷新”按钮,以更新可用USB端口列表(参见图23)
  7. 确认"Target"(目标)设置为“S32K144F512M15”。(如果未设置,请使用“选择设备”按钮更改目标。点击该按钮,在“选择目标设备”对话框中,依次进入"NXP" → "S32K1xx" → "S32K144F512M15",然后点击“选择”按钮确认)
  8. 接着选择“调试”,S32 Design Studio将程序下载到板上并启动该程序
  9. Figure 23. Downloading the Application (c)

    Figure 23. Downloading the Application (c)

4. 配置硬件

4.1 驱动程序用户配置

该驱动程序为静态类型,使用由用户配置结构定义的单一入口点。根据设备设置填充该结构。初始化函数会直接接收此配置。

配置选项(取决于所选型号):

  1. 时钟设置与监测:内部时钟监测功能、振荡器时钟频率及调制频段
  2. 电感负载用低边驱动器:高边故障安全开关、输出PWM频率及开路负载检测的灌电流
  3. 泵电机预驱动器:SPI/外部控制、过流屏蔽/滤波时间、压摆率及负载转储
  4. 轮速传感器接口:传感器类型、I/O信号复用、OC滤波时间、数字滤波时间、内置计数器及漏电流跟踪
  5. 辅助驱动器:警示灯功能、启用/禁用
  6. 看门狗:线性反馈移位寄存器(LFSR)种子

有关用户配置结构的更详细说明,请参考《程序员指南》。

4.2 使用的底层驱动程序

软件驱动程序使用底层MCU外设驱动器实现通信、控制及相关功能。软件驱动程序的功能取决于这些底层驱动程序。

最新的软件驱动程序使用GCC-6.3通过恩智浦SDK构建。该软件驱动程序仍与使用GCC 4.9构建的基于AML的旧版软件驱动程序保持兼容。为支持在不同SDK之间移植,模拟中间件层(AML)对部分底层驱动程序统一了API。

重用基于AML的现有底层驱动程序可加快开发进程,并为常见任务提供经验证的解决方案。

图24展示了用于通信与控制的软件驱动架构。

Figure 24. SW Driver Architecture

Figure 24. SW Driver Architecture

支持

论坛

在恩智浦的一个技术社区网站上,可与其他工程师交流,获取使用FRDM-A-MOTABS2进行产品设计的专业建议。