首页
  • GM-3568JHF
  • M4-R1
  • M5-R1
  • SC-3568HA
  • M-K1HSE
  • CF-NRS1
  • CF-CRA2
  • 1684XB-32T
  • 1684X-416T
  • C-3568BQ
  • C-3588LQ
  • GC-3568JBAF
  • C-K1BA
商城
  • English
  • 简体中文
首页
  • GM-3568JHF
  • M4-R1
  • M5-R1
  • SC-3568HA
  • M-K1HSE
  • CF-NRS1
  • CF-CRA2
  • 1684XB-32T
  • 1684X-416T
  • C-3568BQ
  • C-3588LQ
  • GC-3568JBAF
  • C-K1BA
商城
  • English
  • 简体中文
  • M4-R1

    • 一、简介

      • M4-R1简介
    • 二、快速上手

      • 01 OpenHarmony概述
      • 02 镜像烧录
      • 03 应用开发快速上手
      • 04 设备开发快速上手
    • 三、应用开发

      • 01 ArkUI

        • 1 ArkTS语言简介
        • 2 UI 组件-Row 容器介绍
        • 3 UI 组件-Column 容器介绍
        • 4 UI 组件-Text 组件
        • 5 UI 组件-Toggle 组件
        • 6 UI 组件-Slider 组件
        • 7 UI 组件-Animation 组件&Transition 组件
      • 02 资料获取

        • 1 OpenHarmony 官方资料
      • 03 开发须知

        • 1 Full-SDK替换教程
        • 2 引入和使用三方库
        • 3 HDC调试
        • 4 命令行恢复出厂模式
        • 5 升级App为system权限
      • 04 构建第一个应用

        • 1 构建第一个ArkTs应用-HelloWorld
      • 05 案例

        • 01 串口调试助手应用案例
        • 02 手写板应用案例
        • 03 数字时钟应用案例
        • 04 WIFI 信息获取应用案例
    • 四、设备开发

      • 01 环境搭建
      • 02 下载源码
      • 03 编译源码
    • 五、外设与接口

      • 树莓派接口
      • GPIO 接口
      • I2C 接口
      • SPI通信
      • PWM控制
      • 串口通讯
      • TF Card
      • 屏幕
      • 触摸
      • 音频
      • RTC
      • Ethernet
      • M.2
      • MINI-PCIE
      • Camera
      • WIFI&BT
      • 树莓派拓展板
    • 六、资料下载

      • 资料下载
  • M5-R1

    • 一、简介

      • M5-R1简介
    • 二、快速上手

      • 镜像烧录
      • 环境搭建
      • 下载源码
    • 三、外设与接口

      • 树莓派接口
      • GPIO 接口
      • I2C 接口
      • SPI通信
      • PWM控制
      • 串口通讯
      • TF Card
      • 屏幕
      • 触摸
      • 音频
      • RTC
      • Ethernet
      • M.2
      • MINI-PCIE
      • Camera
      • WIFI&BT
    • 四、资料下载

      • 资料下载

I2C 接口

1. I2C引脚

在40PIN引脚中有两组I2C可使用,分别是i2c-5,i2c-8

TOOL
I2C引脚功能
I2C5-SCL27I2C5 的时钟信号线
I2C5-SDA28I2C5 的数据线
I2C8-SCL3I2C8 的时钟信号线
I2C8-SDA5I2C8 的数据线

2. I2C接口使能

可以T通过修改设备树来使能这两个接口。

    &i2c5{
        status = "okay";
    };

    &i2c8{
        status = "okay";
    };

3. 挂载I2C设备

在注册 I2C 设备时,需要结构体 i2c_client 来描述 I2C 设备。然而在标准 Linux 中,用户只需要提供相应的 I2C 设备信息,Linux 就会根据所提供的信息构造 i2c_client 结构体。

用户所提供的 I2C 设备信息以节点的形式写到 DTS 文件中,如下所示:

    &i2c5{
        nca9555:nca9555@20{
            reg=<0x20>;
            compatible = "novosense,nca9555";
            status="okay";
            gpio-controller;
            #gpio-cells = <2>;
        };
    };

驱动通过获取DTS中的节点信息将设备挂载

注意

NCA9555是一款24引脚CMOS器件,提供16位通用并行I2C总线数输入/输出GPIO扩展功能

4. 检查I2C设备

通过以下命令查看i2c总线有没有开启

如图:

TOOL

5. I2C测试工具

板卡中带有i2c测试命令,命令有i2cdetect、i2cdump、i2cset以及i2cget,用于扫描I2C总线上的设备、读写指定设备的寄存器等。

例如查看挂载在i2c5上的设备情况,输出内容如下:

    # i2cdetect -y 5
        0  1  2  3  4  5  6  7  8  9  a  b  c  d  e  f
    00:          -- -- -- -- -- -- -- -- -- -- -- -- --
    10: -- -- -- -- -- 15 -- -- -- -- -- -- -- -- -- --
    20: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- --
    30: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- --
    40: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- --
    50: -- UU -- -- -- -- -- -- -- -- -- -- -- -- -- --
    60: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- --
    70: -- -- -- -- -- -- -- --

提示

其中“15”代表有设备地址为15的设备但是驱动未加载,UU代表设备地址为50的设备驱动已加载成功

其他常用命令使用案例如下:

    #检测当前系统有几组i2c总线
    i2cdetect -l

    #查看i2c-3接口上的设备
    i2cdetect -a 3

    #读取指定设备的全部寄存器的值。
    i2cdump -f -y 3 0x20

    #读取指定IIC设备的某个寄存器的值,如下读取地址为0x68器件中的0x01寄存器值。
    i2cget -f -y 3 0x20 0x01

    #写入指定IIC设备的某个寄存器的值,如下设置地址为0x68器件中的0x01寄存器值为0x6f;
    i2cset -f -y 3 0x20 0x01 0x6f b

在 GitHub 上编辑此页
上次更新:
贡献者: hychen
Prev
GPIO 接口
Next
SPI通信