找回密码
 立即注册

QQ登录

只需一步,快速开始

搜索
查看: 3238|回复: 6
打印 上一主题 下一主题
收起左侧

关于24c02 eeprom I2c的时序图的问题

[复制链接]
跳转到指定楼层
楼主
ID:329253 发表于 2018-5-18 01:04 来自手机 | 只看该作者 |只看大图 回帖奖励 |倒序浏览 |阅读模式
10黑币
麻烦大家帮我看一下,我需要你们。就是关于I2c的时序图的问题,发送字节的时候,不管发送的事0还是1不是都应该有电平的高低变化吗?那么你看看我下边的这个图,for循环里边,这个,放发送的dat第一个位的时候,假设之前SDA这条线上的电平就是低的,那么发这位的时候,还是低的呀!根本电平没有变化,想问问这样行吗?这是怎么回事

Screenshot_2018-05-18-00-51-43-39.png (152.24 KB, 下载次数: 40)

Screenshot_2018-05-18-00-51-43-39.png
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 分享淘帖 顶 踩
回复

使用道具 举报

沙发
ID:164602 发表于 2018-5-18 07:25 | 只看该作者
你可能记错。
I2C只要求在SCL读取期间,SDA一定要保证电平稳定,没有说要变化。
例如:发送字节0,当SCL到高电平读数据时,只要你的SDA一直都是低电平,持续5us以上就可以,并没有说电平变化。
我们一般做法是,先让SDA置成高或低电平,再让SCL从低电平跳到高电平,开始读数据,就可以了。
你的程序就是这样的嘛。没毛病!
回复

使用道具 举报

板凳
ID:305599 发表于 2018-5-18 08:40 | 只看该作者
I2C发送数据时,只有在SCL低电平的时候,SDA电平改变,发送一位数据。当SDA第一次发送0时,第二次依旧发送0,SDA电平是不会改变的。
如图所示,假如dat为1001 1100,dat右移7位,是将第一位1发送出去,然后第二位0左移1位,dat为 0011 1000,for第二次循环发送第一位0,依次类推,把dat数据发送出去。
回复

使用道具 举报

地板
ID:329253 发表于 2018-5-18 08:49 来自手机 | 只看该作者
各位麻烦帮我看看吧
回复

使用道具 举报

5#
ID:329253 发表于 2018-5-18 09:44 来自手机 | 只看该作者
HC6800-ES-V2.0 发表于 2018-5-18 07:25
你可能记错。
I2C只要求在SCL读取期间,SDA一定要保证电平稳定,没有说要变化。
例如:发送字节0,当SCL ...

好的,我明白了,感谢你,你真好
回复

使用道具 举报

6#
ID:329253 发表于 2018-5-18 09:46 来自手机 | 只看该作者
林曦 发表于 2018-5-18 08:40
I2C发送数据时,只有在SCL低电平的时候,SDA电平改变,发送一位数据。当SDA第一次发送0时,第二次依旧发送0 ...

首先感谢你,然后我还有一个问题想问,那个dat的数据到底是怎么发送出去的呀?就是怎么移位之后,就能发出去一个字节呢?不知道听没听懂我说的
回复

使用道具 举报

7#
ID:329253 发表于 2018-5-18 09:47 来自手机 | 只看该作者
HC6800-ES-V2.0 发表于 2018-5-18 07:25
你可能记错。
I2C只要求在SCL读取期间,SDA一定要保证电平稳定,没有说要变化。
例如:发送字节0,当SCL ...

还有一事相求,就是这个dat的那个数据是怎么一位一位的传送过去的呀?有时候高位传送在前,有时低位在前,我知道那个移位操作,但是不理解数据怎么从单片机发出去的原理
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

手机版|小黑屋|51黑电子论坛 |51黑电子论坛6群 QQ 管理员QQ:125739409;技术交流QQ群281945664

Powered by 单片机教程网

快速回复 返回顶部 返回列表