背景
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. 也就是说,要退出并联模式,需要将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引脚一个上升沿的过程。