- 博客(56)
- 收藏
- 关注
原创 TTC定时器中断——MPSOC实战3
本文介绍了一个基于Xilinx Zynq处理器的TTC定时器中断控制LED的实现方案。程序通过配置TTC定时器产生周期性中断(0.2ms),在中断服务程序中切换LED状态。主要内容包括:1)GPIO初始化配置LED和按键;2)TTC定时器参数设置;3)GIC中断控制器配置;4)中断服务程序实现LED状态切换。系统采用模块化设计,包含main.c、gpio.c、Ttc.c、intr.c等文件,通过XGpioPs、XTtcPs、XScuGic等驱动接口实现硬件控制。
2025-09-14 21:24:48
72
原创 PS SYSMON驱动——MPSOC实战2
该代码实现了一个基于Xilinx XSysMonPsu的系统监控功能,主要用于测量处理系统的温度和各路供电电压。主要功能包括:1)初始化系统监控模块,配置采样模式和通道;2)采集温度、内核电压(VCCINT)、辅助电压(VCCAUX)以及多个I/O bank(500-504)的电压数据;3)将原始ADC数据转换为实际物理值并格式化输出。代码采用16次采样平均以提高测量精度,支持循环采样模式,并提供了数据转换和显示功能。该监控系统可实时监测关键电源参数,适用于嵌入式系统电源管理。
2025-09-12 09:50:59
166
原创 ZYNQ XADC驱动——ZYNQ学习笔记17
该代码实现了Xilinx Zynq SoC中XADC(混合信号转换器)的配置与数据采集功能。通过XADCPS驱动,程序采集了温度、PS/PL内核电压、辅助电压、DDR电压和BRAM电压等传感器数据,并将原始数据转换为实际物理值。主要包含两个函数:xadc_config()初始化XADC并设置为安全模式,xadc_get()获取各通道数据并转换输出。代码最后打印了各参数的原始值和转换后的实际值,可用于系统监控和调试。
2025-09-10 22:57:26
91
原创 Iwip驱动8211FS项目——MPSOC实战1
本文探讨了基于RTL8211FS芯片的FPGA以太网硬件设计问题。由于Vitis默认的LWIP库不支持该芯片,文章详细分析了PHY初始化流程,重点介绍了init_emacps()和get_Realtek_phy_speed()等关键函数,以及如何通过MDIO总线探测和配置PHY芯片。文章还提供了LWIP协议栈的初始化流程,包括网络接口注册、中断使能和DHCP配置等关键步骤,并针对RTL8211芯片的特殊寄存器操作给出了解决方案。最后参考了相关技术论坛上关于Zynq平台LWIP实现的调试经验,为类似硬件设计提
2025-09-05 11:13:56
1076
原创 UART控制器——ZYNQ学习笔记14
摘要:MPSoC内置两个全双工UART控制器(UART0/UART1),支持64字节收发FIFO、可编程波特率及多种串口配置。通过控制/状态寄存器管理,可连接MIO(仅Tx/Rx)或EMIO(带流控制引脚)。代码实现包含UART初始化(115200波特率)、中断配置(基于XScuGic)及数据回传处理,采用轮询或中断驱动方式操作FIFO。关键函数包括uart_config()初始化、SetupInterruptSystem()设置中断服务,IntrHandler()处理接收数据并回传。
2025-09-02 00:07:10
343
原创 自定义AXI_PWM_v1.0——ZYNQ学习笔记15
该文介绍了一个基于AXI总线的PWM控制器IP核设计。底层模块breath_pwm实现了可调频率和占空比的PWM输出功能,通过计算时钟周期数确定PWM参数。顶层封装了AXI接口,提供4个寄存器分别控制占空比(0-10000对应0%-100%)、使能位、输出频率和保留位。测试工程演示了如何通过AXI总线配置PWM参数(如设置50%占空比和100kHz频率),并控制PWM输出使能。该IP核可通过指定网盘链接获取,使用时需替换makefile文件。
2025-08-31 21:10:16
489
原创 自定义IP——ZYNQ学习笔记13
本文设计了一个基于AXI接口的呼吸灯控制系统,通过自定义LED IP核实现PS端对PL端LED的控制。系统采用Verilog编写呼吸灯PWM模块,支持设置频率和占空比,能根据输入时钟计算PWM周期参数,实现LED亮度渐变效果。模块包含周期计算、高电平持续时间计算和PWM输出等核心功能,并支持使能控制。使用时需注意修改makefile文件以适配具体硬件平台。
2025-08-27 00:12:57
149
原创 MPSOC启动流程——ZYNQ学习笔记12
摘要:MPSoC系统支持通过多种外部设备(如Quad-SPI、SD卡、eMMC等)启动,由7个模式引脚(MIO[8:2])配置启动参数。其中前4个引脚决定启动模式,第5个控制PLL使用,后2个设置MIO bank电压。系统启动过程涉及硬件配置和软件加载的多阶段流程。
2025-08-26 20:52:27
218
原创 ZYNQ启动流程——ZYNQ学习笔记11
ZYNQ SoC启动过程从片内BootROM开始,通过读取外部存储器的头文件获取启动配置信息。随后执行用户创建的FSBL(第一阶段引导程序),负责初始化PS、配置PL(通过PCAP接口)并加载应用程序或SSBL。启动镜像需包含BootROM头文件、FSBL、PL配置文件和应用程序。启动模式由7个MIO引脚决定,系统上电复位时采集引脚状态并初始化硬件。整个过程分为BootROM、FSBL和应用程序执行三个阶段,支持PL动态配置和多种启动方式。
2025-08-22 23:23:49
575
原创 AXI GPIO S——ZYNQ学习笔记10
这段代码实现了一个基于AXI GPIO的混合输入输出中断控制系统。系统包含GPIO配置、中断处理和数据位操作功能。主要特点包括: 支持GPIO通道的输入/输出混合配置 实现中断触发机制,可检测上升沿/下降沿 提供位操作函数(modify_bit/get_bit)实现对特定位的读写 包含LED控制功能(ON/OFF) 使用Xilinx提供的底层驱动库(XGpio/XScuGic) 系统运行时循环检测GPIO状态,通过中断处理改变LED标志位,并将状态信息输出。中断配置包含优先级设置和触发类型配置,支持全局中断
2025-08-21 23:56:18
263
原创 AXI GPIO 2——ZYNQ学习笔记9
本文展示了AXI GPIO同一通道混合输入输出的使用示例。硬件设计通过xdc约束文件定义了UART和GPIO引脚的配置,将4个GPIO引脚设置为LVCMOS33标准。软件部分包含main.c、axi_gpio.c和axi_gpio.h三个文件,实现了GPIO初始化、读写控制和位操作功能。其中,axi_gpio_config()函数将通道1配置为混合输入输出模式(0x0000000C表示低2位输出,高2位输入),并通过modify_bit()函数实现指定位的修改。示例代码展示了如何初始化GPIO、输出数据到指
2025-08-14 16:09:57
234
原创 ZYNQ AXI-GPIO学习——ZYNQ学习笔记8
摘要:本文介绍了基于AXI GPIO IP核的中断控制实现方法。AXI GPIO是一个可配置的软核IP,支持动态配置输入/输出接口和中断功能。实验通过PL端按键触发中断,控制PS端LED状态。硬件设计采用AXI4-Lite总线连接PS端和AXI GPIO IP核,配合GIC中断控制器。软件部分包含GPIO配置、中断初始化和处理函数,实现了按键触发中断后LED状态切换的功能。代码展示了如何初始化AXI GPIO、设置中断优先级和处理中断事件。
2025-08-12 17:02:52
428
原创 ZYNQ GPIO学习——ZYNQ学习笔记9
该代码展示了如何配置Xilinx Zynq处理器的PS GPIO(处理器系统通用输入输出)。程序首先包含必要的头文件,定义GPIO设备ID和EMIO引脚号。通过XGpioPs_LookupConfig获取配置信息,并用XGpioPs_CfgInitialize初始化GPIO实例。接着设置指定引脚为输出模式,启用输出功能,并将引脚电平置高。最后打印"AXI"表示程序执行完成。该代码实现了基本的GPIO输出控制功能,适用于嵌入式系统开发中的硬件接口操作。
2025-08-11 14:59:34
191
原创 自制ZYNQ核心板-关于DDR部分——FPGA学习笔记30
摘要:本文介绍了ZYNQ7020核心板DDR设计要点,包括单/双片DDR布局对比。关键布线规则为:差分时钟线需等长(±10mil),DQS与对应DQ组严格等长,地址/控制线与时钟线长度差≤50mil。电源设计强调VREF_DDR与VCC_DDR需0.1μF+4.7μF去耦,VTT仅用于地址/控制线上拉,禁止直接供给DQ。这些规范确保DDR信号完整性和系统稳定性。(149字)
2025-08-01 00:34:02
174
原创 vivado各种电压约束标准——FPGA学习笔记29
Vivado约束中常见的电压标准包括:LVCMOS系列(3.3V/2.5V/1.8V/1.5V/1.2V)适用于不同功耗场景;LVTTL33为通用3.3V标准;HSTL系列(I/II)用于1.5V系统;SSTL系列(2.5V/1.8V/1.5V)主要应用于DDR存储器接口;差分信号标准包含BLVDS、MLVDS、LVDS(高速传输)、mini_LVDS(低功耗)和HSUL(超低压)。这些标准定义了具体的输入/输出电平要求,需根据应用场景的电压、功耗和速率需求进行选择。
2025-07-04 11:08:09
511
原创 光纤接口、GTX高速收发器基础知识学习、光口眼图测试--FPGA学习笔记28
光纤接口是用来连接光纤线缆的物理接口,简称为光口。其原理是利用了光从光密介质进入光疏介质从而发生了全反射。通常有FC、SC、ST、LC、D4、DIN、MU、MT等等各种形式接口。
2025-01-21 14:22:39
1454
原创 以太网UDP协议栈实现(支持ARP、ICMP、UDP)--FPGA学习笔记26
UDP(User Datagram Protocol),即用户数据报协议, 是一种面向无连接的传输层协议。无连接是指在传输数据时,数据的发送端和接收端不建立逻辑连接。简单来说,当一台计算机向另外一台计算机发送数据时,发送端不会确认接收端是否存在,就会发出数据,同样接收端在收到数据时,也不会向发送端反馈是否收到数据。由于使用 UDP 协议消耗资源小,通信效率高,所以通常都会用于音频、视频和普通数据的传输(如视频会议等)都会采用 UDP 协议进行传输,这种情况即使偶尔丢失一两个数据包,也不会对接收结果。
2025-01-05 19:29:42
2126
2
原创 以太网ICMP协议(ping指令)——FPGA学习笔记25
IP是网际互连协议的缩写。IP协议是TCP/IP协议簇中的核心协议,它为上层协议提供无状态、无连接、不可靠的服务。IP协议规定了数据传输时的基本单元和格式。IP协议是OSI参考模型中网络层的重要成员,与ICMP协议及IGMP协议共同构成OSI参考模型模型中的网络层。ICMP是的缩写,即互联网控制消息协议。它用于TCP/IP。
2025-01-04 13:44:14
1308
原创 xilinx 芯片使用vivado导出pindelay文件——FPGA学习笔记24
2、在TCL命令窗输入 link_design -part。(芯片型号) 回车,导出文件在该目录下。1、创建一个空的工程。
2024-12-25 10:59:57
719
原创 以太网ARP协议——FPGA学习笔记23
ETH_TXCTL 和 ETH_RXCTL 控制信号同样采用 DDR 的方式在一个时钟周期内传输两位控制信号,即上升沿发送/接收数据使能(TX_EN/RX_ DV)信号,下降沿发送/接收使能信号与错误信号的异或值(TX_ERR xor TX_EN、 RX_ERR xor RX_DV)。目的 MAC 地址:接收端的硬件地址,在 ARP 请求时由于不知道接收端 MAC 地址,因此该字段为广播地址, 即 48’hff_ff_ff_ff_ff_ff。广播:MAC FF FF FF FF FF FF。
2024-12-25 09:41:52
1114
原创 以太网PHY_MDIO通信(基于RTL8211)--FPGA学习笔记22
最大值 1500 称为以太网的最大传输单元(MTU, Maximum Transmission Unit),之所以限制最大传输单元是因为在多个计算机的数据帧排队等待传输时,如果某个数据帧太大的话,那么其它数据帧等待的时间就会加长,导致体验变差,这就像一个十字路口的红绿灯,你可以让绿灯持续亮一小时,但是等红灯的人一定不愿意的。单播地址:第一个字节的最低位为 0,比如 00-00-00-11-11-11,一般用于标志唯一的设备;(55-55-55-55-55-55-55))实现数据的同步。
2024-12-08 20:49:54
1888
1
原创 ZYNQ程序固化——ZYNQ学习笔记7
1、对ZYNQ进行配置添加Flash2、添加SD卡3、重新生成硬件信息4、创建vitis工程文件5、勾选板级支持包6、对系统工程进行整体编译,生成两个Debug文件,如图所示。7、插入SD卡,格式化为8、考入BOOT.bin文件9、将SD卡插入开发板,调节启动方式为SD卡启动10、正常上电程序从SD卡成功读出。
2024-11-17 13:29:30
944
原创 用户自定义IP核——ZYNQ学习笔记6
通过自定义一个 LED IP 核,通过 PS 端的程序来控制底板上 PL 端 LED1 呈现呼吸灯的效果,并且 PS 可以通过 AXI 接口来控制呼吸灯的开关和呼吸的频率。
2024-11-16 21:30:14
623
原创 xilinx vitis 更换硬件平台——ZYNQ学习笔记5
2、选择带有bit信息。1、重新生成硬件信息。4、打开更新硬件选项。5、选择新的硬件信息。6、打开系统工程界面。
2024-11-03 19:38:04
1260
原创 ZYNQ7045之YOLO部署——FPGA-ZYNQ Soc实战笔记1
输入时固定的,因为存在全连接层,网络有24层卷积,2个全连接层,包含大量1x1卷积,最终7x7x30表示,7x7个各自,每个格子有30个数据,30个数据包含两个部分1:位置信息(第一个候选框中心点x) 2:预测中心点纵坐标 y 3:候选框W宽度 4:高度H5:第一个候选框置信度6:位置信息(第二个候选框中心点x) 7:预测中心点纵坐标 y 8:候选框W宽度 9:高度H10:第一个候选框置信度11~20:类别信息以及最后的损失函数。
2024-10-30 10:15:22
3994
原创 AXI GPIO按键控制——ZYNQ学习笔记4
是什么?是PL部分的一个IP软核,实现通用输入输出接口的功能,并通过AXI协议实现与处理系统通信,方便控制与拓展GPIO接口。AXI GPIO IP 核为 AXI 接口提供了一个通用的输入/输出接口。与 PS 端的 GPIO 不同, AXI GPIO 是一个软核( Soft IP),即 ZYNQ 芯片在出厂时并不存在这样的一个硬件电路, 而是由用户通过配置 PL 端的逻辑资源来实现的一个功能模块。而 PS 端的 GPIO 是一个硬核( Hard IP) ,它是一个生产时在硅片中实现的功能电路。
2024-10-14 19:12:17
1460
原创 AD9248驱动的简易示波器设计——FPGA学习笔记21
我们这里设计的是显示 1024 个波形数据点, 在绘制每一行的图像的时候, 比对每一个数据和 VS 的 Y 坐标是否相等, 如果相等就绘制这个波形点。这样我们就能完成 1024 个波形点在整个屏幕的显示。
2024-10-13 19:40:22
1435
原创 VTC视频时序控制器,TPG图像测试数据发生器,LCD驱动——FPGA学习笔记19
Video Timing Controller 缩写 VTC 是我们在所有涉及 FPGA 图像、 FPGA 视频类方案中经常用到的一种用于产生视频时序的控制器。本课以 VGA 为切入点, 学习视频传输的基本知识和相关概念, 以及视频时序的控制器的相关内容TPG(video_test_pattern generator) 视频测试模式发生器用于产生测试数据, 对视频数据通路测试。本课设计一个图像数据发生器, 该模块能够产生不同颜色和样式的图像数据, 并按顺序将 RGB 图像数据发送到有效显示区域。
2024-10-06 21:30:29
1843
原创 EEPROM读写实验——FPGA学习笔记18
是指带电可擦可编程只读存储器,是一种常用的非易失性存储器(掉电数据不丢失)我们这次实验所用的AT24C64。个字节,且其读写操作都是以字节为基本单位。看作一本书,那么这本书有。
2024-10-05 19:24:39
1029
原创 AD7606 ADC的SPI驱动——FPGA学习笔记17
AD7606 支持 2 种时序转换, 由于我们采用的时串行 SPI 模式, 本身 SPI 读取数据就会耽误很多时间, 所以必须采用第二种工作时序, 才能确保 200Kbps 的采样率。空闲SCLK为高,CPOL为1 在SCLK第一个上升沿进行数据读取,CPHA为1。
2024-10-04 17:29:50
3871
5
原创 SPI通信——FPGA学习笔记14
SPI(Serial Periphera Interface,串行外围设备接口)通讯协议,是 Motorola 公司提出的一种同步串行接口技术,是一种高速、全双工、同步通信总线,在芯片中只占用四根管脚用来控制及数据传输,广泛用于 EEPROM、FIash、RTC(实时时钟)、ADC(数模转换器)、DSP(数字信号处理器)以及数字信号解码器上,是常用的、重要的低速通讯协议之一。
2024-09-29 16:30:10
1702
1
原创 GPIO按键中断——ZYNQ学习笔记4
当处理器收到中断,它会停下当前正在做的任务,然后跳转到需要处理的地方去。这和轮询的方式是相反的,轮询是由软件同步获取设备的状态。在中断方式中,不需要由处理器不断地轮询设备的 I/O 端口来查看是否需要处理,设备本身会中断处理器。中断(主要是硬件中断)可以进一步被分类为以下几种类型:• 可屏蔽中断( Maskable Interrupts, IRQ)——可通过在中断屏蔽寄存器中设定位掩码来关闭。触发可屏蔽中断的事件源不是每次都是重要的。程序设计人员需要决定该事件是否应该导致程序跳到所需处理的地方去。使用可屏蔽
2024-09-25 13:29:38
1318
原创 GPIO之EMIO按键控制LED——ZYNQ学习笔记3
约束管脚重新生成硬件信息代码编写:u32 ps_key;//初始化GPIO驱动配置//根据器件ID来查找器件配置信息//对GPIO的驱动进行初始化//设置引脚方向//设置PS_KEY//设置PL_KEY//设置输出使能 0:输入 1:输出\n");
2024-09-24 19:59:57
822
原创 GPIO与MIO控制LED——ZYNQ学习笔记2
ZYNQ 分为 PS 和 PL 两部分,那么器件的引脚( Pin)资源同样也分成了两部分。 ZYNQ PS 中的外设可以通过 MIO( multiplexed I/O,多路复用 I/O)模块连接到 PS 端的引脚上,也可以通过 EMIO( extended multiplexed I/O interface, 扩展多路 I/O 接口) 连接到 PL 端的引脚。 Zynq-7000 系列芯片一般有 54 个 MIO,个别芯片如 7z007s 只有 32 个。 GPIO 是英文“g
2024-09-23 17:18:53
1555
原创 初始Vitis——ZYNQ学习笔记1
Vitis 统一软件平台的前身为 Xilinx SDK,从 Vivado 2019.2 版本开始, Xilinx SDK 开发环境已统一整合到全功能一体化的 Vitis 中。Vitis 开发平台除了启动方式、软件界面、使用方法与 SDK 开发平台略有区别,其他操作几乎一模一样。Vitis 可以采用 C、 C++或 Python 开发以嵌入式处理器为核心的嵌入式系统, 可实现在 Xilinx 异构平台(包括 FPGA、 SoC 和 Versal ACAP)上开发嵌入式软件和加速应用。
2024-09-21 13:45:04
3420
原创 初识ZYNQ——FPGA学习笔记15
与板上系统相比,SoC的解决方案成本更低,能在不同的系统单元之间实现更快更安全的数据传输,具有更高的整体系统速度、更低的功耗、更小的物理尺寸和更高的可靠性。ZYNQ的本质特征,是它组合了一个双核处理器和一个传统的现场可编程门阵列 (FPGA)逻辑部件。FPGA:(,现场可编程门阵列), 一种可以通过编程来修改其逻辑功能的数字集成电路(芯片)FPGA架构AMBA(高级可扩展总线)
2024-09-18 14:01:31
1878
原创 HDMI色块移动——FPGA学习笔记13
使用FPGA开发板上的HDMI接口在显示器上显示一个不停移动的方块,要求方块移动到边界处时能够改变移动方向。显示分辨率为800*480,刷新速率为90hz。(480p分辨率为800*480,像素时钟频率Vga_clk = 800x480x90 = 33264000 ≈33.3Mhz(误差忽略不计))其他部分完全延用上一章代码HDMI彩条显示——FPGA学习笔记12-CSDN博客上一章中该部分表述错误实际应为800*480*90 = 34560000约等于33.3Mhz
2024-09-18 11:13:13
688
空空如也
如何确定一个没有资料变压器的匝数比
2024-03-17
TA创建的收藏夹 TA关注的收藏夹
TA关注的人