你的浏览器版本过低,可能导致网站不能正常访问!
为了你能正常使用网站功能,请使用这些浏览器。

何谓STM32 定时器的 “COM事件”【悬赏问答】

[复制链接]
syzby 提问时间:2012-7-13 08:15 /
请教各位高手:何谓STM32 定时器的 “COM事件”
收藏 评论14 发布时间:2012-7-13 08:15

举报

14个回答
xiaodc88 回答时间:2012-7-13 12:32:55

RE:何谓STM32 定时器的 “COM事件”【悬赏问答】

正好这个有玩过,控制过电机,对这个深有体会,我打个比方说:
比如无刷电机换向时,一般是三相要同时换向的,但是你在软里设置换向时肯定是一次只能设置一相,这就达不到三相同时换向了不。其实简单的办法就是启用STM32的COM事件,你先逐个设置好每相的换向(注意:此时虽然设置了,但实际上并不会进行换向),然后再调用COM事件,此时,三相将同时换向,就这么来的。阿呆版主,这够清楚了吧
starcool 回答时间:2012-7-13 12:44:31

回复:何谓STM32 定时器的 “COM事件”【悬赏问答】

COM时间是communication交换事件吧
 
111.jpg
参考下以下代码
用手动的方式产生COM事件和换Step

1、禁止所有中断,也就是禁止在SysTick中断中产生COM事件
  /* System Clocks Configuration */
  RCC_Configuration();

  /* NVIC Configuration */
  //NVIC_Configuration();

  /* GPIO Configuration */
  GPIO_Configuration();

  /* SysTick Configuration */
  //SysTick_Configuration();

2、手动添加COM信号和换step,增加如下代码

  temp = 0;
  while (1)
  {

        if(temp==1)
        {
                /* Generate TIM1 COM event by software */
                  TIM_GenerateEvent(TIM1, TIM_EventSource_COM);
                temp=0;
        }

        if(temp==2)
        {
                /* 换step */
                  TIM1_TRG_COM_IRQHandler();
                temp=0;
        }
  }

经过上述步骤之后,仿真调试,设置temp为1,程序没有有效输出,设置temp为2,换step,立即出现波形,注意这时并没有产生COM时间。

在TIM1的初始化代码中,设置了使能预装载功能的
  TIM_CCPreloadControl(TIM1, ENABLE);

 
22223333.jpg
青檬 回答时间:2012-7-13 08:35:33

RE:何谓STM32 定时器的 “COM事件”

COM事件是专门为电机控制用的,它只出现在高级定时器TIM1和TIM8中,普通定时器TIM2~TIM4没有COM事件。
阿呆 回答时间:2012-7-13 11:55:06

回复:何谓STM32 定时器的 “COM事件”【悬赏问答】

高手们能举例说明一下么?
航天航海 回答时间:2012-7-13 14:01:31

RE:何谓STM32 定时器的 “COM事件”【悬赏问答】

COM事件是用于同时控制所有通道的输出转换,在电机控制中同时转换所有通道的输出是十分必要的。
智空小子-360791 回答时间:2012-7-13 15:20:38

RE:何谓STM32 定时器的 “COM事件”【悬赏问答】

事件还是其它一些操作的触发源,比如DMA,还有TIM中影子寄存器的传递与更新;而中断是不能触发这些操作的,所以要把事件与中断区分开。
火雷达 回答时间:2012-7-13 17:44:37

回复:何谓STM32 定时器的 “COM事件”【悬赏问答】

原来是这样啊,学学习了,谢谢
xiaodc88 回答时间:2012-7-13 17:54:33

回复:何谓STM32 定时器的 “COM事件”【悬赏问答】

回复第 3 楼 于2012-07-13 11:55:06发表:
高手们能举例说明一下么?
 

应阿呆版主的要求,我已经取例了哈
阿呆 回答时间:2012-7-13 18:19:04

回复:何谓STM32 定时器的 “COM事件”【悬赏问答】

回复第 9 楼 于2012-07-13 17:54:33发表:
回复第 3 楼 于2012-07-13 11:55:06发表:
高手们能举例说明一下么?
 

应阿呆版主的要求,我已经取例了哈
 

哈,很有料的栗子~
mikeliujia 回答时间:2012-7-15 16:29:25

回复:何谓STM32 定时器的 “COM事件”【悬赏问答】

COM事件发生在STM32的高级控制定时器(TIM1、TIM8)的“六步PWM的产生”,而6-step PWM用于驱动三相电机,对应着直流无刷电机(BLDC)的六步换相。驱动三相电机需要什么波形,可参考有关电机驱动方面的资料,STM32的资料中没有介绍这些背景知识。
六步PWM的产生:当在一个通道上应用了互补输出时,OCxM、CCxE和CCxNE位的预装位有效。在COM通信事件发生时,预装载位被传送到影子位;因而可以预先设置好下一步的配置,并在同一时间更改所有通道的配置。COM事件可以通过硬件(在TRGI的上升沿)设置或者软件修改TIM1_EGR寄存其中的COM位来产生。当COM事件发生时会设置一个标志位(TIM1_SR寄存器中的COMIF位),这时如果已设置了TIM1_DIER寄存器的COMIE位,则产生一个中断;或者如果已设置了TIM1_DIER寄存器的COMDE位,则产生一个DMA请求。



 

STM32在马达控制上的应用.pdf

下载

615.08 KB, 下载次数: 252

czhuanqilai 回答时间:2018-1-23 21:09:39
COM事件是用于控制无刷换相
我用TIM2的CH2上升沿触发来触发COM事件换相,不知道以下几个疑点怎么配置??
1. 开启COM事件   (函数是那个)
2. COM事件由TIM2触发 (函数是那个)
五哥1 回答时间:2018-1-24 02:21:41
原来是这样啊,学学习了,谢谢
KEY1 回答时间:2020-2-18 11:13:06
我今天正好遇到这个问题 ,太好了
KEY1 回答时间:2020-2-18 11:13:54
xiaodc88 发表于 2012-7-13 12:32
正好这个有玩过,控制过电机,对这个深有体会,我打个比方说:
比如无刷电机换向时,一般是三相要同时换向 ...

解释的太好了,我在数据手册中查了半晚上没明白市咋回事

所属标签

相似问题

关于
我们是谁
投资者关系
意法半导体可持续发展举措
创新与技术
意法半导体官网
联系我们
联系ST分支机构
寻找销售人员和分销渠道
社区
媒体中心
活动与培训
隐私策略
隐私策略
Cookies管理
行使您的权利
官方最新发布
STM32Cube扩展软件包
意法半导体边缘AI套件
ST - 理想汽车豪华SUV案例
ST意法半导体智能家居案例
STM32 ARM Cortex 32位微控制器
关注我们
st-img 微信公众号
st-img 手机版