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.

[参考译文] DRV8308:DRV8308 - SPI 读取问题。

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

https://e2e.ti.com/support/motor-drivers-group/motor-drivers/f/motor-drivers-forum/688837/drv8308-drv8308---spi-reading-problem

器件型号:DRV8308

开始时、I READ 2A 寄存器-默认值为0x018、但 I READ 0x08。

为了进行测试、我向寄存器0x07写入数据
写入0x07 -读取0x03
写入0x0F -读取0x07
写入0x09 -读取0x00

因此、我连接了逻辑解串器并看到所有信号都正常、但 SDATO 引脚上的数据与 SCLK 同相。
但是 SDATO 上的数据应该出现在 SCLK 的下降沿或者上升沿上。
这解释了在0111 (0x07)和1111 (0x0F)的情况下控制器看到的位较少的原因
而剂量看不到0x09 -独立位。

 SDATO 引脚上有一个上拉10K 电阻器。


如何解决问题?

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

    您是否会使用示波器而不是逻辑分析仪来提供相同的事务?
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    我会尝试。 我应该得到4通道示波器。

    第一张图片-从寄存器0x2A 读取。

    第二个-从寄存器0x07读取数据0x09

    我们可以看到时钟信号良好、但 SDATO 引脚返回坏信号。

    它看起来像是线路上的一些电容。 但它是引脚之间的短导体和相当强的上拉10K。

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

    感谢您提供示波器捕获。 这些提供了更多信息。

    您能否确认 SPI 在2.5MHz 下运行? 在这种情况下、上拉电阻器可能太大、无法使 SDO 信号达到有效的高电平。 尽管 SPI 时钟可以高速率运行、但系统的运行速度只能与上拉电阻器为 SDATAO 线路充电的速度一样快。

    请尝试将 SPI 时钟减慢至1MHz、将上拉电阻器更改为3.3k、或两者兼而有之。 降低 SPI 速度最简单。
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    谢谢你。