OpenEdv-开源电子网

 找回密码
 立即注册
正点原子全套STM32/Linux/FPGA开发资料,上千讲STM32视频教程免费下载...
查看: 5604|回复: 7

请教一个关于STM32F103RBT6捕获触发内部AD的问题

[复制链接]

1

主题

9

帖子

0

精华

新手上路

积分
47
金钱
47
注册时间
2013-9-5
在线时间
4 小时
发表于 2013-9-5 23:30:39 | 显示全部楼层 |阅读模式
采用内部4路ADC测量 分别测量4路交流电压信号,硬件同步倍频采样(64倍频)做为触发内部ADC,想用定时器捕获64倍频脉冲做为触发信号,也就是说1个周期采集64个点。STM32F103RBT6能够做到吗?刚接触STM32,定时器捕获中断触发ADC采样,能够做到4路采集吗?注:4路采用各自的倍频信号。
各位大神帮帮吧!!!谢谢
正点原子逻辑分析仪DL16劲爆上市
回复

使用道具 举报

530

主题

11万

帖子

34

精华

管理员

Rank: 12Rank: 12Rank: 12

积分
165540
金钱
165540
注册时间
2010-12-1
在线时间
2117 小时
发表于 2013-9-5 23:56:20 | 显示全部楼层
我是开源电子网www.openedv.com站长,有关站务问题请与我联系。
正点原子STM32开发板购买店铺http://openedv.taobao.com
正点原子官方微信公众平台,点击这里关注“正点原子”
回复 支持 反对

使用道具 举报

1

主题

9

帖子

0

精华

新手上路

积分
47
金钱
47
注册时间
2013-9-5
在线时间
4 小时
 楼主| 发表于 2013-9-6 08:52:23 | 显示全部楼层
回复【2楼】正点原子:
---------------------------------
工频50HZ
回复 支持 反对

使用道具 举报

1

主题

9

帖子

0

精华

新手上路

积分
47
金钱
47
注册时间
2013-9-5
在线时间
4 小时
 楼主| 发表于 2013-9-6 08:54:32 | 显示全部楼层
工频50HZ,64倍频后是3200HZ
回复 支持 反对

使用道具 举报

1

主题

9

帖子

0

精华

新手上路

积分
47
金钱
47
注册时间
2013-9-5
在线时间
4 小时
 楼主| 发表于 2013-9-6 09:51:08 | 显示全部楼层
回复【2楼】正点原子:
---------------------------------
工频50Hz,64倍频后是3200Hz,用定时器捕获中断出发ADC,我想实现的功能是4路倍频的脉冲信号触发内部ADC采集电压信号。也就是硬件同步采集,保证在每个周期内采集64个点。假设采用TIM2 的4个通道捕获脉冲信号分别触发ADC1的4个通道,可行吗?我的疑问是TIM2的捕获中断,是4个通道触发同一个捕获中断(那么这个方案就不可行了),还是定时器的不同通道触发不同的捕获中断,如果触发不同的捕获中断(那么这个方案还是具有可行性的)。
回复 支持 反对

使用道具 举报

530

主题

11万

帖子

34

精华

管理员

Rank: 12Rank: 12Rank: 12

积分
165540
金钱
165540
注册时间
2010-12-1
在线时间
2117 小时
发表于 2013-9-6 10:25:58 | 显示全部楼层
回复【5楼】changdkai:
---------------------------------
stm32最多2个ADC,你要同时采集4路,是不可能的。
但是关键看你怎么看待同时的概念。
比如你64倍频后才3200Hz,也就是312.5us采集一次就够了。
STM32的ADC,最快是1Mhz的采集频率,采集一次仅需1us,那么在321.5us的时间里面,连续采集4个通道,总共占用4us。这个相对于312.5us来说,是比较小的一个值了。
这样,你是不是可以把这4个通道的采集,看成是同时的?
我是开源电子网www.openedv.com站长,有关站务问题请与我联系。
正点原子STM32开发板购买店铺http://openedv.taobao.com
正点原子官方微信公众平台,点击这里关注“正点原子”
回复 支持 反对

使用道具 举报

1

主题

9

帖子

0

精华

新手上路

积分
47
金钱
47
注册时间
2013-9-5
在线时间
4 小时
 楼主| 发表于 2013-9-6 15:06:19 | 显示全部楼层
回复【6楼】正点原子:
回复【5楼】changdkai: --------------------------------- stm32最多2个ADC,你要同时采集4路,是不可能的。 但是关键看你怎么看待同时的概念。 比如你64倍频后才3200Hz,也就是312.5us采集一次就够了。 STM32的ADC,最快是1Mhz的采集频率,采集一次仅需1us,那么在321.5us的时间里面,连续采集4个通道,总共占用4us。这个相对于312.5us来说,是比较小的一个值了。 这样,你是不是可以把这4个通道的采集,看成是同时的?
---------------------------------
原子哥其实我的不问题不在这里,我的问题是我用TIM2捕获脉冲 来触发ADC ,因为我4路电压信号是独立的,所以触发脉冲信号相对也是独立的,我怕他们之间互相影响。举例说吧,如果随便一路触发脉冲过来了 TIM2捕获到脉冲 就会触发ADC1,会不会引起ADC1上的4路同时动作。
回复 支持 反对

使用道具 举报

1

主题

9

帖子

0

精华

新手上路

积分
47
金钱
47
注册时间
2013-9-5
在线时间
4 小时
 楼主| 发表于 2013-9-6 16:15:20 | 显示全部楼层
回复【6楼】正点原子:
回复【5楼】changdkai: --------------------------------- stm32最多2个ADC,你要同时采集4路,是不可能的。 但是关键看你怎么看待同时的概念。 比如你64倍频后才3200Hz,也就是312.5us采集一次就够了。 STM32的ADC,最快是1Mhz的采集频率,采集一次仅需1us,那么在321.5us的时间里面,连续采集4个通道,总共占用4us。这个相对于312.5us来说,是比较小的一个值了。 这样,你是不是可以把这4个通道的采集,看成是同时的?
---------------------------------
  ADC_InitStructure.ADC_Mode = ADC_Mode_Independent;
  ADC_InitStructure.ADC_ScanConvMode = DISABLE;
  ADC_InitStructure.ADC_ContinuousConvMode = DISABLE;
  ADC_InitStructure.ADC_ExternalTrigConv = ADC_ExternalTrigConv_T1_CC1;
  ADC_InitStructure.ADC_DataAlign = ADC_DataAlign_Right;
  ADC_InitStructure.ADC_NbrOfChannel = 1;
  ADC_Init(ADC1, &ADC_InitStructure);
上边设置的就是TIM1 CC2触发ADC 同样我要采集4路是不是设置成下边这样就OK了啊?
也就是说不同的ADC采用不同的触发源,这样设置是不是就能达到我分别采集4路电压的目的了?
ADC_InitStructure.ADC_ExternalTrigConv = ADC_ExternalTrigConv_T1_CC2;
ADC_InitStructure.ADC_ExternalTrigConv = ADC_ExternalTrigConv_T1_CC3;
ADC_InitStructure.ADC_ExternalTrigConv = ADC_ExternalTrigConv_T1_CC4;
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则



关闭

原子哥极力推荐上一条 /2 下一条

正点原子公众号

QQ|手机版|OpenEdv-开源电子网 ( 粤ICP备12000418号-1 )

GMT+8, 2025-7-13 13:35

Powered by OpenEdv-开源电子网

© 2001-2030 OpenEdv-开源电子网

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