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.

DRV8711: 多路drv8711应用中,SPI接口并联会导致通信异常

Part Number: DRV8711

在应用中采用了4颗drv8711(四颗定义为A、B、C、D)驱动四路步进电机,同时四颗芯片的SCLK、SDATI、SDATO信号进行了并联,SCS信号单独控制。单独测试每一路drv8711所有功能一切正常,同时使用时发现即使某一颗drv8711(A)的cs无效即低电平时,只要有跟其他芯片(B、C、D)有过通信即sck、sdati、sdato有信号产生,那么再次与A通信写寄存器,虽然检测总线数据无异常但芯片A并未响应我的写入,后再次写入A可响应。此现象100%可复现,因此想了解是否drv8711的spi接口逻辑不能像常规spi一样直接并联使用片选信号选定通信对象。如果是这样那么在多片drv8711应用场景中有什么好像方案不用每颗独占一路spi接口。

  • 您好,
          您这种电路连接是可以的。

          

    虽然检测总线数据无异常但芯片A并未响应我的写入,后再次写入A可响应

       是否有注意到不同的CS的Inactive time?延长此时间是否有帮助?

       DRV8711对SPI读写的特殊要求如下。

           

  • 补充说明 :测试时未连接电机,测试环境没有其他任何功率器件或高频器件。上电后依次对四颗驱动芯片写入寄存器数据,延时秒级时间,再次写入一次TORQUE,写入后读取发现该次写入似乎未被锁存读出依旧为上电初始化写入的数据,再次写入该寄存器,然后再次读取,回读数据显示写入成功。图中片选信号始终为同一路,切换其他三路读写测试现象一致。

  • 你好,感谢回复。

    目前采用的图7-32的拓扑结构,spi通信方面只是针对某颗通信一切正常,而且在上电初始化时四颗芯片连续的写入都是正确的,这个在后续依次读取有过验证读取数据与写入一致。问题出现在初始化结束后针对某些寄存器的单次写入不能成功,示波器与逻辑分析仪都有看过没有,似乎没有明显异常。cs的Inactive time有过测试S级间隔也不能解决问题。

  • 您好,

           

           上图红框中的数据是固定的吗,还是随机的?

           对于“7.6.3 TORQUE Register (Address = 0x01)” 默认值是 0001 1111 1111 , 红框数据是您上电初始化后的值?

           如果是,就说明写入不成功。

          另外,在空闲状态(此芯片CS为低)的时候,将数据线恢复为高电平试一下。      

  • 你好,

    可能我的表述有歧义,我说的初始化不是drv8711上电初始化的默认值,而是我软件通过spi写入寄存器为我的应用设定芯片的初始值,参考第一张图那段时序,该次连续写入是都能成功的,有读取验证过并且应用一切正常符合设计逻辑。问题就出现在后续的写入。你红框圈出的数据是我在初始化时写入TORQUE 的值,也就是说红框前那次写入是不成功的。

    有测试过空闲状态拉高数据线,不能解决问题。而且在初始化阶段cs空闲状态,数据线有高有低并没有影响后续的写入。

    暂时每次写入后读取确认,不正确重复写入,连续几天看起来都能保证第二次写入都是成功的,连接电机后也并未影响结果。

    就是感觉有些不是很放心,不知道发生了什么。。。。

  • 您好,

    您这个问题,很奇怪。

    如果增加CS有效后与SCLK起始时钟的时间是否有帮助。

  • 有测试过,没有效果,包括时钟频率调整都没效果。Tired face

  • 您好,

          对于您的问题,暂时没有更多建议,如有其它解决方法,会在此更新。