首页资源分类嵌入式开发单片机 > MSP430F5-17-IIC通用串行通讯接口

MSP430F5-17-IIC通用串行通讯接口

已有 460501个资源

下载专区


TI最新应用解决方案

工业电子 汽车电子 个人消费电子

上传者其他资源

文档信息举报收藏

标    签: msp430技术手册

分    享:

文档简介

来自微控网翻译的官方技术手册,很实用的

文档预览

微控网 www.Microcontrol.cn MSP430F5 系列 16 位超低功耗单片机模块原理 第 17 章 通用串行通讯接口 IIC 模式 版本: 1.1 发布日期: 2008.9. 最后更新日期:2010.8. 原文: TI slau208.pdf (5xxfamily User's Guide) 翻译: 张明慧 郑州 硬件研发工程师 编辑: DC 微控网总版主 注:以下文章是翻译 TI slau208.pdf 文件中的部分内容。由于我们翻译水平有限,有整理过程中难免 有所不足或错误;所以以下内容只供参考.一切以原文为准。 文章更新详情请密切留意微控技术论坛。 Page 1 of 24 MSP430 F5 系列超低功耗单片机模块原理 第 17 章 通用串行通讯接口 IIC 模式 微控网 www.Microcontrol.cn 第 14 章 通用串行通讯接口 IIC 模式 5xx 系列通用串行通信接口(USCI)在同一个硬件模块下支持多种串行通信模式,本章讨论 I2C 模式的操作。 主题如下: 17.1 USCI 概述 17.2 USCI 介绍:I2C 模式 17.3 USCI 操作:I2C 模式 17.4 USCI 寄存器:I2C 模式 17.1 USCI 概述 通用串行通信接口(USCI)模块支持多种串行通信模式。不同的USCI模块支持不同的模式。每 一个USCI模块以不同的字母命名。例如,USCI_A不同于USCI_B等等。如果不止一个相同的USCI模块 被安装在同一个设备上,那么这些模块将以递增的数字命名。例如,当一个设备上有两个USCI_A模块 时,它们可以用USCI_A0和USCI_A1来命名。如有需要,可以通过查阅设备明细表来确定哪些USCI 模块可以配置在哪些设备上。 USCI_Ax 模块支持: UART模式 脉冲整形的IrDA通信 自动波特率检测的LIN通信 SPI模式 USCI_Bx 模块支持: I2C模式 SPI模式 17.2 USCI 介绍:I2C 模式 在 I2C 模式中,USCI 模块利用两线式 I2C 串行总线给 MSP430 和 I2C 兼容设备提供了一个互联 接口。挂在 I2C 总线上的外扩设备通过两线式 I2C 接口实现与 USCI 模块之间串行数据的接收与发送。 I2C 模块的特性包括: 1) 遵循 Philips 半导体公司的 I2C 规范 v2.1 7 位和 10 位的设备寻址方式 广播模式 开始/重新开始/停止 多主设发送/接收模式 从设备接收/发送模式 支持高达 100kbps 的标准模式和高达 400kbps 的高速模式 2) 主设模式下 UCxCLK 频率可编程 3) 低功耗设计 4) 从设备检测到开始信号将自动唤醒 LPMx 模式 5) LPM4 模式下可进行从设备操作 图 17-1 描述了 USCI 在 I2C 模式下的配置。 Page 2 of 24 MSP430 F5 系列超低功耗单片机模块原理 第 17 章 通用串行通讯接口 IIC 模式 微控网 www.Microcontrol.cn 17.3 USCI 操作:I2C 模式 I2C 模式支持任何从模式或主模式下的 I2C 兼容设备。图 17-2 给出了一个 I2C 总线的例子。每个 I2C 设备都有唯一的地址可供识别,并可以随意作为发送端或接收端对其操作。当进行数据传输时,I2C 总线上的设备可以被视为主设备或者是从设备。主设备开始数据发送并产生时钟信号 SCL。任一能被 主设备寻址到的设备都可视为一个从设备。 I2C 数据通过串行数据线(SDA)和串行时钟线(SCL)进行传输。SDA 和 SCL 均为双向的,它们必 须通过一个上拉电阻连接到供电电源的正极。 Page 3 of 24 MSP430 F5 系列超低功耗单片机模块原理 第 17 章 通用串行通讯接口 IIC 模式 微控网 www.Microcontrol.cn 注意:SDA 和 SCL 电平 MSP430 的 SDA 和 SCL 引脚电平不能上拉的超过 MSP430 的 VCC 电平。 17.3.1 USCI 的初始化和复位 通过 PUC 信号或者对 UCSWRST 置位都可以对 USCI 进行复位。一旦出现 PUC 信号,UCSWRST 位将自动置位,并使 USCI 复位。为选择 I2C 操作模式,UCMODEx 必须设置成 11。当完成模块初始 化后,即可进行数据的发送或接收。清除 UCSWRST 可以释放 USCI,使其进入操作状态。 为避免不可预测行为的出现,当 UCSWRST 置位时应该对 USCI 进行配置或者重新配置。在 I2C 状态下设置 UCSWRST 有以下影响: I2C 通信停止 SDA 和 SCL 处于高阻态 UCBxI2CSTAT 的第 0~6 位清零 UCTXIE 和 UCRXIE 被清零 UCTXIFG 和 UCRXIFG 被清零 其他位和寄存器保持不变 注意:初始化或者重新配置 USCI 模块 USCI 模块初始化或者重新配置推荐步骤: 1、 设置 UCSWRST(BIS.B #UCSWRST,&UCxCTL1) 2、 在 UCSWRST=1 时初始化所有 USCI 寄存器(包括 UCxCTL1) 3、 配置端口 4、 软件清除 UCSWRST 位(BIC.B #UCSWRST,&UCxCTL1) 5、 通过设置 UCxTXIE 和 UCxRXIE 或二者之一来使能中断 17.3.2 I2C 的串行数据 每传输一个数据位主设备都会产生一个时钟脉冲。I2C 模式下进行的是字节操作。数据传输过程 中最重要的起始位如图 17-3 所示。 每个起始位发出之后的第一个字节包含有 7 位从地址和一个 R/W 位。当 R/W=0 时,主设备向从 设备发送数据;=1 时,主设备从从设备接收数据。应答位 ACK 是接收方对应第九个 SCL 时钟发出的 握手信号。 START 起始条件和 STOP 停止条件都是由主设备产生,其时序如图 17-3 所示。在 SCL 为高时将 SDA 由高跳变至低产生一个 START 起始条件。在 SCL 为高时将 SDA 由低跳变至高产生一个 STOP 停止条件。总线忙位 UCBBUSY 在 START 出现后置位,在 STOP 出现后清零。 Page 4 of 24 MSP430 F5 系列超低功耗单片机模块原理 第 17 章 通用串行通讯接口 IIC 模式 微控网 www.Microcontrol.cn SCL 为高电平期间 SDA 上的数据必须保持稳定,其时序如图 17-4 所示。SDA 的高低状态只能在 SCL 为低时可调,否则将会产生起始和停止条件。 17.3.3 I2C 寻址方式 I2C 模式下支持 7 位和 10 位寻址方式。 7 位寻址 7 位寻址的格式如图 17-5 所示,第一个字节包括 7 位从地址和一个 R/W 读写控制位。应答位 ACK 是接收方在每个字节后发出的握手信号。 10 位寻址 10 位寻址的格式见图 17-6,第一个字节由 11110b 加上 10 位从地址的高两位和 R/W 位构成。每 个字节结束后由接收方发送 ACK 应答信号。下一个字节是 10 位从地址剩下的 8 位数据,在这之后是 ACK 应答信号和 8 位数据。 再次起始条件 主设备可以在不停止当前传输状态的情况下,通过再次发送一个起始位来改变 SDA 上数据流的传 输方向。这被称为再次起始。再次起始位产生后,从设备的地址和标示数据流方向的 R/W 位需要重新 Page 5 of 24 MSP430 F5 系列超低功耗单片机模块原理 第 17 章 通用串行通讯接口 IIC 模式 发送。再次起始条件格式如图 17-7 所示。 微控网 www.Microcontrol.cn 17.3.4 I2C 模式下的操作方式 在 I2C 模式下 USCI 模块可以工作在主发送模式,主接收模式,从发送模式,或者从接收模式。 接下来的几部分将会对这些模式进行讨论,并用时序来对这些模式进行阐明。 图 17-8 给出了在时序说明中会出现的一些图例。主设备发送的数据用灰色的矩形块表示,而从设 备发送的数据则用白色的矩形块表示。USCI 模块传输的数据,和主模式或从模式一样用相应的图例表 示,只不过其使用的矩形块要高一点。 USCI 模块的行为用带有指示数据流中行为发生地方的箭头的灰色矩形块表示。必须用软件来处理 的行为则用带有指向数据流中行为必定发生的地方的箭头的白色矩形块表示。 从设备模式 选择 I2C 模式的同时设置 UCMODEx=11,USCYNC=1,并清零 UCMST 位可以使 USCI 模块工 作在 I2C 从模式。 首先,必须清零 UCTR 位使 USCI 工作在接收模式下才能接收到 I2C 的地址。然后,数据的发送 和接收操作就可以根据从地址和一起传输的 R/W 位来自动进行。 USCI 从地址是对寄存器 UCBxI2COA 进行编程得到。当 UCA10=0,选用 7 位寻址方式。当 UCA10=1,选用 10 位寻址方式。若要响应广播可以置位 UCGCEN 位。 当 在 总 线 上 检 测 到 起 始 信 号 时 , USCI 模 块 将 会 接 收 到 传 送 过 来 的 地 址 ,并 将 之 与 存 储 在 UCBxI2C0A 中存储的本地址相比较。若两者相匹配,则置位 UCSTTIFG 位。 I2C 从设备发送模式 当主机发送的从地址和其本地地址相匹配并且 R/W 为 1 时从设备进入发送模式。从设备根据主设 Page 6 of 24 MSP430 F5 系列超低功耗单片机模块原理 第 17 章 通用串行通讯接口 IIC 模式 微控网 www.Microcontrol.cn 备产生的时钟脉冲信号在 SDA 上发送串行数据。从设备不能产生时钟脉冲,但是当一个字节发送完需 要 CPU 的干预时从设备可以拉低 SCL。 如 果 主 设 备 向 从 设 备 请 求 数 据 则 USCI 模 块 将 会 被 自 动 配 置 为 发 送 模 式 并 置 位 UCTR 和 UCTXIFG。SCL 直到第一个数据被写入发送缓冲区 UCBxTXBUF 之前会一直保持被拉低状态。当地址 被响应后,清除 UCSTTIFG 标志,然后开始数据传输。一旦数据被转移到移位寄存器之后 UCTXIFG 将再次被置位。 当一个数据被主设备接收响应之后,之前被写入 UCBxTXBUF 中的下一个数据开始传输,若此时 缓冲区为空,则 SCL 会一直保持低电平来延迟总线的应答周期来等待新的数据被写进 UCBxTXBUF。 图 17-9 给出了 I2C 从设备发送模式的图解。 I2C 从设备接收模式 当主机发送的从地址和其本地地址相匹配并且 R/W 为 0 时从设备进入接收模式。从设备接收模式 下,从设备根据主设备产生的时钟脉冲信号在 SDA 上接收串行数据。从设备不能产生时钟脉冲,但是 Page 7 of 24 MSP430 F5 系列超低功耗单片机模块原理 第 17 章 通用串行通讯接口 IIC 模式 微控网 www.Microcontrol.cn 当一个字节接收完需要 CPU 的干预时从设备可以拉低 SCL。 如果从设备需要从主机接收数据则 USCI 模块将会被自动配置为接收模式并清除 UCTR 位。在接 收完第一个数据字节后接收中断标志位 UCRXIFG 置位。USCI 模块会自动应答接收到的数据并开始接 收下一个数据字节。 如果已经接收到的数据在数据接收结束时还没有从接收缓冲区 UCBxRXBUF 中读走,SCL 会一直 处于拉低状态进行总线延时。一旦 UCBxRXBUF 接收到的新数据被读走,从设备会发送一个应答信号 给主设,然后开始下个数据的接收。 在下一个应答周期中置位 UCTXNACK 会产生一个 NACK 发送给主设备,即使是还没有准备好接 收新的数据。如果在 SCL 为低时置位 UCTXNACK 将会释放总线,并马上发送一个 NACK 信号给主设, 同时 UCBxRXBUF 将加载最后一次接收到的数据。由于先前的数据还没有被读出,这将造成数据丢失。 所以为避免数据的丢失应在 UCTXNACK 置位之前读出 UCBxRXBUF 中的数据。 当主设备产生一个 STOP 停止条件时 UCSTPIFG 被置位。 如果主设备产生一个重复开始条件时,USCI 的 I2C 状态机将返回地址接收状态。 Page 8 of 24 MSP430 F5 系列超低功耗单片机模块原理 第 17 章 通用串行通讯接口 IIC 模式 微控网 www.Microcontrol.cn 图 17-10 给出了 I2C 从设备接收模式的图解。 I2C 从接收模式下的 10 位寻址方式 如图 17-11 所示当 UCA10=1 时选用 10 位寻址模式。在 10 位寻址模式下,整个地址接收完毕后 从设备处于接收模式。此时,USCI 模块将会在清零 UCTR 位的同时置位 UCSTTIFG 来标示当前状态。 若需要将从设备转换到发送模式则需要主机在发送一个重复起始条件后紧跟着发送一个字节地址并置 位 R/W。若标志位 UCSTTIFG 之前被软件清除那么此时将会被置位,同时通过 UCTR=1 使 USCI 模块 转换成发送模式。 Page 9 of 24 MSP430 F5 系列超低功耗单片机模块原理 第 17 章 通用串行通讯接口 IIC 模式 微控网 www.Microcontrol.cn 图 17-11 IIC 从机 10 位地址模式 主模式 选择 I2C 模式的同时设置 UCMODEx=11,USCYNC=1,并置位 UCMST 位可以使 USCI 模块工 作在 I2C 主模式。当主模块是一个多主设系统的一部分时,必须对 UCMM 置位,并通过编程将其本机 地址写入寄存器 UCBxI2COA 中。当 UCA10=0 时,选择 7 位寻址模式。当 UCA10=1 时,选择 10 位 寻址模式。若要响应广播可以置位 UCGCEN 位。 I2C 主设备发送模式 初始化之后,主发送模块还需要一些必要的初始化工作:把目标从地址写入寄存器 UCBxI2CSA 中,通过 UCSLA10 位选择从地址的大小,置位 UCTR 来选择发送模式,置位 UCTXSTT 来产生一个 起始条件。 USCI 模块首先检测总线是否空闲,然后产生一个起始条件,传送从地址。当 START 条件产生时 将会置位 UCTXIFG 并将要发送的数据写进 UCBxTXBUF。一旦从设备对地址作出应答 UCTXSTT 位 即刻清零。 在从地址的发送过程中,如果总线仲裁没有失效那么写入 UCBxTXBUF 中的数据会被发送。一旦 数据由缓冲区转移到移位寄存器 UCTXIFG 将重新置位。如果响应周期到来之前 UCBxTXBUF 中没有 Page 10 of 24 MSP430 F5 系列超低功耗单片机模块原理 第 17 章 通用串行通讯接口 IIC 模式 微控网 www.Microcontrol.cn 装载数据,那么 SCL 将保持拉低状态进行总线延时直到数据被写入缓冲区 UCBxTXBUF。在数据传送 和总线保持过程中 UCTXSTP 和 UCTXSTT 均不会被置位。 从设备下一个应答信号到来之后,置位 UCTXSTP 可以产生一个 STOP 条件。如果在从设备的地 址传送过程或者是 USCI 模块等待 UCBxTXBUF 写入数据的过程中置位 UCTXSTP,则即使没有数据 发送给从设备依旧会产生一个 STOP 条件。当传送一个单字节数据时,字节传送时必须置位 UCTXSTP, 或者在数据传输开始后,不要将任何新的数据写入 UCBxTXBUF。否则,只有地址被传送。当数据由 缓冲区转移进移位寄存器时,UCTXIFG 将会被置位,这标示着数据传输已经开始,可以置位 UCTXSTP 了。 置位 UCTXSTT 将会产生一个重复起始条件。在这种情况下,可以通过对 UCTR 的置位或清零来 配置为发送端或接收端,如果需要的话还可以把不同的地址写入 UCBxI2CSA。 如果从设备没有响应发送的数据则未响应中断标志位 UCNACKIFG 置位。主设备必须发送一个 STOP 条件或者重新起始条件来做出响应。如果已经有数据被写入 UCBxTXBUF 那么当前数据被丢弃。 如果在一个重新起始条件后这个数据应该传送,那么必须重新将之写入 UCBxTXBUF。当然置位 UCTXSTT 的信息同样会被丢弃。若要产生一个重复起始条件,UCTXSTT 需要被重新置位。 图 17-12 给出了 I2C 主设备传送模式的操作图解。 Page 11 of 24 MSP430 F5 系列超低功耗单片机模块原理 第 17 章 通用串行通讯接口 IIC 模式 微控网 www.Microcontrol.cn Page 12 of 24 MSP430 F5 系列超低功耗单片机模块原理 第 17 章 通用串行通讯接口 IIC 模式 微控网 www.Microcontrol.cn A 5xx:用 UCBxTXIFG 代替 UCTXIFG.用 UCBxRXIFG 代替 UCRXIFG. I2C 主设备接收模式 初始化之后,主设备接收模式还必须经过下面的初始化工作:把目标从地址写入寄存器 UCBxI2CSA 中,通过 UCSLA10 位选择从地址的大小,清除 UCTR 位来选择接收模式,置位 UCTXSTT 来产生一个起始条件。 USCI 模块首先检测总线是否空闲,然后产生一个起始条件,传送从地址。一旦从设备对地址作出 应答 UCTXSTT 位即刻清零。 当接收到从设备对地址的响应信号后,主设备将接收到从设备发送的第一个数据并发送响应信号, 同时置位 UCRXIFG 标志位。在接受从设备数据的过程中,UCTXSTP 和 UCTXSTT 不会被置位。若主 设备没有读取 UCBxRXBUF,那么主设备将占用总线去读最后一个数据位直到 UCBxRXBUF 被读取。 如果从设备没有响应发送的地址则未响应中断标志位 UCNACKIFG 置位。主设备必须发送一个 STOP 条件或者重新起始条件来做出响应。 置位 UCTXSTP 将会产生一个停止条件。置位操作后,主设备将在接收完从设备传送的数据后发 出的 NACK 后紧接着发送一个停止条件。或者在 USCI 模块正在等待读取 UCBxRXBUF 的情况下立即 产生。 如果主设备只想接收一个单字节数据,那么接收字节的过程中必须置位 UCTXSTP。在这种情况 下,可能通过查询 UCTXSTT 位才能决定什么时候清除 UCTXSTP 位: BIS.B #UCTXSTT, &UCBOCTL1 ;传输启动START条件 POLL_STT BIT.B #UCTXSTT, &UCBOCTL1 ;查询UCTXSTT位 JC POLL_STT ;指定条件清除 BIS.B #UCTXSTP, &UCB0CTL1 ;传输停止 STOP 条件. 置位 UCTXSTT 将会产生一个重复起始条件。在这种情况下,可以通过对 UCTR 的置位或清零来 将其配置为发送端或接收端,如果需要的话还可以把不同的地址写入 UCBxI2CSA。 图 17-13 给出了 I2C 主设备接收模式的操作图解。 注意:在不使用重复起始条件的情况下的连续主设备数据传输 当不使用重复起始条件的情况下进行多重主设备数据传输时,当前模块的数据传输必须在下 一个模块的初始化完成之前结束。这就必须保证在下一个 I2C 传输初始化完成之前清零发送停止条件 标志位 UCTXSTP 并设置 UCTXSTT=1。否则,将会影响当前的数据传输。 Page 13 of 24 MSP430 F5 系列超低功耗单片机模块原理 第 17 章 通用串行通讯接口 IIC 模式 微控网 www.Microcontrol.cn Page 14 of 24 MSP430 F5 系列超低功耗单片机模块原理 第 17 章 通用串行通讯接口 IIC 模式 微控网 www.Microcontrol.cn A 5xx:用 UCBxTXIFG 代替 UCTXIFG.用 UCBxRXIFG 代替 UCRXIFG. 图 17-13 IIC 主机接收模式 I2C 主设备 10 位寻址模式 如图 17-14 所示,当 UCSLA10=1 时选择 10 位寻址模式。 A 5xx:用 UCBxTXIFG 代替 UCTXIFG.用 UCBxRXIFG 代替 UCRXIFG. 图 17-14 IIC 模块主机 10 位地址模式 总线仲裁 当两个以上的主发送设备在总线上同时传送数据时,总线仲裁过程被启动。图 17-15 对两个设备 间的仲裁进程进行了举例说明。总线仲裁使用的数据就是相互竞争的设备发送到 SDA 上的数据。第一 个主发送设备产生的逻辑高电平将被和其竞争的主发送设备发送逻辑低电平覆盖。在总线仲裁进程中, 发送二进制数据最低的串行数据设备将获得总线的优先权。失去总线仲裁的主发送设备将转换成从接收 模式,并置位总线仲裁失去标志位 UCALIFG。如果两个以上的设备发送的第一个字节的内容相同,则 总线仲裁会在接下来传输的字节中发生。 Page 15 of 24 MSP430 F5 系列超低功耗单片机模块原理 第 17 章 通用串行通讯接口 IIC 模式 微控网 www.Microcontrol.cn 如果在总线仲裁进程中在 SDA 上有重复起始条件或者停止条件在传送,那么在总线仲裁进程中的 所有主发送设备都必须在帧格式中的同一个位置发送重复起始或者停止条件。 总线仲裁不会在下列几组间发生: 重复起始条件和数据位之间 停止条件和数据为之间 重复起始条件和停止条件之间 17.3.5 I2C 时钟发生与同步、 I2C 总线上的时钟 SCL 有主设备产生。当 USCI 处于主设备发送模式下时,BITCLK 由 USCI 位 时钟发生器提供,同时通过 UCSSELx 位选择时钟源。在从模式下位时钟发生器不启用而且和 UCSSELx 位无关。 寄存器UCBxBR1和UCBxBR0中UCBRx的16位数据是USCI时钟源BRCLK的分频因子。在单主模式下 可用的最大位时钟为fBRCLK/4。在多主设备模式下最大位时钟为fBRCLK/8。位时钟BITCLK的频率可 由下面公式得到: fBITCLK=fBRCLK/UCBRx SCL时钟信号产生的最小高低电平周期为: 当UCBRx为偶数时,tlow,MIN=tHIGH,MIN=(UCBRx/2)/ fBRCLK 当 UCBRx 为奇数时,tlow,MIN=tHIGH,MIN=(UCBRx-1/2)/ fBRCLK USCI 时钟源和 UCBRx 的比例因子设置必须经过选择以配合 I2C 总线协议规定的最小高低电平周 期间隔。 在总线仲裁进程中不同主设的时钟源之间必须进行同步处理。在 SCL 总线上第一个发送低电平周 期的主设备将会强制其他设备同时传送低电平。SCL 总线将会被低电平发送时间最长的设备一直拉低。 其他设备必须等待 SCL 释放后才能传输高电平周期。图 17-16 给出了一个时钟同步的示例。这个过程 将导致某些快速设备被低速设备拉低速度。 Page 16 of 24 MSP430 F5 系列超低功耗单片机模块原理 第 17 章 通用串行通讯接口 IIC 模式 微控网 www.Microcontrol.cn 时钟扩展 USCI 模块支持时钟扩展并可以和上述的操作模式中讲述的一样进行使用。 在下列几种情况下如果 USCI 模块已经释放了 SCL 时,UCSCLLOW 位可以用来检查是否有其他 的设备拉低 SCL : USCI 处于主模式下,一个连接的从设将 SCL 拉低时。 USCI 处于主模式下,在仲裁进程中其他主设备把 SCL 拉低。 如果 USCI 模块由于作为主发送设备等待数据写入 UCBxTXBUF 或者是作为接收设备等待从 UCBxRXBUF 中读取数据而把 SCL 总线拉低时,UCSCLLOW 位同样可用。 由于逻辑检查是根据把外部的 SCL 和内部的相比较之后产生的 SCL,所以在 SCL 产生上升沿的 一瞬间 UCSCLLOW 位就有可能被置位。 17.3.6 省电模式下 USCI 模块中 I2C 模式的使用 在使用低功耗模式下 USCI 模块提供了自动时钟激活。如果因为设备处于低功耗状态而导致 USCI 模块的时钟源关断时,如果需要,无论时钟源控制位设置如何,USCI 模块都可自动激活。然后直到 USCI 模块重新回到空闲状态时钟源都会保持激活状态。USCI 回复空闲状态后,控制时钟源将恢复其 控制位的设置状态。 在 I2C 从模式下由于时钟是由外部主设备提供的所以内部时钟源并不是必须的。在设备处于 LPM4 状态下并且所有内部时钟源被禁止时 USCI 可以工作在 I2C 从模式下。接收或者发送中断可以将 CPU 从任何一种低功耗状态下唤醒。 17.3.7 I2C 模式下的 USCI 中断 USCI 模块只有一个中断向量可供传输、接收和状态转换使用。USCI_Ax 和 USCI_Bx 不能使用同 一个中断向量。 每个中断标志都有自己的中断允许位。当一个中断被允许的同时 GIE 位置位时,一个中断请求将 会产生中断标志位。在带有 DMA 控制器的设备上 DMA 传输将由 UCTXIFG 和 UCRXIFG 标志位来控 制。 I2C 发送中断操作模式 发送设备置位UCTXIFG中断位来标示UCBxTXBUF已经准备好接受下一个字节,并在UCTXIE和 GIE同时置位时产生一个中断请求信号。当有数据写入UCBxTXBUF或者接收到NACK信号时UCTXIFG 会自动重置。当选择I2C模式并且UCSW RST=1时UCTXIFG置位。当一个PUC产生后或者UCSW RST=1 Page 17 of 24 MSP430 F5 系列超低功耗单片机模块原理 第 17 章 通用串行通讯接口 IIC 模式 微控网 www.Microcontrol.cn 时UCTXIE会被重置。 I2C 接收中断操作模式 当接收到一个字节并写入UCBxRXBUF时UCRXIFG标志位置位,并在UCRXIE和GIE同时置位时产 生一个中断请求信号。当一个PUC产生后或者UCSW RST=1时UCRXIFG和UCTXIE会被重置。当读取 UCBxRXBUF时UCRXIFG将自动重置。 I2C 状态改变中断操作模式 表 17-1 描述了 I2C 的状态转换中断标志。 表 17-1 I2C 状态转换中断标志 中断标志 UCALIFG UCNACKIFG UCSTTIFG UCSTPIFG 中断条件 仲裁丢失标志位。仲裁丢失可能发生在两个或两个以上的主发送设备同时发 送数据时,或者是当 USCI 模块工作在主模式但对于系统中其他主设作为从 设备来寻址时。当仲裁丢失时 UCALIFG 位置位。当 UCALIFG 位置位时 UCMST 位清零的同时 I2C 模块变成一个从设备。 未响应中断标志位。当接收不到预期返回的应答信号时此标志位置位。当接 收到一个 START 起始条件时此标志位自动清零。 起始条件检测到标志位。在从模式下当 I2C 模块检测到带有其本地地址的起 始条件的到来时 UCSTTIFG 位置位。UCSTTIFG 位只能在从模式下使用并且 在接收到停止条件时自动清零。 停止条件检测到标志位。在从模式下当 I2C 模块检测到停止条件的到来时 UCSTPIFG 位置位。UCSTPIFG 位只能在从模式下使用并且在接收到起始条 件时自动清零。 UCBxIV,中断向量发生器 USCI 中断标志具有优先级并归一来源于一个单一的中断向量。中断寄存器 UCBxIV 就是用来确定 哪个标志位请求中断。最高优先权允许中断在寄存器 UCBxIV 中产生一个可以评估或增加程序计数器 自动输入适当软件例程的编号。禁止中断并不影响 UCBxIV 的值。 任何的访问、读写,寄存器 UCBxIV 中正在等待的中断标志的最高优先权都会自动重置。如果有 其他标志位置位,那么在初始中断服务程序完成后将立即产生其他中断。 UCBxIV 的软件示例 下面的软件示例给出了 UCBxIV 的推荐使用例子。UCBxIV 值加到 PC 值上来实现自动跳转。此示 例用的是 USCI_B0。 USCI_I2C_ISR ADD &UCB0IV, PC RETI JMP ALIFG_ISR JMP NACKIFG_ISR JMP STTIFG_ISR JMP STPIFG_ISR JMP RXIFG_ISR TXIFG_ISR ... RETI ALIFG_ISR ... RETI NACKIFG_ISR ... ; Add offset to jump table ; Vector 0: No interrupt ; Vector 2: ALIFG ; Vector 4: NACKIFG ; Vector 6: STTIFG ; Vector 8: STPIFG ; Vector 10: RXIFG ; Vector 12 ; Task starts here ; Return ; Vector 2 ; Task starts here ; Return ; Vector 4 ; Task starts here Page 18 of 24 MSP430 F5 系列超低功耗单片机模块原理 第 17 章 通用串行通讯接口 IIC 模式 RETI STTIFG_ISR ... RETI STPIFG_ISR ... RETI RXIFG_ISR ... RETI ; Return ; Vector 6 ; Task starts here ; Return ; Vector 8 ; Task starts here ; Return ; Vector 10 ; Task starts here ; Return 微控网 www.Microcontrol.cn 17.4 USCI 寄存器:I2C 模式 在 I2C 模式下适用的 USCI 寄存器在表 17-2 中列出。可用的字型寄存器则在表 17-3 中列出。 表 17-2 USCI_Bx 寄存器 寄存器 简写 寄存器类型 地址偏移 初始状态 USCI_Bx 控制寄存器 0 UCBxCTL0 字节-读/写 +01H 01H 和 PUC USCI_Bx 控制寄存器 1 UCBxCTL1 字节-读/写 +00H 01H 和 PUC USCI_Bx 位率控制寄存器 0 UCBxBR0 字节-读/写 +06H 复位和 PUC USCI_Bx 位率控制寄存器 1 UCBxBR1 字节-读/写 +07H 复位和 PUC USCI_Bx 状态寄存器 UCBxSTAT 字节-读/写 +0AH 复位和 PUC 保留 读出为 0 字节-只读 +0BH 000H USCI_Bx 接收缓冲寄存器 UCBxRXBUF 字节-读/写 +0CH 复位和 PUC 保留 读出为 0 字节-只读 +0DH 000H USCI_Bx 传输缓冲寄存器 UCBxTXBUF 字节-读/写 +0EH 复位和 PUC 保留 读出为 0 字节-只读 +0FH 000H USCI_Bx IIC 本机地址寄存器 UCBxI2COA 字-读/写 +10H 复位和 PUC USCI_Bx IIC 从机地址寄存器 UCBxI2CSA 字-读/写 +12H 复位和 PUC USCI_Bx 中断使能寄存器 UCBxIE 字节-读/写 +1CH 复位和 PUC USCI_Bx 中断标志寄存器 UCBxIFG 字节-读/写 +1DH 002H 和 PUC USCI_Bx 中断向量寄存器 UCBxIV 字-读/写 +1EH 复位和 PUC 寄存器 USCI_Bx 控制字寄存器 0 USCI_Bx 位率字寄存器 USCI_Bx 中断控制寄存器 图 17-3 字使用 USCI_Bx 寄存器 简写 高字节寄存器 低字节寄存器 USCI_BxCTW0 USCI_BxCTL0 USCI_BxCTL1 USCI_BxBRW USCI_BxBR1 USCI_BxBR0 USCI_BxCTL USCI_BxIFG USCI_BxIE 地址偏移 +00H +06H +1CH UCBxCTL0, USCI_Bx 控制寄存器 0 UCA10 位7 本地地址模式选择 0 7位本地地址 1 10位本地地址寻址 2 Page 19 of 24 MSP430 F5 系列超低功耗单片机模块原理 第 17 章 通用串行通讯接口 IIC 模式 UCSLA10 UCMM Unused UCMST UCMODEx UCSYNC 微控网 www.Microcontrol.cn 位6 从设备寻址模式选择 0 7位从设备地址寻址 1 10位从设备地址寻址 位5 多主设环境选择 0 单主设备环境。其地址匹配单元禁用。 1 多主设备环境。 位4 未使用 位3 主设备模式选择。当在多主设环境中一个主设失去仲裁 (UCMM = 1)时UCMST 位自动清零并且模块作为从设备工作。 0 从模式 1 主模式 位2-1 USCI 模式。当UCSYNC = 1时,UCMODEx 选择同步模式。 00 3线 SPI 01 4线SPI (当STE=1时主从模式使能。) 10 4线SPI (当STE=0时主从模式使能。) 11 I2C 模式 位0 同步模式使能。 0 异步模式 1 同步模式 UCBxCTL1, USCI_Bx控制寄存器 1 UCSSELx 位7-6 USCI 时钟源选择。这些位选择BRCLK时钟源。 00 UCLKI 01 ACLK 10 SMCLK 11 SMCLK Unused 位5 未使用 UCTR 位4 发送/接收 0 接收 1 发送 UCTXNACK 位3 发送一个NACK。当一个NACK发送完时UCTXNACK 自动清零。 0 正常应答 1 产生NACK信号 UCTXSTP 位2 在主模式下发送停止条件。在从模式下忽略。在主接收模式下NACK信号在停 止条件之前。 Page 20 of 24 MSP430 F5 系列超低功耗单片机模块原理 第 17 章 通用串行通讯接口 IIC 模式 微控网 www.Microcontrol.cn UCTXSTT UCSWRST 0 无停止条件产生 1 产生停止条件 位1 在主模式下发送起始条件。在从模式下忽略。在主接收模式下NACK信号在重 复起始条件之前。当起始条件和地址信息发送后UCTXSTT自动清零。从模式 下忽略。 0 无起始条件产生 1 产生起始条件 位0 软件复位使能 0 禁止。USCI复位释放操作 1 使能。在复位状态中 USCI 保持逻辑电平。 UCBxBR0, USCI_Bx 波特率控制寄存器 0 UCBxBR1, USCI_Bx 波特率控制寄存器 1 UCBRx 位时钟分频器。UCxxBR0 + UCxxBR1 得到的16位数值形成分频因子的数值。 UCBxSTAT, USCI_Bx 状态寄存器 Unused 位7 未使用 UCSCLLOW 位6 SCL 低电平 0 SCL 没有被拉低 1 SCL 被拉低 UCGC 位5 接收到广播地址。当接收到起始条件时UCGC自动清零。 0 未接收到广播地址。 1 接收到广播地址。 UCBBUSY 位4 总线忙 0 总线空闲 1 总线忙 Unused 位3-0 未使用 UCBxRXBUF, USCI_Bx 接收缓冲区寄存器 Page 21 of 24 MSP430 F5 系列超低功耗单片机模块原理 第 17 章 通用串行通讯接口 IIC 模式 微控网 www.Microcontrol.cn UCRXBUFx 位7-0 接收数据缓冲区用户可以访问,并接收来自加收移位寄存器发送的最后接收到 的字节。读 UCBxRXBUF 复位UCRXIFG. UCBxTXBUF, USCI_Bx 发送缓冲区寄存器 UCTXBUFx 位 7-0 发送数据缓冲区用户可访问,并将数据保持到移入发送移位寄存器中传送。 对发送数据缓冲区进行写操作可清除 UCTXIFG.位。 UCBxI2COA, USCIBx I 2C 本地地址寄存器 UCGCEN 位 15 广播响应使能 0 不响应 1 响应 I2COAx 位 9-0 I2C 本地地址。I2COAx 包含了 USCI_Bx 的 I2C 控制器中的本地地址。该地 址是正确合理的。在 7 位寻址模式下,第 6 位是最高位,第 7-9 位可以忽略。在 10 位寻址模式下,第 9 位是最高位。 UCBxI2CSA, USCI_Bx I2C 从地址寄存器 I2CSAx 位 9-0 I2C 从地址。I2CSAx 包含了 USCI_Bx 寻址的外扩设备的从地址。只在主 设备模式下有效。该地址是正确合理的。在 7 位寻址模式下,第 6 位是最高位,第 7-9 位可以忽略。 在 10 位寻址模式下,第 9 位是最高位。 UCBxIE, USCI_Bx I2C 中断使能寄存器 Page 22 of 24 MSP430 F5 系列超低功耗单片机模块原理 第 17 章 通用串行通讯接口 IIC 模式 Reserved 位 7-6 保留位 UCNACKIE 位 5 UCALIE 位4 未响应中断使能 0 中断禁止 1 中断使能 仲裁丢失中断使能 0 中断禁止 1 中断使能 UCSTPIE 位 3 停止条件中断使能 0 中断禁止 1 中断使能 UCSTTIE 位2 起始条件中断使能 0 中断禁止 1 中断使能 UCTXIE 位1 发送中断使能 0 中断禁止 1 中断使能 UCRXIE 位0 接收中断使能 0 中断禁止 1 中断使能 UCBxIFG, USCI_Bx I C 中断标志寄存器 微控网 www.Microcontrol.cn Reserved 位 7-6 保留位 UCNACKIFG 位 5 未响应中断标志位。当产生起始条件时 UCNACKIFG 自动清零。 0 无中断请求 1 有中断请求 UCALIFG 位4 仲裁丢失中断标志位 0 无中断请求 1 有中断请求 UCSTPIFG 位3 停止条件中断标志位。当接收到一个起始条件时 UCSTPIFG 自动清零。 0 无中断请求 1 有中断请求 UCSTTIFG 位2 起始条件中断标志位。接收到停止条件时 UCSTTIFG 自动清零。 0 无中断请求 1 有中断请求 Page 23 of 24 MSP430 F5 系列超低功耗单片机模块原理 第 17 章 通用串行通讯接口 IIC 模式 UCTXIFG UCRXIFG 微控网 www.Microcontrol.cn 位 1 USCI 发送中断标志位。当 UCBxTXBUF 为空时置位。 0 无中断请求 1 有中断请求 位0 USCI 接收中断标志位。当 UCBxRXBUF 接收完一个完整字节后置位。 0 无中断请求 1 有中断请求 UCBxIV, USCI_Bx 中断向量寄存器 UCIVx 位 15-0 USCI 中断向量值 UCBxIV 内容 中断来源 中断标志 000h 无中断请求 – 002h 004h 006h 008h 仲裁丢失 未响应 接收到起始条件 接收到停止条件 UCALIFG UCNACKIFG UCSTTIFG UCSTPIFG 00Ah 接收到数据 UCRXIFG 00Ch 发送缓冲区为空 UCTXIFG 中断优先级 最高 最低 Page 24 of 24 MSP430 F5 系列超低功耗单片机模块原理 第 17 章 通用串行通讯接口 IIC 模式

Top_arrow
回到顶部
EEWORLD下载中心所有资源均来自网友分享,如有侵权,请发送举报邮件到客服邮箱bbs_service@eeworld.com.cn 或通过站内短信息或QQ:273568022联系管理员 高进,我们会尽快处理。