矿石收音机论坛

 找回密码
 加入会员

QQ登录

只需一步,快速开始

搜索
楼主: aidn

adc采集用定时器触发 发现采集到的数据依然跳动

[复制链接]
     
发表于 2024-1-22 21:54:57 | 显示全部楼层
aidn 发表于 2024-1-22 08:43
同步无论什么做都需要触发信号吧?定时器本来就是信号源没有更好的触发源了吧,本来采集的是一个完整的周 ...

还是说不清楚,
谁和谁同步?
你用定时器触发采样,
只要采样时间够,
应该都没有问题的。
回复 支持 反对

使用道具 举报

     
 楼主| 发表于 2024-1-22 23:27:15 | 显示全部楼层
本帖最后由 aidn 于 2024-1-22 23:46 编辑
abbey_tom 发表于 2024-1-22 21:54
还是说不清楚,
谁和谁同步?
你用定时器触发采样,


现在是这样, 触发采样时域上还是会跳,分析仪上面紫色是tim2 cc2触发(没有这个信号程序卡死)。 黄色是cc4 1K方波

                sprintf(sprint_buf, "ADC Start  ");//卡死会显示这个
                LCD_ShowString(0, 0, (const uint8_t*) sprint_buf, color[5], BLACK, 16,
                                0);
                HAL_ADC_Start_DMA(&hadc1, (uint32_t*) ADC_Sample, SAMPLES_LENGTH * 4);
                HAL_TIM_PWM_Start(&htim2, TIM_CHANNEL_2);
//                HAL_ADC_Stop_DMA(&hadc1);
//                htim2.Instance->CCR2 = 57343;
                while (hdma_adc1.State == HAL_DMA_STATE_BUSY)//没触发会在这里卡住
                {
                        ;
                };
                HAL_ADC_Stop_DMA(&hadc1);//停止
                HAL_TIM_PWM_Stop(&htim2, TIM_CHANNEL_2);//停止
下载.gif
无标题7.png
1705937494607.jpg
回复 支持 反对

使用道具 举报

     
发表于 2024-1-23 12:51:16 | 显示全部楼层
aidn 发表于 2024-1-22 23:27
现在是这样, 触发采样时域上还是会跳,分析仪上面紫色是tim2 cc2触发(没有这个信号程序卡死)。 黄色 ...

一般只有双路信号的采集需要同步,
对于单路信号来说,
只要保证严格的等间隔时间采样就可以了。
使用TIM-CC触发ADC,
ADC开启DMA,
DMA设置半完成中断就处理数据,
这样就可以避免时序对采样的影响。
回复 支持 反对

使用道具 举报

     
 楼主| 发表于 2024-1-23 14:30:16 来自手机 | 显示全部楼层
abbey_tom 发表于 2024-1-23 12:51
一般只有双路信号的采集需要同步,
对于单路信号来说,
只要保证严格的等间隔时间采样就可以了。

用tim触发dma就是为了采样时对齐1KHz上升沿,采样4mS这个时间是固定的,这个处理时间并不固定,快者几百mS慢则差不多1秒,上面的图可以看到直流1倍频3倍频幅值比较稳定也没频率泄漏这个采样周期是完整的。就是相位差得太多了无法测电容值
回复 支持 反对

使用道具 举报

     
发表于 2024-1-23 14:51:12 | 显示全部楼层
aidn 发表于 2024-1-23 14:30
用tim触发dma就是为了采样时对齐1KHz上升沿,采样4mS这个时间是固定的,这个处理时间并不固定,快者几百mS ...

你需要采样一个信号,
还要两个信号?
回复 支持 反对

使用道具 举报

     
 楼主| 发表于 2024-1-23 15:22:14 来自手机 | 显示全部楼层
abbey_tom 发表于 2024-1-23 14:51
你需要采样一个信号,
还要两个信号?

这是个lcr表,adc规则采了4个样,一个参考电阻电压Vref,一个电容内阻电压Vesr,一个电容电压Vkin,一个是系统电压Vbet(现在是悬空没接),采样率是1MHz采1KHZ4个信号四舍五入=同步采样,我不是要4个信号同步而是每次刷数据都是同相位这在示波器上是叫同步吧?
回复 支持 反对

使用道具 举报

     
发表于 2024-1-23 15:49:59 | 显示全部楼层
aidn 发表于 2024-1-23 15:22
这是个lcr表,adc规则采了4个样,一个参考电阻电压Vref,一个电容内阻电压Vesr,一个电容电压Vkin,一个 ...

我就是说嘛,
不是像你描述的那么简单。
这种需要激励信号吧?
其它信号要保持与激励信号同相的。
回复 支持 反对

使用道具 举报

     
 楼主| 发表于 2024-1-23 22:02:52 | 显示全部楼层
abbey_tom 发表于 2024-1-23 15:49
我就是说嘛,
不是像你描述的那么简单。
这种需要激励信号吧?

换回stm32f070轻易就实现扫描同步,就是flash和RAM都不够装不下fft得换cbt6才行。又得重新打板了
回复 支持 反对

使用道具 举报

     
发表于 2024-1-23 22:17:34 | 显示全部楼层
aidn 发表于 2024-1-23 22:02
换回stm32f070轻易就实现扫描同步,就是flash和RAM都不够装不下fft得换cbt6才行。又得重新打板了


俄版LCR使用STM32F100C8T6B
本坛网友使用国产AIR32好像也实现了。
回复 支持 反对

使用道具 举报

     
 楼主| 发表于 2024-1-23 22:31:42 来自手机 | 显示全部楼层
本帖最后由 aidn 于 2024-1-23 22:36 编辑
abbey_tom 发表于 2024-1-23 22:17
俄版LCR使用STM32F100C8T6B
本坛网友使用国产AIR32好像也实现了。


俄版那个不是40x么?我用的070f6p6,size优化刚好装得下fft,求模都干不了。其他什么菜单控制就别想了,用103rbt6编译后用了42K。C8t6应该就可以了但是用了彩屏怎么都得多整点什么
回复 支持 反对

使用道具 举报

     
 楼主| 发表于 2024-1-23 22:39:32 来自手机 | 显示全部楼层
arm的dsp太吃资源了一个sqr就几K了
回复 支持 0 反对 1

使用道具 举报

     
发表于 2024-1-23 22:46:07 | 显示全部楼层
aidn 发表于 2024-1-23 22:31
俄版那个不是40x么?我用的070f6p6,size优化刚好装得下fft,求模都干不了。其他什么菜单控制就别想了 ...

俄版本6.20,电路图在这里

Schematic_俄网_RLC-mini_r5-71_四运放_2020-11-29_22-31-07.rar

18.51 KB, 下载次数: 113

回复 支持 反对

使用道具 举报

     
发表于 2024-1-23 22:49:09 | 显示全部楼层
aidn 发表于 2024-1-23 22:39
arm的dsp太吃资源了一个sqr就几K了

软件代码在这里

620b12-71b_Keil.rar

402.68 KB, 下载次数: 98

回复 支持 反对

使用道具 举报

     
 楼主| 发表于 2024-1-23 23:18:51 来自手机 | 显示全部楼层
abbey_tom 发表于 2024-1-23 22:49
软件代码在这里

谢谢,收下。看了下,开方用了递归。arm的dsp库是用一个3K的表求值
回复 支持 反对

使用道具 举报

     
发表于 2024-1-24 08:22:20 | 显示全部楼层
aidn 发表于 2024-1-23 23:18
谢谢,收下。看了下,开方用了递归。arm的dsp库是用一个3K的表求值

你是自己做着玩儿,
还是商品?
我曾经一段时间对这个也比较感兴趣。
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 加入会员

本版积分规则

小黑屋|手机版|矿石收音机 ( 蒙ICP备05000029号-1 )

蒙公网安备 15040402000005号

GMT+8, 2025-4-29 00:26

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

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