解决ZYNQ烧录QSPI FLASH问题:从硬件排查到芯片替换
创作时间:
作者:
@小白创作中心
解决ZYNQ烧录QSPI FLASH问题:从硬件排查到芯片替换
引用
CSDN
1.
https://blog.csdn.net/m0_73388790/article/details/145646460
本文详细记录了一次ZYNQ开发板QSPI FLASH烧录故障的排查过程。通过逐步排除硬件问题,最终发现是由于使用的GD25Q128芯片不被Vitis的uboot识别,更换为华邦W25Q128芯片后问题得以解决。文章对嵌入式硬件开发工程师具有重要参考价值。
问题背景
- FPGA核心:ZYNQ 7010 /ZYNQ 7020
- 开发板平台:自制7010开发板
- 开发软件:Vivado 2020.2 和 vitis 2020.2
- 问题现象:使用JTAG编程器,通过Vitis IDE向开发板QSPI FLASH烧录固件时,出现以下错误:
Zynq> ERROR: [Xicom 50-186] Error while detecting SPI flash device - unrecognized JEDEC id bytes: c8, 40, 18
具体错误代码如下:
U-Boot 2020.01-00107-g4a29a62 (Oct 13 2020 - 16:46:21 -0600)
Model: Zynq CSE QSPI SINGLE Board
DRAM: 256 KiB
WARNING: Caches not enabled
In: dcc
Out: dcc
Err: dcc
Zynq> sf probe 0 0 0
Warning: SPI speed fallback to 100 kHz
unrecognized JEDEC id bytes: c8, 40, 18
Failed to initialize SPI flash at 0:0 (error -2)
Zynq> ERROR: [Xicom 50-186] Error while detecting SPI flash device - unrecognized JEDEC id bytes: c8, 40, 18
Problem in running uboot
Flash programming initialization failed.
ERROR: Flash Operation Failed
排查过程
由于是自制开发板,因此需要逐步检查各个硬件部分:
检查固件加载选项:确认Flash Type选择为qspi-x4-single
检查设计和焊接:通过万用表检查MIO上下拉电阻,确认boot启动选项正常
检查核心工作状态:通过JTAG加载hello world程序,确认核心正常工作
检查晶振:移除33.333M有源晶振,确认晶振工作正常
经过以上检查,确认硬件部分没有问题。接下来分析软件配置:
错误类型分析
网上搜索发现类似错误主要有两类:
JEDEC ID为00,00,00
Zynq> ERROR: [Xicom 50-186] Error while detecting SPI flash device - unrecognized JEDEC id bytes: 00, 00, 00
这类问题通常是由于生成固件时选择的bootloader与硬件配置不匹配。
JEDEC ID为c8,40,18
Zynq> ERROR: [Xicom 50-186] Error while detecting SPI flash device - unrecognized JEDEC id bytes: c8, 40, 18 Problem in running uboot Flash programming initialization failed. ERROR: Flash Operation Failed
这类问题在Vivado 2020.2之前的版本可以通过在block设计中选中Feedback Clock来解决,但在2020.2之后的版本中已修复。
最终解决方案
参考相关资料后发现,问题可能在于使用的GD25Q128芯片不在uboot支持列表中。尝试更换为华邦W25Q128芯片后,问题得以解决:
SF: Detected w25q128 with page size 256 Bytes, erase size 64 KiB, total 16 MiB
device 0 offset 0x840000, size 0x8608
SF: 34312 bytes @ 0x840000 Written: OK
Zynq> Program Operation successful.
INFO: [Xicom 50-44] Elapsed time = 42 sec.
Flash Operation Successful
问题原因
使用的GD25Q128芯片不被Vitis的uboot识别,更换为华邦W25Q128芯片后问题解决。
参考资料
小麦大叔 uboot 增加不同型号的 nor-flash 调试笔记_norflash jedec id大全-CSDN博客
热门推荐
我国劳动法中年假如何规定
州市看点 | 昭通倾力治水护鱼,赤水河鱼类恢复至43种
久坐成疾:打工人如何在办公椅上悄悄变成脆皮?
福德宫不好就一定不好了吗?紫微斗数揭示命运真相
杨俊的生平有何事迹?最后被曹丕除掉是因为什么?
螃蟹为什么横着走路?
植物中的象征意义——自然与人类文化的交织
有点反感男朋友亲密接触怎么办
定积分的几何意义是什么 一般定理是什么
劳动合同与劳务合同傻傻分不清?这篇攻略告诉你答案!
如何正确设置端口转发?
公司注册进度查询指南:多种途径助您轻松掌握办理进度
歇后语解析:看三国掉泪——替古人担忧
基因编辑转染试剂盒的操作指南
万科的传奇终章:从民企到不死鸟的蜕变
汽车故障码查询指南:从入门到实践
在上海怎样获得车牌?获得沪牌需要满足哪些条件?
NK免疫细胞治疗费用解析:成本、影响因素及未来发展?
揭开干细胞的价格之谜(附全球已上市间充质干细胞药品价格汇总)
二三百的死飞自行车适合骑行吗
揭秘死飞:含义与安全性全解析
股市资金构成的分析与投资策略
基于STM32单片机的智能消毒柜控制系统设计
陕历博开展"博物馆印记——流动的文化盛宴"展示活动
看见看不见的:摩尔纹,自然界与科技间的微妙对话!
1K分辨率是多少
1K分辨率究竟是多少?解析其定义与应用
如何优化晶圆的切片工艺提高芯片良率
脑积水的影响及治疗
古代对金子价值认知的探索