IIC存储芯片CAT24C512WI-GT3

名称:CAT24C512WI-GT3

丝印:24512A

内存容量:65536字节

e827abae716f4dea8e755ccdddfe5d56.png

A0 - A2:用于设置芯片的IIC物理地址,高电平为1,低电平为0,作用参考IIC数据帧解析

WP:写保护引脚,高电平开启保护(此时无法写入)


【1】单字节写入IIC数据帧:

顺序

主机状态

数据/信号

解释

应答

1

发送

(start)

IIC起始信号

 

2

发送

1010  (A2)  (A1)  (A0)  0

A0 - A2分别根据引脚高低电平填入

0(芯片)

3

发送

(地址高位)

例如:地址0x1234,则填0x12

0(芯片)

4

发送

(地址低位)

例如:地址0x1234,则填0x34

0(芯片)

5

发送

(字节数据)

要写入的字节

0(芯片)

6

发送

(stop)

IIC终止信号

 

【2】(多字节连续写入)页写入IIC数据帧:

顺序

主机状态

数据/信号

解释

应答

1

发送

(start)

同上

 

2

发送

1010  (A2)  (A1)  (A0)  0

同上

0(芯片)

3

发送

(页模式地址高位)

# 详见后续说明 #

0(芯片)

4

发送

(页模式地址低位)

# 详见后续说明 #

0(芯片)

5

发送

(字节数据1 )

目标地址要写入的字节

0(芯片)

6

发送

(字节数据2 )

目标地址往后第2个要写入的字节

0(芯片)

……

发送

……

……

0(芯片)

……

发送

(字节数据n )

目标地址往后第n个要写入的字节

0(芯片)

……

发送

(stop)

同上

 

页模式地址中,高9位为页地址,低7位为该页内的小地址。

例如:

第8页内的第6个地址,高9位是0000 0011 1(地址8,序号值为7),低7位是000 0101(地址6,序号值为5)。 拼起来得页模式地址:0000 0011 1000 0101,也就是0x0385。则页模式地址高位为0x03,低位为0x85。

芯片共65536个字节存储空间,分作512页,每页128个字节。

(已经帮各位算过了,其实一个位置的地址按页模式写和不按页模式写都是一样的,主要是连续写操作的地址循环有特点。详见下文)

连续写操作的次数没有限制,但是写操作地址只会在当前所在的页内循环。也就是当写入位置已经来到了本页的最后一个地址,则从头开始,下一个字节将写到本页的第1个地址处(原本在这个位置的数据会被新数据覆盖)

例如:

当上次写操作地址来到0x007e,则下次写操作将对0x0000进行。


【1】读取IIC数据帧:

顺序

主机状态

数据/信号

解释

应答

1

发送

(start)

同上

 

2

发送

1010  (A2)  (A1)  (A0)  0

同上

0(芯片)

3

发送

(地址高位)

同上

0(芯片)

4

发送

(地址低位)

同上

(芯片,不重要)

5

发送

(start)

同上

 

6

发送

1010  (A2)  (A1)  (A0)  1

同上

0(芯片)

7

接收

【芯片返回字节数据】

目标地址的字节数据

1(主机)

8

发送

(stop)

同上

 

如果要一次性连续读取多个字节数据,主机可以在接收数据后应答0继续,应答1结束。则上述数据帧改为以下情况:

顺序

主机状态

数据/信号

解释

应答

1

发送

(start)

同上

 

2

发送

1010  (A2)  (A1)  (A0)  0

同上

0(芯片)

3

发送

(地址高位)

同上

0(芯片)

4

发送

(地址低位)

同上

(芯片,不重要)

5

发送

(start)

同上

 

6

发送

1010  (A2)  (A1)  (A0)  1

同上

0(芯片)

7

接收

【芯片返回字节数据1】

目标地址的字节数据

0(主机)

8

接收

【芯片返回字节数据2】

目标地址往后第2个字节数据

0(主机)

……

接收

……

……

0(主机)

……

接收

【芯片返回字节数据n】

目标地址往后第n个字节数据

1(主机)

……

发送

(stop)

同上

 

读操作地址可以在整个芯片内存循环。也就是当上次读操作地址已经来到了0xffff,则从头开始,下次将读取芯片内存中地址0x0000,之后同样循环。

【2】快速读取IIC数据帧:

顺序

主机状态

数据/信号

解释

应答

1

发送

(start)

同上

 

2

发送

1010  (A2)  (A1)  (A0)  1

同上

0(芯片)

3

接收

【芯片返回字节数据】

同上

1(主机)

4

发送

(stop)

同上

 

读取地址是上一次读取地址的下一个。例如上次次读操作的地址是0x1234,则下次读取0x1235地址的内容。

如果要一次性连续读取多个字节数据,主机可以在接收数据后应答0继续,应答1结束。其数据帧解析同上。


话说回来学完才发现好像flesh存储芯片更有性价比(ˉ▽ˉ;)...

唉……学都学了,不发可惜