u-boot i2c的调试

  • 格式:doc
  • 大小:14.50 KB
  • 文档页数:2

u-boot i2c的调试
有许多外设芯片都通过i2c总线接到主芯片上,主芯片通过i2c发命令去初始化外设芯片。

I.MX5x 至少有3个外设芯片需要接到i2c总线上,由主芯片在初始化时配置外围芯片。

分别是音频codec sgtl5000, 方向传感器mma7660, 还有EInk屏的pmic 芯片tps65180。

我们都把它们接到I2C1 上。

1. u-boot 有i2c驱动,命令行有i2c命令。

不过命令行的i2c命令只能针对一条i2c总线,针对不同的i2c总线,需要修改头文件宏定义,在u-boot-xx/include/configs/mx50_arm
2.h #define CONFIG_SYS_I2C_PORT I2C2_BASE_ADDR
2. 硬件连线. I2C总线只有两条连线,一条时钟线SCL,一条数据线DAT。

所有的i2c外设都要有一个独立的地址。

注意:I2C总线硬件初始化状态必须是SCL和DAT均为高电平,如果两个中有一个或两个不是高电平,说明硬件电路有问题。

要先排除硬件故障。

3. I2c命令
3.1 i2c总线搜索
u-boot i2c probe
搜索某条i2c(如i2c2)总线上连接的所有i2c设备。

3.2 读i2c外设
举例:读取i2c地址为0x20的外设芯片,从第0个寄存器开始读,共读16个寄存器。

u-boot i2c md 0x20 0 16
md ---- i2c 读
0x20 ---- i2c外设的地址,每个i2c外设都有一个独立的地址,一般是外设芯片出厂时就已经定好。

0 ---- 从外设芯片的第0号寄存器开始读
16 ---- 总共读16个寄存器
3.3 写i2c外设。