I2C总线的写操作的流程
发布时间:2008/11/22 0:00:00 访问次数:731
在i2c总线上传输操作是以8位+ack/noack共计9位为单位进行的。发送是从位7(msb)开始进行的,虽然一般的串口(pc机的com端口等)是由位0(lsb)开始发送的,但i2c总线是相反的,这一点需要注意。接收8位数据或者指令的接收方在下一个时钟输出ack/noack位,如果是低电平则表示ack;如果是高电平则表示noack。
写操作包括字节写及页面写两种。字节写是只置换特定的1个地址;而页面写可置换汇总了16字节界限内的连续的地址范围(页)。各种写操作的流程图如图所示。
图 i2c存储器的字节写与页面写
1. 字节写
这是指定任意的地址(8位)写人数据的方式。
起始字节的devsel按照前面描述的起始数据的格式,位7~4是“1010”的固定模式,位操作(“1”)还是写操作(“0”)。
如果存储器处于写保护状态(wc引脚为高电平等),则在接收地址之前一直返回ack信号,对于之后传输的数据,则返回no-ack信号。
数据发送完毕后,如果检测出来自主机的结束条件,则eep-rom内部开始进行写入操作。根据数据手册可查出完成写入操作所需要的时间。+5v的产品需要5ms,其他的产品大约需要10ms左右的时间。
eeprom内部的替换周期在进行过程中,即使发送下一个指令也将返回noack信号。因此,利用该noack信号就可判断内部的操作是否完成。
2. 页面写
页面写操作本身与字节写是相同的。由于在存取后地址自动进位,因而可以按序发送1页(16字节)以内的数据。实际上向存储器单元的写人操作,与字节写相同,都是在检测出结束条件后进行的,所以需要等待,直到操作结束,然后再进行下一个操作。
欢迎转载,信息来源维库电子市场网(www.dzsc.com)
在i2c总线上传输操作是以8位+ack/noack共计9位为单位进行的。发送是从位7(msb)开始进行的,虽然一般的串口(pc机的com端口等)是由位0(lsb)开始发送的,但i2c总线是相反的,这一点需要注意。接收8位数据或者指令的接收方在下一个时钟输出ack/noack位,如果是低电平则表示ack;如果是高电平则表示noack。
写操作包括字节写及页面写两种。字节写是只置换特定的1个地址;而页面写可置换汇总了16字节界限内的连续的地址范围(页)。各种写操作的流程图如图所示。
图 i2c存储器的字节写与页面写
1. 字节写
这是指定任意的地址(8位)写人数据的方式。
起始字节的devsel按照前面描述的起始数据的格式,位7~4是“1010”的固定模式,位操作(“1”)还是写操作(“0”)。
如果存储器处于写保护状态(wc引脚为高电平等),则在接收地址之前一直返回ack信号,对于之后传输的数据,则返回no-ack信号。
数据发送完毕后,如果检测出来自主机的结束条件,则eep-rom内部开始进行写入操作。根据数据手册可查出完成写入操作所需要的时间。+5v的产品需要5ms,其他的产品大约需要10ms左右的时间。
eeprom内部的替换周期在进行过程中,即使发送下一个指令也将返回noack信号。因此,利用该noack信号就可判断内部的操作是否完成。
2. 页面写
页面写操作本身与字节写是相同的。由于在存取后地址自动进位,因而可以按序发送1页(16字节)以内的数据。实际上向存储器单元的写人操作,与字节写相同,都是在检测出结束条件后进行的,所以需要等待,直到操作结束,然后再进行下一个操作。
欢迎转载,信息来源维库电子市场网(www.dzsc.com)
上一篇:I2C总线的读操作的流程
上一篇:I2C总线的基本操作