编辑: GXB156399820 | 2019-09-20 |
Document Number: AN4872 应用笔记 Rev. 0, 03/2014 ?
2014 Freescale Semiconductor, Inc. 使用KE06上的四线式I
2 C接口 作者:Ben Wang
1 简介 本应用笔记将描述使用Kinetis E系列KE06上 的四线式I2 C接口的流程.本应用笔记中提供 的示例代码在KE06上经过测试,测试方法为 在两个评估板之间进行I2 C主/从通信. 目录
1 简介.1
2 KE06 I2 C 概述.2
3 四线式接口特性.2 3.1 四线式接口配置.2
4 四线式接口测试.3 4.1 硬件设置.3 4.2 软件设置.5
5 参考.7
6 修订历史记录.7 AN4872,使用KE06上的四线式I
2 C接口,Rev. 0,03/2014
2 Freescale Semiconductor, Inc.
2 KE06 I2 C概述 KE06包含两个支持SMBus功能的I2 C模块.I2 C接口提供了一种多个器件之间通信的方式.该接口 在总线负载和时序最高的情况下以高达100 kb/s的速度运行.当减小总线负载时,器件能够以更高 的波特率运行,可以达到总线频率的1/20.最大通信长度和可连接的器件数量受400 pF的最大总线 电容限制. 此外,KE06 I2 C0还提供四线式接口选项.
3 四线式接口特性 大多数设备应用中都会存在很大的总线负载和大量的总线噪声.为了提供稳健的I2 C通信,可能需 要额外的总线开关或线路驱动器. 对于传统的两线式I2 C通信, 这将会增加额外的系统物料 (BOM) 成本.传统的I2C接口采用SDASCL双向传输,四线式接口则增加了一个选项,将其分为单向的输 入和输出功能.在四个引脚的配置中,SDA_IN、SDA_OUT、SCL_IN和SCL_OUT引脚均带有反 相输出.该配置可使用户在设计线路驱动器时的额外成本最低,并且可用于改善I2 C总线的抗噪声 能力.该配置可以通过增加两个晶体管、六个电阻和两个二极管来实现. 3.1 四线式接口配置 当KE06的SIM_SOPT1[I2C04WEN]位被置位时,四线式接口使能.SDA_IN/SCL_IN(KE06上的 PTA2/PTA3) 管脚用来表示SDA/SCL信号的输入, SDA_OUT/SCL_OUT (KE06上的PTA1/PTA0) 管脚用来表示SDA/SCL信号的输出. 通过置位SIM_SOPT1[I2C04WEN]位而使能四线式接口功能后,用户可将SIM_SOPT1[I2C0OINV] 位置位,使SDA_OUT/SCL_OUT在输出前反相. 但是,该功能仅当未重新映射I2 C0管脚时可用. AN4872,使用KE06上的四线式I
2 C接口,Rev. 0,03/2014 Freescale Semiconductor, Inc.
3 下面为I2 C0四线式接口的示意图: 图1. I2 C0四线式接口图
4 四线式接口测试 四线式接口采用内部评估板进行测试.如前所述,采用四线式I2 C无需对I2 C的外设重新设计,仅 需换一个接口即可. 4.1 硬件设置 图1表示通用的四线式I2 C接口连接. AN4872,使用KE06上的四线式I
2 C接口,Rev. 0,03/2014
4 Freescale Semiconductor, Inc. 图2. 四线式I2 C接口连接 下
图表示评估板上实际的四线式I2 C连接: 图3. I2 C0四线式硬件原理图 AN4872,使用KE06上的四线式I
2 C接口,Rev. 0,03/2014 Freescale Semiconductor, Inc.
5 4.2 软件设置 在对四线式接口进行测试时,仅SIM_SOPT1寄存器中的两个位需要在软件中置位.其他I2 C主/从 配置与两线式相同. I2 C四线式通信的主机代码如下: I2C_4wire_master.c: int main (void) { I2C_ConfigType sI2C_Config = {0};
uint32_t i,j;
for(i=0;
i