南极熊 发表于 2023-7-25 12:07:08

STM32F4三重采样求频率

STM32F407ZGT6芯片可以三重交替采样,我现在把它挂载在TIM8上,ADC_CLK为36M,然后我用DSP库的函数求频率,不知道怎么调节TIM8的ARR和PSC才能得到正确的频率?或者说,TIM8的时钟与精度有什么关系?

部分代码如下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);

eric2013 发表于 2023-7-25 14:56:07

注意三重快速交替的时间间隔是固定的,比如你TIM8设置的300KHz触发,间隔值也恰好满足了每个100KHz分别采集一次。当你的TIM8改成50KHz的时候,就没法用了。

南极熊 发表于 2023-7-25 20:19:23

eric2013 发表于 2023-7-25 14:56
注意三重快速交替的时间间隔是固定的,比如你TIM8设置的300KHz触发,间隔值也恰好满足了每个100KHz分别采集 ...

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

南极熊 发表于 2023-7-25 21:07:39

eric2013 发表于 2023-7-25 14:56
注意三重快速交替的时间间隔是固定的,比如你TIM8设置的300KHz触发,间隔值也恰好满足了每个100KHz分别采集 ...

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

eric2013 发表于 2023-7-26 06:49:22

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

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

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

eric2013 发表于 2023-7-26 06:49:54

南极熊 发表于 2023-7-25 21:07
还有一个问题,不知道有没有关联?就是我测频率的时候千位数是对的,但是改变频率的百位和十位没有反应。

先解决三通道快速交替测试。
页: [1]
查看完整版本: STM32F4三重采样求频率