似乎无法写入SPI Flash


9

好吧,我已经坚持了一段时间,目前大概需要2-3周。我只是不确定自己在做什么错。我正在尝试对此spi flash部分进行写操作,现在我只是在运行例程来擦除,写和读以尝试隔离它,但到目前为止还算不上什么。当然,我已经解决了很多错误。

无论如何,我都将WP线绑在板上,并且将时钟频率降低到200khz,然后运行擦除例程,它看起来像这样:

在此处输入图片说明 首先,我仅检查ID以进行调试,即9F命令,然后使用06命令设置WREN,将C7整个芯片擦除,然后使用05检查状态位,这很明显。这东西的芯片擦除时间只有35ms。

现在,我重新加载代码并尝试写:

在此处输入图片说明 首先,我将WREN设置为06,检查状态以确保WREN设置为05,然后将页面编程命令02发送到地址0x000000。您可以看到,我正在将Deadcafe写为前几位。同样在此处未显示的是写入完成(一页或256字节)后,我发送了0x04命令来禁用WREN。我观察到了这一点,并且确实将页面缓冲区的最后四个字节设置为0xAA,0x55​​、0xAA,0x55​​,并且在CS变高之前我就看到了它们。

现在,停止重新加载代码并尝试运行读取周期: 在此处输入图片说明 发送0x03作为读取命令,发送0x000000作为地址,然后...从设备返回所有0xFF。

我可以看到设备响应我的读取ID并设置了WREN命令,因此我知道它可以听到我的声音并且可以响应。我目前不知道我在做什么错。我想我将重新阅读数据表,并尝试一些尝试,但是如果有人有任何见解,我将不胜感激。这将是又一个令人沮丧的周末,正在研究这个问题。


10
而且...我想通了。如果我每次都能拿到一美元,在终于变得绝望地向某处寻求帮助之后,我想出了一些办法。原来还有另一个名为全局解锁的命令0x98,有关写使能或编程的章节中未提及……总之,在我的WREN命令之前添加了该命令,它就起作用了。抱歉打扰了。
2015年

10
添加您的评论作为答案并接受。
geometrikal

同意@geometrikal,您应该回答自己的问题。除了PIC SPI接口外,我什么都没有。出于完全相同的原因:文档。
User.1 2015年

2
嗨!您大约一年前发布了一个很好的问题,然后在评论中发布了一个很好的答案。但是问题仍然出现在“未答复”列表的顶部!请将您的评论复制到答案中并标记为“已接受”。这样,它将得到正确的管理我们可以
投票支持

1
@confused,请发布您的答案并将其标记为已回答,以便我们可以结束问题,谢谢
Voltage Spike

Answers:


3

我只是讨厌它仍然在“未答复”列表的顶部,所以我要回答。

如“ confused”的注释中所述,有一个名为“ Global Unlock”的命令必须在写入闪存部件之前执行。


1
您应该接受答案,否则该问题仍将标记为“未回答”。
艾蒂安
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.