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.

[参考译文] DRV8353F:DRV8353F:DRV8353F:SPI 寄存器写入问题

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

https://e2e.ti.com/support/motor-drivers-group/motor-drivers/f/motor-drivers-forum/1521814/drv8353f-drv8353f-drv8353f-spi-register-write-issue

器件型号:DRV8353F

工具/软件:

主题:寄存器写入问题(ADDR2/5/6)

大家好、使用更清晰的说明重新打开此主题:

  1. 正常行为

    • ADDR2 = 0x400 写入成功。

  2. 发现问题

    • 在错误操作期间、 ADDR5  ADDR6 意外接受 0x400 (不是我的目标值)。

    • 但写入  没错  

  3. 关键问题

    • 根本原因? (例如、地址映射冲突、时钟同步、写保护?)

    • 是否需要任何写入前序列?

      ADDR1写入 0x400   没错  



       ADDR1写入0x12D 失败  (默认为0x16d)


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

    您好:

    关于根本原因:

    我知道您提到过您已进行检查以确保这些位没有将寄存器置于锁定状态、因此我认为这不是问题所在。

    也不需要执行写前序列。

    您能否详细说明一下您说的意思:

    • "地址2.  可以写入(例如、 0x400、、 0x410 0x420)、但是  无法连续写入 —操作必须是  禁用  首先。"

    此外、请确保您遵循数据表中概述的 SPI 时序图

    确保在下降时钟沿采样(代码中的 CPOL 和 CPHA 设置)

    谢谢、

    Joseph

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

    大家好、重新关注问题:

    观察结果

    ADDR1接受不正确的值(例如0x400)

    写入正确的参数时失败

    环境中

    Addr2工作正常(基本写入函数的证明)

    核心问题是 Addr5

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

    您好:

    对我来说 、最大的可能性是0x12D 写入在 SDI 线路上的切换比0x400写入要多得多。  

    一些问题:

    1.您的板上的 SPI 线有多长时间? 我看到您的 SPI 线路上存在一些振铃、因此这导致我对整个时序/完整性提出了问题。

    还有什么可以解释的一些写工作,而一些不工作? 您的格式显然不存在问题、因为它能够成功执行操作。

    2.请仅提供未成功写入事务的放大示波器以供进一步分析。  

    谢谢、

    Joseph