闪存通常通过 SPI(串行外设接口总线)连接到处理单元,如 ARM 内核或微控制器。
- 如何转储内存?
- 能不能有保护机制?
- 有什么陷阱要避免吗?
闪存通常通过 SPI(串行外设接口总线)连接到处理单元,如 ARM 内核或微控制器。
尽管我认为这些问题太广泛了,并且我同意 @cb88 的观点,即数据表应该为您提供所有您需要知道的信息,但我会尝试回答一些问题。
第一种选择是从板上拆焊芯片。完成后,您有 2 个选择
当您不能或不想移除芯片时,您还有两种选择。
您还可以使用设计用于将分析仪连接到系统内芯片的夹子。
一般来说,我真的建议拆焊芯片。它们几乎是边缘封装(例如在封装外部具有清晰可见的引脚)而不是球栅阵列(BGA) 封装。这使它们易于拆卸,也易于放回原处。它将为您省去我在下面的陷阱部分中描述的可能遇到的麻烦。
OTP 存储器其中一些芯片可以包括一次性可编程 (OTP) 存储器,它们在其中存储保护位。我只看到这被用于锁定区域以防止写入,而不是用于读取。否则,拥有闪存的意义何在?
加密我从未见过,也无法快速找到任何提供加密的 SPI 闪存芯片。这通常是在片上系统 (SoC) 端的内存控制器中实现的,该控制器可以即时执行,保持对主机 CPU 的良好和透明。
要记住的一些事情;
如果您正在编写自己的嗅探器,请确保它可以足够快地对信号进行采样。例如,总线盗版在所有情况下都会失败,因为它只能在最大 ~32MHz 采样,其中 SPI 闪存的分配从 40+MHz 开始。所以你至少需要两倍的目标速度(采样定理)
闪存设备可以以高达 100+MHz 的各种速度工作,这与它们所处的各种模式(正常读取、快速读取、双读取、四读取等)有关。这种模式不仅会改变速度,而且数据传输的方式。例如,在四读模式下,闪存使用 SI/SO/WP/Hold 信号一次输出 4 位,而不是“经典”模式,在“经典”模式中,您每个时钟周期从 SO(串行输出)读出 1 位。
充当主机时,请确保提供足够的电源并且信号在正确的时间处于高/低状态。所有这些信息都可以在闪存芯片的数据表中找到。