从去年开始一直在搞国产化,这是第二次使用国徽的FLASH芯片了。采用国徽的FPGA芯片加国徽的FLASH加载芯片SM25QH256M。

第一次使用XILINX的FPGA加SM25QH256M,在VIVADO中生成MCS文件,使用Hardware manager下载程序,添加FLASH,下载失败。当时直接更换了镁光的FLASH直接下载成功。但是问题还在这个地方,并没有解决。

最近又开始使用国徽的SM25QH256M,也有时间来看这个问题。

阅读厂家提供的文件手册,其中有这么一段话说明了使用该芯片的注意事项。

在SPI FLASH的用途中,部分客户会用来作为FPGA的配置芯片使用,但是不是所有公司的SPI FLASH都在FPGA厂家所支持的器件列表内,我司器件亦是如此。所以如果客户需要这样使用,需要采取以下方法来进行处理。

  • 对于 altera 公司的 FPGA,必须先将配置程序通过烧录器离线完成烧录后才能焊接到系统板上使用,我司 SPI Flash 不支持 altera FPGA 配置芯片的在线烧录。
  • 对于 Xilinx公司的FPGA,需要通过 Xilinx 公司的 iMPACT 工具进行烧录。Xilinx 的 iMPACT 工具在选择对应支持的 SPI 设备列表时,需要检测其 device ID是否是其所支持的产品列表中的设备,由于我司 SPI Flash 不在其支持列表内,所以必须绕过其检测 device ID 的流程,才能进行后续的操作,流程如下:
  • 添加计算机系统环境变量(以 Win7 为例),右键计算机,点击属性;
  • 在左边选择高级系统设置,进入系统属性,再选择高级中的环境变量;
  • 新建环境变量,变量名为 XIL_IMPACT_SKIPIDCODECHECK,变量值为 1;
  • 点击确定并重启电脑。
  • 重新启动 iMPACT 工具,选择容量一致的镁光公司的 N25Q 系列产品进行烧录,如下图所示:

  • 通过以上操作过程,我司 SPI Flash 可支持 Xilinx FPGA 配置芯片的在线烧录,正常使用。

在按照文件所示的操作进行设置后,对FLASH进行烧录,第一次烧录过程中出现了如下错误导致烧录失败。

done.'1': Verification completed.'1':Programming in x4 mode.PROGRESS_END - End Operation.Elapsed time =   1070 sec.// *** BATCH CMD : setMode -pff// *** BATCH CMD : setMode -pff// *** BATCH CMD : setMode -pff// *** BATCH CMD : setMode -bs// *** BATCH CMD : setMode -bs// *** BATCH CMD : setMode -bs'1': Configuration data download to FPGA was not successful. DONE did not go high, please check your configuration setup and mode settings.

‘1’配置数据下载到FPGA不成功。 DONE没有拉高,请检查您的配置设置和模式设置。  

程序下载不成功,观察FPGA的DONE信号,在impact下下载FLASH。失败后DONE信号一直拉低,LED灯未闪烁。一直不知道原因。在官网下载xapp586 Using SPI Flash with 7 Series FPGA 。阅读对比原理图。

  1. M[2:0]信号,应该设置为FPGA为SPI主机,即M[2:0]=001。一致。
  2. DONE信号,高指示配置完成。0,FPGA未配置,1,FPGA已配置。观察,DONE信号需要使用外部上拉电阻。已使用。
  3. INT_B,需要使用外部上拉电阻。已使用。
  4. CCLK信号必须为干净的信号。直接从FPGA到FLASH信号,一致。
  5. 7系列FPGA的VCCO必须与SPI的VCC兼容。一致。

这些情况都是一致的。问题可能出现在SPI FLASH配置选项中。

原配置中,对SPI的配置使用了如下配置。

set_property CFGBVS VCCO [current_design]
set_property CONFIG_VOLTAGE 3.3 [current_design]
set_property CONFIG_MODE SPIx4 [current_design]
set_property BITSTREAM.CONFIG.CONFIGRATE 50 [current_design]
set_property BITSTREAM.CONFIG.SPI_BUSWIDTH 4 [current_design]
set_property BITSTREAM.CONFIG.UNUSEDPIN PULLUP [current_design]
set_property BITSTREAM.CONFIG.SPI_FALL_EDGE YES [current_design]
set_property BITSTREAM.GENERAL.COMPRESS TRUE [current_design]

设置电源为3.3v。

SPI模式为SPIx4传输。

设置SPI传输的时钟为50mhz

设置从SPI闪存读取时使用的数据宽度为4位。

未使用的引脚全部上拉。

在时钟下降沿采样数据。

在软件中自动压缩BIT文件。

对比XAPP586里面的资料。

对于SPI FLASH为256Mb或者更大时,这个-g spi_32bit_addr需要设置为YES,这指示FPGA传输更大的闪存设备所需的更大的地址空间。我们使用FLASH空间为256Mbits,即32MB的,大于等于256Mb。添加XDC设置。

下面在XDC文件中加入这句话。

set_property BITSTREAM.CONFIG.SPI_32BIT_ADDR YES [current_design]

生成bit流成功后,使用VIVADO生成MCS文件。

启动IMPACT下载MCS文件。下载成功。

国徽FLASH SM25QH256M烧录问题总结相关推荐

  1. 向单片机flash中烧录自定义数据的方法

    自己做项目碰到和总结的一个问题,感觉挺有用的,贴出来,让后来的朋友少走弯路! 关键词:nrf51822   hex文件格式详解   flash读写 hex文件创建和烧录 引言     答题器项目生产时 ...

  2. #Jetson-NX踩坑记--Etcher Flash Failed 烧录失败的解决办法

    #Jetson-NX踩坑记--Etcher Flash Failed 烧录失败的解决办法 问题 解决方案 问题 根据 官方教程 使用 Etcher 烧录 Jetson NX 的镜像文件时总是失败,如图 ...

  3. 335平台部分flash用烧录器烧写不能启动问题

    问题题背景描述: 335平台在 更换1gflash 型号后 ,有29F8G08ABABA 更换为29F8G08ABACA 后.部分flash 存在坏块. 用烧录器烧写后部分核心板不能能启动.但是用sd ...

  4. H7-TOOL脱机烧录器支持1拖4,支持新唐,GD32,MM32,AT32,APM32,CX32,STM32,STM8,i.MX RT,W7500,外置Flash等2020-10-27

    大家在使用中,有什么建议,欢迎反馈. 脱机烧录视频效果展示: http://v.qq.com/x/page/p30628h2ou7.html 多款STM8+STM32产品混合烧录展示: http:// ...

  5. NAND FLASH编程器烧录详解

    NAND FLASH编程器_NAND FLASH烧录器 SUPERPRO5000是西尔特出品的新一代USB接口独立式智能极速NAND FLASH编程器.具有编程速度快,烧录稳定,软件集成度高,更智能化 ...

  6. nuc980 rt-thread spinand 程序烧录及Flash分区说明

    1. 板载25N01G 128MB spi flash 分三个区 8M系统.56M保留.64M用于uffs文件系统(挂载到/mnt/filesystem) //boad_dev.c struct rt ...

  7. SPI flash烧录器EZP2019试用记录

    昨天一个HW同事购买了一个EZP2019,使用不了安装不了驱动,请我看下, 首先询问tb卖家索要驱动,卖家给的是EZP2010的(看来卖家也不懂) 一开始我也还以为是EZP2010,所以开始安装驱动, ...

  8. ESP8266专题-为ESP8266烧录固件(ESP Flash Tool)

    先到安信可官网下载flash的烧录工具 硬件方面的准备,就是测试一下ESP8266模块是否是OK的,复位后串口的波特率设置为74800,应该可以收到如下字符串. 注意这里这引脚配置,需要将GPIO0拉 ...

  9. USB2DEMON烧录DBAU1200开发板flash入门教程

    //======================================================================== //TITLE: //    USB2DEMON烧 ...

最新文章

  1. Python中fnmatch模块的使用
  2. 实验管理系统java,大学生创新实验室信息管理系统 java+mysql
  3. Intel Optane(tm) Memory Pinning 无法加载DLLiaStorAfsServiceApi.dll:找不到指定模块。(异常来自HRESULT:0x8007007E)。
  4. jenkins定时任务
  5. Spark的RDD操作之Join大全
  6. .NET Core 使用 Consul 服务注册发现
  7. php中文网 日历,php小型日历类库
  8. java 全局代码区_MyEclipse设置全局编码
  9. mac打开chm文件_Mac无法打开TXT文件怎么办?Mac无法打开txt文档的解决方法
  10. elementui table某一列是否显示_汇编语言--键盘扫描及显示实验(含代码解释)
  11. 转载:python能用来做什么?
  12. 使用PHP连接POSTGRES数据库
  13. Fantastical 2如何编辑事件?
  14. Storm入门之第8章事务性拓扑
  15. 邮件中html格式转换,如何在宏中将邮件格式更改为html?
  16. fiddler4+雷电模拟器4.0.82抓包设置
  17. matlab中squareg,matlab中y=square(t,DUTY)的用法
  18. python实战:爬取优美图库,将图片格式的本地存储
  19. Mui的APPLOGO数字角标小米问题
  20. 谷粒商城项目学-分布式基础

热门文章

  1. android 展示pdf文件
  2. 全景看房vr全景展示,获得360度全景式视角实时交互体验
  3. emui11是鸿蒙系统吗,搭载鸿蒙内核的EMUI11.1机型曝光了,快看有你用的吗
  4. 如何给视频添加水印logo?
  5. 辉太郎看前端(js异步宏任务和微任务)
  6. python 识别图像中的文字(数字)之python图文识别
  7. PYNQ官方镜像配置
  8. cisco路由器忘记密码恢复
  9. 软件工程师的试炼之地:53道Python面试问答
  10. R语言条形图的制作--barplot()