跳转到正文
实验记录
RV1126B✓ 已验证

#018 · I2C 时钟频率测试 ​

实验目标 ​

在 RV1126B 上测试 Sensor 在不同 I2C 时钟频率(100KHz / 400KHz / 1MHz)下的通信稳定性,找出最高可用频率。


实验环境 ​

项目内容
开发板RV1126B
内核版本5.10.x
SensorIMX477
I2C 地址0x1a
I2C 总线I2C1

实验步骤 ​

Step 1:修改设备树时钟频率 ​

设备树修改dts
&i2c1 {
    status = "okay";
    clock-frequency = <100000>; // 先从 100KHz 开始
    // clock-frequency = <400000>;
    // clock-frequency = <1000000>;
};

Step 2:编译并烧录设备树 ​

shellbash
# 编译内核设备树
make dtbs

# 烧录到开发板
# (根据实际平台方式烧录)

Step 3:读写测试 ​

shellbash
# 读取 chip_id 验证通信
i2cget -y 1 0x1a 0x00 w

# 连续读写 1000 次测试稳定性
for i in $(seq 1 1000); do
    i2cget -y 1 0x1a 0x00 w > /dev/null
    if [ $? -ne 0 ]; then
        echo "Failed at iteration $i"
        break
    fi
done

Step 4:逐步提高频率 ​

100KHz → 400KHz → 1MHz → 3.4MHz,逐级测试。


实验结果 ​

时钟频率连续 1000 次读写状态
100 KHz (标准模式)✅ 全部成功稳定
400 KHz (快速模式)✅ 全部成功稳定
1 MHz (快速模式+)✅ 全部成功稳定
3.4 MHz (高速模式)❌ 频繁失败不稳定

结论 ​

IMX477 在 RV1126B 平台上最高可稳定运行在 1 MHz I2C 时钟频率。400KHz 是更保守、更通用的选择。


经验 ​

  1. 新设备先从 100KHz 开始调试,确保通信正常
  2. 提高频率前确认硬件上拉电阻匹配
  3. 1MHz 以上需要确认 Sensor 规格书支持
  4. 高速模式(3.4MHz)需要特殊的 I2C 控制器支持

相关知识 ​

相关 Debug ​