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.

[参考译文] DRV8434SEVM:无法使 SPI 正常工作

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

https://e2e.ti.com/support/motor-drivers-group/motor-drivers/f/motor-drivers-forum/1302692/drv8434sevm-unable-to-get-spi-to-work

器件型号:DRV8434SEVM
主题中讨论的其他器件:DRV8462EVMDRV8434S、DRV8462

您好!
我们最近购买了83434、但到目前为止还无法使 SPI 正常工作、这与我们在 DRV8462EVM 上使用的设置类似。

我们的设置是一个连接到板 SPI 的 Arduino、其中连接了使能和 nSleep 并且将其提升为高电平、如下所示:

  • SPI 模式1和5Mbit 波特率。 我们尝试了其他模式和其他波特率、但这种模式和波特率在前一款步进电机上的效果最好。
  • 设置:
    • 0x04至0x8F (默认值+ EN_OUT=1)
    • 0x07至0x18 (EN_STL=1)
    • 0x08至200 -也尝试了许多不同的值。

在 DRV8462EVM 上、我们也使用了 MODE 引脚、以及引脚 MODE (方向和步进引脚)和 SPI 步进和方向(通过0x05)。  这在两种设置中都成功通过了各种电机和各种寄存器值。 此外、在该电路板上、SPI 在没有将电路板连接到 USB 的情况下也无法工作(即使未发送任何数据)。

在 DRV8434SEVM 上、如果在没有 USB 的情况下运行、则不会通过 SPI 返回任何内容、而当它连接后、我们在0x00上一致地接收到192、这转换为 Fault + SPI_ERROR。

什么地方出错了? 可能是电路板中的 MODE 引脚设置不正确吗?

谢谢!
投资回报(ROI)

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

    您好 ROI、

    感谢您的发帖。 当将 DRV8434SEVM 连接到外部 MCU 以进行控制时、必须拆焊 SPI 引脚等受控引脚的跳线。 请参阅以下片段。 VSDO 必须由 MCU 提供、例如 MCU 电源的3.3V。 nFAULT 可能需要一个外部上拉电阻连接外部 MCU 电源。  

      

    DRV8462EVM 具有两个行接头、可在这些引脚上轻松实现隔离、因此有差异。 这两个器件的 SPI 实现是相同的。

    此致、Murugavel

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

    尊敬的 Murugavel:

    非常感谢快速和信息的回复!  

    我已经尝试过如您所说的方法(禁止故障引脚、因为我们改用 SPI 寄存器值)。 现在、我始终通过 SPI 接收到0、与向寄存器写入内容无关。

    此外、我已了解8434S 的功能 wa、因此对于 SPI 逻辑相同的说法、我会感到困惑、因为根据数据表、它们并不具有所有相同的寄存器。 情况不是这样吗?

    谢谢!

    投资回报(ROI)

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

    只是为了澄清连字符、我已根据您发送的图像移除了所有电阻器、而不仅仅删除了与 SPI 通信相关的电阻器。  

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

    您好 ROI、

    感谢您的更新。 对于 SPI 逻辑、我表示通信协议 CLKPH 和 POL 是相同的。 是的、寄存器地址和位字段会不同。  

    SDO 输出缓冲器工作需要 VSDO 电源连接、这将是 SDO 引脚的逻辑高电平输出。 请确认是否已连接。 谢谢。

    此致、Murugavel

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

    您好,Murugavel!

    我已经将它连接到 Arduino 上的3.3、并将 GND 连接到 Arduino THR 上的 GND。 这是您的意思吗?

    谢谢!

    投资回报(ROI)

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

    高投资回报(ROI)、

    是的,这是我的意思。

    此器件已交付多年。 我们尚未发现与 MCU 的 SPI 通信存在任何问题。 如果您碰巧有一个 SPI 解码工具,如 Saleae 或示波器,您可以捕获交易并与我们分享吗? 它必须遵循以下所示的时序协议。

    器件必须针对 SPI 事务处于唤醒状态、nSLEEP = 1、并且在 SPI 事务完成之前会有大约1ms 的上电/唤醒延迟(请参阅数据表)。

    此致、Murugavel

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

    您好!
    Arduino 上的 SPI 电平似乎为5V -对于 SPI 逻辑而言、它过高了吗?
    谢谢!
    投资回报(ROI)

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

    高投资回报(ROI)、

    根据数据表规格、这应该不是问题。 在这种情况下、VSDO 必须连接至5V、以便 DRV8434S 的 SDO 上提供5V 逻辑高电平输出。  

    此致、Murugavel

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

    仍然不工作

    我是否可以移除您发送图片中的所有电阻器、而不仅仅是 SPI 电阻器?

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

    很遗憾听到仍有问题。 您还必须移除 SPI 电阻器。 除了 SPI 引脚上5V 的电压外、MSP430也会损坏。 此外、MSP430还将加载 SPI 引脚。

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

    尊敬的 Murgavel:
    我已经尝试将电路板连接到3.3V SPI 芯片、现在仍在故障寄存器上接收到 SPI 错误(0xC000、表示故障+ SPI 错误)

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

    供参考-已在3.3V 板上尝试8462、它运行良好(连接的电机移动)-但我仍在0x00上收到0xC000

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

    高投资回报(ROI)、

    指示 SPI 协议错误、例如 SCLK 脉冲多于所需、或者缺少 SCLK、即使 nSCS 为低电平。 在出现故障时变为高电平、nFAULT 引脚被驱动为低电平。  

    第一个事务可能会发生此类错误。 例如、nSCS 在启动时没有 SPI 时钟脉冲的情况下发生切换。 SPI_ERROR 不会阻止进一步的 SPI 事务、器件可以通过 SPI 正常工作、进一步运行。 如果您通过 SPI 发出 CLR_FLT、则应清除错误。 如果再次发生、则再次指示错误的事务。  

    此致、Murugavel

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

    您好!

    确实、连接到8642的电机可以正常运行、即使存在 SPI 中所述的"故障"也是如此。

    但是、在发送 SPI 步进时、8434上的同一电机不会移动、具有相同的设置。

    谢谢!

    投资回报(ROI)

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

    您好!

    8434在通过引脚发送步进输入时是否正常工作?

    我假设您负责了 DRV8434S 与 DRV8462中地址位的移位? 请参见下方的。 对于 DRV8434S、该地址必须左移一次。 您还可以执行 SPI 读取寄存器、并确认寄存器是否已写入所需的位字段。 地址位的位置移位同时适用于读取和写入操作。  

      

    此致、Murugavel

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

    好吧,这是尴尬的…… 我完全错过了这个。 对地址进行位移当然是有效的-我现在始终得到 NFault、但这是我要尝试解决的另一个问题。
    非常感谢你的耐心 Murugavel !!!

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

    您好 ROI、

    很高兴这帮您解决了这个问题。 没人知道我在习惯对固件进行编码时错过了哪些简单的事情并经过了几个小时的调试。 在器件从睡眠中唤醒后、使用 nSLEEP 控制 包括一个> t (READY)的延迟时间、可能为1.5ms 左右、然后启动 SPI 事务。 希望这能避免设置 SPI_ERROR。 有时、您可能只需执行一次 CLR_FLT 即可清理内容并为应用设置器件。 感谢您的更新。 我将关闭该主题。  

    此致、Murugavel