You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Ubuntu 22.04树莓派4修改I2C时钟至400kHz失败求助

树莓派Ubuntu 22.04下I2C时钟频率修改及故障排查求助

目标与动机

  • 目标:将I2C时钟频率修改为400kHz
  • 动机:通过I2C使用Adafruit BNO085模块,树莓派I2C时钟拉伸存在2012年起就被公开的已知bug

已执行的操作(非Raspbian系统修改方案)

因Ubuntu无法直接修改boot-config文件,采用拆解、修改、重编译设备树文件的方法,步骤如下:

  1. 操作文件:/boot/dtbs/5.15.0-1033-raspi/bcm2711-rpi-4-b.dtb
  2. 拆解命令:dtc -I dtb -O dts -o bcm2711-rpi-4-b.dts /boot/dtbs/5.15.0-1033-raspi/bcm2711-rpi-4-b.dtb
  3. 修改内容:
    • 将两个i2c节点的clock-frequency = <0x186a0>; // 100000替换为clock-frequency = <0x61a80>; // 400000
    • 修改__overrides__块中的i2c1_baudrate为"\0\0\06clock-frequency:400000"
  4. 重新编译命令:dtc -I dts -O dtb -o bcm2711-rpi-4-b.dtb bcm2711-rpi-4-b.dts
  5. 替换原文件:sudo cp bcm2711-rpi-4-b.dtb /boot/dtbs/5.15.0-1033-raspi/bcm2711-rpi-4-b.dtb

遇到的问题

修改完成后运行Adafruit官方Python测试脚本,先后出现KeyError: 124和KeyError: 255错误,脚本运行10-15秒后崩溃。已在脚本中设置I2C频率为400kHz,尝试切换回100kHz后问题依旧。

求助需求

  1. 提供Ubuntu 22.04系统下树莓派4B检查I2C时钟频率的有效方法
  2. 指导排查I2C时钟频率修改失败及测试脚本报错的原因

内容的提问来源于stack exchange,提问作者Aotearoa_DEV

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.11 04:52:36