DRV8860故障寄存器读取时序与datasheet不一致,寻求技术支持

Other Parts Discussed in Thread: DRV8860

读取故障寄存器时序的开头部分有疑问,如果按照手册时序写程序,读取数据丢失最高位,如果按照如下配置,可正确读取。

疑问1:如果不加CLK高,CLK低,同样会丢失最高位;

疑问2:CLK_H();//?按照datasheet时序图,应该在LATCH_H之后;调换后不能正确读取。

uint16 DRV8860_ReadFault()

{

uint16 dat=0;

uint8 i;

CLK_H();//?按照datasheet时序图,不需要

CLK_L();//?按照datasheet时序图,不需要

CLK_H();

LATCH_H();

CLK_L();

LATCH_L();

CLK_H();//?按照datasheet时序图,应该在LATCH_H之后;

LATCH_H(); 

//LATCH_H();//以下是与datasheet一致,丢失MSB

// CLK_L();

// LATCH_L();

// LATCH_H();

/ // CLK_H();

for (i = 0; i < 8; i++)
{
CLK_H();
CLK_L();
dat <<= 1;
if (DOUT_PIN) dat |= 1;
}

for (i = 0; i < 8; i++)
{
CLK_H();
CLK_L();
dat <<= 1;
if (DOUT_PIN) dat |= 1;
}

LATCH_L();//
return dat;