Edit online

测试指南

5 Nov 2024
Read time: 3 minute(s)

测试环境

  • 硬件
    • 测试板:带有 eeprom 或者其他 I2C 从设备模块的测试板

    • PC:用于和测试板交互

    • 串口线:连接测试板的调试串口

  • 软件
    • PC 端串口终端软件

    • i2c-tools、i2c 测试代码

使能测试代码

Drivers options --->
    Drivers examples --->
        [*] Enable i2c driver test comnand
注:

裸机环境和将 I2C 设置成从机模式的时候需要打开这个测试代码

Local packages options  --->
    Third-party packages options  --->
        [*] i2c-tools: a collection of i2c tools including scan/read/write
        [*] at24cxx: eeprom at24cxx driver library
注:

i2c-tools 和 at24cxx 这两个 RT-Thread 第三方包分别对应着从机设备是 8bit 寄存器和 16bit 寄存器从机的测试,按需求将其打开

I2C 测试

  • at24cxx 的使用

    判断 I2C 总线与 eeprom 是否正常通信可以先进行读测试查看 eeprom 的初始参数在通过写命令将数据写入 eeprom,最后再调用读命令查看数据读出来的数据是否与写入数据一致。

    1. 初始化 i2c 与 eeprom 的连接
      at24cxx probe i2c0 0x50 第三个参数为总线号,第四个参数为 eeprom 的地址(具体要看数据手册结合原理图确定)
    2. 读操作
      at24cxx read
    3. 写操作
      at24cxx write 0x22 第三个参数是要写的数据
  • i2c-tools 的使用
    1. 扫描从机设备地址
      ArtInChip /> i2c scan i2c1
          00 01 02 03 04 05 06 07 08 09 0A 0B 0C 0D 0E 0F
      00: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- --
      10: -- -- -- -- -- -- -- -- 18 -- -- -- -- -- -- --
      20: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- --
      30: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- --
      40: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- --
      50: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- --
      60: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- --
      70: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- --
    2. 写操作
      ArtInChip /> i2c write i2c1 0x18 0x0 0
    3. 读操作
      ArtInChip /> i2c read i2c1 0x18 0x0 1
      [ 0x00 ]
    注:

    如果不清楚工具的具体使用方法可以直接在命令行输入工具名字,然后回车即可看到详细的使用方法。

  • 裸机环境下读写测试
    以 16bit 寄存器的从机为例:
    注:

    目前的 I2C 测试工具仅支持单个字节数据的收发。

    1. 读操作
      ArtInChip /> i2c read 0 0x50 -16 0x1234
      read_data: 0xff
    2. 写操作
      ArtInChip /> i2c write 0 0x50 -16 0x1234 0x11
      write_data: 0x11
    3. 具体参数解释
      0:I2C 的总线号
      0x50:从机设备的地址
      -1616bit 的寄存器地址,如果是 8bit 的寄存器则使用 -8
      0x1234:要读写的 16bit 寄存器地址
      0x11:要写入的数据
      如果不清楚命令使用可在命令行输入 ``i2c`` 查询具体使用方法