This thread has been locked.

If you have a related question, please click the "Ask a related question" button in the top right corner. The newly created question will be automatically linked to this question.

[参考译文] TM4C1294KCPDT:读取 DRV8860故障寄存器

Guru**** 669750 points
Other Parts Discussed in Thread: TM4C1294KCPDT, DRV8860
请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

https://e2e.ti.com/support/microcontrollers/arm-based-microcontrollers-group/arm-based-microcontrollers/f/arm-based-microcontrollers-forum/1078935/tm4c1294kcpdt-reading-drv8860-fault-register

部件号:TM4C1294KCPDT
“线程”中讨论的其它部件: DRV8860DRV8860A

您好,  

  我使用 TM4C1294KCPDT 配置板 连接 DRV8860来控制输出。 在这里,我可以通过 DRV 8860 Write 命令控制我的输出引脚。但我无法读取故障寄存器。 是否有任何错误,请纠正我。

DRV_Special 命令(1,2,3);
开(0xf0);
SystlDelay(1000);

DRV_Special 命令(1,2,4,3);
SystlDelay(1000);


DRV_Special 命令(1,4,3);
DRVRead ();
SystlDelay(1000);

DRV_Special 命令(1,4,2,3);
DRVRead ();
SystlDelay(1000);
关(0xff);


无效的 DRVRead ()

无符号字符 x;
DRV8860_clk_High
DRV8860_Latin_High
DRV8860_clk_Low
DRV8860_Latin_Low
DRV8860_clk_High;
DRV8860_Latin_High

(x=0;x<8;x++)

DRV8860_clk_High
SystlDelay(130);
DRV8860_clk_Low
SystlDelay(110);
故障<= 1;
IF (GPIOPinRead (GPIO _PORTD_BASE,0))
故障|= 1;

}


SystlDelay(110);

}

无效 DRV_Special 命令(uint8_t part1,uint8_t part2, uint8_t part3, uint8_t part4)

UINT8_t i;

DRV8860_Latin_High
DRV8860_clk_Low
DRV8860_Latin_Low
对于(i = 0;i < part1;I++)

DRV8860_clk_High
DRV8860_clk_Low

}
DRV8860_Latin_High

DRV8860_Latin_Low
对于(i = 0;i < part2;I++)

DRV8860_clk_High
DRV8860_clk_Low
}
DRV8860_Latin_High

DRV8860_Latin_Low
对于(i = 0;i < part3;I++)

DRV8860_clk_High
DRV8860_clk_Low
}
DRV8860_Latin_High

DRV8860_Latin_Low
对于(i = 0;i < part4;I++)

DRV8860_clk_High
DRV8860_clk_Low
}
DRV8860_Latin_High
}

请提前感谢。

此致,

拉尼  

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    星期一是美国假日。 我的一位同事将在星期二作出回应。

    此致,

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    您好,

    让我附上过去的 E2E 帖子以回答类似问题。

    https://e2e.ti.com/support/motor-drivers-group/motor-drivers/f/motor-drivers-forum/845522/drv8860-fault-register-read-waveform-error

    首先读取第一个读数,在读取故障寄存器之前,必须保持高粘度。  如果没有,数据将偏移一位。  我们可以看到显示这一点的代码,以及 Rick Duncan 的范围捕获。  这可能是问题所在。

    我建议捕获串行接口的波形并与此例进行比较。

    谢谢

    此致

    新雅·莫里塔

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    您好 ,Shinya Morita,

        在没有写入特殊指令的 DRV8860中,我可以控制输出阀。没有特殊指令,是否有读取故障寄存器的任何可能性?

    谢谢

    此致,

    拉尼   

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    您好 ,Shinya Morita,

       我配置了8个引脚,负载只在一个引脚上连接。 因此  ,当我读取故障寄存器时,我会通过输出引脚获得开路负载值 ,我是否正确?   但我在这方面没有得到任何价值??    你能不能纠正我的编码有误...

    请提前感谢  

    此致,

    拉尼·L

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    您好 ,Shinya Morita,

       我配置了8个引脚,负载只在一个引脚上连接。 因此  ,当我读取故障寄存器时,我会通过输出引脚获得开路负载值 ,我是否正确?   但我在这方面没有得到任何价值??    你能不能纠正我的编码有误...

    请提前感谢  

    此致,

    拉尼·L

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    你好,下雨了,

    感谢您提出后续问题。

    -要读取故障状态,特殊命令不是必需的。

    -nFAULT 引脚指示 DRV 是否有故障或至少有故障。 这可用于在没有串行通信的情况下对故障状态进行健全性检查。

    -DRV8860A 上的开路负载不可用。 我想您正在测试 DRV8860。

    ——是的,你的理解是正确的。 但是,只有在输出处于“关闭”状态时,才会检测到开路负载。 通过将数据寄存器位设置为‘1’,只要打开相应的输出,就会自动清除开路负载故障。(数据表8.3.3.2)  

    此致

    新雅·莫里塔

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    新雅·莫里塔,

     感谢您对清洁的澄清。  我在   这个书面数据寄存器中还有一个疑问,就是有些引脚为0,然后不连接此引脚中的任何负载...它在读取时显示故障还是不故障??

    [引用 userid="36147" url="~/support/iclers/arm-based 微处理器-组/基于 ARM 的微处理器/f/基于 ARM 的微控制器- forum/1078935/tm4c1294kcpdt-read-drv8860-fault-register/4000893#4000893]Yes,您的理解是正确的。 但是,只有在输出处于“关闭”状态时,才会检测到开路负载。 只要打开相应的输出,数据寄存器位设置为‘1’,就会自动清除开路负载故障。(数据表8.3.3.2) 

    请提前感谢  

    此致,

    拉尼  

     

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    你好,拉尼,

    感谢您的反馈。 它是数据表和预期功能的描述。

    此致

    新雅·莫里塔