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.

[参考译文] CC3220SF-LAUNCHXL:使用 I2C 驱动器与一个从器件上的不同从器件和不同寄存器进行通信

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

https://e2e.ti.com/support/wireless-connectivity/wi-fi-group/wifi/f/wi-fi-forum/765474/cc3220sf-launchxl-using-i2c-driver-to-communicate-to-different-slaves-and-different-registers-on-one-slave

器件型号:CC3220SF-LAUNCHXL
主题中讨论的其他器件:TMP117EVMTMP117

我想知道、是否有任何使用 I2C 驱动程序进行通信的示例:

  • 同一总线上的多个从器件  
  • 写入/读取一个从器件上的不同寄存器、特别是 TMP117EVM。  

我已经阅读了 ISC.h 文件中的所有注释、但有些不清楚。 我理解说不同的寄存器、我需要告诉总线寄存器地址、但文件中没有任何示例、在我看来、它好像没有在驱动器中实现、也许我错了。  

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

    这涉及到通过"用户可以向指针寄存器写入一个寄存器地址来访问 TMP117上的特定寄存器。  指针寄存器的值是在从器件地址字节之后传输的第一个字节"

    我对如何使用 I2C.h 文件在 C 代码中执行此操作感到困惑

    www.ti.com/.../snosd82a.pdf

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    在研究之后、我找到了一个示例、说明如何写入从器件上的特定寄存器、如下所示:

    uint8_t rxBuffer[2];
    uint8_t txBuffer[2];

    WriteBuffer[0]=专用寄存器;
    WriteBuffer[1]=字节;

    i2cTransaction2.slaveAddress = TMP117_address;
    i2cTransaction2.writeBuf = WriteBuffer;
    i2cTransaction2.writeCount = 1;
    i2cTransaction2.readBuf = ReadBuffer;
    i2cTransaction2.ReadCount =空;

    但是、当我将其应用于我的代码并读取该特定寄存器时、它不会保存我发送给它的值。
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    您好、Christopher、

    请原谅延迟。 我们没有多个从器件的示例、但幸运的是、这并不困难。 您可以为每个 i2c 从器件创建 I2C_Transaction 对象、当您想要发送到特定从器件时、只需使用 I2C_transfer (i2cHandle、"合适的 I2C_Transaction 对象")。

    在此处查看我们的 I2C API 和 SDK 中的 i2ctmp 示例、了解更多详细信息:
    dev.ti.com/.../

    Jesu
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    感谢您的参与、这解决了发送到多个从器件的问题、现在我的另一个问题是如何发送到一个从器件中的不同寄存器。
    我正在使用的从器件具有 temp_reg、high_lim_reg、low_lim_reg、configure_reg 和 tempofset_reg。
    现在、我的问题是向从器件中的每个寄存器写入数据、以便在读取温度时获得所需的结果。
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    感谢您的参与、这解决了发送到多个从器件的问题、现在我的另一个问题是如何发送到一个从器件中的不同寄存器。
    我正在使用的从器件具有 temp_reg、high_lim_reg、low_lim_reg、configure_reg 和 tempofset_reg。
    现在、我的问题是向从器件中的每个寄存器写入数据、以便在读取温度时获得所需的结果。
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    您好、Christopher、

    我们提供了一份很好的应用手册、可为您提供有关 I2C 以及 I2C 总线上寻址和数据工作原理的更多知识(有关具体问题、请参阅下面链接的应用手册的第3.1节和第3.1节)。

    www.ti.com/.../slva704.pdf

    TMP117传感器具有一个指针寄存器(下面链接的数据表第7.5.2节)、您可以使用该寄存器访问数据寄存器以执行读取和写入操作。 指针寄存器中存储的值是在从器件地址之后发送的数据的第一个字节。 第7章将告诉您有关如何与器件交互的所有须知信息。

    TMP117的数据表介绍了如何与器件交互。 www.ti.com/.../tmp117.pdf

    Jesu