本文将出自于最重要的两篇官方的参考文件,

因为参考资料在 SPI 的章节下写得有点乱,所以作个整理。

也因如此(乱)笔者不敢保证所整理出来的内容是正确的。

最重要的,也因如此,笔者不敢保证能够整理出什么有用的东西出来。或,就目前看到的文章就是这么有头无尾。

与其照官方所说 esp8266 所支援 spi 的种类,不如我们按照 multi-function gpios 中的划分来针对 spi 分类。

同时,group A 又支援 overlap 模式,即一个 master 可接数个 slaves,于此处的 overlap 支援接三个;而通常而言,SPI 的定义下本就支援这里所谓的 overlap,故此可说就是以硬件支援这样的 overlap,即片选脚位 CS,是固定指定的且运作上由硬件直接做掉;换言之,本就可,若接四个 slave,我们那第四个 cs 由软件控制自选定的 gpio 即可。

其中,master 模式支援最高 80MHz,slave 支援最高 20MHz,而这也是笔者最感兴趣的部分。当然实际不可能跑这么快因程式执行本身所受限住。而硬件也有提供(in sram fixed address) 64 bytes/16 words/word-alignment buffer。