这两天项目准备去做实验,需要对两块板卡进行程序固化更新。程序升级完成之后发现两块板子除了LVDS上注功能不能使用之外,其他功能都正常。
1、功能框图
2、主要现象
一、将相同的程序用JTGA模式在线加载在另外1块调试板卡上,发现程序LVDS上注功能正常;
二、将出现问题的两块板卡多次上下电进行测试,偶尔发现会正常使用。也就是说最新更新的这两块板卡有时LVDS上注正常,有时上注失败。
3、排查过程
1、查看LVDS接收端的原理图,发现接收端的差分转单端LVDS芯片clock信号未连接到FPGA专用时钟引脚,连接的是普通的I/O口引脚,此时需要FPGA软件内部进行一个时钟处理,检查发现FPGA内部时钟处理满足要求,采用的是BUFG+MMCM的方式实现普通IO口输入时钟经BUFG全局时钟后经由MMCM进行相位调整输出;
2、将程序烧写进调试版Flash中重新启动进行测试,其他连接方法不变,发现调试板同样会出现LVDS上注有时成功有时失败的情况;
3、挂上JTGA进行在线抓信号测试时未发现异常现象;
4、通过改变LVDS发送端和LVDS接收端之间的上电顺序,发现如果发送端先上电接收端后上电的话,该问题不会出现,LVDS功能正常;如果接收端先上电,发送端后上电的话,LVDS上注功能失败,初步排定位在LVDS上注功能与上电顺序相关;
5、重新回到原理图进行查看,发现LVDS接收端硬件未焊接上拉电阻,导致LVDS传输线路存在问题,查看典型应用,需要LVDS接收端焊接电阻满足阻抗匹配要求,最终问题定位在硬件LVDS接收端未焊接上拉电阻,问题得以解决。
4、结论
LVDS接收芯片未焊接上拉电阻导致上注时数据传输异常,从而导致整个功能失败。