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.

[参考译文] DRV8889-Q1:DRV8889-Q1

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

https://e2e.ti.com/support/motor-drivers-group/motor-drivers/f/motor-drivers-forum/1116459/drv8889-q1-drv8889-q1

器件型号:DRV8889-Q1

大家好、

我们在正常状态下运行一个步进电机、它工作正常、NFAULT 引脚被上拉。

稍后、我们将执行以下步骤。

1.我们将通过使其打开负载来手动引入错误。

2.能够检测 OL -读取状态寄存器值、如  SReg0=0x81、sreg1=0x00、SReg2=0x03。

3.手动删除开路负载错误。

此外,通过 CR4中的 CLR_FLT 位清除故障,我们仍在读取寄存器值--  SReg0=0x81,sreg1=0x00,SReg2=0x03。

您能否确认寄存器为何在清除 CLR_FLT 位后读取故障。

谢谢、此致、

Lakshmi Teja

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

    您好!

    看起来您在这个上启动了一个新的线程。   

    在步骤3中、您要重新连接电机?  您是否能够正常驱动电机?  尝试确定此开路故障是否真实存在。   

    您尝试过多少个 IC?  您能否发布原理图?

    此致、

    Ryan

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

    您好、Ryan、

    抱歉、我们无法分享完整的原理图、但我可以分享与驱动程序相关的内容、请在下面找到。

    1.我们最初是在正常情况下运行电机,电机运行时没有任何故障。

    然后、我们通过打开开关1、使其根据所连接的开关打开负载、从而产生故障。

    在本例中、我们遇到了故障。

    3、我们将关闭 SW-1 (再次将电机连接到 ECU)、手动清除故障、同时 通过 CLR_FLT 位清除状态寄存器(SReg0=0x81、sreg1=0x00、SReg2=0x03)。

    我们还尝试通过将 nSleep 变为低电平来在3millisec 下清除该误差。

    但我们仍会得到与上述相同的误差。

     即使在清除故障后也会导致错误(SReg0=0x81、sreg1=0x00、SReg2=0x03)、原因可能是什么。

    4. 在步进电机正常运行期间、NFAULT 引脚被上拉- NFAULT 引脚为高电平、一旦引入故障、它将变为低电平、但在清除故障后、NFAULT 仍处于逻辑低电平、而不是变为高电平-您可以澄清什么原因?  

    5.从表7-10中,我了解到,一旦检测到 OL,如果我错了,就没有恢复机制。

    只有在重启电源时才会恢复?  或者 、我们还有其他恢复机制吗?

    谢谢、此致、

    Lakshmi Teja。

      

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

    Lakshmi、

    重新连接电机后、您能否像步骤1中那样尝试正常驱动电机?  然后在行驶时清除故障。  当您尝试清除故障时、我怀疑电机电流小于30mA、并且再次触发。   如果您尝试驾驶、电机电流应为非零、故障应清除。

    此致、

    Ryan

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

    您好、Ryan、  

    重新连接电机后、您能否像步骤1中那样尝试正常驱动电机?  然后在驾驶时清除故障。我们遵循相同的步骤。

    1.在正常操作下运行电机-我们能够驱动电机。

    2.为 Aout2创建了开路负载。

      通过状态寄存器 READ - SReg0=0x81、sreg1=0x00、SReg2=0x03来检测观察到的开路负载。

    3、我们将开路连接回正常状态、通过 SPI 向控制寄存器4的值= 0xB9 (在该 CLR_FLT 位中设置)写入值来清除故障。

    4.尝试驱动电机、即使我们可以看到状态寄存器数据 SReg0=0x81 、sreg1=0x00、SReg2=0x03。

    我们将接地短路-将 Aout2接地以测试过流、但仍在检测开路负载、并获取状态寄存器- SReg0=0x81、sreg1=0x00、SReg2=0x03。 您能告诉我们为什么会遇到开路负载故障。

    此外、请您澄清一下  

    5. 在步进电机正常运行期间,NFAULT 引脚被上拉,NFAULT 引脚为高电平,一旦引入故障,它将变为低电平,但在清除故障后,NFAULT 仍处于逻辑低电平,而不是变为高电平,这可能是原因。  

    6.从表7-10中,我了解到,一旦检测到 OL,如果我错了,就没有恢复机制。

    只有在重启电源时才会恢复?  或者 、我们还有其他恢复机制吗?

    谢谢、此致、

    Lakshmi Teja

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

    您好、Ryan、  

    重新连接电机后、您能否像步骤1中那样尝试正常驱动电机?  然后在驾驶时清除故障。我们遵循相同的步骤。

    1.在正常操作下运行电机-我们能够驱动电机。

    2.为 Aout2创建了开路负载。

      通过状态寄存器 READ - SReg0=0x81、sreg1=0x00、SReg2=0x03来检测观察到的开路负载。

    3、我们将开路连接回正常状态、通过 SPI 向控制寄存器4的值= 0xB9 (在该 CLR_FLT 位中设置)写入值来清除故障。

    4.尝试驱动电机、即使我们可以看到状态寄存器数据 SReg0=0x81 、sreg1=0x00、SReg2=0x03。

    我们将接地短路-将 Aout2接地以测试过流、但仍然开路负载正在检测并获取状态寄存器- SReg0=0x81、sreg1=0x00、SReg2=0x03。   

    此外、请您澄清一下  

    5. 在步进电机正常运行期间,NFAULT 引脚被上拉,NFAULT 引脚为高电平,一旦引入故障,它将变为低电平,但在清除故障后,NFAULT 仍处于逻辑低电平,而不是变为高电平,这可能是原因。  

    6.从表7-10中,我了解到,一旦检测到 OL,如果我错了,就没有恢复机制。

    只有在重启电源时才会恢复?  或者 、我们还有其他恢复机制吗?

    请尽快澄清上述情况。

    谢谢、此致、

    Lakshmi Teja

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

    Lakshmi、

    对于#6、我不理解您所说的"无恢复机制"的含义。  CLR_FLT 命令应完全清除 OL 故障。  IC 本身或 SPI 通信有问题。  

    当输出与 GND 短接时、应该会发生 OCP 故障、但您会始终读取与我完全不同的故障条件。

    您是否肯定 SPI 通信正常工作?  

    此致、

    Ryan   

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

    您好、Ryan、

    在表7-10的"恢复"栏下 ,我可以看到-仅报告(这是什么意思)。

    当输出与 GND 短接时、应该会发生 OCP 故障、但您仍会读取与我完全不同的故障条件。-在短接至接地时、我们将获得状态寄存器0 AS 0x81和 状态寄存器2 AS 0x03 (用于检测开路负载)。

    您是否肯定 SPI 通信正常工作? -是的

    此致、

    Lakshmi Teja

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

    Lakshmi、

    仅报告意味着器件只标记故障、但将保持正常运行。  这意味着、如果已连接、电机仍将旋转、器件将保持运行状态、就像未发生故障一样。

    您是否尝试过多个设备?  无论您做什么、您都会得到同样可疑的故障报告。  驱动电机时输出短路应标记 OCP。

    此致、

    Ryan

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

    Lakshmi、

    是否有任何更新?

    此致、

    Ryan

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

    您好、Ryan、

    感谢您的以上支持。

    我们在正常运行条件下运行电机-不会出现任何故障。

    但是、在接地短路时、我们将获取状态寄存器0 AS - 0x81和 状态寄存器2 AS - 0x03 (除了 OCP、它还会检测开路负载)。

    正如您在上面提到 的、报告仅意味着器件只标记故障、但将保持正常运行- 但如果我们想要清除故障(不应指示故障)-如何清除?

    此致、

    Lakshmi Teja

     

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

    Lakshmi、

    CLR_FLT 命令应完全清除 OL 故障。  您是否在状态寄存器1中获得 OCP 故障?   

    此致、

    Ryan

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

    e2e.ti.com/.../26July2022_5F00_PowerOn_5F00_RefAll_5F00_OLError_5F00_ErrClear.csvHiRyan、

    CLR_FLT 命令应完全清除 OL 故障。  您是否在状态寄存器1中获得 OCP 故障? - 我们无法检测 OCP (status register1数据为-0x00)。

    此外、

    如果检测到开路负载、我们可以从状态寄存器中获取开路负载状态、突出显示的位如下所示。

     

    一旦状态寄存器指示开路负载,我们就手动解决问题,并通过将控制寄存器4设置为“1”来写入“CLR_FLT”位。

    在清除故障后、我们还可以看到状态寄存器中显示开路负载。

    1. 如何从开路负载中恢复?
    2. 我们如何清除该状态寄存器位值? 这些位是否只能通过下电上电来清除?

    我将分别共享捕获的 SPI 通信(数据和使用逻辑分析仪捕获的图像)-- SReg0、SReg1、SReg2。

    以下是捕获数据的步骤:

    1. 打开 ECU 电源
    2. 几秒钟后、我们在正常运行条件下移动电机。
    3. 断开连接至 LWR 步进器的其中一根导线(Aout2)、创建了开路负载错误。
    4. 几秒钟(5-10秒)后、重新连接导线。(解决开路负载错误)
    5. 然后、我们尝试使用一个工具来清除故障。
    6. 几秒钟后、我们停止捕获。

    此致、

    Lakshmi Teja

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

    Lakshmi、

    在您重新连接并发出 CLR_FLT 命令后、您是否能够在移除导线和线圈电流之前提供线圈中电流的示波器捕获?  您是否在发出 CLR_FLT 命令的同时继续发出步进输入并尝试移动电机?

    如果电流中的线圈在200ms 内保持<30mA、则仍可能再次发生开路负载故障。  如果您还可以将 nFAULT 置于相同的示波器捕获中、则可以看到 nFAULT 是否会变为低电平以指示故障。 nFAULT 应在发出 CLR_FLT 命令后转换回高电平。

    此致、

    Ryan

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

    您好、Ryan、

    我们没有任何硬件设置来捕获线圈中的电流。

    您是否在发出 CLR_FLT 命令的同时继续发出步进输入并尝试移动电机?-我们不 会发出步进输入。

    此致、

    Lakshmi Teja

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

    Lakshmi、

    我想我们刚刚发现了这个问题。  如果您不发出阶跃并且线圈中的电流保持在30mA 以下、则将继续发生开路负载故障。   

    此致、

    Ryan

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

    您好、Ryan、  

    感谢您的以上支持。

    您能否告诉- 在发出 CLR_FLT 命令时/在发出 CLR_FLT 之前/在发出 CLR_FLT 之后要提供的步骤?  ( 这可以通过控制寄存器3中的 STEP 位来完成吗?)

    请说明。

    此外、我还有另一个查询...

    我们将通过短接应检测故障的线圈来对步进电机执行测试。

    请查看我们的观察结果下表:

    DRV-8889 观察结果
    A1 答2. 仅当我们尝试通过滑动电机杆或 参考装置通过独木舟移动电机时才检测到故障。
    A1 B1 立即检测到故障
    A1 B2. 立即检测到故障
    B1 B2. 仅当我们尝试通过滑动电机杆或 参考装置通过独木舟移动电机时才检测到故障。
    B1 答2. 立即检测到故障
    B2. 答2. 立即检测到故障

    当我们短接线圈(A1和 A2或 B1和 B2)时、我们无法检测到故障、 仅当我们尝试通过独木舟移动电机时才能够检测到故障。

    剩余所有情况在创建(A1和 B2、A1和 B1、B1和 A2、B2和 A2)之间的短路时检测到故障。

    在线圈(A1和 A2或 B1和 B2)短路时未检测到故障的原因可能是什么?

    此致、

    Lakshmi Teja

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

    您好!

    感谢您的提问。 Ryan 是 ooo、本周晚些时候回来。 让我来回顾一下您的问题和反馈。

    此致

    Shinya Morita

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

    您好、Shinya、  

    谢谢您、请您在方便之前查看并帮助我们。

    此致、

    Lakshmi Teja

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

    Lakshmi、

    如您所述、可以通过对硬件引脚、STEP 进行物理脉冲或通过 SPI 发出"步进"。

    您必须检查输出的状态。  仅当一个输出为"高电平"、另一个输出为"低电平"时、才会在输出到输出短路时检测到故障。  如果两者均为高电平或两者均为低电平、则无故障、因为没有电流流动。

    此致、

    Ryan

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

    您好、Ryan、  

    为了获得输出(高/低)的状态、我们执行了以下测试并观察到以下几个值、您能否告知它是否正确。

    如何从这些值中考虑状态。

    GND - A1 - 0.80V (空闲状态)

    GND - A2 - 0.06V (空闲状态)

    3.GND - B1 - 0.00V (空闲状态)

    4.GND - B2 - 0.48V (空闲状态)

    我们将万用表的一条线路连接到 GND、将另一条线路连接到电机线圈引脚(A1/A2/B1/B2)、然后通过万用表测量电压。

    上述值是在空闲状态期间、当我们运行电机时、每次这些值发生互换时。

    还请确认此程序是否正确。

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

    Lakshmi、

    没关系。  因此、逻辑会告诉您、在此状态下、仅会检测到 OCP 发生电源短路。  当在线圈中调节电流时、输出将在高/低之间切换。  您可以在示波器捕获上更好地看到这一点。   

    此致、

    Ryan