标题: 关于24c02 eeprom I2c的时序图的问题 [打印本页]

作者: 134849694164151    时间: 2018-5-18 01:04
标题: 关于24c02 eeprom I2c的时序图的问题
麻烦大家帮我看一下,我需要你们。就是关于I2c的时序图的问题,发送字节的时候,不管发送的事0还是1不是都应该有电平的高低变化吗?那么你看看我下边的这个图,for循环里边,这个,放发送的dat第一个位的时候,假设之前SDA这条线上的电平就是低的,那么发这位的时候,还是低的呀!根本电平没有变化,想问问这样行吗?这是怎么回事

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

Screenshot_2018-05-18-00-51-43-39.png

作者: HC6800-ES-V2.0    时间: 2018-5-18 07:25
你可能记错。
I2C只要求在SCL读取期间,SDA一定要保证电平稳定,没有说要变化。
例如:发送字节0,当SCL到高电平读数据时,只要你的SDA一直都是低电平,持续5us以上就可以,并没有说电平变化。
我们一般做法是,先让SDA置成高或低电平,再让SCL从低电平跳到高电平,开始读数据,就可以了。
你的程序就是这样的嘛。没毛病!
作者: 林曦    时间: 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数据发送出去。
作者: 134849694164151    时间: 2018-5-18 08:49
各位麻烦帮我看看吧
作者: 134849694164151    时间: 2018-5-18 09:44
HC6800-ES-V2.0 发表于 2018-5-18 07:25
你可能记错。
I2C只要求在SCL读取期间,SDA一定要保证电平稳定,没有说要变化。
例如:发送字节0,当SCL ...

好的,我明白了,感谢你,你真好
作者: 134849694164151    时间: 2018-5-18 09:46
林曦 发表于 2018-5-18 08:40
I2C发送数据时,只有在SCL低电平的时候,SDA电平改变,发送一位数据。当SDA第一次发送0时,第二次依旧发送0 ...

首先感谢你,然后我还有一个问题想问,那个dat的数据到底是怎么发送出去的呀?就是怎么移位之后,就能发出去一个字节呢?不知道听没听懂我说的
作者: 134849694164151    时间: 2018-5-18 09:47
HC6800-ES-V2.0 发表于 2018-5-18 07:25
你可能记错。
I2C只要求在SCL读取期间,SDA一定要保证电平稳定,没有说要变化。
例如:发送字节0,当SCL ...

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




欢迎光临 (http://www.51hei.com/bbs/) Powered by Discuz! X3.1