似乎无法写入 spi flash

电器工程 图片 spi 闪光
2022-01-28 14:42:11

好吧,我已经坚持了一段时间,此时可能需要 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 命令,所以我知道它听到了我的声音,并且可以响应。我不知道我在这一点上做错了什么。我想我会回去阅读数据表,并尝试一些事情,但如果有人有任何见解,我将不胜感激。它正在形成另一个令人沮丧的周末,在这件事上工作。

1个回答

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

正如“confused”的评论中所说,有一个名为“Global Unlock”的命令必须在写入闪存部分之前执行。