DataFlash规格书译文(4)--AT26DF081A

6 保护命令与特性

6.1 写使能

       写使能命令用来把写使能策锁存的 WEL 位写为逻辑“ 1 ”。

       在“字节 / 页”写、擦除、保护 sector 、解保护 sector 和写状态寄存器之前,都应该执行写使能命令。

       这会被命令的发布实事上分成了两步,这样做是为了减少一个命令被偶然或错误的执行机会。

       如果 WEL 位不被设置再先,其它所有的命令均不会被执行。

       写使能命令步骤:

(1)       拉低 CS

(2)       06H 。不需地址,后续写入的数据被忽略

(3)       拉高 CS

CS 必拉高于 06 传入之后, CS 必须拉高于 8bit 的边界。


6.2 写禁止

       写禁止命令用来把写使能策锁存的 WEL 位写为逻辑“ 0 ”。

       写禁止命令成功执行后,在“字节 / 页”写、擦除、保护 sector 、解保护 sector 和写状态寄存器等命令均不能执行。

写禁止命令也可用来退出连续写入模式。

(4)       拉低 CS

(5)       04H 。不需地址,后续写入的数据被忽略

(6)       拉高 CS (偶地址边界)

6.3 保护 sector

       FLASH 设备每个物理 sector 有一个相关的 sector 寄存器保护位,用来控制软件对该 sector 的操作。在设备上电或设备复位后,每个 sector 寄存器保护位将被置为默认的“ 1 ”状态,表明所有的 sector 受到保护,并且不能被写入和擦除。

      

       1 )写使能 WEL = 1

       2 )拉低 CS

       3 36h

       4 3 个地址 byte  , 如果再传入数据,将被忽略

       5 )拉高 CS

       此时 FLASH A23~A0 指定的 sector 相关保护寄存器被设为“ 1 ”,该 sector 就会被置于写保护之下,同时, WEL 也会被置回为“ 0 ”。

       要求:三地址必完整传入, CS 必在三地址传入之后拉高,且拉高于 8bit 的边界。否则,命令不会执行, WEL 也会被置回为“ 0 ”。

       作为安全防护的 sector 保护寄存器,本身也受状态寄存器中 SPRL Sector Protection Registers Locked )位的保护。如果 sector 保护寄存器被锁定,仍何企图执行 sector 保护的命令将被忽略,且 WEL 将被重置为“ 0 ”, CS 拉高后, FLASH 返回 IDLE 状态。

 


6.4 sector 解锁

       执行解 sector 命令是为了复位相关 sector 的保护寄存器位(复位为 0 )。每个物理 sector 都有一个相关的寄存器位来控制软件对该 sector 的控制。

       1 )写使能 WEL = 1

       2 )拉低 CS

       3 39h

       4 3 个地址 byte  , 如果再传入数据,将被忽略

       5 )拉高 CS

此时 FLASH A23~A0 指定的 sector 相关保护寄存器被设为“ 0 ”,该 sector 就被解保护,同时, WEL 也会被置回为“ 0 ”。

       要求:三地址必完整传入, CS 必在三地址传入之后拉高,且拉高于 8bit 的边界。否则,命令不会执行, WEL 也会被置回为“ 0 ”。    

作为安全防护的 sector 保护寄存器,本身也受状态寄存器中 SPRL Sector Protection Registers Locked )位的保护。如果 sector 保护寄存器被锁定,仍何企图执行 sector 解保护的命令将被忽略,且 WEL 将被重置为“ 0 ”, CS 拉高后, FLASH 返回 IDLE 状态。

 


6.5 全部保护 / 解保护

       全部加解保护功能可与 sector 保护 / 解保护功能联用。例如,一个系统可以全总保护整个 FLASH ,然后使用 sector 解保护功能单独对某个 sector 执行解保护操作。同样,系统也可以单独保护某个 sector ,全局处于解保护状态。

 

执行全部加解保护,要写入一个特定结构的联合数据到状态寄存器。当然,要使用写状态寄存器命令。

写状态寄存器命令同时也用来修改 SPRL sector 保护寄存器锁)位来控制硬件或软件锁定功能。

 

       为了执行全部加保护,一定要有合适的 WP 引脚状态和 SPRL ,系统必须要写逻辑“ 1 ”到状态寄存器的第 5 4 3 2 位。写“ 0 ”则是相反的解保护,同想的,要有一定要有合适的 WP 引脚状态和 SPRL

6.6 sector 保护寄存器

       Sector 保护标志寄存器可以读出,软件可以据此知道各个 sector 的保护状态。

1 )拉低 CS

       2 3Ch

       3 3 个地址 byte 

       4 )读返回数据   00 解锁状态    FF 锁定状态

       4 )拉高 CS

       除了读取单独 sector 保护寄存器之外,也可以读取状态寄存器中的软件保护状态( SWP )位,来判断是否所有的、部分的或没有 sector 处于软件保护之下。


6.7 保护状态与写保护引脚( WP

       WP 引脚没有与存储空间连接在一起,不能直接影响 FLASH 空间的保护状态。然而,它与 SPRL 位关联,则可以控制硬件的锁定机制。

       为了激活硬件锁,两个条件一定要满足, WP 引脚一定要 asserted ( = 0 ,拉低 ) SPRL 位一定要是逻辑“ 0 ”状态。

 

       当硬件锁激活后, sector 保护寄存器被锁定, SPRL 位也被上锁。因此,处于保护状态的 sector 被锁定在保护状态,处于未保护状态的 sector 也被锁定在未保护状态。也就是说,只要硬件锁被激活,这些 sector 的保护状态均不能被改变。因此,保护 sector/ 解保护 sector 和写状态寄存器命令均被忽略。

       为了修改一个 sector 的保护状态, WP 引脚必须首先被拉高( =1 Deasserted ),然后用写状态寄存器命令把 SPRL 位重设为“ 0 ”。

 

       如果 GND 引脚被直接接地 GND (拉底为 0 asserted ),一旦 SPRL 位置为“ 1 ”,只有一个办法可以重置为“ 0 ”,那就是重新上电。这样,允许一个系统上电时对所有的 sector 进行软件保护而不对设备硬件上锁,因此, sector 可以根据需要加解保护,稍后就可以通过简单的设置 SPRL 位执行硬件加锁。

 

       WP 引脚被 desserted (拉高为 1 ),或直接连接 VCC SPRL 位可以设为 1 来锁定 sector 保护寄存器。这样做提供了一个软件锁定能力,可以防止执行 sector 加解保护出现错误。当改变 SPRL 位从 0 1 时,才可能执行一个全局加解保护操作(写 5 4 3 2 位)。

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值