上一篇介绍过了I2C的基本原理以及相关的函数,这一篇会介绍EEPROM来做为I2C实作的示范。
全名是电子抹除式可复写唯读记忆体,他是一种唯读记忆体(ROM)可以透过程序去多次的写入资料,同时断电後不会清出资料。如果需清除资料可以在特定电压下来清除资料,重新的写入。
这一次使用的是AT24C256B EEPROM,它的特点如下
接下来来看一下脚位如何连接:
//I2C Start
SDA = 1;
delay();
SCL = 1;
delay();
SDA = 0;
delay();
SCL = 0;
delay();
//I2C Stop
SDA = 0;
delay();
SCL = 1;
delay();
SDA = 1;
delay();
上图是AT24C256B的设备地址,前面有提到前4bit是设备固定的地址无法更动。可以更动後方A2-A0来改变地址,最多可以接上8个。
R/W : 指的是Read / Write 会接续在地址後方,透过R/W bit 可以告知EEPROM这一次的指令是要读取还是写入资料。 ( R = 1 , W = 0)
上图可以看到AT24C256B的储存空间是分为512页且每一页有64Byte。
First word address : 可以把它理解成页数
Second word address : 可以把它理解成第几页当中的第几个字
根据上面说的 512页*64个字,而两地址总共为15bit。(0-511)(0-63)
2^9 = 512页 2^6 = 64个字所以在Second Word Address低6bit就是页内地址而其余的就是页数地址。
举例来说假如我们要写第3页的第2个位置就会是 0 0 0 0 0 0 0 0 1 1 0 0 0 0 1 0
这边要注意假设原先这一页已有资料,後续超过的资料将覆盖到同页前面的资料并不会换页。
读取分为三种方式: 当前地址读取、随机地址读取、顺序读取
上方5个步骤是Dunny Write的拆解
<<: [笔记][JavaScript] - 随机取出阵列元素之值
>>: 计算机概论 - 软件工程 Software engineering
前文非常详细的说明了Innodb储存引擎的B+树索引,我们必须熟悉下面这些观念。 每个索引都对应一棵...
黑人变白人 ( 皮肤上色 ) 教学原文参考:黑人变白人 ( 皮肤上色 ) 这篇文章会介绍在 GI...
元件介绍 Carousel 是一个像旋转木马一样会轮流转的轮播元件。在一个内容空间有限的可视范围中进...
Youtube连结:https://bit.ly/35x3dih 这次我们将精确定位出,在整个演算...
大家好,我是YIYI,今天我要来制作记帐和报表的页面。 记帐页面 和制作前面的页面一样,先将BACK...