E2PROM的I2C通讯(基于24LC01B)

  1. 起始位:时钟线和数据线为都为高电平时空闲状态。当时钟线为高电平,数据线状态由高→低时,为起始位。
  2. 停止位:与起始位相反,时钟线保持电平高状态,数据线电平由低→高,为停止位。
  3. 有效数据:起始位和停止位之间发送数据。时钟线低电平时,数据线可以改变,时钟线高电平时,数据线的数据保持稳定。在此期间每个时钟周期发送一个bit。发送数据时,从高位开始发,低位结束。
  4. 应答:

    主机接收应答:主机向从机发送完地址后,从机必须向主机发送响应(确认)。故在发送地址之后需再为应答位增加一个时钟周期,在应答周期内,主机(单片机)引脚设置为输入,从机(E2PROM)控制数据线,在时钟保持高电平时,数据线保持低电平,主机则认为此为合法应答。

    主机发送应答/不应答:主机从E2PROM读取数据时,若读完一个字节后主机向从机发送不应答,从机将释放数据线,停止向主机传送数据。若发送应答,则主机继续读取数据。不应答和应答相反:一个应答周期内保持高电平。

  5. 读写命令:高四位固定1010,零位控制读写,读为1,写为0。另外3位是地址位,E2PROM的地址通过A1、A2、A3控制,从高位到低位依次为A3、A2、A1。如果只用一个E2PROM,一般通过将其全接地置为000。
    E2PROM的I2C通讯(基于24LC01B)_第1张图片 读写命令组成
    E2PROM的I2C通讯(基于24LC01B)_第2张图片 读写命令

     

  6. 读写方式:读写一般都会有单独地址读写、连续地址读写,具 体看数据手册。
  7. 读写时钟周期大小:时钟周期限制了读写的速度。使用到的E2PROM最大读写周期为400KHZ,因此写程序时应该注意周期的大小。
  8. E2PROM的存储管理:

    可以将数据分成三块区域存储相同的数据,每次读取从三个区域中读取,然后比较数据的异同,从而判断数据是否异常。当向其中写入新数据时(覆盖原来数据),写完一次读取一次或者多次,把读出来的数据和要存储的数据比较,如果不同则可能发生故障。

    此外如果要存储的数据较多,可以将同类的数据存储在连续一块区域,设置开头、数据位、校验和。通过读取校验和与读取出来的数据生成的校验和比较可以判断数据是否异常。

  9. 每次读写数据的间隔:在两个读取操作之间是否需要间隔一端时间?
  10. WP写保护:WP接高电平将禁止写操作(可以读),低电平读写操作皆可以。

你可能感兴趣的:(单片机)