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.

[参考译文] LAUNCHCC3220MODASF:I2C 读取和写入不能与外部数字电位计一起工作

Guru**** 2587345 points
Other Parts Discussed in Thread: CC3220S

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

https://e2e.ti.com/support/wireless-connectivity/wi-fi-group/wifi/f/wi-fi-forum/716541/launchcc3220modasf-i2c-read-and-write-not-working-with-external-digital-potentiometer

器件型号:LAUNCHCC3220MODASF
主题中讨论的其他器件:CC3220S

你好

我们的 PCB 上有一个 CC3220MODAS、并且仅使用上述 Launchpad 通过 JTAG 进行调试。

我在连接 DPot AD5242时遇到问题。 我正在 CC3220s Launchpad 中尝试 i2ctmp006示例。 下面是我的代码

#define TMP006_DIE_TEMP 0b00000001 /*芯片温度结果寄存器*/
#define INS_BYTE 0b10000000
#define Board_TMP_ADDR (0b01011010)

uint8_t txBuffer[3];

txBuffer[0]= Board_TMP_ADDR;
txBuffer[1]= INS_BYTE;
txBuffer[2]= TMP006_DIE_TEMP;

i2cTransaction.slaveAddress = Board_TMP_ADDR;
i2cTransaction.writeBuf = txBuffer;
i2cTransaction.writeCount = 3;


对于(i = 0;i < 20;i++)
{
I2C_transfer (i2c、&i2cTransaction);
/*睡眠1秒*/
睡眠(1);
}

与数据表中一样、我连续发送了3个字节、从器件地址、指令字节和数据字节、但这不起作用、因为我看不到电阻变化。 我的从器件地址为10 (AD0、AD1)

话虽如此、 我们遇到了一个问题、即示波器上只发送了一个数据字节、并且未接收到从器件发出的确认信号! 因此、我们无法发送第二个指令字节和数据字节。

如果有人遇到同样的问题、请在这里帮我解决

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

    请参阅此处的第5页、并仔细检查 AD0、AD1引脚设置的设置以及发送地址、指令和数据的顺序和方法。 (或接收)

     

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

    在附加的代码段中、您可以看到我已按照第5页定义了3个字节。 似乎仍然存在未从器件接收到 ACK 的错误。
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    是的-所以请仔细检查您的所有接线、也许可以使用逻辑分析仪或分析仪来捕捉正在发送的内容。 我在网上的其他地方看到过这个部件上的几篇文章、人们在不同的控制器(不是 CC32xx)上遇到了类似的问题-他们的问题都得到了解决、我可以通过确保 AD5242正确接线来收集(您可以通过原理图和万用表进行检查) 然后与正确通信。 (您可以使用 LSA 或范围进行检查)
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    你好、Josh

    在示波器上、我们得到 CLK 和 SDA 线、但 SDA 线被左移1位、这就是为什么我们没有在第9个 CLK 脉冲上获得 ACK。 一切都已正确连接。 我想知道 i2c 传输 API 是否在从器件地址之前附加了0。 我的 AD0为1、AD1设置为0 (GND)。 请提供建议

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

    我的查询已解决。 事实证明、I2C 传输 API 负责第8个位、根据读取或写入的不同、该位可以是1或0。 因此、在.slaveAddress 中、只有从器件的7位地址就足够了。 我可以使用正确的数据集完美地获得我的信号、也可以读取!

    谢谢