FPGA实战开发技巧(10)

网友投稿 314 2022-11-18

FPGA实战开发技巧(10)

表5-2 SPI接口信号列表

图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一样。

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。

从中可以看出,SPI Flash容量大,适合于大规模设计场合。但由于SPI配置需要专门的Flash编程器,且操作起来比较麻烦,不适合在产品研发阶段调试FPGA芯片,因此一般还会添加JTAG链专门用于在线调试。

图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存储器,写保护信号必须为高。

版权声明:本文内容由网络用户投稿,版权归原作者所有,本站不拥有其著作权,亦不承担相应法律责任。如果您发现本站中有涉嫌抄袭或描述失实的内容,请联系我们jiasou666@gmail.com 处理,核实后本网站将在24小时内删除侵权内容。

上一篇:Hadoop 的安装和使用(基于Linux~Ubuntu的虚拟机)
下一篇:Hadoop是不是必须在linux上运行?(根本原因是操作系统Linux的权限开放优势)
相关文章

 发表评论

暂时没有评论,来抢沙发吧~