第17章I2C接口mpc83xx中文手册Word格式.docx
- 文档编号:20430494
- 上传时间:2023-01-22
- 格式:DOCX
- 页数:30
- 大小:243.85KB
第17章I2C接口mpc83xx中文手册Word格式.docx
《第17章I2C接口mpc83xx中文手册Word格式.docx》由会员分享,可在线阅读,更多相关《第17章I2C接口mpc83xx中文手册Word格式.docx(30页珍藏版)》请在冰豆网上搜索。
●复位配置装入(只限I2C1)。
在这个模式下,当设备上的其余部分都处于复位状态时(/HRESET有效),I2C1接口用一个特定调用地址从EEPROM装入复位配置字。
一旦将复位配置字锁定到设备中,就复位I2C1,直到/HRESET无效。
在/HRESET无效后,就可以根据复位配置字中的BOOTSEQ,使用引导定序器模式初始化该设备。
参见第4.4.3.2节“从I2CEEPROM装入”。
另外,为I2C接口定义了下面三种状态:
●START状态。
该状态标志一个新的数据传输的开始(每次数据传输包含多个字节)并唤醒所有的从设备。
●重复的START状态。
所产生的无STOP状态的START状态,以终止前一个数据传输。
●STOP状态。
主设备通过产生一个STOP状态终止传输并释放总线。
17.2外部信号说明
下面几节概述信号,并给出了详细信号描述。
17.2.1信号概述
I2C接口通过SDAn和SCLn信号传输数据,说明见表17-1。
注意,SDAn上驱动的信号模式在协议的不同时段分别代表地址、数据或读/写信息。
表17.1I2C接口信号说明
信号名称
空闲状态
I/O
状态含义
串行时钟
(SCL1,
SCL2)
高
I
当I2C模块空闲或作为一个从设备时,将SCLn默认为一个输入信号。
该单元使用SCLn同步SDAn上的输入数据。
当检测到SCLn为低时,认为总线忙。
O
作为主设备时,I2C模块在发送时驱动SCLn和SDAn。
作为从设备时,I2C模块驱动为调整数据的速度,将SCLn驱动为无效。
串行数据
(SDA1,
SDA2)
当I2C模块空闲或在接收模式下,将SDAn默认为一个输入信号。
该单元在SDAn上接收来自其他I2C设备的数据。
当检测到SDAn为低时,认为总线忙。
作为主设备或从设备时,I2C模块在SDAn上驱动数据,与SCLn同步。
17.2.2详细信号说明
SDAn和SCLn的说明见表17-2,用来实现与其他设备的通信互连。
连接到这些信号上的所有设备都必须具有开漏极或开集极的输出。
在这两个带外接上拉电阻的信号上执行逻辑AND功能。
有关电气特性,请参考MPC8349E硬件说明书。
表17-2I2C接口信号-详细信号说明
信号
描述
SCL1,
SCL2
串行时钟。
当把MPC8349E设定为从设备时,这个信号被作为一个输入。
当把MPC8349E设定为主设备时,这个信号被作为一个输出。
作为双向串行时钟的输出,这些信号的操作如下所述。
状态
含义
有效/无效——与SDAn一起驱动,作为数据的时钟。
作为双向串行时钟的输入,这些信号的操作如下。
有效/无效——I2C单元使用该信号同步SDAn上的输入数据。
当检测到这个信号为低时,认为总线忙。
SDA1,
SDA2
串行数据。
当MPC8349E处在接收模式时,将这个信号作为一个输入。
当MPC8349E发送数据时(作为I2C主设备或从设备),将这个信号作为一个输出。
作为双向串行数据的输出,这些信号的操作如下。
有效/无效——驱动数据
作为双向串行数据的输入,这些信号的操作如下。
有效/无效——用于接收来自其他设备的数据。
17.3内存映射/寄存器定义
表17-3列出了I2C特定的寄存器及地址。
表17-3I2C内存映射
地址
I2C寄存器
访问方式
复位
节/页
0x0_3000
I2C1ADR——I2C1地址寄存器
读/写
0x00
17.3.1.1/17-5
0x0_3004
I2C1FDR——I2C1分频寄存器
读/写
17.3.1.2/17-5
0x0_3008
I2C1CR——I2C1控制寄存器
17.3.1.3/17-6
0x0_300C
I2C1SR——I2C1状态寄存器
0x81
17.3.1.4/17-8
0x0_3010
I2C1DR——I2C1数据寄存器
17.3.1.5/17-9
0x0_3014
I2C1DFSRR——I2C1数字过滤采样速率寄存器
0x10
17.3.1.6/17-9
0x0_301C-
0x0_30FF
保留,应清除
—
0x0_3100
I2C2ADR——I2C2地址寄存器
0x0_3104
I2C2FDR——I2C2分频寄存器
0x0_3108
I2C2CR——I2C2控制寄存器
0x0_310C
I2C2SR——I2C2状态寄存器
0x0_3110
I2C2DR——I2C2数据寄存器
0x0_3114
I2C2DFSRR——I2C2数字过滤器采样速率寄存器
0x0_311C-
0x0_31FF
17.3.1寄存器说明
本节详细说明I2C寄存器。
注意
对保留位的写操作必须使用读到的原值,也就是说应这样设置寄存器:
读取寄存器值,修改适合的字段,将值写回。
不能假设保留字段的返回值,尽管保留字段返回零。
I2Cn数据寄存器(I2CnDR)除外。
17.3.1.1I2Cn地址寄存器(I2CnADRI2CnAddressRegister)
图17-2显示了I2CnADR寄存器。
当作为从设备时,该寄存器包含I2C接口响应的地址。
注意,在I2C模块处于主设备模式时,它并不是地址调用周期在总线上的发送地址。
图17-2I2Cn地址寄存器(I2CnADR)
表17-4说明了I2CnADR的位设置。
表17-4I2CnADR字段说明
位
名称
说明
0—6
ADDR
从设备地址。
包含I2C接口使用的特定从设备地址。
注意,I2C接口的默认模式是用于地址匹配的从设备模式。
注意,地址匹配是使I2CnSR[MIF]置位的一种状态,通知中断挂起状态。
7
17.3.1.2I2Cn分频寄存器(I2CnFDR)
图17-3显示了I2Cn分频寄存器位。
图17-3I2Cn分频寄存器(I2CnFDR)
表17-5说明了I2CnFDR的位设置,并列出了I2CnFDR[FDR]对应的分频数。
表17-5I2CnFDR字段说明
位数
0—1
2—7
FDR
分频比率。
用于位速率选择时钟的预分频。
SCLn上的串行位时钟频率等于I2Cn控制器频率除以分频数。
串行位时钟频率分频数的选择如下:
FDR分频数FDR分频数FDR分频数
0x003840x16122880x2b1024
0x014160x17153600x2c1280
0x024800x18184320x2d1536
0x035760x19204800x2e1792
0x046400x1a245760x2f2048
0x057040x1b307200x302560
0x068320x1c368640x313072
0x0710240x1d409600x323584
0x0811520x1e491520x334096
0x0912800x1f611400x345120
0x0a15360x202560x356144
0x0b19200x212880x367168
0x0c23040x223200x378192
0x0d25600x233520x3810240
0x0e30720x243840x3912288
0x0f38400x254480x3a14336
0x1046080x265120x3b16384
0x1151200x275760x3c20480
0x1261440x286400x3d24576
0x1376800x297680x3e28672
0x1492160x2a8960x3f32768
0x1510240
表17-5说明了I2C控制器内部时钟和SCL的比率。
但是,I2C控制器时钟与CSB时钟频率的默认比率为1:
3(I2C控制器时钟的频率比CBS时钟频率慢3倍)。
该比率在SCCR[TSEC2CM]中设置。
在选择FDR值时,用户应考虑这个因素。
17.3.1.3I2Cn控制寄存器(I2CnCR)
图17-4显示了I2Cn控制寄存器。
图17-4I2Cn控制寄存器(I2CnCR)
表17-6说明了I2CnCR的位设置。
表17-6I2CnCR字段说明
字位
MEN
模块启用。
控制I2C模块的软复位。
1复位并禁用模块。
接口保持在复位状态,但仍可以访问寄存器。
2启用I2C模块。
必须要在控制寄存器中其他字节产生作用之前置位MEN。
用于从设备接收或作为主设备START的所有的I2C寄存器都可以在置位该位之前初始化。
1
MIEN
模块中断允许
1禁止来自I2C模块的中断。
这不清除任何挂起的中断。
1允许来自I2C模块的中断。
如果I2CnSR[MIF]也置位,则产生中断。
2
MSTA
主设备/从设备模式START
1将MSTA从1变为0时,产生一个STOP状态,并将模式从主设备变为从设备。
若主设备失去仲裁,则清除该位时不产生STOP状态。
2当MSTA从0变为1时,在总线上产生一个START状态,并选择主设备模式。
3
MTX
发送/接收模式选择。
选择主设备和从设备的传送方向。
当配置为从设备时,应由软件根据I2CnSR[SRW]设置该位。
在主设备模式下,应根据所要求的传送类型设置该位。
因此,在地址周期,这一位始终为高。
当主设备失去仲裁时,清除MTX。
1接收模式
2发送模式
4
TXAK
发送确认标志。
为主设备和从设备接收方规定在确认周期期间在SDAn上传输的值。
该位的值仅在将I2C模块配置位接收方而不是发送方时才适用。
它也不适用于地址周期。
当设备被指定为从设备时,始终发送确认位。
1在接收完一个字节数据后的第9个周期位将确认信号(在SDAn上为低值)发送到总线上。
2不发送确认信号响应(在SDAn上为高值)
5
RSTA
重复的START。
注意,这个字段不是可读的,意思是如果读了RSTA,则返回值为0。
1不产生START状态。
2置位该位始终在总线上产生重复的START状态,向设备提供当前总线主设备。
在错误的时间产生重复的START状态(或者如果总线被别的主设备所控制),将导致失去仲裁。
6
BCST
广播
1禁止广播接收功能
2允许I2C在地址0接收广播信息
17.3.1.4I2C状态寄存器(I2CnSR)
I2CSR如图17-5所示。
图17-5I2C状态寄存器(I2CnSR)
表17-7说明了I2CnSR的位设置
表17-7I2CnSR字段指明
MCF
数据传送。
当传送一个字节的数据时,清除该位。
在字节传送的第9个时钟的下降沿置位该位。
1字节传送中。
在下列情况下清除MCF:
●在接收模式下读I2CnDR时,或在发送模式下写I2CnDR时。
●从设备模式中的I2C控制器识别了一个引导序列之后。
1字节传送完成
MAAS
寻址为从设备。
当I2CnADR的值与调用地址相匹配时,或调用地址是广播地址并且允许广播模式(I2CnCR[BCST]置位)时,该位置位。
如果I2CnCR[MIEN]置位,则中断处理器。
接下来,处理器必须检查SRW位并相应地置位I2CnCR[MTX]。
写I2CnCR自动清除该位。
1不是寻址的从设备
2是寻址的从设备
MBB
总线忙。
指示总线的状态。
当检测到START状态时,置位MBB。
如果检测到STOP状态,清除该位。
1I2C总线空闲
2I2C总线忙
MAL
仲裁丢失。
当仲裁过程丢失时,自动置位该位。
注意,设备不会自动重试失败的传输。
1没有丢失仲裁。
只能由软件清除。
2失去仲裁
BCSTM
广播匹配。
写I2CnCR将自动清除该位
1不存在广播匹配
2调用地址与广播地址匹配且允许广播功能。
若I2C驱动的地址为全0,也置位该位。
SRW
从设备读/写。
当MAAS被置位时,SRW指示主设备发送的调用地址中的读/写位的值。
1从设备接收,主设备写从设备
2从设备发送,主机读从设备。
仅当以下两个条件都满足时该位才有效:
●发出了一个完整的传输,并且还未初始化其他传输。
●I2C接口被配置为从设备,并且有一个地址匹配。
通过检查SRW,处理器可以根据主设备的命令选择从设备发送/接收模式。
MIF
模块中断。
当中断被挂起时置位MIF,引起处理器中断请求(若I2CnCR[MIEN]置位)。
1没有中断被挂起。
2有中断被挂起。
当发生以下事件时置位MIF:
●传输了一个字节的数据(在第9个时钟的下降沿置位)。
●I2CnADR中的值与从设备接收模式中的调用地址匹配。
●丢失仲裁。
RXAK
接收了确认。
接收总线周期确认位期间SDAn上的值。
如果接收的确认位(RXAK)为低,指示在总线上传输完8位数据之后已经收到了确认位。
如果RXAK为高,说明在第9个始终还未检测到确认信号。
1收到了确认
2未收到确认
17.3.1.5I2Cn数据寄存器(I2CnDR)
I2Cn数据寄存器如图17-6所示。
图17-6数据寄存器(I2CnDR)
表17-8给出了I2CnDR的位说明
表17-8I2CnDR字段说明
0—7
DATA
当将地址和读/写位写入数据寄存器且I2C接口作为主设备时,发送开始。
当把数据写入I2CnDR时,启动数据传输。
在两种情况下,都是先发送最高有效位。
在主设备接收模式中,读数据寄存器允许读,同时也允许I2C模块在I2C接口上接收下一个字节。
在从设备模式中,被寻址之后,可以使用同样的功能。
注意,第一次读始终是一个伪读。
17.3.1.6数字过滤器采样速率寄存器(I2CnDFSRR)
I2CnDFSRR如图17-7所示。
图17-7数字过滤器采样速率寄存器(I2CnDFSRR)
表17-9给出了I2CnDFSRR的字段说明。
表17-9I2CnDFSRR字段说明
DFSR
数字过滤器采样速率。
为帮助滤出信号噪声,可以设定采样速率。
DFSR用于预分频数字过滤器从I2C采样的频率。
结果采样频率的计算如下:
将平台频率除以非零值DFSR。
如果清除了I2CnDFSRR,则I2C总线采样点默认为复位分频数0x10。
17.4功能说明
I2C单元缺省时始终作为从设备接收器,除非显式地将其设定为主设备或从设备发送器。
如果选择了引导定序器模式,则在引导序列完成之后,I2C接口作为从设备接收器工作。
17.4.1事务处理协议
一个标准的I2C传输由以下部分组成:
●START状态
●从设备目标地址发送
●数据传输
●STOP状态
图17-8显示了使用I2C协议调用地址、数据字节和新调用地址的这四个部分的交互关系。
下面几个小节详细表述了该协议。
图17-8I2C接口事务处理协议
17.4.1.1START状态
当I2C总线空闲时(SDAn与SCLn都为高电平),主设备可以通过发送一个START状态启动一次传输。
如图17-8所示,将START状态定义为:
当SCLn为高时,SDAn从高电平到低电平的跳变。
这个状态指示一个新的数据传输的开始。
每一次数据传输可以包括几个字节,并唤醒所有的从设备。
利用软件写来置位I2CnCR[MSTA],就可以启动START状态。
17.4.1.2从设备地址发送
紧跟START状态之后,主设备发送的第一个数据字节是从设备地址。
这是一个7位的调用地址,后面跟一个R//W位,它指示到从设备的数据传输方向。
系统中的每一个从设备都有一个唯一的地址。
当I2C模块作为主设备操作时,它一定不能发送与其从设备地址相同的地址。
一个I2C设备不能同时作为主设备和从设备。
只有调用地址与主设备发送的地址相匹配的从设备才响应,它返回一个确认位(在第9个时钟将SDAn变为无效),如图17-8所示。
如果没有从设备确认该地址,主设备应产生一个STOP状态或一个重复的START状态。
当从设备寻址成功时(并且SCLn返回到0),可以按调用主设备发送的R//W位所规定的方向以字节到字节的方式进行数据传输。
当I2CnCR[BCST]置位时,I2C模块响应通用呼叫(广播)命令。
广播地址始终为0,然而I2C模块不检查R/W位。
广播消息的第二个字节是主设备的地址。
因为第二个字节是由硬件自动确认的,所以接收器软件必须读消息的第二个字节,以验证广播消息是发送给它自己的。
如果主设备地址是另外一个接收方设备的,且第三个字节是一个写命令,那么软件可以在广播期间忽略第三个字节。
如果主设备地址是另外一个接收方设备的,且第三个字节是一个读命令,那么软件必须将0xFF写入I2CnDR,令I2CnCR[TXAK]=1,这样它就不会干扰被寻址设备写入的数据了。
每个数据字节都是8位长。
只有当SCLn为低电平时才能修改数据位,当SCLn为高电平时,必须保持数据位稳定,如图17-8所示。
每个数据位都在SCLn上有一个时钟脉冲,并且先发送最高有效位(msb)。
每个数据字节后面必须跟一个确认位,接收设备在第9个时钟将SDAn拉为低电平通知确认。
因此,一个完整的数据字节传输要用9个时钟脉冲。
如果从设备接收器未应答确认主设备,则从设备必须让SDAn线保持高电平。
然后主设备就可以产生一个STOP状态中止此次传输,或一个START状态(重复的START状态)开始一个新的呼叫。
如果在发送完一个字节之后主设备接收器未应答确认从设备发送器,从设备就认为已经到达数据的末端。
然后从设备释放SDAn线,让主机产生一个STOP或一个START状态。
17.4.1.3重复的START状态。
图17-8示意了重复的START状态,产生这个状态时未产生可以终止前一次传输的STOP状态。
主设备使用这种方法与另外一个从设备通信,或与同一从设备以不同模式(发送/接收模式)通信,而不用释放总线。
17.4.1.4STOP状态
主机可以通过产生一个STOP状态终止传输,以释放总线。
将STOP状态定义为:
当SCLn为高时,SDAn从低电平到高电平的跳变。
更多信息见图17-8。
注意,即使从设备已经发送了确认位,主设备也可以产生STOP,此时从设备必须释放总线。
利用软件写来清除I2CnCR[MSTA],就可以启动STOP状态。
如在17.4.1.3节“重复的START状态”中所介绍的,主设备可以产生一个START状态,后面跟一个调用地址,而不用产生STOP状态终止前一次传输。
将其称作重复的START状态
17.4.1.5协议实现细节
下面几节给出了I2C模块中协议实现的细节。
17.4.1.5.1事务监控-实现细节
对I2C数据传输的不同状态的监控如下(见图17-8):
●当SCLn为高时检测到SDAn由高到低变化时视为START状态。
●当SCLn为高时检测到SDAn由低到高变化时视为STOP状态。
●当检测到STOP状态或者从设备地址不匹配时,取消正在进行的数据传输。
数据传输事务的取消导致时钟模块复位。
●检测到START状态时,视为总线忙。
检测到STOP状态时,视为总线空闲。
17.4.1.5.2控制传输-实现细节
I2C模块包含到I2C串行数据(SDA)和串行时钟(SCL)线的输出控制逻辑。
SCLn输出根据时钟模块产生的内部时钟所作出的决定下拉为低电平。
SDAn输出只能在SCLn低周期的中间点处变化,除非它正在执行START、STOP或重复START状态。
否则SDAn保持不变。
当下列一个或多个条件为真时,SDAn变为无效:
●主设备模式
⏹数据位(发送)
⏹ACK位(接收)
⏹START状态
⏹STOP状态
⏹重复的START状态
●从设备模式
⏹确认应答的地址匹配
⏹ACK位(接收)
不
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 17 I2C 接口 mpc83xx 中文 手册
![提示](https://static.bdocx.com/images/bang_tan.gif)