PDB连续触发ADC中使用ADC连续转换模式的问题

取消
显示结果 
显示  仅  | 搜索替代 
您的意思是: 
已解决

PDB连续触发ADC中使用ADC连续转换模式的问题

跳至解决方案
1,606 次查看
guohangxiang
Contributor III

你好,我遇到了一些问题需要帮助

S32K144 使用 ftm_pwm 通过 TRGMUX 触发 PDB,预触发 ADC,我现在已经实现了 ADC 的触发,但是我现在为了提高 ADC 采样的精度,需要每次 ADC 触发后都进行连续转换,得到多个 ADC 的转换结果用来滤波,

目前,在原来 PDB 预触发 ADC 的基础上添加 ADC 连续转换的配置,运行代码,ADC 不会被触发

感谢!

标签 (1)
0 项奖励
回复
1 解答
1,568 次查看
Senlent
NXP TechSupport
NXP TechSupport

Hi@guohangxiang

我大概明白你的想法,首先没有这种配置模式,第二这并没有任何意义,我想不到这种做法和你ADC滤波有什么关系。

ADC支持两种触发方式,一种是软件触发采样,即通过CPU写SC1A寄存器触发一次采样,第二是硬件触发,例如LPIT或者PDB来触发采样。其次,S32K1的ADC还支持硬件average。

在原帖中查看解决方案

0 项奖励
回复
6 回复数
925 次查看
ltt-be
Contributor I

你好,我也在弄使用 ftm_pwm 通过 TRGMUX 触发 PDB,预触发 ADC,我是用ftm_pwm 通过 TRGMUX触发PDB然后再触发ADC采样,但是一直触发不了,你的关于TRGMUX的那一项是怎么配置的呢?方便截图么

0 项奖励
回复
1,602 次查看
guohangxiang
Contributor III
我不清楚 S32K144 是否支持 PDB 连续预触发 ADC 是否支持触发后 ADC 的 连续转换
0 项奖励
回复
1,569 次查看
Senlent
NXP TechSupport
NXP TechSupport

Hi@guohangxiang

我大概明白你的想法,首先没有这种配置模式,第二这并没有任何意义,我想不到这种做法和你ADC滤波有什么关系。

ADC支持两种触发方式,一种是软件触发采样,即通过CPU写SC1A寄存器触发一次采样,第二是硬件触发,例如LPIT或者PDB来触发采样。其次,S32K1的ADC还支持硬件average。

0 项奖励
回复
1,553 次查看
guohangxiang
Contributor III

@Senlent 

你好,感谢你的回复

1、PDB 预触发 ADC 采样,ADC 被触发转换时是通过中断获取到触发这一信息的,然后在中断里面去读取 ADC 转换的结果,但是 S32K1 的 ADC 硬件average 中没有看到中断配置

guohangxiang_1-1686730458352.png

,我不太明白 PDB 预触发 ADC + 硬件average 是怎么使用的?

2、我之前的做法,主要是 ADC 的输入电压是波动的(这个电压理想情况下是稳定的),所以我想在 ADC 同一个触发点上多次采样,然后去掉最大值和最小值再求平均值来使采样电压更精确。其实是 ADC硬件average的理论差不多的,但是如1所述,我不清楚PDB预触发ADC的情况下怎么使用硬件average,所以之前我想用软件来处理

非常感谢!

0 项奖励
回复
1,544 次查看
Senlent
NXP TechSupport
NXP TechSupport

Hi@guohangxiang

没你想得那么复杂,勾选Hardware average即可,选择几次结果的平均采样,例如你选择4,那么四次采样结束后会置位COCO,然后产生中断。

下面这个函数在初始化的时候使用一下

ADC_DRV_ConfigHwAverage().

0 项奖励
回复
1,540 次查看
guohangxiang
Contributor III

@Senlent 

好的,我尝试一下

我在手册中看到 PDB 预触发 ADC 后是可以支持 ADC 的 Continuous conversion 模式的,但是实际应用中添加 Continuous conversion 配置,ADC 不会被触发,guohangxiang_0-1686733756013.png

我不理解,PDB 预触发 ADC_CH0,ADC_CH0 完成转换,此时会置位COCO,ADC_CH0 的转换就结束了,但是看手册,是支持 Continuous conversion 的

0 项奖励
回复