[DAY 15] _EEPROM记忆体读写

前天在讲I2C时序的时候应该接着这部分讲的,忘记了这个记忆体的读写对了解I2C很有帮助的实际例子,今天就简单看看这Datasheet吧,至於程序部分我就不讲太多了应该也没甚麽人会想看XD
不然来学着看英文Datasheet吧。
首先我先来讲EEPROM写入时序:

下图是电子抹除式可复写唯读记忆体 (EEPROM) Datasheet上写的时序说明:
以下有两个不同容量的记忆体的写单字节的时序,两者容量不同,差别在於可写入暂存器的位置长度不同(红框)。

https://ithelp.ithome.com.tw/upload/images/20210928/20141979HS8BNOVNeq.png
以上是以两颗不同容量的记忆体写入程序,稍微有点不一样。(左边的是2K,右边的128K)

以24C02这样的 EEPROM 爲例,它的容量是 2 Kbits,或是 2048 / 8 = 256 bytes,因此一个 byte 的 index 暂存器刚好可以用来指向 0-255 的位置,也就可以用来存取整颗 EEPROM 的内容。
假设我要对 EEPROM 的第 0 个 byte 写入一个 0x87 这样的值,在 I2C 上就要用这样的时序:
https://ithelp.ithome.com.tw/upload/images/20210928/201419792WNQ5QK4W1.png
我直接举1个例子了,这样应该有比较好看了这些都是我刚学的时候所做的PPT,为了让自己能复习做个纪录。

再来I2C有个写入时序,连续写入
在I2C的规范书有以下这一段文字,这句话指的意思是关於自动增加和减少地址由设计者定义。
All decisions on auto-increment or decrement of previously accessed memory locations etc. are taken by the designer of the device.
https://ithelp.ithome.com.tw/upload/images/20210928/201419795nTA8OfWym.png
上图是两个不同容量的写入时序根据Datasheet,可以看到绿色框框部分,容量较大的记忆体设备地址有两段而较小的只有一段,这是因为要让使用者能自行决定要从哪页开始写起哪里结束,容量较大的话7位地址会不够表示
写完地址接着就开始丢Data了,红框部分。
连续读取的功能叫「sequential read」,可以从一个位址开始一直读一直读,没有长度的限制,就算你已经读到 2 Kbit EEPROM 的最後一个位址 0xff,index 暂存器会自动归零,你可以继续从第一个位址 0x00 读起。
不过写入时状况就有一点不一样。由於 EEPROM 写入需要一点时间,而且这个时间相对 I2C bus 的速度来说并不快,通常在数个 ms 左右,因此 EEPROM 的连续写入指令长度有限制
EEPROM 在收到来自 I2C bus 的指令後,会先把要写入的资料暂存在一个写入用的 buffer 中,再慢慢写入,因此这个写入用 buffer 的大小就限制了连续写入指令的长度,常见的限制是 16 或 32 个 bytes,详情要看每一颗 EEPROM 的 datasheet。
在 EEPROM 里面,记忆单元是以一个 page 一个 page 这样的单位排列的,page 是 EEPROM 更新资料的最小单位,因此这个写入 buffer 的长度通常会跟 EEPROM 的 page size 一样,除此之外,大部分的 EEPROM 在单一的连续写入指令中,不能跨越 page 的边界。

基本时序-EEPROM写入时序-顺序写入

以AT24C02来举例,它的容量是2K, 2048 / 8 = 256 bytes,256/8=32,代表这个记忆体共可写入32个数据字节,8个数据字节换页一次(缓存),等於说头到尾换业需要头换尾4次。
以AT24C128来说,它的容量是128K, 1024乘128=131072,131072除8=16384 bytes,16384除8=2048,这个记忆体共可连续写入2048个数据字节。但连续写入不能一口气全部写完,需要缓存资料,以这颗的Datasheet来看,写64个数据字节存满了要换页一次,2048/64=32这代表从头写到尾需要换页32次。

懂了上述就可以开始写EEPROM的写入函式啦,上面这些一定要先懂才能来写,不然你绝对打不出来能用的函示。


<<:  Day13 ATT&CK for ICS - Initial Access(3)

>>:  Day13 - Tree((超出时间也太多了吧QAQ

Day16-TypeScript(TS)在类别(Class)实作介面(Interface)

今天要来介绍类别实作介面, 介面型别我觉得很大的一个优势是可以重复使用, 因此我们就来说说这个吧。 ...

近似最短路径 (3)

11.3 一些 Leetcode 例题 再来看一些有趣的最短路径变化题吧! Leetcode 882...

Day04常用的基本标签(HTML)

常用的标签 先来介绍一些常用的标签 h1、h2、h3、h4、h5、h6 ← 这六个是依序由大到小的标...

曝露系数(Exposure factor)

-简单的定量风险分析 曝露系数 (EF) 曝露系数 (EF) 是在实现特定威胁时对特定资产的主观、...