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.

[参考译文] CCS/LAUNCHXL-CC2650:无法将 IMU MPU9250与 cc2650 Launchpad 相集成

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

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

https://e2e.ti.com/support/wireless-connectivity/bluetooth-group/bluetooth/f/bluetooth-forum/648276/ccs-launchxl-cc2650-not-able-to-inteface-imu-mpu9250-with-cc2650-launchpad

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

工具/软件:Code Composer Studio

我已将 sensortag 代码导入 CC2650 launchpad 的 projectzero 代码中。 成功构建。 我还更改了板级配置文件。 代码运行正常。 但问题是 IMU MPU9250无法初始化、无法连接。 我将 SCL 用作 IOID_4、将 SDA 用作 IOID_5。 在此问题上、请帮我解决。谢谢

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

    我建议您首先使用逻辑分析仪调试 I2C 通信。

    谢谢、
    Fredrik
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    好的、您能否为我提供任何参考示例、从 CC2650 Launchpad 的 i2c 通信开始
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    如果我使用 CC2650 Launchpad 更改 sensortag 项目中的板级配置文件和 GPIO 以及其他引脚、我还想知道一点、因此它是否起作用
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    您可以查看此处的 I2C 驱动程序示例:
    dev.ti.com/.../

    如果相应地更改了电路板文件、可以使用 SensorTag SW、是的。
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    我已相应地更改了板级配置文件、我已阅读过许多有关该文件的文章。  这些是板级配置文件。

    e2e.ti.com/.../8623.Board.he2e.ti.com/.../3426.CC2650_5F00_LAUNCHXL.ce2e.ti.com/.../7318.CC2650_5F00_LAUNCHXL.h

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    主席先生,对我来说,什么都不起作用。 我从位置 C:\ti\simplelink\ble_sdk_2_02_01_18\examples\cc2650stk\sensortag 处获取 sensortag 的示例,并使用 CC2650 launchpad 板级配置文件和 GPIO 修改了其板级配置文件,我使用了 SDA = IOID_5和 SCL = IOID_4。 并将 sensor_I2C_0用于 launchpad 我还使用了 sensor_I2C_1、但对于我来说没有什么工作是成功构建代码的。
    在我所做的第二个示例中、我存储了所有与 mpu9250相关的驱动程序以及 CC2650 Launchpad 从 sensortag 到 projectzero 的文件。 如上所述修改了电路板文件 SDA、SCL 和 I2C、但 MPU9250未连接 CC2650 Launchpad。
    在第三种情况下、我从 sensortag 示例的每个文件中获取了每个函数、创建了一个新项目并修改了 CC2650 Launchpad 的所有内容。 但在本例中、MPU 也不与 CC2650 Launchpad 连接。 我不知道接口问题是什么。 我已经从社区中阅读了几乎所有的帖子、并根据指示修改了代码、但没有什么作用。 如果您已经设计了 LaunchPad 等产品、请提供相应的指南和相关教程。 谢谢你
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    SIR 我通过 iID_4和 iID_5 SCL 和 SDA 引脚获得3.3伏电压。 实际上、处理器能够成功运行 project_zero、并且在 MPU9250项目中、我还添加了 LED 闪烁程序、 因此、当它进入 SensorTag_processSensorEvent (void)函数读取"void"和"gyroscope"值时、它会使 LED 闪烁、以便程序在进入 SensorTag加速 计(SensorEvent (void)函数时运行、以便使用 SensorMpu9250_accRead (uint16_sensort*)读取和 sensorData*函数。 因此、我不明白为什么我无法将 MPU9250与 CC2650 Launchpad 连接、我现在不明白问题是什么
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    请回复任何人
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    好的、我像在 launchpad 的 projectzero 中一样添加了日志程序。 但是、每次我连续收到"发布写入信标"时。 它位于任何环路内、或者我无法弄清楚的东西。 因为我能够在 UartCC26XX.c 中找到它的定义、如下所示

    静态空 writeSemCallback (UART_Handle handle、void * buffer、size_t count)

    UARTCC26XX_Object *对象=句柄->对象;

    // Log_Print1 (Diags_User1、"UART:(%p)发布写入信标"、
    // (((UARTCC26XX_HWAttrsV1 const *)(handle->hwAttrs))->baseAddr);

    Semaphore_post (semaphore_handle (&(object->writeSem)));
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    最后、经过大量的努力、我能够将 mpu9250与 cc2650 Launchpad 连接、sensortag 对我不起作用、因此我自己完成了 sensortag 为驱动程序提供的所有内容。 我正在使用读取数据
    //读取陀螺仪数据
    SensorMpu9250_gyroRead ((uint16_t*) sensorData);

    //读取加速计数据
    SensorMpu9250_accRead ((uint16_t*) sensorData[6]);

    但我在问题上一直坚持、我能够从上面读取原始值、但我得到了6个加速计值和6个陀螺仪值
    样本45:20 5 58 80 20 68 5 100 58 5 100 58 (C)
    样本46:7 3 56 32 7 64 3 192 56 3 192 56 (C)
    样本47:255 251 58 104 255 148 251 68 58 251 68 58 58 (C)
    样本48:254 252 59 160 254 48 252 100 59 252 100 59 (C)
    样本49:254 248 58 48 254 144 248 136 58 248 136 58 58
    采样50:0 248 58 120 0 140 248 96 58 248 96 58 58 (C)
    样品51:247 247 57 188 247 88 247 220 57 247 220 57
    样本52:247 247 57 160 247 116 247 76 57 247 76 57 (C)
    样片53:242 247 56 120 242 168 247 228 56 247 228 56 (C)
    样片54:203 5 30 128 203 40 5 248 30 5 248 30 (C)
    样本55:201 5 28 252 201 88 5 32 28 5 32 28 (C)
    从陀螺仪的6开始、到加速计的最后6个值。 因此我不知道我们如何从重力角度获得实际值。

    如果我看到 sensorTag 程序。 在 sensortag 中、可以使用以下命令读取值
    //读取陀螺仪数据
    SensorMpu9250_gyroRead ((uint16_t*) sensorData);

    //读取加速计数据
    SensorMpu9250_accRead ((uint16_t*) sensorData[6]);
    之后、它们使用以下命令发送所有 sensorData 值
    //发送数据
    MOUST_SetParameter (sensor_data、sensor_data_LEN、sensorData);
    因此、如果我正确、他们将发送所有12个值。 那么、他们在哪里以实际形式转换了它。 请指导我、我无法获取实际值。



    如果我看到 Arduino MPU9250驱动程序、它们已转换了如下所示的值

    空 MPU9250::readAccelData (int16_t * destination)

    uint8_t RawData[6];// x/y/z accel 寄存器数据存储在此处
    readBytes (MPU9250_address、ACCEL_XOUT_H、6、&RawData[0]);//将六个原始数据寄存器读取到数据数组中
    目的[0]=((int16_t) RawData[0]<< 8)| RawData[1];//将 MSB 和 LSB 转换为有符号16位值
    目的[1]=((int16_t) RawData[2]<<8)| RawData[3];
    destination[2]=((int16_t) RawData[4]<<8)| RawData[5];


    但在 sensortag 中、我没有找到任何命令、例如仅针对磁力计找到的命令。 那么、他们如何转换这些值、请为我提供指导。
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    请回复我正在等待回答
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    Pradeep、您好、我回答了您在本主题中的同一个问题: e2e.ti.com/.../2391457

    请勿针对同一问题重复发布。

    Klas