
I2C
Phenixyf
这个作者很懒,什么都没留下…
展开
-
I2C总线之(二)---时序
一、协议 1.空闲状态 I2C总线总线的SDA和SCL两条信号线同时处于高电平时,规定为总线的空闲状态。此时各个器件的输出级场效应管均处在截止状态,即释放总线,由两条信号线各自的上拉电阻把电平拉高。 2.起始位与停止位的定义: 起始信号:当SCL为高期间,SDA由高到低的跳变;启动信号是一种电平跳变时序信号,而不是一个电平信号。停止信号:当SCL为高期间,SDA由低转载 2015-08-10 10:38:20 · 1008 阅读 · 0 评论 -
I2C总线之(一)---概述
概述:I²C 是Inter-Integrated Circuit的缩写,发音为"eye-squared cee" or "eye-two-cee" , 它是一种两线接口。I²C 只是用两条双向的线,一条 Serial Data Line (SDA) ,另一条Serial Clock (SCL)。SCL:上升沿将数据输入到每个EEPROM器件中;下降沿驱动EEPROM器件输出数据。(边沿触发)SDA转载 2015-08-10 10:39:37 · 702 阅读 · 0 评论 -
I2C总线之(三)---以C语言理解IIC
为了加深对I2C总线的理解,用C语言模拟IIC总线,边看源代码边读波形:如下图所示的写操作的时序图: 读时序的理解同理。对于时序不理解的朋友请参考“I2C总线之(二)---时序”完整的程序如下: #include#define uchar unsigned char#define uint unsigned int#define write_ADD 0转载 2015-08-10 10:41:17 · 2092 阅读 · 0 评论 -
I2C读写时序
1. I2C写时序图: 注意:最后一个byte后,结束标志在第十个CLK上升沿之后: 2. I2C读时序图: 注意:restart信号格式;读操作结束前最后一组clk的最后一个上升沿,主机应发送NACK(之前的读clk后最后一个bit发送ACK),然后再发送结束标志。原创 2015-09-10 12:38:08 · 10420 阅读 · 0 评论 -
I2C 不良
I2C在发送时,出现波形变锯齿状的原因:1. I2C timing 不对,结束标志、restart标志、时钟个数错误等;2. 上拉power的驱动能力不够。原创 2015-09-10 12:45:10 · 2035 阅读 · 0 评论 -
用F340 GPIO做I2C
在和Qinheng开发小尺寸点灯治具中,F340和FPGA采用I2C通信,其中F340作为I2C的主机,I2C端口用自己的GPIO编写,总结遇到的问题及注意事项: 1. F340端口及上拉电阻设置: 要配成SCL/SDA的端口必须设置成opendrain结构,本例中设置如下: sbitSCL = P0^0;sbit SDA = P0^2;原创 2015-09-22 12:49:28 · 1062 阅读 · 0 评论 -
I2C通信 读写数据过程
在通信之初,主从机必须根据自己的要求约定好通信规则:command的定义和位置、address的位数和位置。以读写从机寄存器数据为例:假设从机寄存器地址为8位、从机寄存器也位8位(被读取数据为8位);约定读command为0x01,写command位0x02;约定主机发起通信后,第一个slave address字节收到ack后,紧跟的一个字节为command,再下面一个字节原创 2014-01-04 20:03:29 · 46786 阅读 · 4 评论 -
i2c写操作收到nack后重发------24C02B/24C16N i2c写实例
24C02B/24C16N在写操作过程中,以8个字节为一组:一次最多只能写8个字节!!!继续写需要重新发送slave address和新的组地址,在重新发送前,要重新发i2c起始信号;每写完一组之后,需要等待1ms左右让eeporm完成内部写操作,然后才能开始下一次写操作。写过程如下:原创 2016-09-29 16:46:41 · 1726 阅读 · 0 评论 -
i2c 设计建议
1. 写操作过程中,从机给主机返回nack后,主机重新发送数据,重新发送过程中,是否需要重新发送一遍起始信号和slave address? 可参考http://blog.youkuaiyun.com/phenixyf/article/details/52703055,该项目中需要重新发送。原创 2016-09-29 16:56:50 · 674 阅读 · 0 评论