目录
一、硬件原理图分析
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
I2C通信协议详解:寄存器配置与AP3216C传感器应用

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





