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.

[参考译文] CC1352P7:I2C clk stop

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

https://e2e.ti.com/support/wireless-connectivity/sub-1-ghz-group/sub-1-ghz/f/sub-1-ghz-forum/1272982/cc1352p7-i2c-clk-stop

器件型号:CC1352P7
主题中讨论的其他器件: BOOSTXL-BASSENSORS

您好!

我们在"simplelink_cc13xx_cc26xx_sdk_6_40_00_13\examples\rtos\LP_CC1352P7_1\drivers\i2ctmp\tirtos7\ticlang"上进行测试。  我们 在"对于(I = TMP_COUNT - 1;I >= 0;I-)"的位置添加了 while (1),、即 {用于(I = TMP_COUNT -1;I >= 0; I--){}。 它在开始时运行良好、在结束时显示"I2C 总线已在使用!"。 我们发现 IIC 的时钟保持高级别。

此致

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

    尊敬的 Dong:  

    感谢您的联系。

    您能详细介绍一下您试图对 while 环路执行的操作吗?
    我尝试过您的配置、如下所示:
     

    /*
         * Determine which I2C sensors are present by querying known I2C
         * target addresses.
         */
        while(1)
        {
            for (i = TMP_COUNT - 1; i >= 0; i--)
            {
                i2cTransaction.targetAddress = sensors[i].address;
                txBuffer[0]                  = sensors[i].resultReg;
    
                if (I2C_transfer(i2c, &i2cTransaction))
                {
                    targetAddress = sensors[i].address;
                    Display_printf(display,
                                   0,
                                   0,
                                   "Detected TMP%s sensor with target"
                                   " address 0x%x",
                                   sensors[i].id,
                                   sensors[i].address);
                }
                else
                {
                    i2cErrorHandler(&i2cTransaction, display);
                }
            }
        }

    对我来说、这导致程序不断轮询 I2C 器件并初始化连接。

    "I2C 总线已在使用!" 串行监视器中未显示响应。

    此外、您使用6.40版本的 SDK 是不是有原因的? 最新版本为7.10。

    此致
    曼努埃尔

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

    您好、Manuel:

    我们的计划与您的计划相同。 但我们修改 IIC 地址作为附加文件。  当"#define TMP_COUNT 1"    ,结果与您的,类似、但"#define TMP_COUNT 2"时、运行 amoment 存在"I2C 总线已在使用中!"。

    //#define TMP11X_BASSENSORS_ADDR 0x48
    //#define TMP116_LAUNCHPAD_ADDR  0x49
    #define TMP11X_BASSENSORS_ADDR 0x16 // ddgg
    #define TMP116_LAUNCHPAD_ADDR  0x18 // ddgg
    
    /* Number of supported sensor iterations */
    #define TMP_COUNT 2
    //#define TMP_COUNT 1 // ddgg

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

    尊敬的 Dong:

    我正在运行的代码也是为 TMP_COUNT 2配置的。

    您能否尝试断开其中一个传感器、看看它是否能正常工作?
    另请尝试从 SIMPLELINK-LOWPOWER-F2-SDK 软件开发套件(SDK)| TI.com 将 SDK 升级到最新版本(7.10)。

    此致
    曼努埃尔

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

    Manuel、您好!

    我们断开了其中一个传感器的连接并发现 其工作正常、但只有一个传感器处于在线状态。 我们连接了丢失传感器、然后二者都在线。

    我们 通过 SIMPLELINK-LOWPOWER-F2-SDK 软件开发套件(SDK)将 SDK 升级到最新版本(7.10)| TI.com。我们将程序刻录到芯片上。 首先它运行良好、晚了一点"I2C 总线已在使用!" 显示了。 我们再次运行、它直接显示 "I2C 总线已经在使用中!"。

    我们 使用 simplelink_cc13xx_cc26xx_sdk_6_40_00_13。  一开始运行良好、然后 "I2C 总线已在使用中!"。 我们再次运行、 它  一开始运行良好、然后 "I2C 总线已在使用!"。  

    拉加德斯

    Detected TMP116 sensor with slave address 0x18
    Detected TMP11X sensor with slave address 0x16
    Detected TMP116 sensor with slave address 0x18
    Detected TMP11X sensor with slave address 0x16
    Detected TMP116 sensor with slave address 0x18
    Detected TMP11X sensor with slave address 0x16
    Detected TMP116 sensor with slave address 0x18
    Detected TMP11X sensor with slave address 0x16
    I2C data byte not acknowledged!
    I2C bus is already in use!
    I2C bus is already in use!
    I2C bus is already in use!
    I2C bus is already in use!
    I2C bus is already in use!
    I2C bus is already in use!
    I2C bus is already in use!
    I2C bus is already in use!

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

    尊敬的 Dong:

    "I2C 总线已在使用!" 仅当另一个 I2C 控制器尝试成为系统中的主控制器时才抛出错误。
    您能否进一步指定您连接到此 I2C 总线的器件? 您能否告诉我所连接的 TMP 传感器和任何其他传感器或控制器的确切器件型号?

    此外、您是否还可以尝试单步执行代码并检查 mstat 寄存器(偏移= 804h)以查看何时 DATACK_N 变为真? 这是"I2C 数据字节未确认"错误的触发条件、似乎是问题的起点。

    此致
    曼努埃尔

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

    您好, Manuel,í a

    一个芯片是  LIS2DW12。 另一个是 来自 ">www.goodix.com/.../overview"的 GH3018。

    此致

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

    尊敬的 Dong:  

    您正在使用的"i2ctmp"示例旨在与包含温度传感器的 BOOSTXL-BASSENSORS BoosterPack 配合使用。
    因此、写入应用程序代码以轮询温度传感器数据并将其输出至串行模式。

    如果您尝试通过 I2C 连接任何其他传感器、则应修改代码、以便正确从这些传感器中读取数据。
    如串行输出所示、发现 存在的传感器可以很好地工作。 但是、要轮询传感器的数据、您需要根据所用传感器的数据表调整代码。

    此致
    曼努埃尔