DRV8848通道输出不正常原因
背景
在做电机驱动的过程中,使用到了8848芯片。
DRV8848 提供适用于家用电器和其他机电一体化应用的双 H 桥 电机驱动器。该器件可用于驱动一个或两个直流电机、一个双极性步进电机或其它负载。利用一个简单的 PWM 接口便可轻松连接到控制器电路;在使用DRV8848做直流电机的驱动时,发现两对通道只能有一路通道控制。
问题解决
通过调试和翻看数据手册发现:DRV8848有并联模式,两对通道可以并联输出。要使两对通道分别输出,需要设置芯片退出并联模式。
来自DRV8848数据手册说明如下
The two drivers can be used in parallel to deliver twice the current to a single motor. To enter parallel mode, AIN1 and AIN2 must be left Hi-Z during power-up or when exiting sleep mode (nSLEEP toggling from 0 to 1). BIN1 and BIN2 are used to control the drivers. Tie AISEN and BISEN to a single sense resistor if current control is desired. To exit parallel mode, AIN1 and AIN2 must be driven high or low and the device must be powered-up or exit sleep mode.
译文【这两个驱动器可以并联使用,为单个电机提供两倍的电流。要进入并行模式,在通电或退出睡眠模式时(nSLEEP从0切换到1),AIN1和AIN2必须保持Hi-Z状态。BIN1和BIN2用于控制驱动程序。如果需要电流控制,则将AISEN和BISEN连接到单个感测电阻器上。要退出并行模式,AIN1和AIN2必须处于高电平或低电平,设备必须通电或退出睡眠模式。】
按照芯片手册的说法,应该是,想要退出并联模式,需要将AIN1 AIN2同时置高电平或者低电平,并且将SLEEP引脚0-1
STM32使用代码修改如下
GPIO_WriteBit(GPIOB, GPIO_Pin_8,(BitAction)0x00);//AIN1
GPIO_WriteBit(GPIOB, GPIO_Pin_9,(BitAction)0x00);//AIN2
GPIO_WriteBit(GPIOC, DRV8848SLEEP_PC13_OUT,(BitAction)0x00);//SLEEP引脚
delay_ms(5);
GPIO_WriteBit(GPIOC, DRV8848SLEEP_PC13_OUT,(BitAction)0x01);//SLEEP引脚
delay_ms(5);
即按照数据手册的说明,将AIN1 AIN2同时置低电平,并给sleep引脚一个上升沿的过程。
- 点赞
- 收藏
- 关注作者
评论(0)