- 1、本文档共17页,可阅读全部内容。
- 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
1.I2C协议???2条双向串行线,一条数据线SDA,一条时钟线SCL。?? SDA传输数据是大端传输,每次传输8bit,即一字节。?? 支持多主控(multimastering),任何时间点只能有一个主控。?? 总线上每个设备都有自己的一个addr,共7个bit,广播地址全0.?? 系统中可能有多个同种芯片,为此addr分为固定部分和可编程部份,细节视芯片而定,看datasheet。1.1 I2C位传输?? 数据传输:SCL为高电平时,SDA线若保持稳定,那么SDA上是在传输数据bit;? ?若SDA发生跳变,则用来表示一个会话的开始或结束(后面讲)?? 数据改变:SCL为低电平时,SDA线才能改变传输的bit?1.2 I2C开始和结束信号? ?开始信号:SCL为高电平时,SDA由高电平向低电平跳变,开始传送数据。?? 结束信号:SCL为高电平时,SDA由低电平向高电平跳变,结束传送数据。???1.3 I2C应答信号?? Master每发送完8bit数据后等待Slave的ACK。?? 即在第9个clock,若从IC发ACK,SDA会被拉低。?? 若没有ACK,SDA会被置高,这会引起Master发生RESTART或STOP流程,如下所示:?1.4 I2C写流程写寄存器的标准流程为:1.??? Master发起START2.??? Master发送I2C addr(7bit)和w操作0(1bit),等待ACK3.??? Slave发送ACK4.??? Master发送regaddr(8bit),等待ACK5.??? Slave发送ACK6.??? Master发送data(8bit),即要写入寄存器中的数据,等待ACK7.??? Slave发送ACK8.??? 第6步和第7步可以重复多次,即顺序写多个寄存器9.??? Master发起STOP写一个寄存器?写多个寄存器??1.5 I2C读流程读寄存器的标准流程为:1.??? Master发送I2C addr(7bit)和w操作1(1bit),等待ACK2.??? Slave发送ACK3.??? Master发送regaddr(8bit),等待ACK4.??? Slave发送ACK5.??? Master发起START6.??? Master发送I2C addr(7bit)和r操作1(1bit),等待ACK7.??? Slave发送ACK8.??? Slave发送data(8bit),即寄存器里的值9.??? Master发送ACK10.??? 第8步和第9步可以重复多次,即顺序读多个寄存器读一个寄存器?读多个寄存器?2. PowerPC的I2C实现Mpc8560的CCSR中控制I2C的寄存器共有6个。?2.1 I2CADR 地址寄存器CPU也可以是I2C的Slave,CPU的I2C地址有 I2CADR指定?2.2 I2CFDR 频率设置寄存器?The serial bit clock frequency of SCL is equal to the CCB clock divided by the divider.用来设置I2C总线频率2.3 I2CCR 控制寄存器?MEN: Module Enable.??? 置1时,I2C模块使能MIEN:Module Interrupt Enable. 置1时,I2C中断使能。MSTA:Master/slave mode. 1 Master mode,0 Slave mode.??? ??? 当1-0时,CPU发起STOP信号??? ??? 当0-1时,CPU发起START信号MTX:Transmit/receive mode select.0 Receive mode,1 Transmit modeTXAK:Transfer acknowledge. 置1时,CPU在9th clock发送ACK拉低SDARSTA:Repeat START. 置1时,CPU发送REPEAT STARTBCST:置1,CPU接收广播信息(信息的slave addr为7个0)2.4 I2CSR 状态寄存器?MCF:0? Byte transfer is in process???? 1? Byte transfer is completedMAAS:当CPU作为Slave时,若I2CDR与会话中Slaveaddr匹配,此bit被置1MBB:0 I2C bus idle?????? 1 I2C bus busyMAL:若置1,表示仲裁失败BCSTM:若置1,表示接收到广播信息SRW:When MAAS is set, SRW indicates the value of the R/W command bit of the calling address, w
文档评论(0)