FPGA中SPI复用配置的编程方法
SPI(Serial Peripheral Interface,串行外围设备接口)是一种高速、全双工、同步的通信总线,在芯片的引脚上只占用4根线,不仅节约了芯片的引脚,同时在PCB的布局上还节省空间。正是出于这种简单、易用的特性,现在越来越多的芯片集成了这种通信协议。
1 SPI配置介绍
1.1 Spartan-3E SPI配置流程
SPI方式是通过符合SPI接口时序的第三方SPI Flash对FPGA进行加载。它适合作为FPGA硬件结构的bit文件保存介质,如果应用软件工程编译后的代码较小,保存在同一片SPI Flash中(即复用SPI Flash)无疑是可行的最廉价方案。
由于本设计软件工程规模较小,所以利用此复用SPI Flash方式对FPGA进行配置,既保存FPGA配置的bit文件,也保存应用软件工程的bit文件。
系统在上电或向PROG_B引脚发出低脉冲后,FPGA芯片经过一个初始化序列清空内部FPGA配置存储器。此序列开始时,DONE和INIT_B引脚均转为低。初始化完成后,INIT_B引脚转为高,并采样芯片的配置模式及变量选择引脚。
SPI模式下,FPGA对变量选择(VS[2:0])引脚采样,以确定发出哪个SPI命令序列。当初始化之后发出INIT_B信号时,模式引脚和变量选择引脚都必须处在正确的逻辑级,以确保正确采样。
在变量选择引脚选择SPI命令集之后,FPGA将CSO_B选择信号置为低,并且开始通过FPGA的CCLK引脚对SPI Flash存储器进行时钟控制。接着发出8位读命令后跟24位起始地址0x000000和目标命令集的适量虚拟字节。FPGA从地址0开始读取SPI Flash存储器阵列,直到读完所需的配置位数。如果从存储器件读取到有效比特流,则发DONE信号,以指示FPGA配置成功。图1为SPI配置方式的时序。
图2是AT45DB161D SPI Flash的配置接口。这种配置方式只占用了FPGA芯片的4个引脚,而且配置成功之后,所有SPI引脚都成为可用的用户I/O引脚,这就节省了FPGA的引脚资源。
1.2 SPI FIash存储器的复用
复用SPI Flash是指既用它来保存硬件配置文件、Bootloader引导程序还用来保存用户应用程序。在加载阶段,FPGA自动从SPI Flash中读取硬件配置bit文件及Bootloader程序进行配置到片内BRAM中运行。当完成加载后,FPGA内部逻辑启动,通过运行的Bootloader程序读取SPI Flash中的用户应用程序,并写到外部SDRAM的相应位置,最后Bootloader程序切换指令指针到SDRAM指定位置,在外部的SDRAM中开始执行应用程序。
图3给出了本系统中复用SPI Flash嵌入式系统结构图,用EDK中的opb_sdram连接外部SDRAM,用opb_spi连接SPI Flash(AT45DB161D),通过Bootloader软件程序实现从SPI Flash中复制用户应用程序到SDRAM中,然后在SDRAM中运行。但是,Boot-loader。在系统上电时会通过FPGA芯片的配置引脚首先加载到BRAM中运行,这样就可以实现上电自动加载启动程序
相关文章
- 2022-06-15恒温槽(炉)温场检测/校准的几点技巧
- 2023-07-17OMRON柔性运动控制器FQM1在高速绕线机中应用的探讨
- 2023-09-06清华大学精密仪器环境振动影响评价
- 2021-12-25分布式Zigbee多节点传感器数据融合轨迹关联
- 2023-08-05电导变送器的研究与应用
请自觉遵守互联网相关的政策法规,严禁发布色情、暴力、反动的言论。