TI TMS320C2000 I2C模块参考指南.pdf
文本预览下载声明
本文档依据TMS320F28027 官方文档和I2C 总线规范,其它C2000 系列MCUDSP 可以参考本文档。
TI TMS320C2000 I2C 模块参考指南
1 I2C 总线总体特征
I2C 总线只包含两条数据线:SDA 数据线和SCL 时钟线。在I2C 总线传输过程中,只有主机
设备牢牢控制着SCL 时钟信号。SDA 信号线则可以由主机或从机控制。
图 1 I2C 总线连接图
SDA 和SCL 都是双向线路,通过一个上拉电阻连接到正的电源电压(如上图),总线特征包
括:
a) 当场效应管接通时总线相当于接地,处于低电平状态;
b) 当场效应管断开时上拉电阻Rp 将总线上拉至高电平;
c) 只要有设备将总线拉至低电平时,不管其它设备状态怎样,总线都将一直保持低电平;
d) 当总线空闲时时钟线和数据线路都处于高电平状态。
2 I2C 模块的时钟
I2C 模块作为一个外设模块受到外设时钟控制寄存器PCLKCR0 管理,在配置I2C 模块前应该
确认I2C 模块的时钟被打开(SysCtrlRegs.PCLKCR0.bit.I2CAENCLK = 1; // I2C )。
MCUDSP STUDY \ tisheng@ 希望能和你交流
本文档依据TMS320F28027 官方文档和I2C 总线规范,其它C2000 系列MCUDSP 可以参考本文档。
图 2 I2C 模块的时钟控制模块
如上图所示,系统时钟输出(SYSCLKOUT )直接输入到I2C模块,通过I2C分频寄存器(I2CPSC )
控制的分频器进行分频,生成的I2C模块时钟,模块时钟必须在7M~12M之间,这个时钟才是模块
直接使用的时钟信号。模块时钟可由下公式计算最终频率:
模块时钟频率
I2C 模块的分频器配置必须在I2C 模块处于复位状态下进行,即I2caRegs.I2CMDR.bit.IRS==0
时;分频器在I2C 模块退出复位状态时开始工作;当I2C 处于工作状态时操作I2CPSC 寄存器是
无效的。
当I2C 模块在I2C 总线上被配置为主设备时,主设备一直控制SCL 时钟总线,I2CCLKH 和
I2CCLKL 寄存器分别用于控制SCL 时钟总线的高电平和低电平持续时间,如下图所示。
图 3 SCL 时钟高低电平时间控制逻辑
SCL 时钟总线的高电平和低电平持续时间可以下式表示:
( )
( ) ( )
( )
( ) ( )
其中 表示I2C 模块时钟的周期值, 表示系统时钟的周期,d 表示分频延时值,可由下表
决定。
MCUDSP STUDY \ tisheng@ 希望能和你交流
本文档依据TMS320F28027 官方文档和I2C 总线规范,其它C2000 系列MCUDSP 可以参考本文档。
表 1 I2C 分频延时值判定表
综上所述,对I2C 模块的时钟配置流程:
a) 先配置外设时钟控制
显示全部