基于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指示灯点亮后电脑一直就进不去系统了。这是什么原因呢?
友情提示: 此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。
该问题目前已经被作者或者管理员关闭, 无法添加新回复
15条回答
雪夜虫子
1楼-- · 2020-02-02 12:29
本帖最后由 雪夜虫子 于 2015-9-10 09:03 编辑

Zynq的启动过程比纯FPGA繁琐,是先加载PS部分,然后再加载PL部分。PCI-E在PL部分。你的PCI-E启动时间满足要求吗?(标准里好像是100ms,但200ms一般也可以。)可以量一下PCI-E复位信号跳变沿和done信号跳变沿之间的时间。
xiaolin4006
2楼-- · 2020-02-02 16:33
 精彩回答 2  元偷偷看……
雪夜虫子
3楼-- · 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的问题则是后话,遇到了再解决。
xiaolin4006
4楼-- · 2020-02-02 18:45
本帖最后由 xiaolin4006 于 2015-9-12 20:40 编辑
雪夜虫子 发表于 2015-9-11 08:47
PCI-E的复位是由系统中的Root Complex(RC)提供的,协议里有规定,从复位撤销到EndPoint(EP)初始化完成 ...

非常感谢你的回复,我的电源确实没有进行排序,因之前参考了SNOWLEO开发板,它的电源部分为同步上电。所以没有仔细考虑上电顺序这块,刚仔细看了一下datasheet,上电顺序要求还比较复杂,下面为原文:
PS Power-On/Off Power Supply Sequencing
The recommended power-on sequence is VCCPINT, VCCPAUX, and VCCPLL together, then the PS VCCO supplies (VCCO_MIO0,
VCCO_MIO1, and VCCO_DDR) to achieve minimum current draw and ensure that the I/Os are 3-stated at power-on. The
recommended power-off sequence is the reverse of the power-on sequence. If VCCPAUX, VCCPLL, and the PS VCCO supplies
(VCCO_MIO0, VCCO_MIO1, and VCCO_DDR) have the same recommended voltage levels, then they can be powered by the
same supply and ramped simultaneously. Xilinx recommends powering VCCPLL with the same supply as VCCPAUX, with an
optional ferrite bead filter.
-------
PL Power-On/Off Power Supply Sequencing
The recommended power-on sequence for the PL is VCCINT, VCCBRAM, VCCAUX, and VCCO to achieve minimum current draw
and ensure that the I/Os are 3-stated at power-on. The recommended power-off sequence is the reverse of the power-on
sequence. If VCCINT and VCCBRAM have the same recommended voltage levels then both can be powered by the same
supply and ramped simultaneously. If VCCAUX and VCCO have the same recommended voltage levels then both can be
powered by the same supply and ramped simultaneously.
------
GTP Transceivers (XC7Z015 Only)
The recommended power-on sequence to achieve minimum current draw for the GTP transceivers (XC7Z015 only) is
VCCINT, VMGTAVCC, VMGTAVTT OR VMGTAVCC, VCCINT, VMGTAVTT. Both VMGTAVCC and VCCINT can be ramped simultaneously.
The recommended power-off sequence is the reverse of the power-on sequence to achieve minimum current draw.
-----------------
上文可以看到PS和PL还有GTP上电都是有要求的。
我的板子ZYNQ的电源有四种1.0,1.2,1.8,3.3,前面三个都是由3.3转换的,并且是同时上电,而3.3作为PL的VCCO用的是PCIe插槽的电源,因此3.3肯定是先上电了,这些肯定都不符合要求,现在考虑非常有可能是这个引起的器件工作不可靠。但是目前又无法验证。只是有一点不明白,是什么把PC机拉垮掉的。板卡和PC机之间只有PCIE和电源连接,难道是主板保护了?直到板卡正常了才解除保护?

雪夜虫子
5楼-- · 2020-02-02 23:41
PCI-E初始化时要和主机做交互(链路training)。也可能上电顺序影响了这个过程,出现了问题。具体就得调试、分析了。
但总之,先把芯片使用要求的上电顺序、时序什么的都满足了。
雪夜虫子
6楼-- · 2020-02-03 03:12
xiaolin4006 发表于 2015-9-12 20:19
非常感谢你的回复,我的电源确实没有进行排序,因之前参考了SNOWLEO开发板,它的电源部分为同步上电。所以 ...

最好参考官方demo板的设计。每个系列的器件都会有几款典型型号的板子,官方网站上都有相关文档(包括原理图和gerber文件)下载。

一周热门 更多>