怎样用stm32f103实现三相交流电压Ua、Ub、Uc的软件同步采集?
请教 香水城:
怎样用stm32f103实现三相交流电压Ua、Ub、Uc的软件同步采集?
我的思路不知道对不对:
1、用定时器T1的输入捕获测得Ua的频率,并开启输入捕获中断;
2、当中断发生时,再开启T2,使其设置在输出比较-时间模式(Output Compare Timing mode),在采样时间间隔内产生中断;
3、在此中断中软件启动AD采样;
4、当一个周期的点采集完成后,又回到步骤1。
请使用ADC双模式--注入通道同时采样
使用ADC双模式--注入通道同时采样救可以了,具体如下:
1.配置ADC1的注入通道采样Ua的电压,配置ADC2的注入通道采样Ub的电压;
并且采用TIM1_CC4事件来触发ADC;
2.配置T1的PWM4通道,使其工作在OC模式下;
这样,你只要设置TIM1的PWM4的duty cycle,就可以设定采样点,并且Ua,Ub
是同时采样的。
另外,由于Ua+Ub+Uc=0,由此可得到Uc。
ANG_WX,你好,谢谢
我这个采样不光有三相交流电压Ua、Ub、Uc,
还有三相交流电流Ia、Ib、Ic。
外面加了六路采样保持器
有了采保,那同步问题是小case了
对楼主的案子来说,STM32F的AD速度是没问题。
不想用硬件同步锁相环
想用一个定时器测波形的频率,来时刻调整采样频率
三相交流电流Ia、Ib、Ic的检测方法
三相交流电流Ia、Ib、Ic的检测方法很简单,由于ADC1和ADC2分别有4个注入通道,只要如下配置:
1. ADC1的注入通道分配为:Ua,Ia;
2. ADC1的注入通道分配为:Ub,Ib;
这样,就可以实现Ua/Ub及Ia/Ib的同步采样了,并且如果你要修改采样频率,只要修改T1的PWM4的频率。
采用规则同步采样
你可以用一个PCA来扑捉一相电压的频率,根据本周期频率推算下周期的频率
可以用:规则同步模式
n=6,被转换的通道 = 0, 1, 2, 3, 4, 5, 6
第一次触发:转换的序列为 0,1,2,3,4,5,6
第二次触发:转换的序列为 0,1,2,3,4,5,6
第三次触发:转换的序列为 0,1,2,3,4,5,6
第k次触发:转换的序列 0,1,2,3,4,5,6,并产生EOC事件
k就是一个周期的采样数值。不过你得用DMA
STM32的定时器中设计的注入通道就是做这个用的
可以及时准确地实现采样转换。
香版给出的solution是紧凑型的,而楼主的方案是慷慨型的
现在楼主是有采保的,STM32只需给出同步采样信号,然后ADC就可以了。
采保电路会保持STM32下达同步信号时候的各个电平,然后慢悠悠的ADC就行了。
谢谢各位
回,jinjing999
我想用jinjing999介绍的方法来采样。
用一个PCA来扑捉一相电压的频率,根据本周期频率推算下周期的频率。
可以用:规则同步模式
n=6,被转换的通道 = 0, 1, 2, 3, 4, 5,
第一次触发:转换的序列为 0,1,2,3,4,5
第二次触发:转换的序列为 0,1,2,3,4,5
第三次触发:转换的序列为 0,1,2,3,4,5
...
第k次触发:转换的序列 0,1,2,3,4,5 并产生EOC事件
我的疑问是,怎样产生k次触发?
我的思路不知道对不对:
1、用定时器T1的输入捕获测得Ua的频率,并开启输入捕获中断;
2、当中断发生时,再开启T2,使其设置在输出比较-时间模式(Output Compare Timing mode),在采样时间间隔内产生中断;
3、在此中断中软件启动AD采样;
4、当一个周期的点采集完成后,又回到步骤1。
我的QQ是184368205,你能告诉我的联系方式吗,我想请教下你,谢谢!
TO 13楼
朋友是做保护的?我刚做了个马达保护,性能满不错,正在找外壳,有机会交流一下。
交流电压电流的采集
学stm32不久,现在要做单相交流电压电流的采集,不知道如何下手呢。
注入和规则模式都可以,关键是AD启动方式是连续还是触发