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-F28379D:BOOSTXL-SENSHUB 上存在与 MPU-9150的 I2C 通信问题

Guru**** 2535750 points


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

https://e2e.ti.com/support/microcontrollers/c2000-microcontrollers-group/c2000/f/c2000-microcontrollers-forum/692765/launchxl-f28379d-i2c-communication-issues-with-mpu-9150-present-on-boostxl-senshub

器件型号:LAUNCHXL-F28379D
主题中讨论的其他器件:BOOSTXL-SENSORS

您好!

我无法通过   I2C 从具有 F28379D LaunchPad 的 BOOSTXL-SENSHUB 上的 MPU-9150传感器正确读取数据。  

I2C 设置


我按照 MPU-9150数据表中所述的读取和写入顺序进行操作。 我将 I2C 时钟配置为400kHz。 我用从地址104 (0x68)开始 I2C 通信序列、如下所示-

1) 1)发送0到寄存器地址107 (0x6B)、以将传感器从睡眠模式拉至正常模式。

2) 2)从寄存器地址59 (0x3B)到72 (0x48)连续读取14字节数据(Accel、Temp 和 Gyro)。

电气连接

下面是主设备和从设备之间的电气连接。 我确保 主从器件和从器件的电源和接地是共用的

F28379D LaunchPad

SDA - GPIO104 -引脚10 (J1)

SCL - GPIO105 -引脚9 (J1)

BOOSTXL_SENSHUB

SDA -引脚6 (J2)

SCL - PIN7 (J2)

GND -引脚1 (J2)

3.3V -引脚1 (J1)

问题和解决方法

当我尝试使用 F28379D LaunchPad 读取传感器数据时、数据始终为零。 当我连接示波器并进行检查时、我只能看到 I2C 从器件地址值、其中 SDA 线上的读/写位和 SCL 线上的8个时钟周期。  

我尝试了不同的方法来了解问题的根源。 我使用不同的电路板作为主器件从传感器读取数据。 当我使用 F28027 LaunchPad / controlCARD、F28069M LaunchPad / controlCARD 以及 F28379D controlCARD 与 BOOSTXL-SENSHUB 上的 MPU-9150传感器进行通信时、该设置会正常工作。  

对于 F28379D LaunchPad、仅当我在主引脚和从引脚之间连接33欧姆串联电阻时、才可以正确读取 BOOSTXL-SENSHUB 上存在的 MPU-9150传感器的数据、如下图所示。 但当我使用其他 LaunchPad 或 controlCARD 时、这不是必需的。

可以帮我解决这个问题吗? 为什么我面临 F28379D LaunchPad 的问题、为什么我需要在主引脚和从引脚之间串联电阻器来使 I2C 正常工作?

谢谢、

Aditya

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

    您看到的问题可能与本主题中讨论的问题类似。

    e2e.ti.com/.../676372

    我们目前正在更新受影响器件的勘误表。

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

    Aditya、

    如果您在使用和不使用33欧姆电阻器的情况下对信号进行任何示波器截图、这一点很有意思。

    谢谢、

    Jason

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

    您好 Jason、

    下面是示波器的屏幕截图。

    1) 1)主器件和从器件之间的 I2C 直接连接。

    2) 2) I2C 串联电阻、主从之间为33欧姆。

    谢谢、

    Aditya

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

    在您提供的链接中、他们提到了该问题的潜在解决方案是在信号和接地之间添加 RC。 在本例中、我只是添加一个33欧姆的串联电阻器。

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

    Aditya、

    这很好奇、感谢您发送示波器图像。  这些电阻器的哪一侧来自?  最好查看电路板之间的多个位置。

    在发生故障的情况下:

    • 前导电压仅为3.0V、这似乎很奇怪、就像在交易前的一周内线路上出现了下拉电阻。
    • 某件事在最后将总线保持在低电平、可能是多个主器件在其中尝试抓取总线。  我想知道串联电阻器是否能够充分降低电压、从而使其中一个器件提早释放。   

    在通过案例中:

    • 毛刺脉冲也可能表示总线争用

    在背面连接器或总线上的其他 I2C 器件上、是否有任何其他器件连接到这些电路板?   

    我不熟悉 SENSHUB、这是一个仅 I2C 从器件吗?

    此外、如果您不介意我的提问、  这种原型设计是用于未来系统、还是您始终仅使用这些 BoosterPack?  只是想更深入地了解环境。

    此致、

    Jason

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

    您好 Jason、

    感谢您的回答。 我将在可能的情况下检查不同点的信号。 我仅将其与一个 I2C 主设备和 I2C 从设备结合使用、无需任何额外连接。

    BOOSTXL-SENSHUB 是 TI 的电路板、可与 TI LaunchPad 配合使用。 电路板 MPU-9150中使用的传感器是仅 I2C 从设备、您可以使用该设备读取加速器、陀螺仪和罗盘数据。 我现在只是在使用 Booster Pack、没有做任何定制板。

    我正在使用 BOOSTXL-SENSHUB (MPU-9150)、BOOSTXL-SENSORS (BMI 160)和 I2C EEPROM (Atmel AT24C02)等不同 I2C 传感器尝试不同的 TI LaunchPad、如 F28069和 F28379D。

    我在 F28069 LaunchPad 上没有遇到任何从器件问题。 对于 F28379D LaunchPad、我无法与 BOOSTXL-SENSHUB (MPU-9150)和 I2C EEPROM (Atmel AT24C02)建立稳定连接。

    但是 、F28379D 和 BOOSTXL-SENSORS (BMI 160)之间的 I2C 工作正常、如果我连接任何其他从器件以及 用于 F28379D LaunchPad 的 BOOSTXL-SENSORS (BMI 160)、则其他从器件的 I2C 也工作正常。

    因此、我查看 了 BOOSTXL-SENSORS (BMI 160)的用户指南、发现有一个33欧姆串联寄存器以及用于 I2C SDA 和 SCL 引脚的2.2K 欧姆上拉电阻。 因此、当我单独连接时、我针对其他从器件尝试了使用33欧姆串联电阻的类似连接、并且能够使 I2C 连接正常工作。

    因此、我发布此信息是为了了解问题的根源。 感谢您的回答。

    此致、

    Aditya