CTRL6我设定的是0x0F,失步检测是打开的,我是检测“故障状态(地址0x00)”的失步状态位。初始上电检测,检测多次很正常(用堵转模拟),但多次操作后(不一定次数),就会出现不能检测到失步的情况,实时读“CTRL7”的值,是小于“CTRL6”的设定值的,读“CTRL5”EN_STL位是为“1”的,就是说检测是使能的,但就是“故障状态”不置位故障。
红色的是SPI读地址02的状态数据(16位),根据IC的定义可以看出无故障。兰色的是地址9的数据,地址8设定的是15,可以看出在堵转时好几次数据是小于设定值的,但SPI读地址02的状态数据(16位)却没有给出对应的状态。
通过清除故障状态的命令,有时可以达到正确检测失步,但有时还是不能检测到失步
根据这段,CTRL7的值低于CTRL6设定的值就会置位失步状态位(失步检测是使能的)。但我测试的实际情况却是如上所述