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.

[参考译文] LAUNCHXL-CC2650:MPU9250未初始化

Guru**** 2468460 points
Other Parts Discussed in Thread: CC2650, CC2650STK, LAUNCHXL-CC2650

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

https://e2e.ti.com/support/wireless-connectivity/bluetooth-group/bluetooth/f/bluetooth-forum/585977/launchxl-cc2650-mpu9250-not-initializing

器件型号:LAUNCHXL-CC2650
主题中讨论的其他器件:CC2650STKCC2650

您好!

我正在尝试使用 SensorTag 项目(cc2650stk)将 MPU9250 IMU 与 CC2650 LaunchPad 连接。 IMU 通过 I2C 总线连接到 LaunchPad、但在程序运行时不会初始化。 我已经单步执行代码、可以看到 MPU9250上的世卫组织 AM_I 寄存器没有按应有的设置为0x71 (根本没有设置)。 我已经仔细检查了 I2C 接线是否正确、并已按照数据表中的说明将 MPU9250上的 AD0引脚连接到 GND (尽管我不理解这一点)。

有人可以帮我解决这个问题吗? 接下来该怎么办?

谢谢、

Tony

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

    只需仔细检查您是否知道 SensorTag 项目和 LaunchPad 具有不同的板级配置文件、因此 I2C 引脚可能不同。 除此之外、我建议您连接一个逻辑分析仪来读取 I2C 引脚、以查看它们是在传输还是 MPU 有故障。

    此致、

    Klas
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    您是否使用示波器检查 I2C SCK 和 SDA 引脚上是否存在信号?
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    您能否提供 I2C 信号的逻辑分析仪跟踪?
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    大家好、

    我已将项目中的 board.h 文件切换为 cc2650lp 项目中使用的文件、但仍然无法初始化 IMU。 我已经尝试使用示波器测量从 LaunchPad 引脚发出的 SCL 信号、但现在只会产生噪声:

    为什么我不会获得 SCL 信号?

    Tony

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

    您在 LAUNCHXL-CC2650上使用哪些 I2C SCL/SDA 引脚连接到 MPU-9250?

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    针对 SCL 的 DIO4和针对 SDA 的 DIO5
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    您是否向 SCL 和 SDA 添加了上拉电阻?
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    电路板上已经有上拉电阻器:

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    但它在您的示波器屏幕截图中没有显示"上拉"。
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    我刚刚使用万用表进行了检查、两个引脚都拉高至3.3V
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    您应该检查您的范围设置、以便我们确保它捕获正确的结果。
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    先前显示的噪声信号是由示波器通道损坏造成的。 我已更改示波器通道、现在在 I2C 线路上获得3.3V 信号。 如您所见、不存在脉冲:

    此外、SCL 和 SDA 都为高电平这一事实表明没有发生 I2C 启动条件:

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    您能否向我展示如何在您的应用中初始化 I2C 和进行 I2C 传输?
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    这是一个示例项目、因此我没有更改任何代码:

    if (SensorMpu9250_init())

    SensorTagait_reset ();
    SensorMpu9250_registerCallback (SensorTag_processInterrupt);
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    从机地址设置为0xFF。 这是正确的吗? 如果是、原因是什么?
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    根据 MPU9250数据表、I2C 地址为1101000 (0x68)(引脚 AD0拉至 GND)或1101001 (0x69)(AD0拉至3.3V)

    我已经将从器件地址设置为0x68并将 AD0连接到 GND、但仍然没有乐趣...
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    在 SensorTag 示例中,它定义了"#define SENSOR_SELECT() SensorI2C_select (sensor_I2C_1、Board_MPU9250_ADDR)"以使用 sensor_I2C_1。 由于您不使用 I2C_1、您是否要将其更改为 SENSOR_I2C_0?
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    您好、Yikai、

    这就是问题所在。 我刚刚将 SENSOR_I2C_1更改为 SENSOR_I2C_0、而 WHO _AM_I 寄存器现在将按应有的方式返回0x71。

    非常感谢你的帮助。

    Tony
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    欢迎您的到来、很高兴知道这是有效的。