完善资料让更多小伙伴认识你,还能领取20积分哦, 立即完善>
电子发烧友论坛|
AT24C02的通信协议是I2C,下面对I2C协议做个简单介绍。
I2C协议由两根总线进行数据传输,一条是时钟线(SCL),用于传输时钟脉冲信号,一条是数据线(SDA),用于传输数据。话不多说,下面来看看一串数据是怎么传输的吧 此处贴出时序图 让我们分析一下不同的信号代表的是什么指令。 Start SCL为高电平时SAD由高电平转为低电平,则为开始。 void Start() { SDA=1; delay10us(); SCL=1; delay10us(); SDA=0; delay10us(); SCL=0; delay10us(); } End SCL为高电平时,SAD由低电平转为高电平时,则为结束。 void End() { SDA=0; delay10us(); SCL=1; delay10us(); SDA=1; delay10us(); } 如何传输一位: SDA保持不变,SCL经过一个上升沿,一段时间高电平,一个下降沿后,便读取一位数据。 例如想要传输1,则需要SDA先转为高电平,SCL经过一个上升沿,一段时间高电平,一个下降沿后,数据1便传输过去了。 应答的理解: I2C协议规定传输完8位数据后,接收数据方必须给出应答。 即接收数据方在接收完完整的8位数据后,会向发出数据方传输1位应答信号。传输为0则为应答,传输为1则为非应答。 发出数据方在接收到应答后再决定是否继续传输数据。 如何产生应答: 在发送完8位数据后,主机需保证SDA为高电平,再将SCL由低电平转为高电平,等待应答。 发送一字节数据: uchar WriteByte(uchar info) { uchar a,b; for(a=0;a<8;a++) { SDA=info>>7; info<<=1; delay10us(); SCL=1; delay10us(); SCL=0; delay10us(); }//此处为发送完一字节信息 SDA=1; delay10us(); SCL=1; while(SDA) { b++; if(b>200) { SCL=0; delay10us(); return 0; } }//此处为等待应答,并将应答与否作为参数返回 SCL=0; delay10us(); return 1; } 读取一字节数据: uchar Read() { uchar out=0,i; SDA=1; delay10us(); for(i=0;i<8;i++) { SCL=1; delay10us(); out<<=1; out|=SDA; delay10us(); SCL=0; delay10us(); } SDA=0; delay10us(); return out; } 从机地址的理解: I2C协议支持多设备,通过对从机地址的访问,对不同设备进行通信。 D7~D1 位组成从机的地址。D0位是数据传送方向位,为“ 0”时表示主机向从机写数据,为“1”时表示主机由从机读数据。 AT24C02的地址D7~D4位默认为1010。 数据传输格式: 红色为主机行为。 主机向从机写数据: S–>从机地址+0–>A–>date–>A–>date–>~A–>E 主机向从机读数据: S–>从机地址+1–>A–>date–>A–>date–>~A–>E 其中S是Start,E是End,A是应答 AT24C02 AT24C02的读写规则: AT24C02芯片规定数据的传输为地址+数据,即规定从机地址后的下一位为数据地址。 对数据进行操作之前必须写入数据地址。 主机向从机写数据: S–>从机地址+0–>A–>数据地址–>A–>date–>~A–>E 主机向从机读数据: S–>从机地址+0–>A–>数据地址–>A–>S–>从机地址+1–>A–>date–>~A–>E 写入数据: //从指定地址开始写入数据 uchar WriteDate(uchar add,uchar date) { uchar k=0; Start(); WriteByte(0xa0); WriteByte(add); WriteByte(date); End(); return k; } 读入数据: uchar ReadDate(uchar add,uchar date) { uchar out; Start(); WriteByte(0xa0); WriteByte(add); Start(); WriteByte(0xa1); out=Read(); End(); return out; } |
|
|
|
|
只有小组成员才能发言,加入小组>>
1955 浏览 0 评论
imx6ull 和 lan8742 工作起来不正常, ping 老是丢包
4778 浏览 0 评论
4256 浏览 9 评论
3845 浏览 16 评论
4422 浏览 1 评论
4255浏览 3评论
2413浏览 0评论
3431浏览 0评论
1194浏览 0评论
2883浏览 0评论
/9
小黑屋| 手机版| Archiver| 电子发烧友 ( 湘ICP备2023018690号 )
GMT+8, 2025-12-12 04:10 , Processed in 0.684214 second(s), Total 76, Slave 56 queries .
Powered by 电子发烧友网
© 2015 bbs.elecfans.com
关注我们的微信
下载发烧友APP
电子发烧友观察
版权所有 © 湖南华秋数字科技有限公司
电子发烧友 (电路图) 湘公网安备 43011202000918 号 电信与信息服务业务经营许可证:合字B2-20210191

淘帖
5500