问小白 wenxiaobai
资讯
历史
科技
环境与自然
成长
游戏
财经
文学与艺术
美食
健康
家居
文化
情感
汽车
三农
军事
旅行
运动
教育
生活
星座命理

解决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

排查过程

由于是自制开发板,因此需要逐步检查各个硬件部分:

  1. 检查固件加载选项:确认Flash Type选择为qspi-x4-single

  2. 检查设计和焊接:通过万用表检查MIO上下拉电阻,确认boot启动选项正常

  3. 检查核心工作状态:通过JTAG加载hello world程序,确认核心正常工作

  4. 检查晶振:移除33.333M有源晶振,确认晶振工作正常

经过以上检查,确认硬件部分没有问题。接下来分析软件配置:

错误类型分析

网上搜索发现类似错误主要有两类:

  1. JEDEC ID为00,00,00

    Zynq> ERROR: [Xicom 50-186] Error while detecting SPI flash device - unrecognized JEDEC id bytes: 00, 00, 00
    

    这类问题通常是由于生成固件时选择的bootloader与硬件配置不匹配。

  2. 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博客

© 2023 北京元石科技有限公司 ◎ 京公网安备 11010802042949号