DRV8860没有输出的问题(很急)

Other Parts Discussed in Thread: DRV8860

在公司的项目中,我们使用了TI的DRV8860驱动芯片。

我们软件的设计思路是:将芯片的ENABLE一直拉高。在发送数据前先将LATCH脚和CLK脚拉低。接着就是利用DIN脚进行8位数据的串行传输(CLK上升把数据clock到寄存器)。再把LATCH脚拉高。

我们在实验时,全部传输1(即0xff),理想输出是output输出全部低电平。可是不管我们怎么去传输,output始终没反应。也就是高阻状态。

另外,fault脚,是不是在输出有错误时,会变低

#define _SCL_H         GPIO_SetBits(GPIOC, GPIO_Pin_10)    ///  CLK
#define _SCL_L         GPIO_ResetBits(GPIOC, GPIO_Pin_10)    ///

#define _DIN_H         GPIO_SetBits(GPIOC, GPIO_Pin_11)    /// DIN
#define _DIN_L         GPIO_ResetBits(GPIOC, GPIO_Pin_11)    ///

#define _EN_H             GPIO_SetBits(GPIOC, GPIO_Pin_8)/// ENABLE
#define _EN_L             GPIO_ResetBits(GPIOC, GPIO_Pin_8)///

#define _LATCH_H         GPIO_SetBits(GPIOC, GPIO_Pin_9)    /// LATCH
#define _LATCH_L         GPIO_ResetBits(GPIOC, GPIO_Pin_9)     ///

void Gpio_DO_Init(void)
{
 GPIO_InitTypeDef  GPIO_InitStructure;
    RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOC, ENABLE);
    GPIO_InitStructure.GPIO_Pin = GPIO_Pin_7 |GPIO_Pin_8 |GPIO_Pin_9 |GPIO_Pin_10 | GPIO_Pin_11;
    GPIO_InitStructure.GPIO_Speed = GPIO_Speed_50MHz;
    GPIO_InitStructure.GPIO_Mode =  GPIO_Mode_Out_PP;
    GPIO_Init(GPIOC, &GPIO_InitStructure);
   
 _EN_H;
}      

void Send_DATA8(unsigned char Data)
{
 unsigned char i;
 _SCL_L;
 for (i = 8; i != 0; i--) {
  (Data & 0x80) ? _DIN_H : _DIN_L;
  Delay(1);
  _SCL_H;
  Data = (Data << 1);
  Delay(1);
  if (i > 1)
   _SCL_L;  // left CLK HIGH at after the last data transfered     
 }
}

void Write_data(unsigned char Data)
{
 unsigned char data;
 data = Data;
 _LATCH_H;
 Delay(1);
 _LATCH_L;
 _SCL_L;
 Delay(2);
 Send_DATA8(data);                          
 Delay(1);
 _LATCH_H;
// Delay(1);
}

另附原理图

V1.1_DO.pdf