完善资料让更多小伙伴认识你,还能领取20积分哦, 立即完善>
本文基于mst358芯片的调试drv8833马达控制。
电路: 马达座子接了12V步进电机(X1项目是5V的步进电机),马达驱动IC——DRV8833PWPR,对软件来说,需要控制的是NSTEEP、AIN-1、AIN-2、BIN-1、BIN-2引脚,它们的功能是: NSTEEP:拉低则芯片睡眠; 软件: 代码比较简单,本文只是挑选部分代码解释。其中提供了。/sys/light_machine_motor/panel_focus_forward和。/sys/light_machine_motor/panel_focus_reverse,来控制马达的正转或翻转。move_motor()函数对四个IN引脚控制,一开始调试时没搞明白输入和输出的逻辑关系,只是依赖逻辑分析仪来判断输出电平的高低,后面在代码中对4个引脚的16总控制进行测试(下文有说明)。供应商给的马达控制时序如下(-表示低电平,空白表示高电平): 相关代码参考light_machine_motor.c move_motor()函数。 调试过程遇到的问题: 1、应该先了解清楚控制IN引脚后OUT的输出是怎样的。 一开始调试时没搞明白输入和输出的逻辑关系,只是依赖逻辑分析仪来判断输出电平的高低,后面在代码中对4个引脚的16总控制进行测试,代码和结论如下: static ssize_t _focus_operate_step_store(struct device *dev, struct device_attribute *attr, const char *buf, size_t count) { int temp; temp = simple_strtol(buf, NULL, 0); //for test if( (0 《= temp) && (temp 《 16) ) { gpio_direction_output(g_motor_data.ai1, temp & 0x8); gpio_direction_output(g_motor_data.ai2, temp & 0x4); gpio_direction_output(g_motor_data.bi1, temp & 0x2); gpio_direction_output(g_motor_data.bi2, temp & 0x1); } else if(temp == 16) { gpio_direction_output(g_motor_data.sleep, 1); } else if(temp == 17) { gpio_direction_output(g_motor_data.sleep, 0); } return count; } 需要注意的是,这个结论是不接马达的时候测试的OUT引脚电平,实际上接上马达后,OUT处于Z状态时引脚电平是高的,这样才有AOUT1和AOUT2都为高的时候。总结测试的结论是:| 和DRV8833规格书说的不一样的是(不清楚原因),IN引脚为低时输出是低电平的,为高时输出是高阻态的。另外,控制AIN实际控制BOUT,而控制BIN实际控制AOUT。 2、这个马达时序需要8个Step,每个Step之间需要一点点延时,延时越大马达力矩越大。 如下代码: 每个Step处理mdelay延时,还有其他代码,这些代码运行都需要时间,但执行MOTOR_DGB打印信息时,会增加几毫米的运行时间,这就严重影响马达扭矩了。另外这段代码运行时可能被抢占,导致实际某些时刻Step运行时间远超motor_delay毫秒。 后面调试总体感觉是,只要大部分时间按照mdelay就可以了,即使有个别超过mdelay,也不太影响马达运转。 3、马达设置Stop模式时还持续发热 马达不使用时,应该设置为Stop模式,这样马达不会持续有大电流经过、发热而影响马达使用。X1 的马达Stop模式是把4个引脚拉低,但是在X1 Proj无论是拉高还是拉低,都会导致马达持续发热。最终的解决办法是控制NSTEEP引脚,来“启动”和“关闭”马达。 Uboot的TFTP烧录和固件升级时也要把NSTEEP拉低,所以需要再uboot中把NSTEEP引脚默认拉低。 4、马达驱动力不够 现象:马达拿出来,是可以正转和翻转的,但是放到光机里面,转一点点就不动了,手动给它一点点力就可以继续转,怀疑是扭矩不够,但是修改每个Step之间的时间差没有效果。 解决方法是把下面的5V改为10V。 |
|
|
|
只有小组成员才能发言,加入小组>>
2388 浏览 0 评论
8922 浏览 4 评论
36502 浏览 19 评论
4987 浏览 0 评论
24329 浏览 34 评论
1383浏览 2评论
1636浏览 1评论
2030浏览 1评论
1451浏览 0评论
395浏览 0评论
小黑屋| 手机版| Archiver| 电子发烧友 ( 湘ICP备2023018690号 )
GMT+8, 2024-11-24 13:13 , Processed in 1.208352 second(s), Total 77, Slave 61 queries .
Powered by 电子发烧友网
© 2015 bbs.elecfans.com
关注我们的微信
下载发烧友APP
电子发烧友观察
版权所有 © 湖南华秋数字科技有限公司
电子发烧友 (电路图) 湘公网安备 43011202000918 号 电信与信息服务业务经营许可证:合字B2-20210191 工商网监 湘ICP备2023018690号