MCAL-ICU-PWM 轮询 IcuSignalMeasureWithoutInterrupt

cancel
Showing results for 
Show  only  | Search instead for 
Did you mean: 

MCAL-ICU-PWM 轮询 IcuSignalMeasureWithoutInterrupt

Jump to solution
1,236 Views
YanyiQiu
Contributor III

您好:

AUTOSAR  4.4 V2.0.1 版本,S32K344 。

在用icu采集PWM信号时,IcuSignalMeasureWithoutInterrupt  不勾选,采用中断方式已实现功能 。

 

在尝试IcuSignalMeasureWithoutInterrupt 勾选,即,使用轮询时,发现 采集数据跳变 。

在网页上看到信息“对于signalMeasure这个模式,目前要么使用中断的方式,即不勾选这个选框,要么使用DMA的模式,在逻辑通道中使能DMA,并在MCL模块中配置DMA的相关设置” 。链接:https://blog.csdn.net/HeFlyYoung/article/details/124478323  。不知道是否如此?

尝试DMA+ICU未成功,初始化MCL出错。

 

是否可以提供  轮询的实现方式 (不使用DMA)示例? 使用DMA示例?

 

感谢~

0 Kudos
1 Solution
1,165 Views
YanyiQiu
Contributor III
The question are:

1. when using polling in ICU , it must use/configure DMA meanwhile?

2. for capturing the pwm correctly, the following usage is all right ?

a, interrupt ( "IcuSignalMeasureWithoutInterrupt" is disabled)

b, polling only ("IcuSignalMeasureWithoutInterrupt" is enabled), It isn't necessary to configure DMA

c, polling ( "IcuSignalMeasureWithoutInterrupt" is enabled ) and DMA

View solution in original post

0 Kudos
6 Replies
1,174 Views
JoaquinL
NXP Employee
NXP Employee

Hi 

“icu采集PWM信号”指的是测量占空比和周期?

IcuSignalMeasureWithoutInterrupt勾选后,需要在通过轮询调用Icu_GetInputState(),当返回结果为ICU_ACTIVE时,再调用Icu_GetPulseWidth()。

JoaquinL_1-1692322418045.png

JoaquinL_0-1692322385249.png

轮询方法极容易受到其他任务的干扰,对于高频PWM不建议使用。

“尝试DMA+ICU未成功,初始化MCL出错”是具体什么错?

示例工程请联系代理商或者销售代表。这里无法直接上传工程。

BR, Joaquin

0 Kudos
1,166 Views
YanyiQiu
Contributor III
The question are:

1. when using polling in ICU , it must use/configure DMA meanwhile?

2. for capturing the pwm correctly, the following usage is all right ?

a, interrupt ( "IcuSignalMeasureWithoutInterrupt" is disabled)

b, polling only ("IcuSignalMeasureWithoutInterrupt" is enabled), It isn't necessary to configure DMA

c, polling ( "IcuSignalMeasureWithoutInterrupt" is enabled ) and DMA

0 Kudos
1,143 Views
JoaquinL
NXP Employee
NXP Employee

Hi,

ICU的使用要求如下:

  • DMA模式不能勾选IcuSignalMeasureWithoutInterrupt,并使能相应DMA通道中断请求
  • Interrupt模式不能勾选IcuSignalMeasureWithoutInterrupt,并使能相应eMIOS通道中断请求
  • Polling模式需要勾选IcuSignalMeasureWithoutInterrupt,Polling模式的正确使用,请参照上文回复。

所以Polling和DMA不能一起使用,Polling也不能和中断一起使用。

BR, Joaquin

0 Kudos
1,127 Views
YanyiQiu
Contributor III

您好:

拿到demo,按照其中的“IcuChannel_2”,采用DMA配置接收PWM信号 。能够采集到数据,但是和硬件实测的不匹配,硬件PWM信号是正确的,已验证过。

1、尝试改动PWM占空比,测试到的PWM占空比不变化。

2、尝试其他不同频率、占空比的PWM信号,测试到的PWM信号不变化

 

实际的硬件PWM数据:

YanyiQiu_0-1692587715885.png

 

测试的PWM数据:

 

YanyiQiu_1-1692587752382.png

 

其他频率的PWM信号:

YanyiQiu_2-1692587932440.png

 

不知道是否遇到过该问题?

 

 

0 Kudos
1,167 Views
YanyiQiu
Contributor III
是PWM 的占空比 和周期
0 Kudos
1,168 Views
YanyiQiu
Contributor III
感谢回复。
初始化出错是因为配置异常了,已经排查。但是 采样数据异常。
https://community.nxp.com/t5/S32K/MCAL-ICU-PWM-TAS-using-polling-dma-checked/m-p/1704317#M26042
请查看这个问题中的异常描述。
0 Kudos