IC学习笔记.docVIP

  1. 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  4. 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  5. 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  6. 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  7. 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
IC学习笔记.doc

1 概述 I2C总线以2根信号线(数据线SDA,时钟线SCL)实现双向同步数据传,并且可以连接到总线上的任何一个器件作为一个发送器或接收器。执行数据传输时可以当作主机或从机。 发送器:传送中发送数据到总线的器件 接收器:传送中从总线接收数据的器件 主机:用来初始化发送、产生时钟信号和终止发送的器件,可是发送器或接收器 从机:被主机寻址的器件,也可以作为发送器或接收器 LPC1700有三个接口:I2C0/1/2。I2C0为标准I2C总线接口(开漏引脚),该接口支持I2C规范中所叙述的功能,运行速度高达1MHz。支持多主机操作,并允许挂接在I2C总线上运行器件在退出I2C总线功能时掉电;而I2C1和I2C2使用标准I/O引脚,专用于单主机I2C总线,不支持挂接在I2C总线上的运行器件在退出I2C总线功能时掉电,也不支持多主机I2C操作。 三个接口在标准模式下,总线数据传输的速度为0到100Kbit/s;高速模式下的为0到400Kbit/s;总线速率越高,总线上拉电阻要越小。注意的是只有I2C0总线支持快速plus模式,速度可达1Mbit/s,可通过设置CPADCFG寄存器里的SDADRV0和SCLDRV0来实现。 2 总线特性: 标准的I2C总线接口; 可配置为主机、从机或主/从机; 可编程时钟能够实现通用速率控制; 主从之间双向数据传输; 多主机总线; 通信速率高达1MHZ(快速模式); 支持监控模式; 只能基于版内通信; 3 传输协议 (1)寻址字节 主机产生起始信号后,发送的第一个字节为寻址字节。前7位为从机地址,最低位决定报文方向:0表示主机写信息到从机,1表示主机读从机中的信息。 (2)传输格式 主机产生起始信号后,发送一个寻址字节,收到应答后紧跟着的就是数据传输,数据传输一般由主机产生的停止位终止。如果主机仍希望在总线上通讯,它可以产生重复起始信号和寻址另一个从机,而不是首先产生一个停止信号。 4 基本配置 利用以下寄存器来配置I2C0/1/2接口: (1)电源:在寄存器PCONP中置位PCI2C0/1/2; (2)时钟:在寄存器PCLK_SEL0中选择PCLK_I2C0;在寄存器PCLK_SEL1中选择PCLK_I2C1/2 (3)引脚:通过寄存器PINSEL使能I2C0引脚和选择I2C1/2引脚。通过寄存器PINMODE来配置I2C1/2引脚模式,下表即为三个接口对应的引脚位。 (4)使用相关的中断置位使能寄存器在NVIC中使能中断。 (5)初始化 5 寄存器描述 ★I2C控制置位寄存器I2CONSET 表1 I2C控制置位寄存器 ★I2C控制清零寄存器I2CONCLR 如果给哪位置1,就相当于对I2CONSET寄存器的对应为清零。在初始化中这两个寄存器要配合使用。 ★从地址寄存器,I2ADDR0~I2ADDR3 当器件用作从发送器或接收器时,这类寄存器可装入I2C模块即将响应的7位从地址(7个有效位)。LSB(GC)用来使能通用地址(0x00)的识别。 表2 I2C从地址寄存器 ★I2C状态寄存器I2STAT 每个I2C状态控制器反应对应I2C接口的情况。I2C状态寄存器为只读寄存器。 表2 I2C状态寄存器 共有26种可能存在的状态代码。当代码为0xF8时,无可用的相关信息,SI位不会置位。所有其他25种状态代码都对应一个已定义的I2C状态。当进入其中一种状态时,SI位将置位。 ★I2C数据寄存器 有八位即一个字节。用来存储数据。 ★I2C监控模式寄存器 该寄存器控制监控模式的使能,它可以使I2C模块监控I2C总线的通信量,并且不需要实际参与通信或干扰I2C总线。 表3 I2C监控模式控制寄存器 ★I2C数据缓冲器寄存器 在监控模式中,如果ENA_SCL位没置位,I2C模块就不能延长时钟(使总线迟延)。也就是说,处理器读取总线数据的时间有限。如果处理器以正常速度读取I2DAT移位寄存器,那么在新数据更新接收数据之前,它可能只有1位时间来响应中断。 为了给予处理器更多的响应时间,将增加一个新的8位只读寄存器DATA_BUFFER。每接收到9个位(8个数据位+应答位或非应答位)后,寄存器I2DAT的最高8位会自动发送到DATA_BUFFER。这表示处理器会有9个位的传输时间来响应中断,并且在更新接收数据之前读取数据。 I2C SCL高电平占空比寄存器 表4 I2C SCL高电平占空比寄存器 I2C SCL低电平占空比寄存器 表5 I2C SCL低电平占空比寄存器 选择合适的I2C总线速率和占空比 软件必须通过对I2SCLH和I2SCLL寄存器进行设置来选择合适的总线速率和占空比。位频率由下面的公式得出(PCLK_I2

文档评论(0)

000 + 关注
实名认证
文档贡献者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档