问题描述
我要使用下面显示的手册将数据写入此设备并从中读取。
用于编写起初,我虽然应该执行以下两个命令:
- 第一个命令
{0x06};//write enable command
- 第二个命令
{0x01,0x2F,0xEF,0xD8}; //write status register based on the table below
但是随后我看到了下图30中的PP命令,该命令以0x02开头。
所以我假设为了在此设备上存储数据,我需要向序列中添加0x02,如下所示,首先发送MSB)
- 第一个命令
{0x06};//write enable command
- 第二个命令
{0x02,0x01,0xD8} // PP sequence and Write STATUS register the data 0x2F,0xD8
。
我是否已正确为此命令组装了序列?
谢谢。
https://www.macronix.com/Lists/Datasheet/Attachments/7461/MX25R8035F,%20v1.6.pdf
解决方法
页面编程(PP命令0x02)与写入状态寄存器(WRSR命令0x01)不同,因此显然您不必在序列前添加0x02,因为它将成为PP命令并将数据写入设备的闪存,而不是状态寄存器。
WRSR时序图是您链接的数据手册的图15。如果您要执行WRSR,则PP与此处无关。相反,如果您要对闪存进行编程,那不是WRSR要做的。
该设备具有用于控制其操作和检查其状态的寄存器,并且具有用于存储数据的闪存以及用于访问这些数据的不同命令。
您的序列:0x02,0x01,0x2F,0xEF,0xD8
将向地址0x012FEF写入一个字节0xD8。数据表中说,地址的LSB应该为零,但确实说明了这种情况下会发生什么,因此,如果建议不正确且不符合您的意图,则可以很好地进行定义。但是,这又似乎很奇怪,将0x2FEFD8
写入状态寄存器也不是您想要的。
数据表确实存在某些语言问题,可能会妨碍您。例如,PP部分在我认为意为“效果”的地方使用了“努力”一词。