新手入门板卡硬件调试

本文介绍新手入门板卡硬件调试方法,包括观察焊接情况、测量阻抗、接触式上电。还阐述调试中常见问题的解决思路,如电源供电问题用示波器检测,运放震荡可通过环内或环外补偿解决,测量选近GND点,振铃现象需进行阻抗匹配端接。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

新手入门板卡硬件调试

一看→观察焊接情况

 1. 拿到板卡后,首先观察下焊接情况,观察的焊接主要是是否有元器件有漏焊或者焊接错误(示印上显示的电阻,结果焊接的电容),或者存在连锡现象等,如果发现有漏焊或者焊接错误的情况,最好的处理办法是对照BOM进行查看,是否设计的合理。

二测→测量阻抗

  1.完成一的步骤后,就要进入上电前的操作了那就是测量阻抗,测量的阻抗是为了保证芯片的供电正常以免发生短路现象,再测量之前最好与电源输出不要连接,因为电源的内阻特别小(几欧姆的电阻),如果连接测量的话板卡的电阻与电源内阻并联测量到的结果会误以为是短路状态。
  2.依次测量所有供电电源引脚对GND的阻抗,出现0R(或者万用表笔短接时电阻值)就需要排查哪里出现的问题(多半的原因可能是连锡),一般短路不好找原因,只能一个一个拆元器件(与该电源有关的元器件),边拆边测,直到找到短路的原因。
  3.确认完板卡上所有的电源均供电正常后,便完成了上电前的准备工作了。

三接触式上电

  1.为了确保贵重的元器件如FPGA等因供电不正常烧毁,通常在原理图设计时,将为其供电的电源芯片后的电阻(一般是磁珠或者OR电阻)拆除,然后再上电,而上电通常采用“瞬间上电”,看下电压是否正常,然后迅速关闭电源,测量一个一个的供电电源正常后,然后持续供电,依次测量是否电压正常,确认无误后,再将磁珠或者0R电阻焊接上进行测量供电电压,从而避免FPGA烧毁。

调试遇到的问题一般解决思路

*板卡输出与理论设计输出不否

电源供电

1.这时仍然是电源供电最为关键,这时不能使用万用表观察电源了,需要使用示波器,同时为了避免不同插座导致示波器的GND与板卡的供电的GND不同,通常将示波器的供电电源线与板卡供电的电源线接在同一个插线板。

运放出现震荡

运放震荡自激的原因:

1、环路增益大于1 (|AF|》1)2、反馈前后信号的相位差在360度以上,也就是能够形成正反馈。
在负反馈电路时,反馈系数F越小越可能不产生自激震荡。换句话说,F越大(即反馈量越大),产生自激震荡的可能性越大。对于电阻反馈网络,F的最大值是1。如果一个放大电路在F=1时没有产生自激振荡,那么对于其他的电阻反馈电路也不会产生自激振荡。F=1的典型电路就是电压跟随电路。所以在工作中,常常将运放接成跟随器的形式进行测试,若无自激再接入实际电路中自激振荡的引起,主要是因为集成运算放大器内部是由多级直流放大器所组成,由于每级放大器的输出及后一级放大器的输入都存在输出阻抗和输入阻抗及分布电容,这样在级间都存在R-C相移网络,当信号每通过一级R-C网络后,就要产生一个附加相移.此外,在运放的外部偏置电阻和运放输入电容,运放输出电阻和容性负载反馈电容,以及多级运放通过电源的公共内阻,甚至电源线上的分布电感,接地不良等耦合,都可形成附加相移,结果,运放输出的信号,通过负反馈回路再叠加增到180度的附加相移,且若反馈量足够大,终将使负反馈转变成正反馈,从而引起振荡。
* 重要的概念

相位裕度 ---如下图所示,显然我们比较关心当20lg|AF|=0时,相位偏移是否超过180。

![在这里插入图片描述](https://img-blog.csdnimg.cn/20190619225248974.jpg?x-oss-process=image/watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L25hcnV0b19kb25n,size_16,color_FFFFFF,t_70)

运放震荡原因:

  1. 可能运放是分布电容和电感引起的 ----------------可通过反馈端并联电容,抵消影响。
  2. 运放驱动容性负载导致。 ---------------------------可在运放输出端先接入一个电阻,再接负载。
  3. 可能是反馈过深引起的 -----------------------------可通过减少环路增益,减少反馈量,即增大闭环增益。例如运放作为电压跟随易震荡,增大放大倍数,震荡会消失。

解决方法:

  1. 环内补偿

运放反馈电阻并接反馈电容:----相位超前补偿

(如下图显然补偿后0dB的频率后移,运放带宽扩大,即自激的频率点后移了)
在这里插入图片描述
小电容叫做移相电容,防止运放自激的一般取0点几皮法到几十皮法几百皮法,看工作的频率以及运放的型号来定。简单点说加的电容越大,带宽越窄。

防止振荡Rf和运放的输入电容及杂散电容形成极点,如果该极点在运放使用的频率范围内就可能使运放产生振荡;加入Cf后,Cf和Rf产生零点,用来抵消极点。一般取值Cf>Ci,Ci为运放的输入电容和输入脚杂散总电容。

  1. 环路外补偿法、

在运放的输出端串上一个小电阻

再连到后级,十几欧到几十欧之间既可,具体值与后级电路的输入电容有关,可尝试不同的电阻值,获得稳定的输出

由于考虑到负载存在一点的容性(CL),环路增益在输出电阻和CL的作用下降低。同时,相位和增益之间不再有比例关系,相位滞后成为决定性因素,使反馈环路失去稳定,最糟糕时可能导致震荡。。因此在运放输出端接入一个小电阻R,消除因CL而产生的反馈环路相位滞后

PS:

1.电源供电稳定,最好并联0.1uf ,10uf等电容

2.放大倍数不能过大,放大级数也不要超过四级

实验或测试之前,若用示波器接在运放输出端,有时可以看到频率较高且近似正弦波的波形,偶尔也出现低频振荡的情况.可根据产生振荡的原理采取不同的方法解决:

(1)反馈极性是否接错或负反馈太强.若将负反馈错接成正反馈则极易产生振荡.另外,负反馈愈强也愈易产生自激.

(2)若输出端接有的电容性负载,由于容性负载加强了电路的相移,所以更易自激.可以用另一个RC环节来补偿相移,如果补偿得好自激振荡就会消除.

(3)接线杂散电容过大.当输人回路为高阻时,由接线到地或接线之间的杂散电容与电阻组成的滞后环节,将使组件变得不稳定.为此可在Rf(反馈电阻)两端并联一个电容CF,或者在运放的输人端并联一个RC支路,这两个环节都属于超前校正的性质,即它们产生的相位超前作用将有可能抵消前面所述杂散电容所起的相位滞后作用,从而使运放稳定.

(4)电源接线旁路措施不够.电源引线不仅具有一定电阻,还有一定的电感和分布电容,因此当有许多运放接到同一根电源线时,,将通过这些因素产生相互之间的影响,解决的办法是在印刷电路板插座上的正负电源的接线端与地之间接上几十uF的电解电容和0.01uF的陶瓷电容相并联,如果运放是作为宽频放大,须选用低电感量的电容.

2.用示波器探头测量供电电源,在设备上电后查看电源是否存在电压有下降或者存在电源噪声等问题,如果输出的信号中存在与电源噪声一样的频率和幅值的信号的话就需要进行电源滤波处理了,如果输出的波形有震荡,则需要根据信号的流向从输入级到输出级一级一级查看波形,确认从哪一级出现了震荡现象,然后根据震荡的现象进行修改,如果是模拟电路通常用运放在反馈端并联电容,容值很小一般低于20pF。
如果有存在电源供电存在压降的情况下,一方面确认供电电流是否满足要求,一方面确认板卡在工作状态变换时是否存在某些元器件从不工作到工作,可能由于它的工作造成了一定的短路等引起的问题。

测量时GND的选取

3.另外使用示波器测量时GND的选取通常是靠近该测量点的最近GND,以免因GND过长引起不必要的干扰,一般是走线中的电容或者电感等。
4.依照上述操作一般可以解决入门级的板卡调试问题,另外具体问题具体分析,这是解决问题的根本方法。

更新---------------------------2019年6月19--------------------------------------------------------------------------------

振铃现象

今天调试过程中遇到出现振铃现象,在运放输出后无振铃现象。
那么信号振铃是怎么产生的呢?
前面讲过,如果信号传输过程中感受到阻抗的变化,就会发生信号的反射。这个信号可能是驱动端发出的信号,也可能是远端反射回来的反射信号。根据反射系数的公式,当信号感受到阻抗变小,就会发生负反射,反射的负电压会使信号产生下冲。信号在驱动端和远端负载之间多次反射,其结果就是信号振铃。大多数芯片的输出阻抗都很低,如果输出阻抗小于PCB走线的特性阻抗,那么在没有源端端接的情况下,必然产生信号振铃。
信号振铃根本原因是负反射引起的,其罪魁祸首仍然是阻抗变化,又是阻抗!在研究信号完整性问题时,一定时时注意阻抗问题。
负载端信号振铃会严重干扰信号的接受,产生逻辑错误,必须减小或消除,因此对于长的传输线必须进行阻抗匹配端接。
一般选择33R到66R的电阻进行端接。一般是将运放输出端接串联电阻33R或者66R。

### 板卡测试常见面试题及答案解析 #### 1. 板卡测试的基本流程包括哪些环节? 板卡测试通常包括以下几个主要环节: - **外观检查**:确认板卡是否有物理损坏、焊接缺陷或元器件缺失。 - **电源测试**:测量各电源轨的电压是否符合设计规范,检查是否存在短路或过流问题。 - **功能测试**:验证板卡上的各个功能模块是否正常工作,如通信接口、存储器、传感器等。 - **性能测试**:评估板卡在高负载、高温或高湿度等极端条件下的稳定性和性能表现。 - **老化测试**:通过长时间运行测试,检测板卡的可靠性和耐久性。 - **EMC测试**:确保板卡的电磁兼容性符合相关标准,避免对外部设备造成干扰或受外部干扰影响[^1]。 #### 2. 板卡测试中常见的测试工具和设备有哪些? 在板卡测试过程中,常用的测试工具和设备包括: - **万用表**:用于测量电压、电流、电阻等基本电气参数。 - **示波器**:用于观察信号波形,分析时序、噪声、抖动等问题。 - **逻辑分析仪**:用于捕获和分析数字信号,帮助调试复杂的数字电路。 - **信号发生器**:用于生成特定频率和幅度的信号,用于激励测试对象。 - **电源负载仪**:用于模拟不同负载条件下的电源表现。 - **热成像仪**:用于检测板卡在运行过程中的温度分布,识别潜在的过热问题。 - **自动测试设备(ATE)**:用于实现高效、自动化的测试流程,尤其适用于量产测试[^1]。 #### 3. 如何判断板卡是否存在电源问题? 判断板卡是否存在电源问题可以从以下几个方面入手: - **电压测量**:使用万用表或示波器测量各电源轨的电压是否符合设计要求。 - **电流测量**:通过电流探头或电流表测量各模块的电流消耗,判断是否存在异常功耗。 - **纹波和噪声分析**:使用示波器观察电源输出的纹波和噪声,确保其在可接受范围内。 - **负载测试**:在不同负载条件下测试电源稳定性,确保电源在高负载下仍能保持稳定输出。 - **短路检测**:使用通断测试功能检查电源线路是否存在短路或接地故障[^1]。 #### 4. 板卡测试中如何进行信号完整性测试? 信号完整性测试是确保高速信号在传输过程中不失真的关键步骤,通常包括以下方法: - **眼图测试**:通过示波器观察信号的眼图,判断信号的抖动、噪声和失真情况。 - **时钟抖动分析**:测量时钟信号的抖动幅度,确保其在允许范围内。 - **阻抗匹配测试**:使用网络分析仪测试高速线路的阻抗匹配情况,确保传输线特性阻抗一致。 - **串扰分析**:测量相邻信号线之间的串扰,避免信号之间的相互干扰。 - **时序分析**:使用逻辑分析仪或示波器测量信号的建立和保持时间,确保符合时序要求[^1]。 #### 5. 板卡测试中如何处理测试失败的情况? 当板卡测试失败时,通常采取以下步骤进行排查和处理: - **初步分析**:记录测试失败的现象和错误代码,初步判断可能的故障原因。 - **复测确认**:重新进行测试,排除测试环境或测试设备的问题。 - **隔离故障**:使用分段测试或模块化测试方法,逐步缩小故障范围。 - **硬件调试**:使用示波器、万用表等工具检查硬件电路,查找短路、断路、焊接不良等问题。 - **软件调试**:如果涉及固件或驱动程序问题,使用调试工具(如JTAG、SWD)进行软件层面的分析。 - **故障修复与再测试**:修复问题后重新进行测试,确保问题已解决并验证修复效果[^3]。 #### 6. 板卡测试中如何设计测试用例? 设计板卡测试用例时应考虑以下几个方面: - **功能覆盖**:确保测试用例覆盖所有功能模块和接口。 - **边界条件**:测试极端输入条件,如最大/最小电压、最大电流、高温/低温等。 - **异常情况**:模拟异常操作或故障情况,如断电、信号干扰、通信错误等。 - **自动化测试**:为重复性测试设计自动化脚本,提高测试效率。 - **可重复性**:确保测试用例可以重复执行,并且结果具有可比性。 - **结果验证**:明确测试通过的标准,并提供清晰的结果验证方法。 #### 7. 板卡测试中的老化测试(Burn-in Test)有何作用? 老化测试板卡测试中的重要环节,主要用于: - **筛选早期失效**:通过长时间运行,提前暴露制造缺陷或元器件早期失效问题。 - **验证稳定性**:评估板卡在持续运行条件下的稳定性和可靠性。 - **模拟实际使用环境**:通过施加负载、温度变化等条件,模拟真实应用场景,确保板卡在实际使用中不会出现故障。 - **提高产品质量**:通过老化测试可以提高产品的整体质量,减少售后问题。 ```python # 示例:自动化测试脚本(模拟电源测试) def test_power_supply(): # 模拟测量各电源轨电压 voltage_3v3 = measure_voltage("3.3V") voltage_5v = measure_voltage("5V") voltage_12v = measure_voltage("12V") # 判断电压是否在允许范围内 assert 3.2 <= voltage_3v3 <= 3.4, f"3.3V电源异常,测得{voltage_3v3}V" assert 4.9 <= voltage_5v <= 5.1, f"5V电源异常,测得{voltage_5v}V" assert 11.5 <= voltage_12v <= 12.5, f"12V电源异常,测得{voltage_12v}V" print("电源测试通过") def measure_voltage(rail): # 模拟测量电压 return { "3.3V": 3.32, "5V": 5.05, "12V": 12.0 }.get(rail, 0) if __name__ == "__main__": test_power_supply() ```
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值