硬汉嵌入式论坛

 找回密码
 立即注册
查看: 461|回复: 5
收起左侧

[DSP] STM32F4三重采样求频率

[复制链接]

8

主题

6

回帖

30

积分

新手上路

积分
30
发表于 2023-7-25 12:07:08 | 显示全部楼层 |阅读模式
STM32F407ZGT6芯片可以三重交替采样,我现在把它挂载在TIM8上,ADC_CLK为36M,然后我用DSP库的函数求频率,不知道怎么调节TIM8的ARR和PSC才能得到正确的频率?或者说,TIM8的时钟与精度有什么关系?

部分代码如下
[C] 纯文本查看 复制代码
arm_max_f32(fft_outputbuf, MAX_SAMP, &Fmax, &max_pos);
			if(max_pos>512) max_pos=1024-max_pos;
			fre = (double)max_pos*144000000/((TIM8->ARR+1) * (TIM8->PSC+1) * MAX_SAMP);
回复

使用道具 举报

1万

主题

6万

回帖

10万

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
106771
QQ
发表于 2023-7-25 14:56:07 | 显示全部楼层
注意三重快速交替的时间间隔是固定的,比如你TIM8设置的300KHz触发,间隔值也恰好满足了每个100KHz分别采集一次。当你的TIM8改成50KHz的时候,就没法用了。
回复

使用道具 举报

8

主题

6

回帖

30

积分

新手上路

积分
30
 楼主| 发表于 2023-7-25 20:19:23 | 显示全部楼层
eric2013 发表于 2023-7-25 14:56
注意三重快速交替的时间间隔是固定的,比如你TIM8设置的300KHz触发,间隔值也恰好满足了每个100KHz分别采集 ...

“间隔值也恰好满足了每个100KHz分别采集一次” 您能说的更详细点吗?我感觉就是这里卡住了,为什么TIM8设置的300K,间隔值就变为了100K?
回复

使用道具 举报

8

主题

6

回帖

30

积分

新手上路

积分
30
 楼主| 发表于 2023-7-25 21:07:39 | 显示全部楼层
eric2013 发表于 2023-7-25 14:56
注意三重快速交替的时间间隔是固定的,比如你TIM8设置的300KHz触发,间隔值也恰好满足了每个100KHz分别采集 ...

还有一个问题,不知道有没有关联?就是我测频率的时候千位数是对的,但是改变频率的百位和十位没有反应。
回复

使用道具 举报

1万

主题

6万

回帖

10万

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
106771
QQ
发表于 2023-7-26 06:49:22 | 显示全部楼层
南极熊 发表于 2023-7-25 20:19
“间隔值也恰好满足了每个100KHz分别采集一次” 您能说的更详细点吗?我感觉就是这里卡住了,为什么TIM8 ...

这个就是三通道快速交替的作用,

比如我们定时器设置300ms触发一次,那么三通道快速交替后就是分别下100ms,200ms和300ms的地方采集一次。
回复

使用道具 举报

1万

主题

6万

回帖

10万

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
106771
QQ
发表于 2023-7-26 06:49:54 | 显示全部楼层
南极熊 发表于 2023-7-25 21:07
还有一个问题,不知道有没有关联?就是我测频率的时候千位数是对的,但是改变频率的百位和十位没有反应。

先解决三通道快速交替测试。
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

QQ|小黑屋|Archiver|手机版|硬汉嵌入式论坛

GMT+8, 2024-5-5 14:57 , Processed in 0.204315 second(s), 26 queries .

Powered by Discuz! X3.4 Licensed

Copyright © 2001-2023, Tencent Cloud.

快速回复 返回顶部 返回列表