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.

[参考译文] J7200XSOMXEVM:ASM330lhh 与 J7200/DRA 821 EVM 的连接

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

https://e2e.ti.com/support/processors-group/processors/f/processors-forum/1513552/j7200xsomxevm-interfacing-of-asm330lhh-with-j7200-dra-821-evm

器件型号: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 连接?