打印

能否在TIM比较匹配之前一点点触发ADC采样?

[复制链接]
2519|15
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
whlcsu|  楼主 | 2012-2-16 19:57 | 只看该作者 |只看大图 回帖奖励 |倒序浏览 |阅读模式
应用中,PWM=1时,电流逐渐上升,PWM=0时,电流为0,即电流断续。

因此,为了避免ADC采样到0数据,希望在TIM比较匹配之前一点点触发ADC采样。如下图所示:


请教大家,STM32中TIMx如何实现这一功能?
沙发
香水城| | 2012-2-17 12:05 | 只看该作者
哈哈,这个要求可是STM32定时器的强项。

你只需要配置同一个定时器的另一个通道,把参数稍微改一下,然后用这个通道触发ADC采样即可。这样既不影响输出的波形,又解决了ADC触发的问题。

使用特权

评论回复
板凳
whlcsu|  楼主 | 2012-2-17 13:17 | 只看该作者
2# 香水城

按照2L提供的解决办法,结合我的应用,可以如下解决:
我需要采样两个电流,i1分配给ADC1采样,i2分配给ADC2采样。
ADC工作在同步规则模式,
TIM1的CC1和CC2输出4路PWM信号,其中CC2输出的PWM信号滞后CC1输出的PWM信号180°。
这样的话,将提前一点点触发的比较值写入CC3,用CC3去触发ADC转换。

但是,CC3将同时触发ADC1和ADC2,但触发采样的瞬间ADC2采样的电流还没有(为0),因为此时CC2输出的PWM=0(滞后CC1)。

苦于找不到解决办法,望赐教。。。

使用特权

评论回复
地板
whlcsu|  楼主 | 2012-2-17 13:21 | 只看该作者
2# 香水城

另,有一点点不明白的是:

所谓的ADC_ExternalTrigConv_T1_CC1这一触发源具体指什么?T1的上溢?下溢?还是比较匹配呢?

使用特权

评论回复
5
香水城| | 2012-2-17 13:40 | 只看该作者
2# 香水城  

另,有一点点不明白的是:

所谓的ADC_ExternalTrigConv_T1_CC1这一触发源具体指什么?T1的上溢?下溢?还是比较匹配呢?
whlcsu 发表于 2012-2-17 13:21


是比较匹配。

T1_CC1怎么可能有上溢或下溢呢?

使用特权

评论回复
6
香水城| | 2012-2-17 13:48 | 只看该作者
按照3楼的说法,好像要采样的两个电流并不是同时出现;如果是这样,则你根本不需要使用同步规则模式,只需使用ADC1分别采样即可。

另外,LZ位的示意图中并没有看到你说的两个电流,没有看到他们的关系,你最好能画出来。

使用特权

评论回复
7
whlcsu|  楼主 | 2012-2-17 13:50 | 只看该作者
5# 香水城

香主,3L有什么独到见解吗?

使用特权

评论回复
8
香水城| | 2012-2-17 13:55 | 只看该作者
5# 香水城  

香主,3L有什么独到见解吗?
whlcsu 发表于 2012-2-17 13:50


3L是你的发言,你说有什么独到见解吗? :D

使用特权

评论回复
9
whlcsu|  楼主 | 2012-2-17 14:00 | 只看该作者
8# 香水城

香主误会了。
我在3L问的问题是:用CC3去触发ADC的话,ADC1和ADC2会同时启动转换,但这样的话此时ADC2采样的通道电流值尚为0,不满足应用要求!

我怎么做到ADC1和ADC2相差180°被触发启动转换呢?

使用特权

评论回复
10
香水城| | 2012-2-17 14:12 | 只看该作者
8# 香水城  

香主误会了。
我在3L问的问题是:用CC3去触发ADC的话,ADC1和ADC2会同时启动转换,但这样的话此时ADC2采样的通道电流值尚为0,不满足应用要求!

我怎么做到ADC1和ADC2相差180°被触发启动转换呢? ...
whlcsu 发表于 2012-2-17 14:00


我在6楼回答了你的这个问题。

使用特权

评论回复
11
whlcsu|  楼主 | 2012-2-17 14:46 | 只看该作者
10# 香水城

香主,抱歉了,没表述清楚。上图:


图中以占空比为50%为例。
欲实现的功能:在T1时刻触发ADC采样i1,在T2时刻触发ADC采样i2采样。

不知道香主有何高见解决这个问题?

使用特权

评论回复
12
whlcsu|  楼主 | 2012-2-17 14:58 | 只看该作者
10# 香水城

再来个占空比<50%的示例图:

使用特权

评论回复
13
香水城| | 2012-2-17 15:11 | 只看该作者
本帖最后由 香水城 于 2012-2-17 15:12 编辑

看了LS的图,说明我6楼理解的没错。

正像6楼说的:你根本不需要使用同步规则模式,只需使用ADC1分别采样即可。但是你可能需要使用另一个TIM产生一个2倍频率触发信号。

或者使用ADC1采样第一个信号,使用ADC3采样第二个信号。

使用特权

评论回复
14
香水城| | 2012-2-17 15:23 | 只看该作者
想起来一个旧帖的内容,可以用在LZ的问题中产生触发信号:https://bbs.21ic.com/viewthread.php?tid=188023

使用特权

评论回复
15
香水城| | 2012-2-17 16:59 | 只看该作者
本帖最后由 香水城 于 2012-2-17 17:09 编辑

想了想,12楼的要求还不太好只使用一个定时器实现,可以考虑使用2个定时器实现:一个定时器输出PWM信号,另一个定时器产生触发ADC采样的信号,只要保持2个定时器同步即可。

问个问题:在你的应用中,12楼图中的PWM1和PWM2是一个需要输出的信号吗?或者只是用于触发ADC的内部参考?如果不输出信号,则可以省下一个定时器。

使用特权

评论回复
16
nongfuxu| | 2012-2-17 17:52 | 只看该作者
STM32f的外设就是牛!

使用特权

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

本版积分规则

2

主题

59

帖子

0

粉丝