|
Cyclone 系列 FPGA 上电复位不知道大家一般是怎样实现的
一般的开发板上 都是3.3V --1K--10uF--地,这样一个电路,然后在电容处引出线到FPGA IO管脚,当然最好用时钟输入管脚
于是做了一个测试
always@( ...CLK,...nRESET)
begin
if(!nRESET)
testpin_buf <= 1'b0;
else
testpin_buf <= 1'b1;
end
assign TESTPIN =testpin_buf;
然后烧写,断电重启,观测TESTPIN的波形
上电拉高200ms+,然后拉低120ns+,然后一直高
理解:上电拉高200ms这段期间是因为EPCS在对FPGA进行配置,配置完之后拉低120ns,说明进入了if(!nRESET),但只有120ns,就跳出来置高了
将1K换做10K,拉低从120ns-->129ns,基本无变化
用双通道监测RESET管脚信号,和TESTPIN管脚信号
发现当TESTPIN拉高200ms的这段期间内,RESET管脚充电已经接近3.3V
根据特权同学的上电时间公示:t = RC*Ln[(V1-V0)/(V1-Vt)]
10K,10uF,大致在70ms左右就可以达到阈值电平1.7V
特权同学 上电复位的博客
http://bbs.ednchina.com/BLOG_ARTICLE_2026515.HTM
问题来了:既然在200ms配置完之后,RESET管脚已经达到高电平了,为何又进入进入了if(!nRESET),而且只有120ns
后来又将10K,换成51K,现象依旧。
目前的解决方案:
在CONFIG_DOWN处有一非门(三极管),原本是用于当配置完成之后,CONFIG_DOWN置高,经过非门拉低,
这样3.3V--270R--LED--CONFIG_DOWN非,LED亮,用以指示配置成功。
所以现在将复位电路改为3.3V--10K--10uF--CONFIG_DOWN非,
如此上电观测TESTPIN管脚信号
上电拉高200ms+,然后拉低100ms+,然后一直高
至少这样能从原理上解释的通。
不知道大家是如何设计RESET电路的,对于以上问题又能怎样解释?
|
阿莫论坛20周年了!感谢大家的支持与爱护!!
你熬了10碗粥,别人一桶水倒进去,淘走90碗,剩下10碗给你,你看似没亏,其实你那10碗已经没有之前的裹腹了,人家的一桶水换90碗,继续卖。说白了,通货膨胀就是,你的钱是挣来的,他的钱是印来的,掺和在一起,你的钱就贬值了。
|