写保护设置——一、SPI EEPROM

一、SPI EEPROM

以MicroChip的AT25128B型SPI EEPROM为例,AT25128B容量为128Kbit,即有16384个地址(131072bit,16Kbit×8,16384×8,3FFF×8),每个地址对应8bit数据。

写保护设置——一、SPI EEPROM_第1张图片

1.1 状态寄存器

AT25128B有个状态寄存器,要想搞懂写保护的机制,先要了解这些比特位的功能。

写保护设置——一、SPI EEPROM_第2张图片

1.2 状态寄存器不同位的含义和功能

(1) Bit0位(RDY/BSY)

Bit0是RDY/BSY:Ready和Busy状态位。

为0时,表示设备处于空闲状态,可以接受新的数据传输。

为1时,表示设备处于忙碌的状态,不能开始新的数据传输。

(2) Bit1位(WEL)

写保护设置——一、SPI EEPROM_第3张图片

Bit1是WEL,写操作使能位,有专门的命令对这个比特位进行控制。

WREN命令,设置WEL为1,此时可以对未保护的区域进行写操作也可以对状态寄存器的其他比特位进行写操作

WRDI命令,设置WEL为0,此时不能对状态寄存器进行任何写操作,即状态寄存器的Bit1位(WEL)和其他比特位都不能进行写操作。

芯片上电初始化时,WEL的值默认为0,意味着不能进行任何的写操作。

RDSR命令,可以读取整个状态寄存器的值,包括Bit1 WEL的值。

WRSR命令,写入除Bit1 WEL之外的其他可写入的比特位,比如WPEN、BP1、BP0。

(3) Bit3位(BP1)和Bit2位(BP0)

Bit3位和Bit2位分别是BP1和BP0:写保护地址区域设置位,根据不同的组合可以设置不同的写保护区。

00时,不保护任何地址的数据写操作;

01时,保护高1/4地址的数据写操作;

10时,保护高1/2地址的数据写操作;

11时,保护全部地址的数据写操作;

写保护设置——一、SPI EEPROM_第4张图片

(4) Bit7位(WPEN)

Bit7是WPEN:写保护使能位。

为0时,外部的/WP写保护管脚没有任何功能;

为1时,使能/WP写保护管脚的功能。当外部/WP管脚为高电平时,写保护不生效;当/WP为低电平时,使能写保护功能。

写保护设置——一、SPI EEPROM_第5张图片

1.3 不同位组合后的功能:硬保护、软保护

(1)Bit1位(WEL)为0时

当Bit1位(WEL)为0时,不管/WP管脚和WPEN比特位是什么状态,受写保护的区域、不受写保护的区域以及状态寄存器,都无法进行写操作。

写保护设置——一、SPI EEPROM_第6张图片

(2)Bit1位(WEL)为1时

当Bit1位(WEL)状态为1时,不管/WP管脚和WPEN比特位是什么状态,由BP1和BP0设置的写保护区域无法进行写操作,BP1和BP0未设置写保护的区域可正常支持写操作。

写保护设置——一、SPI EEPROM_第7张图片

(3)Bit1位(WEL)为1且Bit7位(WPEN)为0时

当Bit1位(WEL)为1时/WP管脚电平的高、低会影响对状态寄存器的写操作

当Bit1位(WEL)为1,且Bit7位(WPEN)为0时【Bit7位(WPEN)状态为0,/WP管脚的功能被禁用】,不管/WP管脚的电平为高还是低,对非保护区域不开启写保护功能,同时也可以正常地对状态寄存器进行读写。

写保护设置——一、SPI EEPROM_第8张图片

当Bit1位(WEL)为1,且/WP管脚为高电平时不管Bit7位(WPEN)的状态为0还是1,对非保护区域不开启写保护功能,同时也可以对状态寄存器进行读写。

写保护设置——一、SPI EEPROM_第9张图片

(4)Bit1位(WEL)为1且Bit7位(WPEN)为1时

当Bit7位(WPEN)为1时(使能/WP管脚写保护的功能),且/WP管脚为低电平时,此时写保护生效,无法对状态寄存器进行写入操作,包括Bit1位(WEL)也无法写入,此时软件方式上是无法解锁对状态寄存器的写入操作的,只能控制/WP硬件管脚才能解除。

所以,并不是/WP管脚使能了就不能执行写操作了,而是采用一系列的机制来实现相关区域数据的写保护操作

写保护设置——一、SPI EEPROM_第10张图片

1.4 参考文献

1、【SPI WP写保护: 功能真的被大家误解了!-哔哩哔哩】 https://b23.tv/u66sFAi

2、AT25128B-XHL-B_(MICROCHIP(美国微芯))价格_PDF手册-立创电子商城

你可能感兴趣的:(硬件电路设计基础,硬件细分知识,嵌入式硬件,单片机,信息与通信)