跳到主要内容

TWI / I2C 开发与测试

先确认 T527 实际总线编号​

find bsp device kernel -type f \( -name '*.dts' -o -name '*.dtsi' \) -print0 | xargs -0 grep -n 'twi0:\|i2c@'
grep -Rni 'CONFIG_.*TWI\|CONFIG_.*I2C' bsp device kernel

板端检查:

i2cdetect -l
i2cdetect -y 0
i2cget -y 0 0x50 0x00
i2cset -y 0 0x50 0x00 0x12
i2cdump -y 0 0x50
i2ctransfer -y 0 w1@0x50 0x00 r1

i2cdetect 扫描可能改变某些器件状态,电源管理芯片、摄像头、触摸等设备应先确认是否允许扫描。

用户态接口​

启用 I2C device interface 后,可通过 open()、ioctl(I2C_SLAVE_FORCE)、read()、write() 访问 /dev/i2c-X。复杂的重复起始传输优先使用 I2C_RDWR 或 i2ctransfer,避免用分离的 write/read 破坏时序。

slave 模式​

slave 模式除了控制器驱动,还需要 slave client 驱动和相应 DTS 子节点。验证时使用另一控制器或外部主机发送数据,并同时观察从机中断、接收缓冲和 ACK。

统一编译与烧录流程​

cd <ANDROID_TOP>/longan
./build.sh kernel
./build.sh pack

烧录后先核对本次 kernel/DTB 的构建时间和版本,避免在旧固件上判断新配置。