请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
器件型号:J7200XSOMXEVM 工具/软件:
您好、TI 专家、 我们在使用 Processor SDK Linux 将 ASM330LHH IMU 传感器与 Jacinto J7200 EVM 集成时遇到了问题:ti-processor-sdk-linux-j7200-evm-10_00_07_03。 以下是我们迄今为止采取的详细步骤: 驱动程序分析 -检查内核源中的可用驱动程序时,我们发现在 LSM6DSX 驱动程序(st_lsm6dsx_core.c 和 st_lsm6dsx.h )下支持 ASM330LHH。 -这些文件包含 ASM330LHH 的相关定义和函数。 -基于此,我们得出结论,我们不需要编写自定义驱动程序,而是可以使用现有的 LSM6DSX 驱动程序进行 ASM330LHH 集成。 -我们打算使用 I2C 连接传感器。 器件树更改 我们进行了以下更改以在主 I2C0上启用传感器: 1. k3-j7200-common-proc-board.dts &main_i2c0{ asm330lhh:asm330lhh@6B{ compatible ="st,lsm6dso"; REG =<0x6b>;//地址取决于 SA0引脚 状态="正常"; };} 2. k3-j7200-sm-p0.dtsi -我们在&main_i2c0下添加了同一节点。 3. k3-j7200-main.dtsi main_i2c0:I2C@2000000{ 状态="正常"; ... } 内核和设备树编译 进行设备树修改后: 导出 arch=arm64 export cross_compile=aarch64-linux-gnu- make dtbs -j$(nproc) make Image dtbs -j$(nproc) -更新后的.dtb 文件被复制到 SD 卡引导分区。 -我们使用 U-Boot 启动了电路板: => ls mmc 1:1 => setenv fdtfile =>运行 bootcmd_mmc1 以验证加载的.dtb 内容、我们将 k3-j7200-common-proc-board.dtb 解析并确认 i2c@2000000节点存在并且包含 asm330lhh 子节点。 但是、我们没有找到 main-i2c0别名或符号引用。 运行时验证 我们尝试在运行时使用以下命令验证加载的.dtb:dmesg | grep -i dtb 、但没有输出、因此我们不确定是否实际加载了更新的设备树。 接下来、我们尝试探测 I2C 总线: i2cdetect -y 1 很遗憾、没有检测到 I2C 器件、包括 ASM330LHH。 硬件连接 - ASM330LHH 传感器连接到 J7200 EVM 上的 J9接头。 -我们附加了相关的原理图片段以供参考。 我们的问题 1.在设备树中正确启用 main-i2c0需要具体的步骤是什么? 2.我们如何能确认更新的 DTB 在启动时成功加载? 3、为什么 i2cdetect 在启用 I2C 节点和驱动程序后仍不返回任何地址? 4.我们是否缺少任何其他步骤来通过 I2C 成功将 ASM330LHH 与 J7200 EVM 连接?