NXP S32k3 MCAL EMIOS ICU配置

应用场景

        最近接触到汽车BMS产品中的高压互锁模块(内部HVIL电路来确定外围高压连接器是否正常连接),出于担任底层工程师的角色,需要验证硬件团队开发的电路板是否可以正常工作。在BMS电路板中本功能电路采用一路PWM输入和一路电压输入,然后在电路另一端口通过输入捕获和ADC采样(实际操作中会有一个接插件用于接通输入和输出),获得对应的值,如果输入和输出结果一致,则高压互锁电路模块是正常的。本章将基于S32K358介绍EMIOS ICU 相关配置。

原理介绍
        EMIOS

        增强型IO子系统,S32K358 提供三组实例即EMIOS_0, EMIOS_1,EMIOS_2。每组实例具有24个通道,每个通道可通过配置实现其支持的功能,比如用作普通IO口,测量周期,捕获计数等。

        EMIOS细节

        这些通道分为4种类型:X,Y,G,H。通过这四种类型对应映射到各支持的一些功能。比如:EMIOS_0的通道0属于X类型, X类型的通道支持普通IO,计数,测量周期等。通道22和通道23可以配置为Global计数总线,为本组的其它所有通道提供计数总线引用。详细介绍可见S32k358手册。

    

        EMIOS Note

        如果你需要计数功能,那么在选择通道的时候就需要选择X或者G类型的通道,这些通道最终和GPIO脚一一对应。所以在设计硬件电路选脚的时候就需要考虑这些因素。其它功能都需要仔细阅读一遍,比如配置PWM需要设置周期时,也需要特定的通道。因为有些通道不支持PWM周期可调,只支持占空比可调。由于ch22和ch23可以做计数总线,为所在组的其它通道提供计数总线引用,所以在实际设计电路时,这两个通道对应的引脚最好不要用作其它用途。

配置工具

        工具:S32KDS3.5 。如果不知道如何使用该工具请自行查阅相关指导说明,以下内容默认读者对该软件具有一定的使用经验,比如如何导入例程等。

        软件版本:导入NXP的官方例程(S32K358对应版本),由于汽车行业目前使用EB配置MCAL的居多,可以选择带Autosar封装版本的Demo。导入Autosar接口封装的版本好处在于大部分配置项和EB差不多。NXP也提供了EB版本,但是由于时间有限,后期会在EB上配置该工程并验证。

配置步骤
        EMIOS ICU 配置

        第一步:导入官方例程,带Autosar封装的版本。先配置所需的引脚,如PTB12。PTB12对应的是Emios0 Ch0 ,  Mscr值是44(鼠标点在PTB12上,可显示属性,里面就有Mscr值),需要记住,后面配置Port时需要使用。按下图操作:

        第二步:打开Port组件,配置PTB12引脚。

        第三步:使能EMIOS功能(此步骤和前面写的配置PWM是一致的)

        第四步:配置EMIOS 的Global Counter bus A和Global Counter bus B。一共三组EMIOS, 每组配置对应的ch22和ch23。ch23对应的默认周期配置为65535。ch22对应的是32768。(此步骤和前面写的配置PWM是一致的)

        第五步:使能ICU对应的函数。比如捕获到PWM时,需要计算高电平个数,这时候需要打开IcuEdgeCountAPI。

        第六步:配置ICU模块里的EMIOS 实例。注意图片里面的第6步,如调试时需要计数停止,除了在这个地方使能外,上面MCL的Emios配置里,Enable Emios freez state也需要打勾使能。

        第七步:配置IcuChannel。 不是所有的通道都支持计数模式。这点需要注意,X和G类型的才可以支持计数。可仔细阅读数据手册。

          第八步:配置中断。 使能EMIOS0CH0对应中断。

        第九步:代码部分(配置了多个ICU通道)。初始化函数这些不做说明。

        下面这一张是检测跳变沿时,对应的代码部分

        以上就是EMIOS配置ICU的全部。

代码详解

        设置对应的中断,使能对应的函数,即可正常工作。中断名对应包含的通道数,官方Demo代码注释中会有。

注意事项

        EMIOS中许多通道是不支持计数的,如果需要计数功能需要仔细阅读数据手册找到对应支持的通道类型。

  • 2
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 8
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 8
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值