完善资料让更多小伙伴认识你,还能领取20积分哦, 立即完善>
|
|
相关推荐
1个回答
|
|
IIC简述
I2C总线是PHLIPS公司推出的一种串行总线,它只有两根双向信号线。一根是数据线SDA(serial data I/O),另一根是时钟线SCL(serial clock)。 I2C总线通过上拉电子接正电源。当总线空闲时,两根线均为高电平。当任一器件输出低电平,都将使总线拉低,即各器件的SDA和SCL都是线“与”关系。 开发板上的I2C总线以及总线上的设备AT24C02(也就是EEPROM,总共有255个单元); I2C总线传输协议 1、数据位有效性规定 SCL高电平期间,SDA上数据保持稳定; SCL低电平期间,SDA状态才允许变化 2、Start和Stop信号 SCL高电平期间,SDA 由高变低 表起始信号 SDA高电平期间,SDA由低变高 表终止信号 3、传送和应答 每个字节必须保证8位长度。先传送MSB(most signficant bit最高有效位),每一个被传送字节后面都必须跟随一位应答位(共9位)。 4、应答位的作用 主机发送数据时,每发送一字节数据,都需要读取从机应答位,当从机空闲可接收该字节数据时,从机发出应答(第9位“0”),当从机忙于其他工作时,从机发出非应答(第9位“1”),主机发终止信号结束数据传送; 主机接收数据时,收到最后一个数据字节后,必须向从机发一个结束传送信号,这个信号是由对从机的“非应答”实现,之后,从机释放SDA线,允许从机产生终止信号。 5、IIC写数据流程 起始信号 从机地址(7位加读写) 《从机应答信号》 期间的哪一个地址开始(比如EEPROM有255个单元) 《从机应答信号》 数据(高位开始发送) 《从机应答信号》 终止信号 6、IIC读数据流程 7、软件模拟IIC通信时序 /硬件模式和软件模式区别 硬件模拟时钟是系统晶振分频产生,通过硬件中断实现,一般有内置函数;软件模拟编程模拟时钟线和数据线;硬件模式更高效稳定/ I2C起始信号程序 void I2C_Start() { SCL = 1; _nop_(); //1.08506us SDA = 1; delay_5us(); SDA = 0; delay_5us(); } IIC终止信号程序 void I2C_Stop() { SDA = 0; _nop_(); SCL = 1; delay_5us(); SDA = 1; delay_5us(); } 主机检测从机应答 bit Test_ACK() { SCL = 1; //时钟总线为高电平期间读取应答信号 delay_5us(); if(SDA) { SCL = 0; I2C_Stop(); return(0); } else { SCL = 0; return(1); } } IIC主机发送应答 void Master_ACK(bit i) { SCL = 0; _nop_(); if (i) { SDA = 0; } else { SDA = 1; } _nop_(); SCL = 1;//数据保持稳定 _nop_(); SCL = 0; _nop_(); SDA = 1; _nop_(); } IIC时序图 使用清翔老师视频课上讲的逻辑分析仪 波形为12课后作业,抓取波形进行分析 分析IIC时序图 首先发送了起始信号,保持最少8us; 接着是从机地址,160(0xa0);ACK 接着是从机单位地址该处为255 之后主机发送应答 再一次发送开始信号,主机发送从机地址+1; 读取信息的时候; uchar I2C_read_byte() //读一个字节 { uchar i, dat; SCL = 0 ; _nop_(); SDA = 1; _nop_(); for(i = 0 ; i < 8 ; i++) { SCL = 1; _nop_(); dat <<= 1; if (SDA) { dat |= 0x01; } _nop_(); SCL = 0; _nop_(); } return(dat); } 根据SDA线高低的变化,可以看得到读出的数据; 最后主机应答; I2C终止信号; |
|
|
|
只有小组成员才能发言,加入小组>>
2514 浏览 0 评论
1092浏览 2评论
703浏览 1评论
456浏览 0评论
200浏览 0评论
341浏览 0评论
小黑屋| 手机版| Archiver| 电子发烧友 ( 湘ICP备2023018690号 )
GMT+8, 2024-11-24 18:15 , Processed in 1.173803 second(s), Total 81, Slave 62 queries .
Powered by 电子发烧友网
© 2015 bbs.elecfans.com
关注我们的微信
下载发烧友APP
电子发烧友观察
版权所有 © 湖南华秋数字科技有限公司
电子发烧友 (电路图) 湘公网安备 43011202000918 号 电信与信息服务业务经营许可证:合字B2-20210191 工商网监 湘ICP备2023018690号