【裸机开发】I2C 通信接口(二)—— I2C 寄存器解析

I2C通信协议详解:寄存器配置与AP3216C传感器应用
本文详细介绍了I2C通信协议在硬件原理图中的应用,包括I2C引脚复用、寄存器解析,如I2C1_IADR、I2C1_IFDR、I2C1_I2CR和I2C1_I2SR的配置。同时,文章还涵盖了AP3216C三合一传感器的功能选择和数据读取,以及如何设置其工作模式。

目录

一、硬件原理图分析

二、IO 复用寄存器解析

三、I2C 寄存器解析

3.1 时钟配置

3.2  I2C1_IADR(设置从机地址)

3.3  I2C1_IFDR(设置分频值)

3.4  I2C1_I2CR(I2C使能、中断控制)

3.5  I2C1_I2SR(保存通信状态)

3.6  I2C1_I2DR(数据发送 / 接收)

四、 AP3216C 解析

1、功能选择(0x00 — bit2:0)

2、IR + PS

3、ALS


一、硬件原理图分析

I2C 主要涉及到两个引脚,分别是 SCL 和 SDA,既然是涉及 IO,那就需要知道哪两个引脚可以被复用为 SCL 和 SDA。

首先看底板上的 I2C 模块。我们发现,IMX.6ULL 有两个 I2C 控制器,分别是 I2C1 和 I2C2。假设我们要使用 I2C1 。

然后再看底板上的 I2C 模块连接到了核心板上的哪些引脚。

最后就是找到和 UART4_TXD、UART4_RXD 相关的复用寄存器。

① TXD 相关(复用为SCL)

  • IOMUXC_SW_MUX_CTL_PAD_UART4_TX_DATA
  • IOMUXC_SW_PAD_CTL_PAD_UART4_TX_DATA

② RXD 相关(复用为 SDA)

  • IOMUXC_SW_MUX_CTL_PAD_UART4_RX_DATA
  • IOMUXC_SW_PAD_CTL_PAD_UART4_RX_DATA

二、IO 复用寄存器解析

IO 初始化就涉及到两方面,一个是指定复用为哪个功能,一个是配置复用引脚的电气属性,电气属性的初值和之前一样,设为 0x10B0。

  • IO 复用
    • IOMUXC_SW_MUX_CTL_PAD_UART4_TX_DATA复用为 SCL
    • IOMUXC_SW_MUX_CTL_PAD_UART4_RX_DATA(复用为 SDA)

  • 配置电气属性
    • IOMUXC_SW_PAD_CTL_PAD_UART4_TX_DATA(初值为 0x70B0)
    • IOMUXC_SW_PAD_CTL_PAD_UART4_RX_DATA(初值为 0x70B0)
/*************** SCL复用初始化 ******************/
寄存器(基地址): IOMUXC_SW_MUX_CTL_PAD_UART4_TX_DATA (0x20E00B4)
寄存器(基地址): IOMUXC_SW_PAD_CTL_PAD_UART4_TX_DATA (0x20E0340)
初始化操作:
    IOMUXC_SW_MUX_CTL_PAD_UART4_TX_DATA &=~ (0xF);    // 低4位清零
    IOMUXC_SW_MUX_CTL_PAD_UART4_TX_DATA |= 1;         // 复用为I2C1_SCL

    IOMUXC_SW_PAD_CTL_PAD_UART4_TX_DATA = 0x70B0;

/*************** SDA复用初始化 ******************/
寄存器(基地址): IOMUXC_SW_MUX_CTL_P
评论 1
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值