自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(64)
  • 收藏
  • 关注

原创 安服优-B-1 人体红外测温传感器——ZYNQ学习笔记23

摘要:B-1红外测温模块支持UART和IIC双协议,默认5秒内无UART指令则自动切换至IIC模式。配置后协议固定,不再自动切换。示例代码展示了基于Xilinx平台的UART0配置端口实现,包含温度查询指令发送(0xAA A5 03 01 04 55)、数据接收及温度计算功能(原始值/10.0转换为实际温度)。调试信息通过UART1输出,完整工程需联系作者获取。模块支持灵活协议切换,适用于嵌入式测温场景。

2025-12-20 01:26:00 190

原创 SI5341时钟芯片NVM固化,SSD不识别——MPSOC实战5

摘要:本文针对MPSOC实战中遇到的8T硬盘从Flash启动时无法识别的问题进行分析。问题源于SSD复位信号与电源复位同步设计,导致SI5341时钟配置滞后。提出两种解决方案:1)利用SI5341芯片的NVM区域实现上电自启动,避免配置延迟;2)优化FSBL加载时序,满足8T硬盘更高的时序要求。该方案已成功解决2T硬盘可识别而8T硬盘无法识别的问题,适用于时序敏感设计场景。(149字)

2025-12-16 16:38:24 134

原创 PS_PL数据交互基于BRAM,PS读写PL侧BRAM——ZYNQ学习笔记22

本文介绍了基于AXI BRAM IP核实现PS与PL部分数据交互的方法。通过Block Memory Generator IP核创建BRAM存储单元,并详细说明了硬件设计中的BRAM空间配置。文章提供了PS端的测试代码示例,演示了如何通过32位数据写入/读取BRAM,包括起始地址设置、数据字节定义以及读写操作函数实现。测试结果显示程序能成功完成字符串数据的存储与读取验证,实现了ZYNQ平台上PS与PL部分通过BRAM的数据交互功能。

2025-12-03 00:40:52 144

原创 PS侧MPU6050配置——ZYNQ学习笔记21

本文分享了基于ZYNQ平台的MPU6050陀螺仪驱动实现,包含完整的I2C通信和数据处理功能。主要内容包括:1)实现了I2C初始化和中断配置;2)提供了MPU6050初始化、参数配置(采样率、量程等)函数;3)实现了加速度计、陀螺仪和温度数据的读取;4)包含详细的寄存器定义和底层读写接口。驱动采用模块化设计,包括main.c、IIC.c和mpu6050.c三个文件,支持通过I2C总线与MPU6050通信,可获取原始传感器数据并计算温度值。代码已在ZYNQ平台上验证通过,可作为嵌入式系统开发参考。

2025-11-25 16:32:46 39

原创 IIC读写EEPROM——ZYNQ学习笔记20

摘要:本文实现了一个基于ZYNQ处理器的I2C协议EEPROM读写程序。代码主要包括I2C初始化、中断配置、从设备检测和EEPROM读写测试等功能。程序使用Xilinx提供的XIicPs驱动库,通过中断方式完成数据传输,支持对AT24C02 EEPROM的字节读写操作。测试中发现连续写入时存在数据错误的问题,需进一步调试。

2025-11-07 15:10:11 149

原创 AXI UART Lite v2.0 IP使用——ZYNQ学习笔记19

摘要:本文记录了使用AXI UART Lite IP核实现串口通信的过程。在PS端串口被占用的情况下,通过调用AXIUARTLitev2.0 IP核进行开发。给出了初始化函数UartLiteInit()以及阻塞式发送UartLiteSend()和接收UartLiteRecv()的实现代码。主程序中演示了字符串发送和回环测试功能,当接收到单个字节时立即回传该字节。(100字)

2025-11-07 15:07:52 247

原创 SI5341芯片驱动设计——MPSOC实战4

本文介绍了SI5341芯片的IIC配置方法,通过ClockBuilder-Pro-3.0软件生成配置数据表。硬件采用IIC通信方式,默认地址0x76,支持复位恢复默认地址。给出了完整的配置流程,包括初始化、暴力寻址、寄存器写入和读取验证。调试时采用单次读写模式,需先写页寄存器(0x01)再写目标寄存器,并可通过回读验证写入数据正确性,如0x0239寄存器成功写入0x42(十进制66)。文章提供了详细的C语言实现代码,包括IIC初始化、寄存器配置和读取等功能。

2025-11-05 16:35:04 359

原创 UART0&UART1发送——ZYNQ学习笔记18

该代码实现了一个基于Xilinx处理器的双串口通信系统,包含以下核心功能:1. 配置两个UART串口(UART0和UART1),波特率分别为115200和57600;2. 实现了自定义printf功能,支持格式化输出到指定串口;3. 添加了中断接收功能,通过FIFO缓存处理接收数据;4. 包含数据帧解析功能,可识别特定起始标志"ST"并提取有效数据。系统采用模块化设计,包含main.c、uart.c/h和intr.c/h等文件,支持周期性发送测试数据和中断接收处理。

2025-10-13 16:16:01 195

原创 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 224

原创 PS SYSMON驱动——MPSOC实战2

该代码实现了一个基于Xilinx XSysMonPsu的系统监控功能,主要用于测量处理系统的温度和各路供电电压。主要功能包括:1)初始化系统监控模块,配置采样模式和通道;2)采集温度、内核电压(VCCINT)、辅助电压(VCCAUX)以及多个I/O bank(500-504)的电压数据;3)将原始ADC数据转换为实际物理值并格式化输出。代码采用16次采样平均以提高测量精度,支持循环采样模式,并提供了数据转换和显示功能。该监控系统可实时监测关键电源参数,适用于嵌入式系统电源管理。

2025-09-12 09:50:59 221

原创 ZYNQ XADC驱动——ZYNQ学习笔记17

该代码实现了Xilinx Zynq SoC中XADC(混合信号转换器)的配置与数据采集功能。通过XADCPS驱动,程序采集了温度、PS/PL内核电压、辅助电压、DDR电压和BRAM电压等传感器数据,并将原始数据转换为实际物理值。主要包含两个函数:xadc_config()初始化XADC并设置为安全模式,xadc_get()获取各通道数据并转换输出。代码最后打印了各参数的原始值和转换后的实际值,可用于系统监控和调试。

2025-09-10 22:57:26 167

原创 定时器中断——ZYNQ学习笔记16

【代码】定时器中断——ZYNQ学习笔记16。

2025-09-09 22:36:34 277

原创 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 1335

原创 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 414

原创 自定义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 518

原创 自定义IP——ZYNQ学习笔记13

本文设计了一个基于AXI接口的呼吸灯控制系统,通过自定义LED IP核实现PS端对PL端LED的控制。系统采用Verilog编写呼吸灯PWM模块,支持设置频率和占空比,能根据输入时钟计算PWM周期参数,实现LED亮度渐变效果。模块包含周期计算、高电平持续时间计算和PWM输出等核心功能,并支持使能控制。使用时需注意修改makefile文件以适配具体硬件平台。

2025-08-27 00:12:57 187

原创 MPSOC启动流程——ZYNQ学习笔记12

摘要:MPSoC系统支持通过多种外部设备(如Quad-SPI、SD卡、eMMC等)启动,由7个模式引脚(MIO[8:2])配置启动参数。其中前4个引脚决定启动模式,第5个控制PLL使用,后2个设置MIO bank电压。系统启动过程涉及硬件配置和软件加载的多阶段流程。

2025-08-26 20:52:27 287

原创 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 724

原创 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 284

原创 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 259

原创 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 625

原创 ZYNQ GPIO学习——ZYNQ学习笔记9

该代码展示了如何配置Xilinx Zynq处理器的PS GPIO(处理器系统通用输入输出)。程序首先包含必要的头文件,定义GPIO设备ID和EMIO引脚号。通过XGpioPs_LookupConfig获取配置信息,并用XGpioPs_CfgInitialize初始化GPIO实例。接着设置指定引脚为输出模式,启用输出功能,并将引脚电平置高。最后打印"AXI"表示程序执行完成。该代码实现了基本的GPIO输出控制功能,适用于嵌入式系统开发中的硬件接口操作。

2025-08-11 14:59:34 249

原创 自制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 300

原创 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 841

原创 光纤接口、GTX高速收发器基础知识学习、光口眼图测试--FPGA学习笔记28

光纤接口是用来连接光纤线缆的物理接口,简称为光口。其原理是利用了光从光密介质进入光疏介质从而发生了全反射。通常有FC、SC、ST、LC、D4、DIN、MU、MT等等各种形式接口。

2025-01-21 14:22:39 1742

原创 以太网实战AD采集上传上位机——FPGA学习笔记27

使用FPGA实现AD模块驱动采集模拟电压,通过以太网上传到电脑上位机。

2025-01-16 16:02:22 1891

原创 以太网UDP协议栈实现(支持ARP、ICMP、UDP)--FPGA学习笔记26

UDP(User Datagram Protocol),即用户数据报协议, 是一种面向无连接的传输层协议。无连接是指在传输数据时,数据的发送端和接收端不建立逻辑连接。简单来说,当一台计算机向另外一台计算机发送数据时,发送端不会确认接收端是否存在,就会发出数据,同样接收端在收到数据时,也不会向发送端反馈是否收到数据。由于使用 UDP 协议消耗资源小,通信效率高,所以通常都会用于音频、视频和普通数据的传输(如视频会议等)都会采用 UDP 协议进行传输,这种情况即使偶尔丢失一两个数据包,也不会对接收结果。

2025-01-05 19:29:42 2388 2

原创 以太网ICMP协议(ping指令)——FPGA学习笔记25

IP是网际互连协议的缩写。IP协议是TCP/IP协议簇中的核心协议,它为上层协议提供无状态、无连接、不可靠的服务。IP协议规定了数据传输时的基本单元和格式。IP协议是OSI参考模型中网络层的重要成员,与ICMP协议及IGMP协议共同构成OSI参考模型模型中的网络层。ICMP是的缩写,即互联网控制消息协议。它用于TCP/IP。

2025-01-04 13:44:14 1482

原创 xilinx 芯片使用vivado导出pindelay文件——FPGA学习笔记24

2、在TCL命令窗输入 link_design -part。(芯片型号) 回车,导出文件在该目录下。1、创建一个空的工程。

2024-12-25 10:59:57 904

原创 以太网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 1199 1

原创 以太网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 2262 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 1171

原创 用户自定义IP核——ZYNQ学习笔记6

通过自定义一个 LED IP 核,通过 PS 端的程序来控制底板上 PL 端 LED1 呈现呼吸灯的效果,并且 PS 可以通过 AXI 接口来控制呼吸灯的开关和呼吸的频率。

2024-11-16 21:30:14 709

原创 xilinx vitis 更换硬件平台——ZYNQ学习笔记5

2、选择带有bit信息。1、重新生成硬件信息。4、打开更新硬件选项。5、选择新的硬件信息。6、打开系统工程界面。

2024-11-03 19:38:04 1540

原创 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 4722

原创 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 1642

原创 AD9248驱动的简易示波器设计——FPGA学习笔记21

我们这里设计的是显示 1024 个波形数据点, 在绘制每一行的图像的时候, 比对每一个数据和 VS 的 Y 坐标是否相等, 如果相等就绘制这个波形点。这样我们就能完成 1024 个波形点在整个屏幕的显示。

2024-10-13 19:40:22 1688

原创 RGB转HDMI方案、MS7210驱动——FPGA学习笔记20

见HDMI彩条显示——FPGA学习笔记12-CSDN博客。

2024-10-07 15:17:22 2936 8

原创 VTC视频时序控制器,TPG图像测试数据发生器,LCD驱动——FPGA学习笔记19

Video Timing Controller 缩写 VTC 是我们在所有涉及 FPGA 图像、 FPGA 视频类方案中经常用到的一种用于产生视频时序的控制器。本课以 VGA 为切入点, 学习视频传输的基本知识和相关概念, 以及视频时序的控制器的相关内容TPG(video_test_pattern generator) 视频测试模式发生器用于产生测试数据, 对视频数据通路测试。本课设计一个图像数据发生器, 该模块能够产生不同颜色和样式的图像数据, 并按顺序将 RGB 图像数据发送到有效显示区域。

2024-10-06 21:30:29 2054

原创 EEPROM读写实验——FPGA学习笔记18

是指带电可擦可编程只读存储器,是一种常用的非易失性存储器(掉电数据不丢失)我们这次实验所用的AT24C64。个字节,且其读写操作都是以字节为基本单位。看作一本书,那么这本书有。

2024-10-05 19:24:39 1141

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除