zoukankan      html  css  js  c++  java
  • nor flash之4字节地址模式

    背景

    容量低于 16M bytes 的 nor,一般使用 3 字节地址模式,即命令格式是 cmd + addr[2] + addr[1] + addr[0] + ...

    使用超过 16M bytes 的 nor flash,则需要了解 4 字节地址模式, 即命令格式是 cmd + addr[3] + addr[2] + addr[1] + addr[0] + ...

    原因

    为什么呢, 因为用 3 个字节表示地址,则其范围是 0x000000 - 0xffffff = 0 - 16M,超过 16M 的地址就无法表示了,那自然就得上 4 字节了。

    驱动修改

    新的 uboot, kernel 驱动中都是支持的,配置下就可以了,如配置上 SPI_NOR_4B_OPCODES 。

    如果在用的 nor 驱动没有支持,那可以自行根据 datasheet,在初始化的时候判断下容量,加个切换到 4 字节地址模式的操作,后续的读写命令等,也改用 4 字节地址。

    注意事项

    需要注意的是,一些芯片的 boot rom 无法支持 4 字节地址模式,只会用 3 字节地址模式跟 nor 通信。

    所以切换到 4 字节地址模式后会导致直接重启无法正常启动。需要彻底掉电后重新上电,让 nor 因为重新上电默认回到 3 字节地址模式,才能正常启动。

    一种处理方式是,在 reboot 的流程中,增加软件退出 4 字节地址模式 的操作。这样正常的 reboot,会先退出 4 字节地址模式再重启,boot rom 就能正常识别了。

    但软件退出的缺点是,只能解决正常重启的情况,无法处理硬件 reset 主芯片的操作,因为 reset 主芯片并不会让 nor 也 reset,那么 nor 就仍处于 4 字节地址模式,不响应 boot rom 的 3 字节地址命令。

    另一种更好的处理方式是,硬件设计上支持让主芯片和 nor 同步 reset。

    其他

    nor 在 16M 这个容量是个分界点,不仅驱动上因为 4 字节地址模式的引入而更加复杂,价格上也是差别巨大,32M nor 远不止 16M nor 价格的两倍。

    从价格考虑,用一片 32M 的 nor 还不如用两片 16M 并自行通过片选去分时复用。也不如直接上 128M 的 nand,不过上 nand 的话,软件上就复杂很多了,这里不再展开。

    更多参考

    nor相关文章
    nor flash之频率限制
    spinor/spinand flash之高频通信延迟采样
    nor flash之写保护
    nor flash之擦除和写入
    nor flash之写保护开销

    本文地址:https://www.cnblogs.com/zqb-all/p/12442578.html
    公众号:https://sourl.cn/CKWtQJ

  • 相关阅读:
    mac 命令大全
    GAME OF THRONES 2
    GAME OF THRONES 1
    软件工程-作业一
    猜数字游戏
    摘自-角田光代《对岸的她》
    java复习总结
    艾米莉-狄金森
    初次接触软件工程
    Environment/reflection mapping & bump mapping
  • 原文地址:https://www.cnblogs.com/zqb-all/p/12442578.html
Copyright © 2011-2022 走看看