在VIVADO下烧写ZC706板载FLASH的操作步骤

news/2024/9/22 19:35:42/

1,原理图分析

首先看原理图,我们兼容ZC706的板子有两片 FLASH,型号是S25FL128A,连接方式如下:

 

可以看到两片是分别接在了XC7Z045芯片的引脚上,是互不相干的并联方式,每个FLASH芯片支持X4模式,也就是4BIT并行传输模式,两片就成8BIT并行模式了,就是X8了。

2,烧写过程是先在ZYNQ里的PS运行程序,之后接收电脑通过JTAG口发来的数据烧写到FLASH里面。这就要求除了要烧写的文件外,一个基本ZYNQ_FSBL来初始化PS。这个就可以是我们用SDK生成的ZYNQ_FSBL。烧写的文件可以是BIN文件也可以是MCS文件。烧写在ZYNQ板子的FLASH里面用来启动的文件格式一般是由BOOTGEN工具生成的,工具可以同时生成BIN文件和MCS,一般说BIN文件比较方便,可以拷贝到SD卡启动也可以烧写到FLASH里启动。

这一段我要说的是我们要准备好两个文件:ZYNQ_FSBL 和要烧写的BIN文件。

这里给大家提供看了一个zynq_fsbl.elf文件。

链接:https://pan.baidu.com/s/1KpPe0iohjsZyP1H7FOIntQ 
提取码:3i2k  

2,板卡设置

首先要确保设置成JTAG模式,设置好了之后再插上电源或者开启开关。这里强调JTAG模式设置后要给板子从新上电后生效。

由于板载了USB转JTAG的下载器,所以只需要连接USB线到电脑。

 

上述连接成功后在你安装好VIVADO软件的电脑上的设备管理器里会有如下显示:

 

上述看上去是显示了两个设备,其实是接了一个下载器,要确保设备管理器里找到这两个设备再进行后面操作。

3,VIVADO操作

按照上述步骤连接好USB线,设置好模式,通电后打开Vivado。这里之进行FLASH的烧写,对VIVADO的版本没有要求。


 

 

 上图自动扫描到了ZYNQ芯片,如果没有自动连接上就需要点一下 AUTO CONNECT 或者REFRESH DEVICE 。

上图我们在芯片上点右键选择弹出的 添加“存储器件”,如下图:

 

这里的DUAL就是两片芯片,X8就是X4的两个芯片就成了X8,paralle 是两芯片独立。

 之后指定两个文件,

 

之后点OK等待烧写完毕。根据要烧写文件的大小,可能要烧写5,6分钟样子。

 

 至此烧写和校验就成功了。

4,flash启动

 如果烧写对应的启动程序,上电就可以正常运行了。一般看一个启动程序是否正常运行最初步判断方法就是看done灯是否被点亮(ZC706P板子上此灯靠近电源接口),这个灯表示PL部分被配置完毕了。

当然可以用flash来存储用户数据而非启动程序,就另当别论了。

我们板子和官方的ZC706是完全的兼容,硬件上一致,直接兼容运行BIN程序。所以以上分析和步骤同时适应于官方板子和我们的板子。使用我们的板子有任何技术问题可以通过售后客服找到本人协助支持。

另外还可以在SDK里面烧写FLASH基本步骤类似,只是在SDK里面应该是不需要指定FLASH型号,我们相关教程里面有这种方式,在此不专门介绍。


http://www.ppmy.cn/news/93977.html

相关文章

2、Ubuntu下安装mosquitto

1、mosquitto库是什么 mosquitto是一款实现了消息推送协议 MQTT v3.1 的开源消息代理软件,提供轻量级的,支持可发布/可订阅的的消息推送模式,使设备对设备之间的短消息通信变得简单。 在实验中使用mosquitto库函数来实现订阅与发布。 mosquit…

代码随想录算法训练营day53 | 1143.最长公共子序列,1035.不相交的线,53. 最大子序和 动态规划

代码随想录算法训练营day53 | 1143.最长公共子序列,1035.不相交的线,53. 最大子序和 动态规划 1143.最长公共子序列解法一:动态规划 1035.不相交的线解法一:动态规划 53. 最大子序和 动态规划解法一:动态规划解法二&am…

Systrace系列9 —— MainThread 和 RenderThread 解读

本文是介绍 Android App 中的 MainThread 和 RenderThread,也就是大家熟悉的主线程和渲染线程。文章会从 Systrace 的角度来看 MainThread 和 RenderThread 的工作流程,以及涉及到的相关知识:卡顿、软件渲染、掉帧计算等。 这里以滑动列表为例 ,我们截取主线程和渲染线程一…

vite的使用

私人博客 许小墨のBlog —— 菜鸡博客直通车 系列文章完整版,配图更多,CSDN博文图片需要手动上传,因此文章配图较少,看不懂的可以去菜鸡博客参考一下配图! 系列文章目录 前端系列文章——传送门 后端系列文章——传送…

一文读懂:什么是数组

大家好,我是三叔,很高兴这期又和大家见面了,一个奋斗在互联网的打工人。 什么是数组 Java是一种面向对象的编程语言,提供了许多数据结构来处理和组织数据。其中,数组是一种常见且强大的数据结构,是存放在…

递归的基本概念

分类: 直接递归 间接递归 如果递归函数中调用递归的语句为最后一个执行语句,则称这种递归为尾递归 递归使用条件 原问题可以划为一个或多个子问题,且子问题的求解方式与原问题相同,只是数量规模不同 递归的调用次…

Ubuntu crontab 遇到的sh脚本一些问题(手动执行可以,自动执行不行)

问题一: 问题描述: 在写一个脚本循环时候,出现“let:not found”,这是因为在ubuntu默认是指向bin/dash解释器的,dash是阉割版的bash,其功能远没有bash强大和丰富.并且dash不支持let和i等功能. 解决办法: 打开一个终端输入&#xf…

PGXC GaussDB

PGXCA PGXC(PostgreSQL eXtended Coordinator)是一个基于 PostgreSQL 架构的分布式数据库解决方案。它扩展了 PostgreSQL,为用户提供了在多个节点上分布式存储和处理数据的能力。 PGXC 的设计目标是将 PostgreSQL 扩展为能够处理大规模数据…