在线时间24 小时
UID3323829
ST金币0
蝴蝶豆2
注册时间2018-3-6
中级会员
- 最后登录
- 2020-7-30
|
楼主 |
发表于 2018-4-10 16:50:17
|
显示全部楼层
a0a.1 32b0c
1.编码器设置的BUG
电机库默认的正交编码器是用定时器TIME2和TIME4的输入捕获功能来检测磁极位置的,且应用了四倍频,但没有使用编码器的Z相检测机械零点,我使用的电机为1000线正交编码器,配置界面如下
但是配置之后电机总是转不起来,转子在那里摆动,和老师讨论这个问题后,老师建议查一下编码器自动清零时的值是否正确,开始在encoder_speed_pos_fdbk.c文件中找到转子角度计算的子程序,
在这里设置printf,将定时器的计数值(int32_t)( LL_TIM_GetCounter(pHandle->TIMx))和角度的计算结果打印出来,结果发现,定时器的计数值在1600的时候自动清零,后找到定时器2的初始化程序
这里的计数周期PULSENBR定义为1599,这个值恰好是默认值400的4倍频,于是将其改为自己的参数4×1000-1=3999,电机能够正常转动。 |
|