基于ZYNQ的PCIe板卡上电时PC为什么有时要启动两三次才启动...

2020-02-02 12:12发布

本帖最后由 xiaolin4006 于 2015-9-9 19:55 编辑

最近用XC7Z015做了一块PCIe的板卡,调试的时候发现,程序烧写到QSPI-FLASH里面以后关机再开机,PC机会出现启动两三次才能启动起来,也就是按下PC的启动开关后,CPU风扇转起来了,ZYNQ的DONE指示灯点亮,然后PC风扇停转,DONE指示灯熄灭,等两秒左右风扇又转起来,DONE指示灯又点亮。如此往复。有时候两次后进系统,有时候三次后进系统,有时候直接就成功进系统。最糟糕的情况是DONE指示灯点亮后电脑一直就进不去系统了。这是什么原因呢?
友情提示: 此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。
16条回答
雪夜虫子
2020-02-02 17:49
本帖最后由 雪夜虫子 于 2015-9-11 08:49 编辑

PCI-E的复位是由系统中的Root Complex(RC)提供的,协议里有规定,从复位撤销到EndPoint(EP)初始化完成的时间要小于100ms(我们的经验,200ms也没问题,再大就不好了)。我开始觉得是你的这个时间不满足。但结合现象和你板凳里的描述,我觉得还不是100ms的问题(这个问题只是进入系统认不到板卡,还不会是起不来系统)。ZYNQ上电初始化比较复杂,对电源上电顺序也有要求。
1、你的上电顺序是怎么设计的?是否符合要求?
2、你用一个RC复位,是和你的整个芯片的启动顺序(电源顺序、加载顺序)完全无关的,那么你怎么保证他们的关系?如果你的RC复位撤销后,你的电源还没完全起来,或者加载还没完成,怎么办?
3、PCIe复位倒不一定要和POR#连在一起,POR#一定要和电源的上电顺序联系在一起。至少你得保证你复位的时候,芯片该加载的电源都加载上了。再就是要考虑那个EP的100ms时间问题,也是要结合启动加载综合考虑,如果不满足,顶多会认不到板卡,那就再考虑别的办法(比如PR什么的)。

所以,建议查查你的电源启动顺序,最好是把最后那个电源(一般是IO电压)的power good信号跟POR关联起来。官方开发板ZC702/706上的PS复位是怎么设计的?应该不是用RC电路吧?
100ms的问题则是后话,遇到了再解决。

一周热门 更多>