调试记录 CPU PCIE 找不到设备,AC 耦合电容的问题

2024-05-10 21:20

本文主要是介绍调试记录 CPU PCIE 找不到设备,AC 耦合电容的问题,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

1. 问题

现象:

1.  国产CPU的主板,主板内的PCIE 设备找的到,但是另一块板子上连接的PCIE 设备找不到。



2. 排查问题在哪里的计划

1. 检查原理图先排除信号定义的问题, TXRX是否反接。

2. 示波器检查PCIE 的时钟频率是否正确。

3. 检查是否在 AC电容上设计有问题。

4. 配置CPU 的固件(BIOS) 使用EQ均衡,降速,硬件上降lane 的实验。



3. 网上抄的PCIE 问题定位指导图

参考文章:PCIe 定位:链路问题定位方法 - 极术社区 - 连接开发者与智能计算生态 (aijishu.com)

参考文章:PCI/PCIe设备驱动问题定界定位 - 资料中心 1.0 专题排查指导 - 华为计算 (huawei.com)



4. 排除问题的过程

1. 先看原理图查看信号的PCIE的定义是否有错。信号有(PCIE 的复位信号, TX,RX, 时钟信号),查看这些信号板与板之间的连接是否有信号定义搞错。  这个板的TX 需要接另外一个板的 RX,  时钟信号是直连。   
 ----结果:定义没有错误。


2. 硬件上使用万用表查看两板之间的PCIE信号的通道是否连通, 因为是两块PCB 板上的连接。 

----结果:两板之间的连接通道没有问题。


3. 软件上修改 BIOS 程序,注意BIOS 中PCIE 的拆分(X16  和 X8/X8), 设置PCIE的 EQ平衡和 降速(gen3,gen2,gen1), (测试多个了 BIOS 程序)

----结果: 还是找不到设备。   (硬件人员一般都是说软件有问题,所以先查软件问题)


4. 使用示波器查看 PCIE 复位信号是否到了      没有找到的设备哪里。

----结果: PCIE 设备上的复位信号没有问题。


5. 使用示波器查看PCIE 波形, 需要查看发射端和接收端两个部分。

先测量发射端的PCIE 波形:        使用示波器交流耦合查看时钟波形 

---- 结果: 波形正常但是质量一般。时钟频率正常。

查看接收端的PCIE 波形:            使用示波器交流耦合查看时钟波形 

----结果: 波形不正常质量非常的差。 按下 STOP 抓不到波形。 

猜测就是这里的问题了。


        找到问题之后,查看原理图,发现PCIE时钟信号通道   发射端和接收端都有AC电容。按照PCIE 规范是说如果是两块板连接时,AC耦合电容放在发送端的那块板上,通道连接只需要一个AC 耦合电容即可。

        两个AC 电容在一根线上会造成 浮地效果,造成地电位变动,也会增加对模拟电路的感应干扰。所以时钟信号变差变得不可使用。

        最后把 一端的AC 耦合电容变成 0R 的电阻即可。

参考文章:Day11 浮地系统_电子发烧友学院 (elecfans.com)

参考文章:高速差分信号AC耦合电容详解-CSDN博客

这篇关于调试记录 CPU PCIE 找不到设备,AC 耦合电容的问题的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/977590

相关文章

Python UV安装、升级、卸载详细步骤记录

《PythonUV安装、升级、卸载详细步骤记录》:本文主要介绍PythonUV安装、升级、卸载的详细步骤,uv是Astral推出的下一代Python包与项目管理器,主打单一可执行文件、极致性能... 目录安装检查升级设置自动补全卸载UV 命令总结 官方文档详见:https://docs.astral.sh/

MySQL 设置AUTO_INCREMENT 无效的问题解决

《MySQL设置AUTO_INCREMENT无效的问题解决》本文主要介绍了MySQL设置AUTO_INCREMENT无效的问题解决,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参... 目录快速设置mysql的auto_increment参数一、修改 AUTO_INCREMENT 的值。

关于跨域无效的问题及解决(java后端方案)

《关于跨域无效的问题及解决(java后端方案)》:本文主要介绍关于跨域无效的问题及解决(java后端方案),具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教... 目录通用后端跨域方法1、@CrossOrigin 注解2、springboot2.0 实现WebMvcConfig

统一返回JsonResult踩坑的记录

《统一返回JsonResult踩坑的记录》:本文主要介绍统一返回JsonResult踩坑的记录,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教... 目录统一返回jsonResult踩坑定义了一个统一返回类在使用时,JsonResult没有get/set方法时响应总结统一返回

Go学习记录之runtime包深入解析

《Go学习记录之runtime包深入解析》Go语言runtime包管理运行时环境,涵盖goroutine调度、内存分配、垃圾回收、类型信息等核心功能,:本文主要介绍Go学习记录之runtime包的... 目录前言:一、runtime包内容学习1、作用:① Goroutine和并发控制:② 垃圾回收:③ 栈和

Go语言中泄漏缓冲区的问题解决

《Go语言中泄漏缓冲区的问题解决》缓冲区是一种常见的数据结构,常被用于在不同的并发单元之间传递数据,然而,若缓冲区使用不当,就可能引发泄漏缓冲区问题,本文就来介绍一下问题的解决,感兴趣的可以了解一下... 目录引言泄漏缓冲区的基本概念代码示例:泄漏缓冲区的产生项目场景:Web 服务器中的请求缓冲场景描述代码

Java死锁问题解决方案及示例详解

《Java死锁问题解决方案及示例详解》死锁是指两个或多个线程因争夺资源而相互等待,导致所有线程都无法继续执行的一种状态,本文给大家详细介绍了Java死锁问题解决方案详解及实践样例,需要的朋友可以参考下... 目录1、简述死锁的四个必要条件:2、死锁示例代码3、如何检测死锁?3.1 使用 jstack3.2

解决JSONField、JsonProperty不生效的问题

《解决JSONField、JsonProperty不生效的问题》:本文主要介绍解决JSONField、JsonProperty不生效的问题,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑... 目录jsONField、JsonProperty不生效javascript问题排查总结JSONField

github打不开的问题分析及解决

《github打不开的问题分析及解决》:本文主要介绍github打不开的问题分析及解决,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教... 目录一、找到github.com域名解析的ip地址二、找到github.global.ssl.fastly.net网址解析的ip地址三

java对接海康摄像头的完整步骤记录

《java对接海康摄像头的完整步骤记录》在Java中调用海康威视摄像头通常需要使用海康威视提供的SDK,下面这篇文章主要给大家介绍了关于java对接海康摄像头的完整步骤,文中通过代码介绍的非常详细,需... 目录一、开发环境准备二、实现Java调用设备接口(一)加载动态链接库(二)结构体、接口重定义1.类型