4. 级联拓扑选型:Daisy Chain 与独立片选

两种拓扑各有千秋。我最早接触多片 Flash 时,觉得不就多挂几颗芯片嘛,随便选一种都行。结果呢?被坑过一次。嗯,先别急,我们慢慢说。

4.1 Daisy Chain — 省引脚,但小心延迟

Daisy Chain,说白了就是一条链。Flash 芯片像串珠子一样,一个一个串起来。第一个 Flash 的数据输出接第二个的输入,第二个输出再接第三个的输入……这样一直串下去。

我习惯叫它“串联模式”。你想想看,所有芯片共用一组 QSPI 总线——时钟、数据、片选都共享。区别只在数据传哪个 Chip 而已。

参数 Daisy Chain 独立片选
引脚消耗 最少。只需要一组 QSPI 引脚 较多。每颗芯片要多一个 CS
布线复杂度 低。主板 layout 很清爽 高。CS 信号要走到每个芯片
读延迟 逐级累加。最后一个芯片延迟最大 无累加。所有芯片直连控制器
写效率 慢。每颗芯片都要传一遍数据 快。直接写目标芯片
可扩展性 好。再多串几颗也没问题 受限于控制器引脚数
调试难度 高。坏一颗会影响整条链 低。坏一颗只影响它自己

我记得第一次用 Daisy Chain 时,layout 小哥特别高兴,因为走线确实少。但后来调试时才发现一个小坑——链上的芯片必须支持“通过模式”(pass-through mode),不然数据传不过去。

选 Daisy Chain 时,一定确认每颗 Flash 都支持命令延续(command continue)功能,否则链子后半段的芯片根本读不到。

4.2 独立片选 — 简单粗暴,但费引脚

这种方式下,每个 Flash 都有自己的片选信号,各走各的道。我刚开始做设计时,总觉得这样浪费引脚,后来才明白,在某些场景下,这正是它的优势。

独立片选的逻辑很直白:你想读哪个芯片,拉低对应的 CS 就行。其他芯片保持高阻抗,完全不影响。

你会问:“那我为什么不都用独立片选呢?”原因很简单——引脚不够用。

举个例子。一个 8 线 QSPI 控制器,最多接 4 颗独立片选的 Flash。因为控制器一般只有 4 到 6 个片选引脚。你想想看,如果要做 8 颗甚至 16 颗 Flash 的系统,独立片选根本没办法。

4.3 关键决策指标

我个人的选择标准是这样的:

  • Flash 数量 ≤ 4:用独立片选。省事儿,调试也方便。
  • Flash 数量 ≥ 8:用 Daisy Chain。引脚受限,只能这样。
  • 对读延迟敏感:尽量用独立片选。延迟累加在链上不可控。
  • 写操作占比大:也推荐独立片选。写延迟在链上会翻倍。
  • 系统板上空间紧张:Daisy Chain 布线少,更适合。

我曾经在一个项目里,想把两种拓扑混着用——前两颗用独立片选,后两颗串起来。结果调试了整整一周,因为控制器对混合模式的支持并不规范。建议你,要么全独立,要么全 Daisy Chain,别搞混合。

4.4 避坑指南

嗯,这里有几条我踩过的坑,你提前知道能省不少时间。

  • 链长不要超过 4 颗:Daisy Chain 超过 4 颗后,信号完整性明显下降。我在项目中试过 8 颗链,结果高频跑不起来。
  • 独立片选需要上拉电阻:每个 CS 引脚都要接上拉,防止悬空时误触发。我吃过这个亏,板子焊好了才发现 CS 电平不稳。
  • 注意控制器的驱动能力:独立片选模式下,多个 Flash 同时响应时,数据总线的驱动电流可能不够。建议加缓冲器。
  • Daisy Chain 写保护要统一:链上的芯片最好用相同的写保护策略,否则链中一颗写保护了,后面的命令都传不过去。

4.5 拓扑结构示意图

下面我用一张简图把两种拓扑的关系理清楚。左边是独立片选,右边是 Daisy Chain。你看一眼就明白了。

Daisy Chain 与独立片选拓扑对比 两种级联拓扑结构对比 独立片选(Parallel) QSPI 主控 Flash #1 Flash #2 Flash #3 Flash #4 CS0 CS1 CS2 CS3 Daisy Chain(串联) QSPI 主控 Flash #1 Flash #2 Flash #3 Flash #4 SDO→SDI SDO→SDI 独立片选:每颗 Flash 独立 CS → 并行访问;Daisy Chain:共用一个 CS → 串行传递

从图上能看出来,独立片选走线多,但每颗芯片都能被直接选中;Daisy Chain 走线少,但数据要挨个传,链越长,延迟越大。

4.6 我的总结

选哪种拓扑,其实就是在“引脚资源”和“性能”之间做取舍。

  • 引脚够用、对性能有要求 → 独立片选
  • 引脚紧张、Flash 数量多 → Daisy Chain
  • 两种都可行时 → 我建议先做仿真,看看延迟和信号质量能不能满足需求

我的一个习惯是:先在原理图上把两种方案都画出来,然后拉一张对比表,把关键参数填上。这样领导一看就明白为什么选这个方案了。

记住一条底线:不管选哪种,都要保证 Flash 控制器和 Flash 芯片本身支持该拓扑。有些老器件不支持 Daisy Chain,你再怎么设计也没用。