abbey_tom
发表于 2024-1-22 21:54:57
aidn 发表于 2024-1-22 08:43
同步无论什么做都需要触发信号吧?定时器本来就是信号源没有更好的触发源了吧,本来采集的是一个完整的周 ...
还是说不清楚,
谁和谁同步?
你用定时器触发采样,
只要采样时间够,
应该都没有问题的。
aidn
发表于 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, 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);//停止
abbey_tom
发表于 2024-1-23 12:51:16
aidn 发表于 2024-1-22 23:27
现在是这样, 触发采样时域上还是会跳,分析仪上面紫色是tim2 cc2触发(没有这个信号程序卡死)。 黄色 ...
一般只有双路信号的采集需要同步,
对于单路信号来说,
只要保证严格的等间隔时间采样就可以了。
使用TIM-CC触发ADC,
ADC开启DMA,
DMA设置半完成中断就处理数据,
这样就可以避免时序对采样的影响。
aidn
发表于 2024-1-23 14:30:16
abbey_tom 发表于 2024-1-23 12:51
一般只有双路信号的采集需要同步,
对于单路信号来说,
只要保证严格的等间隔时间采样就可以了。
用tim触发dma就是为了采样时对齐1KHz上升沿,采样4mS这个时间是固定的,这个处理时间并不固定,快者几百mS慢则差不多1秒,上面的图可以看到直流1倍频3倍频幅值比较稳定也没频率泄漏这个采样周期是完整的。就是相位差得太多了无法测电容值
abbey_tom
发表于 2024-1-23 14:51:12
aidn 发表于 2024-1-23 14:30
用tim触发dma就是为了采样时对齐1KHz上升沿,采样4mS这个时间是固定的,这个处理时间并不固定,快者几百mS ...
你需要采样一个信号,
还要两个信号?
aidn
发表于 2024-1-23 15:22:14
abbey_tom 发表于 2024-1-23 14:51
你需要采样一个信号,
还要两个信号?
这是个lcr表,adc规则采了4个样,一个参考电阻电压Vref,一个电容内阻电压Vesr,一个电容电压Vkin,一个是系统电压Vbet(现在是悬空没接),采样率是1MHz采1KHZ4个信号四舍五入=同步采样,我不是要4个信号同步而是每次刷数据都是同相位这在示波器上是叫同步吧?
abbey_tom
发表于 2024-1-23 15:49:59
aidn 发表于 2024-1-23 15:22
这是个lcr表,adc规则采了4个样,一个参考电阻电压Vref,一个电容内阻电压Vesr,一个电容电压Vkin,一个 ...
我就是说嘛,
不是像你描述的那么简单。
这种需要激励信号吧?
其它信号要保持与激励信号同相的。
aidn
发表于 2024-1-23 22:02:52
abbey_tom 发表于 2024-1-23 15:49
我就是说嘛,
不是像你描述的那么简单。
这种需要激励信号吧?
换回stm32f070轻易就实现扫描同步,就是flash和RAM都不够装不下fft得换cbt6才行。又得重新打板了
abbey_tom
发表于 2024-1-23 22:17:34
aidn 发表于 2024-1-23 22:02
换回stm32f070轻易就实现扫描同步,就是flash和RAM都不够装不下fft得换cbt6才行。又得重新打板了
俄版LCR使用STM32F100C8T6B
本坛网友使用国产AIR32好像也实现了。
aidn
发表于 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应该就可以了但是用了彩屏怎么都得多整点什么
aidn
发表于 2024-1-23 22:39:32
arm的dsp太吃资源了一个sqr就几K了
abbey_tom
发表于 2024-1-23 22:46:07
aidn 发表于 2024-1-23 22:31
俄版那个不是40x么?我用的070f6p6,size优化刚好装得下fft,求模都干不了。其他什么菜单控制就别想了 ...
俄版本6.20,电路图在这里
abbey_tom
发表于 2024-1-23 22:49:09
aidn 发表于 2024-1-23 22:39
arm的dsp太吃资源了一个sqr就几K了
软件代码在这里
aidn
发表于 2024-1-23 23:18:51
abbey_tom 发表于 2024-1-23 22:49
软件代码在这里
谢谢,收下。看了下,开方用了递归。arm的dsp库是用一个3K的表求值
abbey_tom
发表于 2024-1-24 08:22:20
aidn 发表于 2024-1-23 23:18
谢谢,收下。看了下,开方用了递归。arm的dsp库是用一个3K的表求值
你是自己做着玩儿,
还是商品?
我曾经一段时间对这个也比较感兴趣。