一、uboot指令调试
1、uboot命令行的开启
默认情况是打开的,在刚开机时在终端中敲击回车即可进入uboot命令模式
2、uboot中i2c命令的介绍
可直接输入i2c help 进行查看介绍
- i2c bus:获取总线信息
- i2c dev 查看当前i2c设备
- i2c dev 0:将i2c0作为当前设备
- i2c probe:探测当前连接的所有i2c设备
- i2c md/mw:读/写寄存器
3、使用方法
①选定当前的i2c通信接口,即0还是1。如果不选择,那么会显示当前的bus为-1。
=> i2c dev
No I2C bus selected
Current bus is -1
=> i2c dev 0
Setting bus to 0
② 选定通信接口后使用i2c probe来探测当前板子上连接成功的硬件。第一个为未选择通信接口错误,第二个为探测硬件,第三个为探测之后再使用probe指令
===========1==========
=> i2c probe
No I2C bus selected
===========2==========
=> i2c probe
Valid chip addresses:wait_for_sr_state: Arbitration lost sr=93 cr=80 state=2020
i2c_init_transfer: failed for chip 0x0 retry=0
i2c_idle_bus: failed to clear bus, sda=0 scl=0
i2c_init_transfer: give up i2c_regs=0x21a0000
wait_for_sr_state: Arbitration lost sr=93 cr=80 state=2020
i2c_init_transfer: failed for chip 0x1 retry=0
i2c_idle_bus: failed to clear bus, sda=0 scl=0
i2c_init_transfer: give up i2c_regs=0x21a0000
......
wait_for_sr_state: Arbitration lost sr=93 cr=80 state=2020
i2c_init_transfer: failed for chip 0x7 retry=0
i2c_idle_bus: failed to clear bus, sda=0 scl=0
i2c_init_transfer: give up i2c_regs=0x21a0000
1E 5D 68
=========3============
=> i2c probe
Valid chip addresses: 00 1E 5D 68
③读写寄存器
- i2c md 0x1E 0x0C.1 0x01:读取i2c地址为0x1E的设备的0x0c寄存器,且寄存器宽度为一个字节,共读取一个字节
- i2c mw 0x1E 0x00.1 0x03:写入i2c地址为0x1E的设备的0x00寄存器,寄存器宽度为0x01,写入的数据为0x03。
给寄存器赋值时,终端无返回值;读寄存器时,返回如下图:
依次是 寄存器地址 :十六进制数值 对应Ascii码值
二、i2c工具-i2cdetect的使用