MSP430F2XX中文手册(加了标签) 13.IIC

整理文档很辛苦,赏杯茶钱您下走!

免费阅读已结束,点击下载阅读编辑剩下 ...

阅读已结束,您可以下载文档离线阅读编辑

资源描述

微控设计网(InterfaceIC)集成电路之间接口版本:1.3日期:2007.6.原文:TIMSP430x2xxfamily.pdf翻译:欧浩源中国计量学院编辑:DC微控技术论坛版主注:文章是翻译TIMSP430x2xxfamily.pdf文件中的部分内容。由于我们翻译水平有限,有整理过程中难免有所不足或错误;所以以下内容只供参考.一切以原文为准。详情请密切留意微控技术论坛。微控设计网模式通用串行通信接口(USCI)支持在一个硬件模块中的多种串行通信模式,本章讨论I2C模式的操作。主题13.1USCI概述13.2USCI介绍:I2C模式13.3USCI操作:I2C模式13.4USCI寄存器:I2C模式13.1USCI概述通信串行通信接口(USCI)模块支持多种异步通信模式。不同的USCI模块支持不同的模式。每一个USCI模块以不同的字母命名。例如,USCI_A不同于USCI_B等等。如果不止一个相同的USCI模块被安装在一个设备上,这些模块以递增的数字命名。例如,一个设备上有两个USCI_A模块,它们可以命名为USCI_A0和USCI_BA1。如果有需要,可以通过查阅设备明细表确定那些USCI模块可以那些设备上面。USCI_Ax模块支持:nUART模式n脉冲调制的IRDA通信n自动波特率检测的LIN通信nSPI模式USCI_Bx模块支持:nI2C模式nSPI模式13.2USCI介绍:I2C模式在I2C模式中,USCI模块提供一个能为MSP430和I2C兼容设备的互连接口。挂接在I2C总线上面的扩展器件通过两线的I2C接口实现与USCI模块的串行数据接收与发送。I2C模块的特性:n遵循菲利浦半导体公司的I2C规范v2.1u7位和10位的设备寻址方式u广播模式u开始/重新开始/停止u多主设备收发模式u从设备收发模式u支持高达100kbps的标准方式和高达400kbps的高速方式n在主设备模式中,UCxCLK频率可编程n低功耗设计n从设备根据检测到开始信号将MSP430从LPMx模式唤醒n在LPM4模式可以进行从机操作图13-1描述了USCI在I2C模式中的配置。微控设计网操作:I2C模式I2C模式支持所有的主方式或从方式的I2C兼容设备。图13-2描述了一个I2C总线的例子。每一个I2C设备都有唯一的地址可被识别,并且可以将该设备任意作为发送端或者接收端对其操作。进行数据传输的时候,一个连接在I2C总线上面的设备可以视为主设备或者是从设备。主设备开始一个数据的传输并且产生时钟信号SCL。任何被主设备寻址到的设备被认为是一个从设备。I2C数据通过串行数据线(SDA)和串行时钟线(SCL)进行传输。SDA和SCL都是双向的,它们必须通过上拉电阻连接到供电电压的正端。微控设计网集成电路之间接口注意:SDA和SCL标准MSP430的SDA和SCL管脚不允许拉高超过MSP430的Vcc电压。13.3.1USCI初始化和复位通过PUC信号或者使UCSWRST位置1都可以复位USCI。在一个PUC信号后,UCSWRST位自动置1,并使USCI复位。为了选择I2C操作,UCMODEx必须设置为11。在模块初始化之后,便可以进行发送和接收的操作了。UCSWRST位清0可以释放USCI,使其进入操作模式。为了避免不可预测的行为,当对UCSWRST被置1时应该对USCI进行设置或者重新设置。在I2C模式中对UCSWRST置1会产生下面的影响:nI2C通信停止。nSDA和SCL处于高阻态。nUCBxI2CSTAT的0-6位清0。nUCBxTXIE和UCBxRXIE清0。nUCBxTXIFG和UCBxRXIFG清0。n其他位和寄存器保持不变。注释:USCI模块初始化和重设置。USCI初始化/重设置的推荐步骤如下:1)UCSWRST位置1(BIS.B#UCSWRST,&UCxCTL1)。2)在UCSWRST=1时初始化所有的USCI寄存器。3)配置端口。4)通过软件使UCSWRST位清0(BIC.B#UCSWRST,&UCxCTL1)。5)通过UCxRXIE或UCxTXIE或者两者佳有,使能中断。13.3.2I2C串行数据主设备在传输每一个数据位时都会产生一个时钟脉冲。I2C模式操作是以字节为单位的。数据传输中最重要的起始位如图13-3所示。在起始条件后面的第一个字节包含7位的从设备地址和一个R/W位。当R/W=0时,主设备向从设备发送数据。当R/W=1时,主设备读取从设备的数据。在每个字节的第9个SCL时钟,接收端发送一个ACK应答信号。微控设计网集成电路之间接口起始条件和停止条件都是由主设备产生的,其时序如图13-3所示。起始条件是在SCL信号为高电平的时候,SDA产生一个由高变低的电平变化。停止条件是在SCL为高电平的时候,SDA产生一个由低变高的电平变化。USBBUSY位表示总线是否处于忙的状态,它在起始条件之后被置高,在停止条件之后被清0。如图13-4所示,数据在SCL高电平期间必须保持稳定。SDA的高低状态变化只能在SCL为低电平的时候改变。否则起始条件或者停止条件会被产生。13.3.3I2C的寻址方式I2C模式支持7位和10位的寻址方式。7位寻址方式7位寻址方式的格式如图13-5所示。第一个字节由7位从地址和R/W位组成。每个字节传输完毕接收设备都会发送一个响应位(ACK)。10位寻址方式10位寻址方式的格式如图13-6所示。第一个字节有11110b加上10位从地址的高2位和R/W位组成。每个字节传输完毕接收设备都会发送一个响应位(ACK)。第二个字节是10位从地址剩下的8位数据,在这之后是ACK应答信号和8位数据。再次起始条件微控设计网集成电路之间接口主设备可以在不停止传输的情况下,通过再次发送起始信号改变SDA上传输数据流方向。这可以称为再次开始。在再次起始产生之后,从设备的地址和标识数据流方向的R/W位需要重新发送。再次起始条件的格式如图13-7所示。13.3.4I2C模式中的操作方式USIC模块中的I2C模式可以工作在主发送模式、主接收模式、从发送模式或者从接收模式。这里从下面几个部分来讨论该模式。可以通过时序来阐述该模式。图13-8解释了时序描述中使用的一些图例。主设备发送的数据用灰色的矩形块表示,而从设备发送的数据用白色的矩形块表示。USCI模块发送的数据,主模式或这从模式也是用相应的图例表示,只不是其使用的矩形块比其他设备所使用的大一点。USCI模块的行为用带有箭头的灰色矩形块表示,其箭头所指为数据流中行为发生的地方。必须通过软件来处理的行为用白色矩形块表示,其箭头指向数据流中行为必定发生的地方。从模式选择在I2C模式并设置UCMODEx=11,UCSYNC=1,同时将UCMST位清0,可以将USCI模块配置为I2C从模式。刚开始的时候,USCI模块必须通过将UCTR位清0配置为接收模式,使其可以接收I2C的地址。在这之后,根据接收到从设备地址和R/W位可以自动进行发送和接收的操作。USCI的从设备地址是通过对UCBxI2COA寄存器编程得到的。当UCA10=0时,选择的是7位寻址方式,当UCA10=1时,选择的是10位寻址方式。如果需要响应广播,可以将UCGCEN位置1。当在总线上监测到一个起始条件之后,USCI模块将接收被传输的地址,并将该地址和存储在UCBxI2COA中的本地地址进行比较。如果该地址和USCI的从地址相匹配,则UCSTTIFG标志位置1。微控设计网从发送模式当从设备发现主设备发送的从地址与本地地址匹配,并且R/W位为1的时候,该设备进入从发送模式。从发送端根据主设备产生的时钟脉冲向SDA总线发送串行数据位。虽然从设备不产生时钟信号,但是当一个字节发送完毕需要CPU干预时需要将SCL信号拉低。如果主设备向从设备请求数据,则从设备的USCI模块会自动的设置为发送端,同时UCTR位和UCBxTXIFG位置1。SCL线在第一个数据写进发送寄存器UCBxTXBUF开发发送之前保持低电平。当地址被响应之后,UCSTTIFG标志位清除,然后开始传输数据。一旦数据转移到移位寄存器之后,UCBxTXIFG位将重新置1。当一个数据被主设备接收响应之后,写进UCBxTXBUF寄存器的下一个数据开始传输;或者这时候发送寄存器还处于空的状态,这种情况下,SCL线会保持低电平将应答周期延迟直到新的数据被写进UCBxTXBUF寄存器。如果主设备发送一个NACK应答信号后面是停止条件,则UCSTPIFG标志位置1。如果NACK应答信号后面是重新起始条件,则USCI的I2C状态机重新回到地址接收状态。从发送模式的控制如图13-9所示。I2C从接收模式微控设计网集成电路之间接口当检测到这设备发送的从地址和本地地址匹配,并且R/W位为0时,设备进入从接收模式。在从接收模式中,主设备每产生一个时钟脉冲,SDA总线上就能接收到串行数据位。从设备不产生时钟脉冲,但是当接收到一个字节后需要CPU干预的时候可以将SCL信号拉低。如果已经接收的数据在接收结束时没有被从UCBxRXBUF读走,总线会通过保持SCL信号为低电平将总线延时。一旦UCBxRXBUF接收到的新数据被读取的时候,一个应答信号会发送给主设备,这时就可以开始接收下一个数据了。在下一个应答周期中,设置UCTXNACK为会产生一个应答信号发送给主设备。即使UCBxRXBUF还没有准备接收最好的数据NACK信号也会发送。如果SCL信号保持低电平时UCTXNACK位被置位那么总线将会释放。,一个NACK信号将马上被发送,同时UCBxRXBUF将会装载最后接收到的数据。由于先前的数据还没有被读取,可能会使这些数据丢失。为了避免数据的丢失,在UCTXNACK被置位之前,UCBxRXBUF需要被读取。当主设备产生一个停止条件的时候,UCSTPIFG标志被置位。如果主设备发送一个重复开始条件,USCI的I2C状态机返回到它的地址接收状态。I2C从接收的操作如图13-10所示。微控设计网=1时,10位寻址方式被选择,其过程如图13-11所示。在10位寻址方式中,在所有的地址接收完之后,从设备进入接收模式。USCI模块通过将UCSTTIFG标志置位,同时将UCTR位清除来指示上面的寻址行为。主设备发送一个重新起始条件和地址的第一个字节,在该字节中R/W位为1,这样可以将从设备切换到发送模式。如果UCSTTIFG以前被清除的话,这时会被置位,同时USCI模块也会通过UCTR=1切换到发送模式。I2C从模式10位寻址如图13-11所示。主模式I2C主设备通过UCMODEx=

1 / 24
下载文档,编辑使用

©2015-2020 m.777doc.com 三七文档.

备案号:鲁ICP备2024069028号-1 客服联系 QQ:2149211541

×
保存成功