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.

[参考译文] LPSTK-CC1352R:MSP430fr2433未通过 I2C 响应

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

https://e2e.ti.com/support/wireless-connectivity/sub-1-ghz-group/sub-1-ghz/f/sub-1-ghz-forum/1272369/lpstk-cc1352r-msp430fr2433-not-responding-through-i2c

器件型号:LPSTK-CC1352R
主题中讨论的其他器件:MSP430FR2433HDC2080、CC1352R、CC1352P、

尊敬的专家:

目前、我正在尝试通过带有 CC1352传感器标签的 I2C 从 msp430fr2433读取数据、

此处、我 针对 MSP430fr2433使用了 msp430fr243x_eusci_i2c_standard_slave.c 示例、并在 cc1352中使用了 i2c 示例、  

我已将从器件地址更改为0x03、

我已经分享了一个代码片段供您参考,请检查,让我知道我在做什么错...

/*创建 I2C 以供使用*/
I2C_Params_init (&i2cParams);
i2cParams.bitrate = I2C_100kHz;
I2C= I2C_OPEN (CONFIG_I2C_TMP、&i2cParams);
如果(i2c = NULL)
{
Display_printf (DISPLAY、0、0、"Error Initializing I2C\n");
while (1){}

否则
{
display_printf (display、0、0、"I2C initialized!\n");

/*通用 I2C 事务设置*/
i2cTransaction.writeBuf = txBuffer;
i2cTransaction.writeCount = 1;
i2cTransaction.readBuf = rxBuffer;
i2cTransaction.ReadCount = 0;

/*
*通过查询已知 I2C 来确定存在哪些 I2C 传感器
*从机地址。
*/

txBuffer[0]=0x00;
i2cTransaction.slaveAddress=MSP430;//HDC2080 ADDR;
i2cTransaction.writeBuf = txBuffer;
i2cTransaction.writeCount = 1;
i2cTransaction.readBuf = rxBuffer;
i2cTransaction.ReadCount = 1;

如果(I2C_transfer (i2c、&i2cTransaction))
{
Display_printf (DISPLAY、0、0、"检测到 I2C\r\n ");

否则
{
i2cErrorHandler (&i2cTransaction、display);

此致

苏里亚

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

    您好、Surya:

    您在 CC1352R LaunchPad 上使用哪些引脚?

    谢谢、

    M·H

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

    您好,

    感谢您的回复、我已将 CC1352传感器标签的 DIO5- SDA 和 DIO4- SCL 与默认设计中提供的3.3k 上拉电阻配合使用。

    此致

    苏里亚

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

    您好、Surya:

    我不确定我是否理解误差是什么。 您是否在 MSP430上没有得到任何答案?

    那么 I2C_TRANSMIT 函数是否处于阻塞状态?

    请告诉我、

    此致、

    亚瑟

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

    您好,Arthur

    是的、没错、cc1352 clk 引脚不能 正常工作、这意味着当我将 msp430fr2433与 cc1352连接时、如果我从 cc1352中移除 MSP、然后 clk 引脚会生成脉冲、我便无法理解这里发生了什么、  

    /* Create I2C for usage */
        I2C_Params_init(&i2cParams);
        i2cParams.bitRate = I2C_100kHz;
        i2c= I2C_open(CONFIG_I2C_TMP, &i2cParams);
        if (i2c == NULL)
        {
            Display_printf(display, 0, 0, "Error Initializing I2C\n");
            while (1) {}
        }
        else
        {
            Display_printf(display, 0, 0, "I2C Initialized!\n");
        }
    
        /*
         * Determine which I2C sensors are present by querying known I2C
         * slave addresses.
         */
    
        txBuffer[0] =0x00;
        i2cTransaction.slaveAddress=MSP430;//HDC2080 ADDR;
        i2cTransaction.writeBuf = txBuffer;
        i2cTransaction.writeCount = 1;
        i2cTransaction.readBuf = rxBuffer;
        i2cTransaction.readCount = 0;
    
        if (I2C_transfer(i2c, &i2cTransaction))
        {
            Display_printf(display,0,0,"Detected I2C\r\n");
        }
        else
        {
            i2cErrorHandler(&i2cTransaction, display);
        }

     

    我只在串行日志中得到"I2C 初始化"。

    此致

    苏里亚

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

    您好、Surya:

    根据您的说法、这可能是线路上拉问题。

    启用后、MSP430和 CC1352上的 SDA 和 SCL 有多大的空闲电平?

    我怀疑 MSP430上的上拉电阻可能太强、或者可能配置错误。

    此致、

    亚瑟

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

    您好,

    很抱歉这么晚才回复。我已经使用运行良好的 CC152P1 LaunchPad 进行了测试、但当我尝试使用 CC1352R1claunch pad 时未收到响应。  

    两者在 I2C 线路中具有相同的3.3k 上拉电阻。

    请帮助我找到我的错误...

    此致

    苏里亚

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

    您好、Surya:

    如果您仍在 CC1352R 上使用 DIO4、这是正常现象、因为 CC1352P 上不存在该接口(而是采用晶振引脚)。


    CC1352R

    CC1352P

    请使用不同的 DIO 集、例如 DIO_8和 DIO_9。

    此致、

    亚瑟

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

    您好, 

    感谢您的快速响应、

    很抱歉我找不到你...

    这是我在 syscfg 中配置的

    CC1352P-使用 MSP 正常工作

    SCL- 任意(DIO21/9 (BAS 传感器标记 II I2C))

    SDA- 任意(DIO5/10 (BAS 传感器标识 II I2C)

    CC1352R-无法与 MSP 配合使用

    SCL- 任意(DIO4/9 (BAS 传感器标记 II I2C)

    SDA- 任意(DIO5/10 (BAS 传感器标识 II I2C)

    请告诉我,如果我有任何错误...

    此致

    苏里亚

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

    您好、Surya:

    LPSTK-CC1352R 上有两个传感器已连接到您正在使用的 I2C 引脚(DIO4、DIO5):

    为了确定该问题、您是否可以对 SDA 使用 DIO3、对 SCL 使用 DIO22?

    此致、

    亚瑟

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

    您好,

    是的、您是正确的、但我使用 CC1352R LaunchPad 测试了相同的代码、但无法正常工作、无论如何、我会遵循您的建议并让您知道结果...

    此致

    苏里亚

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

    您好, 

    根据您的参考、我已更改引脚、但运气不好!!

    在这里我发现了另一个奇怪的问题...

    CC1352-P1仅能与 v5.30 SDK 版本一起使用... 如果我使用更新的版本进行测试、则仅得到失败的响应


    I2C 已初始化!

    I2C 从器件地址0xA 未确认!
    I2C 从器件地址0x49未确认!
    I2C 从器件地址0x48未确认!
    检测传感器失败!

    工作响应

    I2C 已初始化!

    检测到 TMP006传感器、其从器件地址为0xA
    I2C 从器件地址0x49未确认!
    I2C 从器件地址0x48未确认!

    采样使用最后一个已知的传感器。
    I2C 数据字节未确认!
    样本1:15 16
    样本2:65 66 66
    I2C 已关闭!

    此致

    苏里亚

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

    您好、Surya:

    这似乎与其他问题有关: https://e2e.ti.com/support/interface-group/interface/f/interface-forum/1279599/cc1352r-i2c_open-and-i2c_close-functions-generate-again-glitches-in-the-latest-sdk---7-10

    您是说即使在5.30 SDK 中、您也无法与 MSP430进行通信、还是可以正常使用? 和 CC1352p 的测量性能?

    此致、

    亚瑟

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

    您好,

    1. CC1352P1与5.30SDK 配合使用

    CC1352R1-无法与 5.30SDK 配合使用

    CC1352R1和 P1无法与 SDK 6.30配合使用

    此致

    苏里亚

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

    您好、Surya:

    您是否可以使用示波器或逻辑分析仪等方法针对每种情况捕获 I2C 信号?

    此致、

    亚瑟