Zynq 7000 系列中成功执行BootROM的条件

Zynq 7000设备的启动需要正确的电压序列和I/O引脚控制。BootROM的流程由复位类型、启动模式引脚设置以及启动映像来控制。BootROM对所选启动设备的引脚连接有特定的要求。
Zynq 7000 SoC设备具有电源、时钟和复位要求,这些要求必须得到满足,才能成功执行BootROM。

1 电源要求

PS和PL的BootROM电源要求如表6-1所示。
在启动过程中,Zynq 7000的PS(处理系统)和PL(可编程逻辑)部分都需要特定的电源配置。BootROM的启动要求PS和PL的电源都正确配置,以确保系统能够正常启动。此外,对于时钟信号和复位操作也有严格的要求,这些都必须在启动过程中得到满足。
在这里插入图片描述
在BootROM执行的早期阶段,BootROM会检查PL是否已上电。如果PL没有上电,BootROM将继续执行。如果PL已上电,BootROM将启动清理周期(清理操作可能包括内存清理、寄存器设置、硬件初始化等,这些步骤对于确保系统的稳定性和可靠性至关重要)。BootROM会等待最多90秒让清理过程完成。如果在这段时间内清理没有完成,那么会发生安全锁定。

如果BootROM需要PL,它会等待最多90秒让PL上电。如果PL在这个时间范围内没有上电,那么系统将关闭,不会提供错误代码。

PL掉电序列包括停止使用PS和PL之间的所有信号、禁用电压电平移位器以及关闭PL的电源。

2 时钟与PLL

PS_CLK参考时钟被路由到设备的多个部分,包括三个PS时钟PLL。PS_CLK的频率会影响设备的启动时间。PLL会将PS_CLK倍频,为各种系统时钟模块生成高频时钟。在需要时,PLL可以被旁路,以便将PS_CLK频率直接传递到系统时钟模块。

如果PLL被启用,那么在启用PLL之前,PS_CLK必须稳定,并且在整个过程中都必须保持稳定。时钟频率必须在数据表指定的操作范围内。

如果PLL被旁路,PS_CLK可以以尽可能慢的速度切换,直至其额定输入频率。这可以用于单步启动过程、用软件控制时钟,或在低时钟频率下操作系统。在低时钟频率下操作系统可能会排除使用设备中的一些模块(例如,USB ULPI时钟的频率必须低于CPU_1x时钟)。

注意:在BootROM执行期间,所有速度等级规格的最大频率为500 MHz。

3 复位操作

3.1 系统复位

有两种类型的系统复位:POR和非POR。

POR复位会重置整个系统,包括所有寄存器。除了eFuse和BBRAM之外,所有状态都会丢失。

非POR复位会被记录在slcr.REBOOT_STATUS寄存器中。非POR复位也会导致BootROM执行,但BootROM会保留关于前一个启动的安全级别的知识,存储在devcfg.CTRL [SEC_EN]位中。

非POR复位的来源包括PS_SRST_B引脚和内部系统复位。

3.2 外部复位信号引脚

有两个外部复位引脚,PS_POR_B和PS_SRST_B:

PS_POR_B
唯一用于采样引导模式引脚捆绑电阻的复位。对于上电序列,PS_POR_B输入必须保持低电平,直到VCCPINT、VCCPAUX和VCCO_MIO0达到其最小工作电平,以确保PS eFUSE的完整性。

对于掉电序列,在VCCPINT达到0.80V之前,必须满足以下四个条件中的至少一个(条件必须保持为真,直到VCCPINT降至0.40V,以确保PS eFUSE的完整性):
①PS_POR_B输入被置为低电平,
②PS_CLK输入的参考时钟被禁用,
③VCCPAUX低于0.70V,
④VCCO_MIO0低于0.90V。

在最后一个PL电源开始上升时,PS_POR_B不得取消断言。在此窗口期间断言PS_POR_B可能导致锁定事件。

PS_SRST_B
用于强制系统复位。它可以被绑定或拉高,并且在PS电源上升期间可以保持高电平。PS_SRST_B复位是非POR复位。

在BootROM从POR复位执行时,不得断言PS_SRST_B信号,否则会发生锁定事件,阻止BootROM完成系统启动过程。要从这种类型的锁定中恢复,必须断言PS_POR_B复位。Boot ROM完成执行并移交给FSBL/用户应用程序所需的时间取决于多个因素。有关如何确定特定用户配置的启动时间的详细信息,请参阅“启动时间参考”。

3.3复位信号时序

启动设备所需的复位时序如图6-4所示。如果在BootROM执行期间断言PS_SRST_B,则会发生系统锁定,而不会生成错误代码。
在这里插入图片描述
3.4 内部复位

内部复位都是非POR复位。包括

• 软件控制复位:向slcr.PSS_RST_CTRL [SOFT_RST]写入1。

• 看门狗定时器:AWDT0、AWDT1和SWDT控制器。

• JTAG接口和调试。

4 引导模式引脚设置

有7个引导模式捆绑引脚,它们使用MIO引脚[8:2]在板上进行硬件编程。这些引脚在PS_POR_B去断言后不久由硬件采样,并将它们的值写入软件可读寄存器以供BootROM和用户软件使用。

板上的硬件必须将每个捆绑引脚MIO[8:2]连接到20kΩ的上拉或下拉电阻。模式引脚的编码如表6-4所示。上拉电阻表示逻辑1,下拉电阻表示逻辑0。
在这里插入图片描述
五个引脚BOOT_MODE[4:0]用于选择引导模式、JTAG链配置以及是否旁路PLL。这些引脚采样的值被写入slcr.BOOT_MODE的[BOOT_MODE]和[PLL_BYPASS]位字段。

另外两个引脚VMODE[1:0]用于选择两个MIO电压组的电压信号电平。这些引脚采样的值被写入slcr.GPIOB_DRVR_BIAS_CTRL的[RB_VCFG]和[LB_VCFG]位字段。VMODE设置由BootROM用于最初设置MIO_PIN_{53:00}寄存器以选择所选的I/O信号标准。VMODE[0]控制MIO引脚15:0,而VMODE[1]控制MIO引脚53:16。上拉使BootROM选择LVCMOS18。下拉选择LVCMOS33,它与LVCMOS25兼容。

FSBL/用户代码可以更改JTAG链、PLL和MIO引脚的I/O电压标准的初始引导模式设置,这些设置基于单个MIO引脚。

5 启动设备的I/O引脚连接

有些引脚连接是所有启动模式都必需的,而其他连接则取决于启动模式引脚捆绑和BootROM Header信息。在BootROM执行完毕后,用户代码可以根据需要重新配置I/O引脚连接。

对于所有启动配置,以下连接是必要的:
①PS电源供应
②PS_POR_B、PS_SRST_B和PS_CLK_B

对于特定的启动设备,MIO连接如下:
①Quad-SPI(自动检测1、2、4或8位接口)
②SD存储卡(SDIO 0,MIO引脚40-47)
③NAND(自动检测8或16位接口)
④NOR(CS 0)
⑤JTAG(PLJTAG接口),通常用于级联模式

这些连接确保了启动设备与处理器之间的正确通信和数据传输。例如,Quad-SPI接口用于高速读写和擦除数据,而SD存储卡接口则用于与SD卡进行数据交换。NAND和NOR接口分别用于连接不同类型的闪存芯片。JTAG接口则用于调试和编程。

在设计和配置这些连接时,需要仔细考虑引脚的功能和特性,以确保系统的稳定性和性能。同时,也需要注意不同启动模式可能需要不同的引脚连接配置,因此在实际应用中需要根据具体需求进行选择和调整。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mfbz.cn/a/579870.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

java:SpringBootWeb请求响应

Servlet 用java编写的服务器端程序 客户端发送请求至服务器 服务器启动并调用Servlet,Servlet根据客户端请求生成响应内容并将其传给服务器 服务器将响应返回给客户端 javaweb的工作原理 在SpringBoot进行web程序开发时,内置了一个核心的Servlet程序DispatcherServlet,称之…

RocketMQ快速入门:namesrv、broker、dashboard的作用及消息发送、消费流程(三)

0. 引言 接触rocketmq之后,大家首当其冲的就会发现需要安装3个组件:namesrv, broker, dashboard,其中dashboard也叫console,为选装。而这几个组件之前的关系是什么呢,消息发送和接收的过程是如何传递的呢,…

应用实战 | 别踩白块小游戏,邀请大家来PK挑战~

“踩白块会输”是一个简单的微信小程序游戏,灵感来自当年火热的别踩白块游戏,程序内分成三个模块:手残模式、经典模式和极速模式,分别对应由易到难的三种玩法,可以查看游戏排名。动画效果采用JS实现,小程序…

Spark-机器学习(6)分类学习之支持向量机

在之前的文章中,我们学习了分类学习之朴素贝叶斯算法,并带来简单案例,学习用法。想了解的朋友可以查看这篇文章。同时,希望我的文章能帮助到你,如果觉得我的文章写的不错,请留下你宝贵的点赞,谢…

基于YOLOV8+Pyqt5无人机航拍太阳能电池板检测系统

1.YOLOv8的基本原理 YOLOv8是一种前沿的目标检测技术,它基于先前YOLO版本在目标检测任务上的成功,进一步提升了性能和灵活性,在精度和速度方面都具有尖端性能。在之前YOLO 版本的基础上,YOLOv8 引入了新的功能和优化,…

SpringBoot 常用注解总结超详细(面试)

目录 一、组件相关🎁 Controller Service Repository Component 二、依赖注入相关🍉 Autowired Resource 根据类型注入(By Type) 根据名称注入(By Name) 区别 Qualifier Resource 和 Qualifie…

C语言浮点型数据在内存中的存储及取出等的介绍

文章目录 前言一、浮点型在内存中的存储二、浮点数存储规则三、浮点数在内存中的存储(32位)float类型四、浮点数在内存中的存储(64位)double类型五、指数E从内存中取出分成三种情况1. E不全为0或不全为12. E全为03. E全为1 六、有…

设计模式之工厂模式FactoryPattern(二)

一、简单工厂 package com.xu.demo.factoryPattern;/*** 简单工厂模式类*/ public class SimpleFactoryPattern {public static Phone create(String name) {//根据输入对象名称判断返回相匹配的对象if("IPhone".equals(name)) {//返回对象return new IPhone();}else…

Java算法--队列

队列 队列介绍 队列是一个有序列表,可以用数组或是链表来实现。遵循先入先出的原则。即:先存入队列的数据,要先取出。后存入的要后取出 数组模拟队列思路 队列本身是有序列表,若使用数组的结构来存储队列的数据,则…

自动驾驶新书“五一”节马上上市了

我和杨子江教授合写的《自动驾驶系统开发》终于在清华大学出版社三校稿之后即将在五一节后出版。 清华大学汽车学院的李克强教授和工程院院士撰写了序言。 该书得到了唯一华人图灵奖获得者姚期智院士、西安交大管晓宏教授和科学院院士以及杨强教授和院士等的推荐,…

git变更远端仓库名之后如何修改本地仓库配置的另一种方法?(删remote指针、添加、绑定master)

背景 如果某个远端的仓库地址变化后,本地仓库可以修改对应的remote。 之前谈过几种方法,比如重新设置一个新的remote的指针,绑定到新地址。然后删除origin,然后把新指针mv到origin。比如直接seturl修改(git remote se…

基于HTML+CSS+JavaScript的表白网页

基于HTMLCSSJavaScript的表白网页 前言效果截图(为GIF格式)部分代码领取源码下期更新预报 前言 大部分人都有喜欢的人,学会这个表白代码,下次表白你肯定会成功。 效果截图(为GIF格式) 部分代码 index.htm…

使用 Python 和 DirectShow 从相机捕获图像

在 Python 中使用 OpenCV 是视觉应用程序原型的一个非常好的解决方案,它允许您快速起草和测试算法。处理从文件中读取的图像非常容易,如果要处理从相机捕获的图像,则不那么容易。OpenCV 提供了一些基本方法来访问链接到 PC 的相机(通过对象),但大多数时候,即使对于简单的…

在no branch上commit后,再切换到其他分支,找不到no branch分支的修改怎么办?

解决办法 通过git reflog我们可以查看历史提交记录,这里的第二条提交(fbd3ea8)就是我在no branch上的提交。 再通过git checkout -b backup fbd3ea8,恢复到上次提交的状态,并且为其创建个分支backup,此时…

B+tree - B+树深度解析+C语言实现+opencv绘图助解

Btree - B树深度解析C语言实现opencv绘图助解 1. 概述2. Btree介绍3. Btree算法实现3.1 插入分裂 3.2 删除向右借位(左旋)向左借位(右旋)合并 3.3 查询和遍历3.3.1 查询3.3.2 遍历 3.4 优化优化1(匀key)优化2(升级key)优化3(拓展兄…

池化整合多元数据库,zData X 一体机助力证券公司IT基础架构革新

引言 近期,云和恩墨 zData X 多元数据库一体机(以下简称 zData X)在某证券公司的OA、短信和CRM业务系统中成功上线,标志着其IT基础架构完成从集中式存储向池化高性能分布式存储的转变。zData X 成功整合了该证券公司使用的达梦、O…

SEO之链接原理(三)

初创企业需要建站的朋友看这篇文章,谢谢支持: 我给不会敲代码又想搭建网站的人建议 (接上一篇) 4、 Google PR PR是 PageRank 的缩写。Google PR理论是所有基于链接的搜索引擎理论中最有名的。 PR是Google创始人之一拉里佩奇发明…

二维数组打印菱形(C语言)

一、N-S流程图&#xff1b; 二、运行结果&#xff1b; 三、源代码&#xff1b; # define _CRT_SECURE_NO_WARNINGS # include <stdio.h>int main() {//初始化变量值&#xff1b;char arr[5][5] { { , , *, , }, { , *, *, *, },{*, *, *, *, *}, { , *, *, *, …

【基于BP神经网络的多输入分类预测】

文章目录 前言环境准备导入数据划分训练集和测试集数据归一化建立模型设置训练参数训练网络仿真测试数据反归一化和排序性能评价结果可视化混淆矩阵 前言 在数据科学和机器学习领域&#xff0c;对复杂数据集进行高精度的分类预测是一个常见且关键的任务。本文通过MATLAB代码示例…

python3GUI--本地简易音乐播放器By:PyQt5(附下载地址)

文章目录 二&#xff0e;展示1.启动2.添加音乐&播放3.软件风格 三&#xff0e;软件整体功能-览四&#xff0e;实现原理1.界面设计2.音频播放3.打包 五&#xff0e;总结 博客二连发&#xff0c;继续为大家带来我使用PyQt5开发的软件&#xff0c;本次为大家分享我写的一款本地…