☰
简单理解:Radxa Zero 3E I2C 开启教程笔记
2026/10/15 18:11:07 网站建设 项目流程

🎯 一、硬件 I2C 配置(适用于 J5 / J7 接口)

硬件 I2C 由 RK3566 芯片内部的专用控制器处理,速度快、时序精准,适用于J5 (Pin3/Pin5)和J7 (Pin24/Pin21)接口。

方式一:使用 rsetup 工具(推荐)
  1. 打开终端,运行:

    bash

    sudo rsetup
  2. 进入Overlays→Manage overlays。

  3. 在列表中找到并选中以下选项之一(用空格键选中):

    • J5 接口:Enable I2C3-M0或rk3568-i2c3-m0

    • J7 接口:Enable I2C2-M1或rk3568-i2c2-m0

  4. 按Tab切换到<Ok>保存退出,然后重启:

    bash

    sudo reboot
方式二:手动编辑 /boot/uEnv.txt
  1. 编辑配置文件:

    bash

    sudo nano /boot/uEnv.txt
  2. 找到overlays=开头的行,在原有内容后用逗号或空格追加(注意:文件中只能有一行overlays=):

    • J5 接口:添加rk3568-i2c3-m0

    • J7 接口:添加rk3568-i2c2-m0

  3. 保存并重启:

    bash

    sudo reboot
验证硬件 I2C

重启后,运行i2cdetect -l,应能看到/dev/i2c-3(J5)或/dev/i2c-2(J7)。然后:

bash

# J5 接口 sudo i2cdetect -y 3 # J7 接口 sudo i2cdetect -y 2

看到0x29即表示硬件 I2C 正常。


🎯 二、软件 I2C 配置(适用于 J6 / J8 接口)

软件 I2C 通过 GPIO 引脚模拟 I2C 波形,适用于J6 (Pin7/Pin29)和J8 (Pin19/Pin23)这些没有硬件 I2C 控制器的引脚。

方式一:使用 rsetup 工具
  1. 运行sudo rsetup,进入Overlays→Manage overlays。

  2. 查找i2c-gpio相关选项,用空格键选中。

  3. 保存退出并重启。

注意:如果你的系统镜像中没有预置i2c-gpiooverlay,请使用方式二手动配置。

方式二:手动编辑 /boot/uEnv.txt
  1. 编辑配置文件:

    bash

    sudo nano /boot/uEnv.txt
  2. 在overlays=行中追加以下内容(不要覆盖原有内容):

    测试 J6 (Pin7/Pin29):

    ini

    overlays=i2c-gpio,i2c_gpio_sda=4,i2c_gpio_scl=5,bus=8
    • i2c_gpio_sda=4:Pin7 对应 GPIO04

    • i2c_gpio_scl=5:Pin29 对应 GPIO05

    • bus=8:指定一个未被占用的总线号(可在i2cdetect -l中确认空闲编号)

    测试 J8 (Pin19/Pin23):

    ini

    overlays=i2c-gpio,i2c_gpio_sda=147,i2c_gpio_scl=146,bus=8
    • i2c_gpio_sda=147:Pin19 对应 GPIO4_C3

    • i2c_gpio_scl=146:Pin23 对应 GPIO4_C2

  3. 保存并重启:

    bash

    sudo reboot
验证软件 I2C

重启后运行i2cdetect -l,应看到类似i2c-8 i2c i2c-gpio的输出。然后:

bash

sudo i2cdetect -y 8

看到0x29即表示软件 I2C 配置成功。


🎯 三、实验验证流程

接线(VL53L5CX → Radxa Zero 3E)
模块引脚连接目标说明
SDAJ5 Pin3 / J7 Pin24 / J6 Pin7 / J8 Pin19根据测试接口选择
SCLJ5 Pin5 / J7 Pin21 / J6 Pin29 / J8 Pin23根据测试接口选择
VINPin1 或 Pin17 (3.3V)严禁接 5V
GND任意 GND必须共地
LPn悬空(模块板上已上拉)若读不到数据可补接 3.3V
测试步骤
  1. 彻底断电后再插拔传感器(带电插拔极易烧毁芯片)。

  2. 上电后,用i2cdetect扫描对应总线。

  3. 看到0x29即表示该接口物理连接正常。

  4. 测试软件 I2C 时,绝对不要运行vl53l5cx_simple_example.py等完整测距例程,因为软件 I2C 速度极慢,传输 82KB 固件几乎必然卡死。只用i2cdetect或极简read_byte脚本验证即可。


🎯 四、常见问题排查

问题可能原因解决方法
i2cdetect全--传感器未唤醒 / 接线错误检查 LPn 是否拉高、SDA/SCL 是否接反
Permission denied: /dev/i2c-3权限不足sudo usermod -aG i2c radxa后重新登录
初始化耗时 3~10 秒正常现象VL53L5CX 每次上电需下载 82KB 固件
软件 I2C 扫描不到overlay 未生效确认/boot/uEnv.txt中overlays=行已正确修改并重启
帧率上不去分辨率过高8x8 最高 15Hz,4x4 最高 60Hz

🎯 五、总结对比

接口配置方式总线号能否跑完整测距
J5 (Pin3/Pin5)硬件 I2C(rsetup / uEnv.txt)i2c-3✅ 可以
J7 (Pin24/Pin21)硬件 I2C(rsetup / uEnv.txt)i2c-2✅ 可以
J6 (Pin7/Pin29)软件 I2C(i2c-gpio overlay)i2c-8(示例)❌ 仅验证连接,不跑 init()
J8 (Pin19/Pin23)软件 I2C(i2c-gpio overlay)i2c-8(示例)❌ 仅验证连接,不跑 init()

这份笔记覆盖了从配置到验证的完整流程,你可以直接对照操作。如果某个步骤遇到问题,随时可以再问我。

需要专业的网站建设服务?

联系我们获取免费的网站建设咨询和方案报价,让我们帮助您实现业务目标

立即咨询