IIC控制设计读写EEPROM
IIC控制设计
本博文完全参考小梅哥(下面是链接)
IIC模块是比较好理解,但个人觉得比较难实现。这里的读为随机读数据,即自己可以指定读取那一个数据。若不进行虚写操作,就会造成独处的数据其实是上次写入的地址。同时读取后数据指针加一。
接下来简单分析小梅哥代码的思想。(魔咒呀魔咒~)
IIC简述
一共有两根线进行控制
sda为inout
类型,数据总线
scl为时钟总线
- 最多一次只能写入16 bytes的数据(页写)
- 时钟周期在100K - 400K之间
时序描述
开始位与停止位的时序。
2.
只有在SCL总线为高的时候,数据有效,同时不允许在电平期间改变数据。
3.
第一个八位数据的发送。
在第九个的时候,需要释放sda给其高组态。由从机响应ack。同时检测数据是否传输正确。
4.
单字节写操作
5.
随机读操作