答疑解惑 | DE25-Nano开发板串口在访问FPGA端外设LED时卡死,无任何反应

参考友晶官方的GHRD工程(下载地址:https://www.terasic.com.cn/cgi-bin/page/archive.pl?Language=China&CategoryNo=69&No=1392&PartNo=4#contents)做一个更小的SOC FPGA系统,其中IP架构如下:

参考友晶官方提供的SD卡image制作教程https://github.com/johnnyfan1979/public_doc/blob/main/documentation/DE25_Nano/DE25%20Nano%20Build%20Linux%20image%20from%20scratch.md制作该更小系统对应的image,然后在DE25-Nano开发板上启动该镜像,在Uboot阶段按键盘任意键进入Uboot命令行输入环境,此时发现串口在下发mw.l命令后卡死了,如下图:

(1)首先检查hps bridge 和 pio 之间是怎么连接的

如下图led_pio的时钟和复位都已经连接到系统的时钟和复位了,led_pio的slave接口也和Agilex HPS IP 的lwhps2fpga相连,看起来没有什么问题。

(2)其次检查时钟和复位信号有没有什么问题

在工程top文件中增加heartbeat_led(对应时钟)和reset_led(对应复位)两个输出信号到LED进行信号指示的显示。

经测试发现heartbeat_led对应的LED闪烁,reset_led对应的LED熄灭。查看DE25-Nano的manual或者schematic file可以知道其LED是低电平点亮,高电平熄灭。看起来这两个信号是没有什么问题的。

再仔细对比GHRD工程和当前更小系统工程发现GHRD的reset IP 设置的是active low, 而我的工程保持了默认值没有修改,是avtive high:

现在改成这样:

但是有报错,提示 soc_system.clock in.out clk/reset in.clk Missing connection end (try "Remove Dangling Connections。在Platform Designer 菜单选择System------Remove Dangling Connection, 这样操作以后就没有报错了。

重新生成Qsys文件,重新编译Quartus工程,重新烧写QSPI Flash,再次启动image进入Uboot阶段,再次发送mw.l 0x20010080 0x00 LED灯亮了,发送 mw.l 0x20010080 0xff LED灯灭了。问题就解决了!

所以串口卡死的原因是:Reset Release Intel FPGA IP,其输出的 ninit_done 信号在 FPGA 配置完成后,从高电平跳变为低电平,而系统复位信号system_reset_n来自Reset Release Intel FPGA IP输出的 ninit_done 信号再取反:

当Reset Bridge Intel FPGA IP设置active high, 意味着你从外部接入的复位信号是reset(高有效), 系统配置完以后, system_reset_n是高电平,系统就会一直处于复位状态。

而当Reset Bridge Intel FPGA IP 设置active low, 意味着你从外部接入的复位信号是reset_n(低有效), 系统配置完以后, system_reset_n是高电平,系统已经离开复位状态。

往期阅读:

答疑解惑 | DE25-Nano开发板Uboot阶段与FPGA外设交互失败

DE25-Nano开发板在Programmer的 Auto Detect 下检测出来的器件和友晶官方提供的工程里器件不一样有没有关系?

最新版Quartus Prime Pro 25.1 的安装和使用演示(含Questa仿真)

相关推荐
尤老师FPGA5 小时前
LVDS系列46:Xilinx Ultrascale系 ADC LVDS接口参考方法(八)
fpga开发
何如呢11 小时前
uw_inserter
fpga开发
何如呢12 小时前
SC-FDE_tx_comb_part
fpga开发
LCMICRO-1331084774613 小时前
长芯微LCMDC8588完全P2P替代ADS8588,是一款16位、8通道同步采样的逐次逼近型(SAR)模数转换器
stm32·单片机·嵌入式硬件·fpga开发·硬件工程·模数转换器
云端码字人15 小时前
007、PCIE数据链路层:可靠传输的保障
fpga开发
zmj3203241 天前
单片机串口收发数据不可靠--用做指令会执行错误动作
单片机·嵌入式硬件·串口
nuoxin1141 天前
CH6001FN/BW-富利威
网络·人工智能·嵌入式硬件·fpga开发·dsp开发
LCMICRO-133108477462 天前
长芯微LCMDC8685完全P2P替代ADS8685,16位模数转换器(ADC)
单片机·嵌入式硬件·fpga开发·硬件工程·dsp开发·模数转换器adc
szxinmai主板定制专家2 天前
基于ARM+FPGA高性能MPSOC 多轴伺服设计方案
arm开发·人工智能·嵌入式硬件·fpga开发·架构