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.

[参考译文] DRV2605L:[DRV2605L]关于 I2C 通信

Guru**** 2487425 points
Other Parts Discussed in Thread: TCA9548A, DRV2605L

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

https://e2e.ti.com/support/motor-drivers-group/motor-drivers/f/motor-drivers-forum/1130615/drv2605l-drv2605l-about-the-i2c-communication

器件型号:DRV2605L
主题中讨论的其他器件:TCA9548A

我对使用此电机驱动器有一个问题。  

我将三个 DRV 连接到 TCA9548A (多路复用器)。  

第一个 DRV 连接到 SD0/SC0、第二个连接到 SD1/SC1、最后一个连接到 SD2/SC2、如下所示 PDF 文件(请参阅)。  

e2e.ti.com/.../08302022_5F00_I2C-Circuit-Pilot-Test-Diagram.pdf

此外、我还使用波形库效果列表制作了一个代码来按顺序控制三个 DRV、如下所示:  

#include
#include

#define TCAADDR 0x70
SFE_HMD_DRV2605L HMD;

void tcaselect (uint8_t i){
if (i>7) return;
Wire.beginTransmission(TCAADDR);
Wire.write (1<<i);
wire.endTransmission ();

void setup(){
Wire.begin();
HMD.begin();
HMD.Mode (0x00);
HMD.MotorSelect (0x86);
HMD.Library (6);

//将您的设置代码放在这里,运行一次:

void loop(){
//将主代码放在此处,重复运行:
对于(int i=0;i<4;i++){
tcaselect ㈠;
HMD.Waveform (0、1);
HMD.Waveform (1、0);
hmd.go ();
延迟(1000);

但是、当我尝试运行此代码时、有时第三个代码会运行、这不是我所期望的。  

为了让我的方案运行此代码、我希望按顺序在0至2之间运行 DRV。 但是当我看到这个问题时、我多次按下复位按钮。 最后、它将正确运行。

我不知道这个问题发生了什么。

请告诉我解决方案。

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

    您好、Kihun、我们支持传动器驱动器的 TI 工程师目前不在办公室、将在9月6日的一周内返回时回答您的问题。

    感谢您的耐心等待。

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

    Kihun、

    不确定我是否理解该问题。 是否在您按下重置后正常运行?  

    我们可以建议 DRV 器件的正确运行、但在调试 MCU 代码方面会有所帮助。  

    Brian

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

    您好 Brian、  

    当我首先运行代码以运行三个或多个 DRV 器件时、它在最初几次都无法正常工作。  

    但是、如果我多次按下复位按钮、它将正常工作。  

    我不知道发生这种情况的原因、因为我遵循了运行多个 DRV 器件的示例代码。  

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

    您好、Kihun、

    如果器件在不符合预期的情况下运行、这必须意味着它在您不期望的情况下会收到 I2C 命令。  

    您应该缓慢地遍历代码、以查看何时可能发生这种情况

    此致、
    Arthur

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

    Kihun、

    为了补充 Arthur 的评论、当系统被复位时、在写入 I2C 之前可能需要一些延迟。 您需要查看微控制器代码的时序。

    Brian