5.5.3 spi串行flash配置模式
1.spi串行配置介绍
串行flash的特点是占用管脚比较少,作为系统的数据存贮非常合适,一般都是采用串行外设接口(spi 总线接口)。flash 存贮器与eeprom根本不同的特征就是eeprom可以按字节进行数据的改写,而flash只能先擦除一个区间,然后改写其内容。一般情况下,这个擦除区间叫做扇区(sector),也有部分厂家引入了页面(page) 的概念。选择flash产品时,最小擦除区间是比较重要的指标。在写入flash时,如果写入的数据不能正好是一个最小擦除区间的尺寸,就需要把整个区间的数据全部保存另外一个存贮空间,擦除这个空间,然后才能重新对这个区间改写。大多数flash工艺更容易实现较大的擦除区间,因此较小擦除区间的flash 其价格一般会稍贵一些。此外,spi是标准的4线同步串行双向总线,提供控制器和外设之间的串行通信数据链路,广泛应用于嵌入式设备中。
赛灵思公司的新款fpga都支持spi接口。spi总线通过4根信号线来完成主、从之间的通信,典型的spi系统中常包含一个主设备以及至少一个从设备,在fpga应用场合中,fpga芯片为主设备,spi 串行flash为从设备。4个spi接口信号的名称和功能如表5-2所示。
表5-2 spi接口信号列表
一个主芯片和一个从芯片的通信接口如图5-24所示。fpga通过sclk控制双方通信的时序,在ss_n为低时,fpga通过mosi 信号线将数据传送到flash,在同一个时钟周期中,flash通过somi将数据传输到fpga芯片。无论主、从设备,数据都是在时钟电平跳转时输出,并在下一个相反的电平跳转沿,送入另外一个芯片。
图5-24 spi接口连接示意图
其中sclk信号支持不同的速率,一般常采用20mhz。通过spi 接口中的cpol和cpha这两个比特定义了4种通信时序。其中,cpol信号定义了sclk的空闲状态,当cpol为低时,sclk的低电平为空闲状态,否则其空闲状态为高电平;cpha定义了数据有效的上升沿位置,当其为低时,数据在第1 个电平跳转沿有效,否则数据在第2个电平跳转沿有效。其相应的时序逻辑如图5-25所示。
图5-27 cpha为低时spi的总线时序示意图
图5-28 cpha为高时spi的总线时序示意图
可以通过增加片选信号ss_n的位宽来支持多个从设备,ss_n的位宽等于从设备的个数。对于某时刻被选中的从设备和主设备而言,其读写时序逻辑和图5-29一样。
图5-29 多个从芯片的连接电路图
spi串行flash作为一种新兴的高性能非易失性存储器,其有效读写次数高达百万次,不仅引脚数量少、封装小、容量大,可以节约电路板空间,还能够降低功耗和噪声。从功能上看,可以用于代码存储以及大容量的数据和语音存储,对于以读为主,仅有少量擦写和写入时间的应用来说,支持分区( 多页) 擦除和页写入的串行存储是最佳方案。
2.spi串行flash配置电路
spi串行配置模式常用于已采用了spi串行flash prom的系统,在上电时将配置数据加载到fpga中,这一过程只需向spi串行发送一个4字节的指令,其后串行flash中的数据就像prom配置方式一样连续加载到fpga中。一旦配置完成,spi中的额外存储空间还能用于其它应用目的。
1)spi 配置电路
虽然spi接口是标准的4线接口,但不同的spi flash prom芯片采用了不同的指令协议。fpga芯片通过变量选择信号vs[2:0] 来定义fpga和spi flash的通信方式、fpga的读指令以及在有效接收数据前插入的冗余比特数。常用spi flash与fpga的有效操作配置如表5-3所示,其余的vs[2:0] 配置留有它用。
表5-3 赛灵思芯片所支持的spi flash存储器以及配置列表
从整体上看来,控制spi串行闪存比较容易,只需要使用简单的指令就能完成读取、擦除、编程、写使能/禁止以及其它功能。所有的指令都是通过4 个spi 引脚串行移位输入的。
图5-30 支持快读写的串行flash配置电路示意图
不同型号的fpga芯片具有数目不同的从设备片选信号,因此所挂的串行芯片数目也就不一样。例如:spartan-3e系列fpga芯片只有1位spi从设备片选信号,因此只能外挂一片spi串行flash芯片。在spi串行flash配置模式下,m[2:0]=3’b001。fpga 上电后,通过外部spi 串行flash prom完成配置,配置时钟信号由fpga芯片提供时钟信号,支持两类业界常用的flash。
图5-30给出了spartan3e系列fpga支持0x0b快速读写指令的stmicro 25系列prom的典型配置电路。其中的flash芯片需要flash编程器来加载配置数据;单片的fpga芯片构成了完整的jtag链,仅用来测试芯片状态,以及支持jtag在线调试模式,与spi配置模式没有关系。
从中可以看出,spi flash容量大,适合于大规模设计场合。但由于spi配置需要专门的flash编程器,且操作起来比较麻烦,不适合在产品研发阶段调试fpga芯片,因此一般还会添加jtag链专门用于在线调试。
图5-31 atmel spi串行flash配置电路示意图
图5-31给出了spartan3e系列fpga支持spi协议的atmel公司“c”、“d”系列串行flash芯片的典型配置电路。这两个系列的flash芯片可以工作在很低温度,具有短的时钟建立时间。同样,单片的fpga芯片构成了完整的jtag链,仅用来测试芯片状态,以及支持jtag在线调试模式,与spi 配置模式没有关系。
表5-3给出了spi配置接口的连线说明,每个spi flash prom采用的名字略有不同,spi flash prom的写保护信号和保持控制信号在fpga配置阶段是不用的。其中hold管脚在配置阶段必须为高,为了编程flash存储器,写保护信号必须为高。
如何处理重现使用仿真发现的死锁漏洞
物联网和边缘计算行业的发展在2019有困难也有自己的小美好
美国医院通过RFID技术管理新冠疫苗
2020年将影响我们生活的10种技术趋势
随着物联网和AI的发展,照明系统更加智能化
FPGA实战开发技巧(10)
基于DSP的新型汉字NAVTEX系统接收机的设计
基于无限射频识别技术RFID的人身份识别系统0设计
知情人:威马汽车董事长已不在国内
灌浆记录仪如何选购才不被坑
扬尘监测制造厂哪家更好?
DS2775-DS2778 Li+电池电量计IC
Akoustis首家公民宽带无线电服务客户送样3.6 GHz滤波器
中兴通讯参与北京PT展 五大展区呈现“新生长,新价值”
5家中标企业LFP电池组含税采购均价仅0.504元/Wh
霉菌培养箱的作用是什么,它的功能都有哪些
百度飞桨在Graphcore IPU上实现训练与推理全面支持
物联网的覆盖推动智能城市发展的必然性,你的城市变化了吗?
美国在区块链领域的具体行动探讨
告别误区:新手机第一次充电到底要多久?