1.地址和数据线
首先看到第一页,由上图可知EEPRAM的存储空间为2个256×8bit。
同时,结合上图、由这张图可看出,控制EEPRAM是两跟串行接口。
再看到第四页的时序图,由时序图可得,这是标准的IIC时序,因此EEPRAM的传输协议为IIC协议,如下图。
2.写时序及流程
IIC协议时钟频率(100-400khz) ![](https://img-blog.csdnimg.cn/cf01463845884636ba0e3f538900390f.png)
根据内部晶振的大小,可以采用自己分频来进行时钟操作或直接采用PLL生成。
具体的IIC协议可看IIC协议
单字节写入: ![](https://img-blog.csdnimg.cn/9da1a9a3cfa847f5b2a44356d2a7bf79.png)
由上图可看出:单字节写入的流程为发送控制字节、发送地址、写入数据并结束。
流程如下图:
在写代码时我们可以在把IIC协议中的开始、结束单独定义,在适当的时候再发送即可,如单字节写的时候再写入数据的时候发送结束控制信号,即可在写入后结束写入操作。
多字节写入:
结合单字节写入,可看出,单字节写入和多字节写入操作的不同就是在什么时候发送停止命令,这里需要注意的是,我们这里最多只能写入15个字节的数据,如果多余15个字节,将重新重0开始,把原来的数据进行替换。
写入操作需要注意的是,写入并非真的写入到内部的物理层上,因此这里需要等待一段时间(TWC),时间为5ms。
根据上述可得写操作流程:
(1)主机产生并发送起始信号到从机,将控制命令写入从机设备,读写控制位设置为低电平,表示对从机进行数据写操作,控制命令的写入高位在前低位在后;
(2) 从机接收到控制指令后,回传应答信号,主机接收到应答信号后开始存储地址的写 入。
(3) 按高位在前低位在后的顺序写入单字节存储地址;
(4) 地址写入完成,主机接收到从机回传的应答信号后,开始第一个单字节数据的写入;
(5) 数据写入完成,主机接收到应答信号后,开始下一个单字节数据的写入;
(6) 数据写入完成,主机接收到应答信号。若所有数据均写入完成,顺序执行操作 程;若数据尚未完成写入,跳回到步骤(5);
(7) 主机向从机发送停止信号,页写操作完成。
3.读时序及流程
当前地址读:
由图可看出时序,发送开始信号和读控制命令后数据顺序读出,这里需要注意的是,读出的时候需要我们自己发送NOACK应答信号(高电平),然后再结束。
同时,因为当前地址读无需发送地址,因此此地址为EEPRAM内部地址计数器所指的位置,不可控。
随机地址读(页读):
由图可知,随机地址读的时候需要提前指定所需读的地址即虚写,操作流程为发送写控制字节、发送地址。然后再发送读控制字节,即可实现随机地址读。
随机地址读的结束条件与当前地址读是一样的,即控制模块发送NOACK和停止信号使其结束。
页读和随机地址读不同的是发送NOACK和结束条件的数据不同,即可以在读取任意个字节(256以下)。
根据上述可得读操作流程如下:
(1) 主机产生并发送起始信号到从机,将控制命令写入从机设备,读写控制位设置为低电平,表示对从机进行数据写操作,控制命令的写入高位在前低位在后;
(2) 从机接收到控制指令后,回传应答信号,主机接收到应答信号后开始存储地址的写 入。
(3) 按高位在前低位在后的顺序写入单字节存储地址;
(4) 地址写入完成,主机接收到从机回传的应答信号后,主机再次向从机发送一个起始信号;
(5) 主机向从机发送控制命令,读写控制位设置为高电平,表示对从机进行读数据操作;
(6) 主机接收到从机回传的应答信号后,开始接收从机传回的第一个单字节数据;
(7)数据接收完成后,主机产生应答信号回传给从机,从机接收到应答信号开始下一字节数据的传输,若数据接收完成,执行下一操作步骤;若数据接收未完成,在此执行步骤(6);
(8) 主机产生一个时钟的高电平无应答信号;
(9) 主机向从机发送停止信号,随机读操作完成。