IT数码 购物 网址 头条 软件 日历 阅读 图书馆
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
图片批量下载器
↓批量下载图片,美女图库↓
图片自动播放器
↓图片自动播放器↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁
 
   -> 嵌入式 -> 修改ZCU104的VADJ -> 正文阅读

[嵌入式]修改ZCU104的VADJ

引子

ZCU104开发板的FMC LPC接口的电平与开发板VADJ电压相同,默认情况下该电压为1.2V,该电压不能满足我在实际使用中的需求(1.8V),因此在使用FMC时需要对VADJ进行设置才可以正常使用。这里主要针对JTAG模式和PYNQ模式时的VADJ电压永久设置方法进行介绍。
本博客可以看作对该博客的补充,写完才发现该博客也对修改VADJ的方法进行了介绍,读者如果感兴趣也可以再看看该博客

JTAG

如果需要将ZCU104在JTAG模式下的VADJ修改为固定电压,请参考该pdf

PYNQ

该提问中有提到在JTAG模式下已经将VADJ设置为1.8V,但是在使用PYNQ(SD卡启动模式)时VADJ的电压会变为1.2V,在实际使用PYNQ时我也遇到了相同的问题。为了解决该问题,一个最直接的思路就是在PYNQ的linux系统中对VADJ进行修改,但是根据该回答可以PYNQ无法做到这一点,但是其还提供了一种修改FSBL的思路,该博客提供了另外的两种思路,但是并没有具体说明应该怎么操作。

考虑到修改FSBL方法可以参考的资料较多,我使用了修改FSBL方法来改变VADJ。下面将对该方法进行介绍,如果不想看方法介绍,文末也提供了编译好的BOOT.BIN,直接下载该文件替换即可。

1、环境准备

本次修改是基于PYNQ 3.0版本,因此Petalinux的版本为2022.1。
在进行Patch前需要先去这里下载Petalinux 2022.1和ZCU104对应的BSP文件,并使用下面的指令完成petalinux的安装:

mkdir -p <path_of_petalinux>
./petalinux-v2022.1-04191534-installer.run -d <path_of_petalinux> -p aarch64

2、对FSBL进行patch

首先参考How to patch the FSBL来生成Patch文件:

git clone https://github.com/Xilinx/embeddedsw.git
cd embeddedsw
git checkout xilinx_v2022.1
  • 修改embeddedsw/lib/sw_apps/zynqmp_fsbl/src/xfsbl_board.c文件:
UStatus = XFsbl_ReadMinMaxEepromVadj(I2c0InstancePtr, &LpcMin, &LpcMax);

修改为:

UStatus = XFsbl_ReadMinMaxEepromVadj(I2c0InstancePtr, &LpcMin, &LpcMax);
LpcMin = 1800U;
LpcMax = 1800U;
  • embeddedsw目录执行下面的指令生成patch文件fsbl.patch
git diff > fsbl.patch

3、创建新的petalinux工程

  • 配置petalinux环境:
source <path_of_petalinux>/settings.sh
  • 根据BSP文件创建petalinux工程,工程在后续重新编译时大概需要60G容量,因此需要保证硬盘空间足够:
mkdir -p <dir_of_petalinux_project>
cd <dir_of_petalinux_project>
petalinux-create -t project -s <dir_of_bsp>/xilinx-zcu104-v2022.1-04191534.bsp -n <project_name>

4、 将patch应用到新建的工程

2022.1中对petalinux project的FSBL进行的patch方法与旧版不同,参考How to Patch the FSBL in a PetaLinux Project

cd <project_name>
mkdir -p ./project-spec/meta-user/recipes-bsp/fsbl/files
mkdir -p ./project-spec/meta-user/recipes-bsp/embeddedsw/files
cp <path_of_fsbl.patch> ./project-spec/meta-user/recipes-bsp/fsbl/files
cp <path_of_fsbl.patch> ./project-spec/meta-user/recipes-bsp/embeddedsw/files
vim ./project-spec/meta-user/recipes-bsp/fsbl/fsbl_%.bbappend
vim ./project-spec/meta-user/recipes-bsp/embeddedsw/fsbl-firmware_%.bbappend

上面新创建的fsbl_%.bbappendfsbl-firmware_%.bbappend文件内容均为:

SRC_URI:append = " \
        file://fsbl.patch \
        "
  
FILESEXTRAPATHS:prepend := "${THISDIR}/files:"
  
#Add debug for FSBL(optional)
XSCTH_BUILD_DEBUG = "1"
  
#Enable appropriate FSBL debug or compiler flags
YAML_COMPILER_FLAGS:append = " -DXPS_BOARD_ZCU104"

5、重新生成BOOT.BIN

使用下面的指令重新生成BOOT.BIN,该过程中需要下载大量和编译大量软件包,下载的数量量约为20GB

petalinux-build -x mrproper
petalinux-build -c kernel
petalinux-build -c bootloader
petalinux-package --boot --u-boot --force

编译完成后的BOOT.BIN文件位于<project_name>/images/linux文件夹中,将该文件替换掉SD卡PYNQ分区中的同名文件即可,在替换前建议将SD卡中的BOOT.BIN进行备份。使用该方法生成的BOOT.BIN对于PYNQ v2.7和v3.0都能适用。
如果不想编译,该BOOT.BIN也可以在这里下载。

  嵌入式 最新文章
基于高精度单片机开发红外测温仪方案
89C51单片机与DAC0832
基于51单片机宠物自动投料喂食器控制系统仿
《痞子衡嵌入式半月刊》 第 68 期
多思计组实验实验七 简单模型机实验
CSC7720
启明智显分享| ESP32学习笔记参考--PWM(脉冲
STM32初探
STM32 总结
【STM32】CubeMX例程四---定时器中断(附工
上一篇文章      下一篇文章      查看所有文章
加:2022-10-17 12:50:48  更:2022-10-17 12:51:17 
 
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁

360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年11日历 -2024/11/25 21:31:05-

图片自动播放器
↓图片自动播放器↓
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
图片批量下载器
↓批量下载图片,美女图库↓
  网站联系: qq:121756557 email:121756557@qq.com  IT数码