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

何谓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, 下载次数: 253

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管理
行使您的权利
官方最新发布
STM32N6 AI生态系统
STM32MCU,MPU高性能GUI
ST ACEPACK电源模块
意法半导体生物传感器
STM32Cube扩展软件包
关注我们
st-img 微信公众号
st-img 手机版