EEPROM 的结构与使用方法
3.3 Microwire 总线对应的存储器——M93Cx6
还需要考虑的是,在这些总线中,无论哪种总线的同一条总线上连接多个串行EEPROM器件的情况。
I2C总线是把由主机传递过来的器件地址与目标对象所设定的地址进行比较,如果一致就是目标对象。
Microwire和SPI总线除了具有用于传输的信号外,还具有片选信号,通过该信号的有效与否,主 机指定哪个器件作为目标对象。
3.3 Microwire 总线对应的存储器——M93Cx6
●3.3.1 M93Cx6 的引脚配置
M93Cx6 系列是 8 引脚的封装,其引脚配置如图 1 所示,包括 3 根 Microwire 总线信号及用于数据 宽度(以 16 位为单位还是以 8 位为单位)选择的 ORG 输入和片选输人。
图 1 M93Cx6 的引脚配置
由于 ORG 不是普通动态变化的,所以与主机相连的是 C、D、Q 和 S 这 4 根线。图 2 显示了主机与 多个 Microwire 存储器的连接实例。
图 2 Microwire 存储器与主机的连接
下面我们简述 Microwire 总线的各个信号。
▲ S(Chip Select Input,片选输入)
这是片选输人。由于 Microwire 总线也与其他的串行总线一样,是可以与多个存储器器件连接的,
因此,通过该引脚主机可以通知要访问那个器件。该引脚为高电平时,M93Cx6 为使能状态,可以与主 机进行传输。
▲ D(Data Input,数据输入)
在 Microwire 总线的情况下,存储器的数据输人引脚与输出引脚是分离的。该引脚是主机向目 标(存储器)方向的数据输人引脚,存储器在时钟(C)上升沿将数据提取到内部。
▲ Q(Data Output:数据输出)
这是数据输出引脚。如果时钟(C)到达上升沿,则将新的数据存放于 Q 中。
▲ C(Clock)
这是时钟信号。Microwire总线的操作是以该时钟信号为基准进行的。在写操作的方向时,主机 存放于D的数据在时钟的上升沿被存储器提取;而在进行读操作时,存储器在时钟上升沿来到时,将欲 在下一次提取到主机的数据存放于Q中。该操作如图 3 所示,M93Cx6 的最高时钟频率为1MHz。
图 3 时钟与 D/Q 的关系
▲ ORG(Organization)
其他的串行EEPROM也一样,即使是“串行”也还是输入输出总线,读取以及替换通常是以 8 位乃 至 16 位为字单位进行的。如果是 8 位宽度的,则读操作时一旦赋予地址就要读出 8 位的数据,替换时 也必须传递 8 位的数据。
M93Cx6 系列的字长可以通过 ORG 引脚改变,ORG 如果是高电平而且是打开的,则为 16 位宽度,
必须从所指定的地址以 16 位为单位输入输出数据。反之,如果 ORG 为低电平,则数据宽度为 8 位,将 以 8 位为单位输人输出数据。
●3.3.2 Microwire 总线的存取操作
如前所述,Microwire总线的存取操作是以时钟的上升沿为基准进行的。总线的大概工作情况如图 1 所示,时钟上升时,如果S输入为高电平,则器件处于选择状态。D输人一旦成为高电平,则识别为 起始位,开始进行工作。在起始位之后的 2 位为操作代码,然后是地址位。地址位的位数不固定,根 据存储器的容量而发生变化。
图 1 Microwire 总线的存取操作示例
若干个指令只能由这 2 位来指定,对于不能通过这 2 位完全表示的部分,将挪用紧随其后的地址 位的一部分来表示指令。在这些指令中,虽然地址字段的值实际上只能使用 2 位,但需要传输与READ
/WRITE指令相同的位数。
M93Cx6 具有 7 种指令,例如M93C06 和M93C46的指令格式如表 2 所示。作为实例,M93C06 的读操 作如图 2 所示,写操作如图 3 所示。另外EWEN指令的发布实例如图 4 所示。
图 2 M93C06 的读操作
表 M93C06 的指令设置
图 3 M93CO6 的写操作
图 4 EWEN 指令的发布实例
▲ READ
数据读指令是在操作代码“10”之后通过指定地址来进行的。一旦地址位发送完毕,存储器于时 钟上升沿同步从Q按顺序输出数据。由于开始之后将输出 1 位哑元“0”,所以需要丢弃该位。地址/
数据起始于MSB这一点是与ElA-232 等串行传输不同的地方。
▲ EWDS(ERASE/WRITE Disable,擦除/写禁止)
当操作代码“00”紧接着地址位的前两位为“00”时,就是 EWDS 指令,发出该指令后,存储器 就不能够接受替换及擦除指令。
为了防止不经意的存储器的替换和擦除操作,最好在发出 WRITE 指令后再发出该指令。
▲ ERASE
当操作代码为“11”时,由随后地址位所指定的地址的内容将被擦除。虽然与通过WRITE写入所 有“1”的数据的结果相同,但擦除指令由于不需要传输数据的时间,因而较简单。在后面将要叙述的 I2C总线对应存储器的情况下,没有擦除指令,通过写人FFh就能达到擦除的功能。
▲ ERAL(Erase All Memory)
当操作代码“00”紧接着地址位的前两位为“10”时,就是ERAL指令。它将擦除整个芯片的内容。
与闪速存储器的ChipErase指令相同。
▲ WRAL(Write All Memory with same Data)
利用指定的数据写满整个芯片,ERAL 指令可以指定数据的。