原理图中个电压都是正确的
程序的配置和回读 也正确 但是电机就是不转
DRV10987_Write_Byte(0x60 , 0x8000); // 配置器件电机停转
DRV10987_Write_Byte(0x31 , 0x0000); // 将寄存器0x31写入 0x0000 以清除 EEPROM 访问代码 DRV10987_Write_Byte(0x31 , 0xC0DE); // 将寄存器0x31写入 0xC0DE 使能访问EEPROM
Delay_10ms();
Delay_10ms();
Delay_10ms();
Receive_Sum_Value = DRV10987_Read_Byte(0x32); // if (Receive_Sum_Value==0x01)
{
DRV10987_Write_Byte(0x90 , 0xC001); // DRV10987_Write_Byte(0x91 , 0x0049); // DRV10987_Write_Byte(0x92 , 0x00C1); // DRV10987_Write_Byte(0x93 , 0x37B8); // DRV10987_Write_Byte(0x94 , 0x3BAF); // DRV10987_Write_Byte(0x95 , 0x7840); // DRV10987_Write_Byte(0x96 , 0x007A); // 这是写影子寄存器
DRV10987_Write_Byte(0x35 , 0x0006); // 写字节 将影子寄存器中的数据同步到 EEPROM Delay_1s();
Receive_Sum_Value = DRV10987_Read_Byte(0x32); // 等待数据写入EEPROM结束 if (Receive_Sum_Value==0x01)
{
DRV10987_Write_Byte(0x35 , 0x0002); // 将EEPROM中数据 同步到 影子寄存器中 Delay_10ms();
Delay_10ms();
Delay_10ms();
Receive_Sum_Value = DRV10987_Read_Byte(0x32); // 等待同步结束 if (Receive_Sum_Value==0x01)
{
Receive_Sum_Value = DRV10987_Read_Byte(0x90); // 读字节
Receive_Sum_Value = DRV10987_Read_Byte(0x91); // 读字节
Receive_Sum_Value = DRV10987_Read_Byte(0x92); // 读字节
Receive_Sum_Value = DRV10987_Read_Byte(0x93); // 读字节
Receive_Sum_Value = DRV10987_Read_Byte(0x94); // 读字节
Receive_Sum_Value = DRV10987_Read_Byte(0x95); // 读字节
Receive_Sum_Value = DRV10987_Read_Byte(0x96); // 读字节
Delay_10ms();
Delay_10ms();
Delay_10ms();
DRV10987_Write_Byte(0x60 , 0x0000); // 配置期间电机运转 }
}
}
请教一下各位
user1481681:
原理图中各个参数都正确,
user5367470:
回复 Alvin Zheng:
各部分电压都正确,但是三相输出为0,可能是什么原因,用的单个芯片不是EVM