RDK X5 引脚连 是什么通信方式 是spi 还是 i2c

你好 @Fuuucyyy

关于 RDK X5 的 IMU 通信方式,结论如下:

:bullseye: 核心结论

RDK X5 板载 IMU 使用的是 SPI 通信方式,不是 I2C。

具体型号通常是 ICM-42688 或类似 InvenSense 系列陀螺仪/加速度计,通过 SPI 接口 与主控芯片通信。


:pushpin: 引脚连接说明

如果你要外接 IMU 模块(如 ICM-42688、BMI088 等),需要连接以下 SPI 引脚(以 RDK X5 40Pin 为例):

信号 RDK X5 40Pin 引脚号 说明
SPI2_CS Pin 24 (GPIO9_14) 片选
SPI2_MOSI Pin 19 (GPIO9_11) 主机输出从机输入
SPI2_MISO Pin 21 (GPIO9_12) 主机输入从机输出
SPI2_CLK Pin 23 (GPIO9_13) 时钟
INT Pin 35 (LSIO_GPIO1_10) 中断引脚(可选,用于数据就绪中断)
VCC Pin 17 / Pin 19 3.3V 供电
GND Pin 20 / Pin 25

:warning: 注意:RDK X5 的 40Pin 接口中,SPI2 是常用接口,也可使用 SPI1,但需修改设备树。


:wrench: 如何启用 SPI IMU

  1. 修改设备树(以 SPI2 为例):
    x5-rdk-v1p0.dts 中添加:

    &spi2 {
        status = "okay";
        pinctrl-names = "default";
        pinctrl-0 = <&pinctrl_spi2>;
    
        icm42688@0 {
            compatible = "invensense,icm42688";
            reg = <0>;
            spi-max-frequency = <32000000>;
            spi-cpha;
            spi-cpol;
            interrupt-parent = <&ls_gpio0_porta>;
            interrupts = <10 IRQ_TYPE_EDGE_FALLING>;
        };
    };
    
  2. 编译并部署设备树

    dtc -I dts -O dtb -o x5-rdk-v1p0.dtb x5-rdk-v1p0.dts
    scp x5-rdk-v1p0.dtb root@<your_x5_ip>:/boot/hobot/
    
  3. 加载驱动(如未编译进内核):

    insmod inv-icm42600-spi.ko
    
  4. 验证数据

    cat /sys/bus/iio/devices/iio:device1/in_accel_x_raw
    

:books: 参考资源


:red_question_mark: 你是要:

  1. 使用板载 IMU?→ 直接通过 /dev/iio:deviceX 读取数据
  2. 外接 IMU 模块?→ 按上述 SPI 引脚连接 + 修改设备树
  3. 不确定 IMU 型号?→ 运行 dmesg | grep -i imuls /sys/bus/iio/devices/ 查看

如需进一步帮助(如设备树修改、ROS2 接入),请补充你的具体使用场景。