SPI Flash 的读写地址模式

发布于 2023-04-21 10:30:36

1.首先说明一下 SPI Flash的使用特点:
SPI Flash 的读写地址模式有两种 3Byte 和 4Byte
读写16M以内的数据 可以只使用3Byte的地址模式
读写大于16M的数据,必须将Flash的地址模式切换到4Byte模式上

2.有些固件在7688A或7628N的模块上无法通过reboot 软重启,主要原因是

对于7688A-7628N 来说 使用到的SPI FLASH 是32MB
且默认使用3byte模式读写Flash
可以看一下, SPI_CS1 启动时为 低电平时 7688芯片的SPI Flash操作模式是3Byte,所以
Flash本身也必须是3Byte的操作模式,7688才可以读写Flash

正常7688A/7628N 冷启动时 7688A的操作地址模式和 SPI Flash的地址模式是一样的 都是3Byte
当固件启动后, 程序需要操作16M以上Flash空间时, 内核的SPI 驱动会把Flash的地址模式切换到4Byte 上,以便读写16M以上的Flash地址空间
如果reboot时 没有把Flash的地址模式 切回到3byte,而只对CPU 复位, CPU复位后是无法通过3byte地址模式读取 已经处于4byte地址模式的Flash数据的 ,所以就看到无法软重启这个现象

解决办法:
1.
软件上: 因为 7688A/7628N目前使用的都是华邦的Flash 可通过配置Flash的非易失性寄存器将 Flash设置为4byte模式
硬件上: 在通过软件上设置完成后,把SPI_CS1拉到3.3V ,重启
同时固件也需要注意 查看 驱动是否有切回3byte的操作

我们出厂的openwrt版本所带的uboot中带有 Flash切换4byte操作的命令:
在uboot下运行flash_always_4byte 可以把Flash 切换到4byte地址模式上。
这是你们给方式,但是实测下来,模块已经变成砖头了,没法启动

查看更多

关注者
0
被浏览
650
1 个回答
决然
决然 认证专家 2023-04-28
:)

这个可以联系业务拉个技术群,我们详细看下吧, 这个文档是正确的,我们也是按照这个方式来烧录固件。

撰写答案

请登录后再发布答案,点击登录

发布
问题

分享
好友

手机
浏览

扫码手机浏览