打印

怎样用stm32f103实现三相交流电压Ua、Ub、Uc的软件同步采集?

[复制链接]
7157|13
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
thxcumt|  楼主 | 2008-8-4 09:11 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
请教 香水城:

怎样用stm32f103实现三相交流电压Ua、Ub、Uc的软件同步采集?

我的思路不知道对不对:

1、用定时器T1的输入捕获测得Ua的频率,并开启输入捕获中断;
2、当中断发生时,再开启T2,使其设置在输出比较-时间模式(Output Compare Timing mode),在采样时间间隔内产生中断;
3、在此中断中软件启动AD采样;
4、当一个周期的点采集完成后,又回到步骤1。
沙发
JIANG_WX| | 2008-8-4 09:55 | 只看该作者

请使用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。

使用特权

评论回复
板凳
thxcumt|  楼主 | 2008-8-4 09:58 | 只看该作者

ANG_WX,你好,谢谢

我这个采样不光有三相交流电压Ua、Ub、Uc,
还有三相交流电流Ia、Ib、Ic。
外面加了六路采样保持器

使用特权

评论回复
地板
McuPlayer| | 2008-8-4 11:51 | 只看该作者

有了采保,那同步问题是小case了

对楼主的案子来说,STM32F的AD速度是没问题。

使用特权

评论回复
5
thxcumt|  楼主 | 2008-8-4 13:33 | 只看该作者

不想用硬件同步锁相环

想用一个定时器测波形的频率,来时刻调整采样频率

使用特权

评论回复
6
ijk| | 2008-8-4 13:51 | 只看该作者

4楼,5楼似乎不矛盾?

使用特权

评论回复
7
thxcumt|  楼主 | 2008-8-4 14:35 | 只看该作者

恩,不矛盾

使用特权

评论回复
8
JIANG_WX| | 2008-8-4 15:55 | 只看该作者

三相交流电流Ia、Ib、Ic的检测方法

三相交流电流Ia、Ib、Ic的检测方法很简单,由于ADC1和ADC2分别有4个注入通道,只要如下配置:
1. ADC1的注入通道分配为:Ua,Ia;
2. ADC1的注入通道分配为:Ub,Ib;
这样,就可以实现Ua/Ub及Ia/Ib的同步采样了,并且如果你要修改采样频率,只要修改T1的PWM4的频率。

使用特权

评论回复
9
jinjing999| | 2008-8-5 12:44 | 只看该作者

采用规则同步采样

你可以用一个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

使用特权

评论回复
10
香水城| | 2008-8-5 12:50 | 只看该作者

STM32的定时器中设计的注入通道就是做这个用的

可以及时准确地实现采样转换。

使用特权

评论回复
11
McuPlayer| | 2008-8-5 14:48 | 只看该作者

香版给出的solution是紧凑型的,而楼主的方案是慷慨型的

现在楼主是有采保的,STM32只需给出同步采样信号,然后ADC就可以了。
采保电路会保持STM32下达同步信号时候的各个电平,然后慢悠悠的ADC就行了。

使用特权

评论回复
12
thxcumt|  楼主 | 2008-8-7 14:42 | 只看该作者

谢谢各位

回,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,你能告诉我的联系方式吗,我想请教下你,谢谢!

使用特权

评论回复
13
jinjing999| | 2008-10-30 17:07 | 只看该作者

对,不过这样处理如果是做保护的,不要用啊

使用特权

评论回复
14
freefish| | 2008-10-31 20:02 | 只看该作者

TO 13楼

朋友是做保护的?我刚做了个马达保护,性能满不错,正在找外壳,有机会交流一下。

使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

5

主题

27

帖子

1

粉丝