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.

[参考译文] DRV3946-Q1:使用 CMD1不允许我更改通道1电磁阀的状态

Guru**** 2439710 points
Other Parts Discussed in Thread: DRV3946-Q1

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

https://e2e.ti.com/support/motor-drivers-group/motor-drivers/f/motor-drivers-forum/1388788/drv3946-q1-using-cmd1-does-not-let-me-change-the-state-of-the-channel-1-solenoid

器件型号:DRV3946-Q1

工具与软件:

我正在使用 drv3946来控制螺线管。  使用 CMD1寄存器时、无法将通道1螺线管关闭。  通道2似乎可以正常工作、但当 根据 DRV3946-Q1 pdf 文件的第7.5节中的说明将 CMD1与0x09或0x08配合使用时、drv3946会保持螺线管通电。

我已经尝试将 CONFIGA 寄存器空间中的 EN/EN1 DIS/EN2控制位设置为单独设置和组合设置、并尝试了这些位的所有设置组合、但没有成功。

我已禁用所有警告、nFAULT 显示为高电平。

我还尝试了禁用 nFAULT 报告以及所有警告报告。

PVDD 为24伏、VDD 为5伏。

我在演示板的 MCU 源文件中使用 CRC 算法、并且似乎没有在命令寄存器写入中遇到 CRC 错误。

寄存器转储显示了以下内容

(这是它们当前的设置方式、我尝试了不同的设置

SPI 读取为我们提供了寄存器地址0x10 RDATA -> 0xc0 0x40
SPI 读取为我们提供了寄存器地址0x11 RDATA -> 0xc0 0x40
SPI 读取为我们提供了寄存器地址0x12 RDATA -> 0x24 0x24
SPI 读取为我们提供了寄存器地址0x13 RDATA -> 0x0 0x88
SPI 读取为我们提供了寄存器地址0x14 RDATA -> 0x13 0xc  
SPI 读取为我们提供了寄存器地址0x15 RDATA -> 0x80 0x0
SPI 读取为我们提供了寄存器地址0x16 RDATA -> 0x0 0x0
SPI 读取为我们提供了寄存器地址0x17 RDATA -> 0x26 0x23  
SPI 读取为我们提供了寄存器地址0x18 RDATA -> 0x0 0x40  
SPI 读取为我们提供了寄存器地址0x19 RDATA -> 0xb 0xb  
SPI 读取为我们提供了寄存器地址0x1a RDATA -> 0x80 0x0  
SPI 读取为我们提供了寄存器地址0x1b RDATA -> 0x0 0x0  

是的。 不确定接下来该尝试什么。 我认为硬件看起来是正确的、因为设计是基于评估板的设计。

欢迎提出任何建议。

谢谢

Rick

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

    大家好、Rick、

    感谢您问这个问题。 您还可以为 Status 寄存器提供读取(地址0x01至0x04、0xA 和0xB)。

    谢谢!

    Ibinu

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

    很高兴!  给你。

    SPI 读取为我们提供寄存器地址0x1 RDATA = 0x5 0x88
    SPI 读取为我们提供寄存器地址0x2 RDATA = 0x8 0x2
    SPI 读取为我们提供寄存器地址0x3 RDATA = 0x0 0x0
    SPI 读取为我们提供寄存器地址0x4 RDATA = 0x0 0x0
    SPI 读取为我们提供寄存器地址0xA RDATA = 0x0 0x0
    SPI 读取为我们提供寄存器地址0xb RDATA = 0x0 0x0

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

    噢、作为一侧。 请注意、 理想情况下、我希望进行器件设置、以便可以使用 EN 线来控制阀、这是可行的吗? 我的硬件工程师和我不确定这是否可行。  然后、我可以使用 SPI 来清除故障并检查状态。  

    谢谢你

    Rick

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

    很抱歉,还有另一个细节...  需要说明的是、这些器件当前处于开路状态、我通过测量 drv3946输出端的电压来测试驱动情况。  

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

    此外、看到 configs 和 config b 的电弧似乎不正确、我将着手修复它。 (我将在开发板 MCU 的源代码中使用电弧算法)

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

    我修复了配置寄存器的电弧问题、这是 status0和 status1的输出

    SPI 读取为我们提供寄存器地址0x1 RDATA = 0x4 0x88
    SPI 读取为我们提供寄存器地址0x2 RDATA = 0x8 0x0

    但是、现在我完全无法控制螺线管的开启或关闭。

    我还尝试过使用 En line 来查看它们是否正常工作、到目前为止还没有。

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

    尊敬的 Richard:

    从 STATUS0寄存器来看、CH1_OFF_DIAG_STAT 和 CH2_OFF_DIAG_STAT 似乎为高电平。 这可能是由于未连接负载(有关详细信息、可从数据表的关断状态诊断部分获取这方面的详细信息)

    在未连接负载 的情况下、器件将继续处于待机状态、而您将无法看到输出节点切换。  

    我的建议是遵循这些步骤

    1.连接负载  

    2.用于清除 故障的 CLR_FAULT 命令   

    3.可以写入 CMD1寄存器以将 CH1_CTRL 和 CH2_CTRL 编程为所需设置。

    4.将 EN/EN1设置为高电平、以便打开接触器。

    谢谢!

    Ibinu

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

    尊敬的 Richard:

    在 SPI 读取0x1中、0x50x88似乎不太可能、这 意味着 NAD 地址为01。 由于状态0的前2位指示 NAD 地址。 我通过其他寄存器将其收集到0x00。 如果这是正确的、请告诉我。

    谢谢!

    Ibinu

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

    是的、这是可以实现的。 对初始寄存器进行编程后、可以通过 EN/EN1引脚控制接触器、以实现开/关功能。

    谢谢!

    Ibinu

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

    感谢您提供的信息。

    我已经连接了螺线管、并按照您的一组说明...  似乎我现在有一些其他问题与过流或欠流有关?

    我需要调整设备的设置以激活螺线管、因为螺线管仍未打开...

    这是器件的寄存器转储。

    SPI 读取为我们提供寄存器地址0x1 RDATA = 0x3c 0x0
    SPI 读取为我们提供寄存器地址0x2 RDATA = 0x38 0x0
    SPI 读取为我们提供寄存器地址0x3 RDATA = 0x0 0x0
    SPI 读取为我们提供寄存器地址0x4 RDATA = 0x0 0x0
    SPI 读取为我们提供寄存器地址0x5 RDATA = 0x0 0x0
    SPI 读取为我们提供寄存器地址0x6 RDATA = 0x0 0x0
    SPI 读取为我们提供寄存器地址0x7 RDATA = 0x0 0x0
    SPI 读取为我们提供寄存器地址0x8 RDATA = 0x0 0x0
    SPI 读取为我们提供寄存器地址0x9 RDATA = 0x0 0x0
    SPI 读取为我们提供寄存器地址0xA RDATA = 0x0 0x0
    SPI 读取为我们提供寄存器地址0xb RDATA = 0x0 0x0
    SPI 读取为我们提供寄存器地址0xc RDATA = 0xba 0x4d
    SPI 读取为我们提供寄存器地址0xd RDATA = 0xbb 0x4d
    SPI 读取为我们提供寄存器地址0xe RDATA = 0x0 0x0
    SPI 读取为我们提供寄存器地址0xF RDATA = 0x0 0x0
    SPI 读取为我们提供寄存器地址0x10 RDATA = 0xc0 0x40
    SPI 读取为我们提供寄存器地址0x11 RDATA = 0xc0 0x40
    SPI 读取为我们提供寄存器地址0x12 RDATA = 0x24 0x24
    SPI 读取为我们提供寄存器地址0x13 RDATA = 0x0 0x88
    SPI 读取为我们提供寄存器地址0x14 RDATA = 0x13 0xc
    SPI 读取为我们提供寄存器地址0x15 RDATA = 0x80 0x0
    SPI 读取为我们提供寄存器地址0x16 RDATA = 0x0 0x5
    SPI 读取为我们提供寄存器地址0x17 RDATA = 0x26 0x23
    SPI 读取为我们提供寄存器地址0x18 RDATA = 0xff 0xff
    SPI 读取为我们提供寄存器地址0x19 RDATA = 0xb 0xb
    SPI 读取为我们提供寄存器地址0x1a RDATA = 0x80 0x0

    我将从我的硬件工程师处获取电磁阀的详细信息。 他提到过我们需要对 drv3946使用的电路中的某些电阻器进行一些调整以确定要使用的电流范围。 我相信他所说的那条脊髓电流?

    感谢您的帮助!

    Rick

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

    遗憾的是、这不起作用。 我有负载连接,并发出命令,但继电器仍然不想启动.  对于此处发生的情况、我的损失严重。  

    有一件事,我发现演示板和我们的弹劾是不同的。 硬件设计人员添加了一个 EMI 抑制二极管、如此处将包含的原理图片段 I 所示。 有效方法

    这可能会阻止它运行吗?

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

    尊敬的 Richard:

    感谢您的耐心。 从寄存器设置(状态0、地址1h、位13) 来看、POR 位似乎为高电平。  

    这意味着上电完成、器件已准备好进入待机状态。 但是、要使器件进入待机状态、我们必须提供 CLR_FAULT 命令。 器件进入待机状态后即可进入运行状态。

    二极管应该不会导致启动问题,但我们必须了解一旦您能够启动电流调节是如何发生的。

    在原理图中、我看不到 Ripropi 电阻值、Config A0和 Config A1 (地址10h 和11h)的编程将取决于接触器和 Ripropi 的电流要求。 我附加了一个计算器、用于查找该计算器的寄存器位。 如果有帮助、请告诉我。

    谢谢!

    Ibinue2e.ti.com/.../PC_5F00_HC_5F00_calculator.xlsx

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

    好的、还有几个方面。 我添加了清除故障作为系统启动的一部分、并移除了将该引脚接地且现在通过使能引脚控制螺线管的电阻器。  我不确定这两个修复的问题中的哪一个、但当我在启动时立即添加了清除故障后、可以通过使能线路来控制系统。  我现在遇到的唯一问题是、如果我在尝试测量螺线管时意外短路、"Clear Faults (清除故障)"命令似乎不想重新启用我控制螺线管的功能。 我已尝试对清除故障使用 cmd0和 cmd1。 至于 RIPROPI 还原、我会将该电子表格转发给我的硬件工程师以供他查看。  

    感谢您的帮助!

    Rick