一、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的使用

更多推荐