电路调试之“三毒”—“贪”“嗔”“痴”
时间:10-02
整理:3721RD
点击:
第一:前期准备。这包括准备元件库和原理图。“工欲善其事,必先利其器”,要做出一块好的板子,除了要设计好原理之外,还要画得好。在进行PCB设计之前,首先要准备好原理图SCH的元件库和PCB的元件库。元件库可以用peotel 自带的库,但一般情况下很难找到合适的,最好是自己根据所选器件的标准尺寸资料自己做元件库。原则上先做PCB的元件库,再做SCH的元件库。PCB的元件库要求较高,它直接影响板子的安装;SCH的元件库要求相对比较松,只要注意定义好管脚属性和与PCB元件的对应关系就行。PS:注意标准库中的隐藏管脚。之后就是原理图的设计,做好后就准备开始做PCB设计了。
第二:PCB结构设计。这一步根据已经确定的电路板尺寸和各项机械定位,在PCB 设计环境下绘制PCB板面,并按定位要求放置所需的接插件、按键/开关、螺丝孔、装配孔等等。并充分考虑和确定布线区域和非布线区域(如螺丝孔周围多大范围属于非布线区域)。
第三:PCB布局。布局说白了就是在板子上放器件。这时如果前面讲到的准备工作都做好的话,就可以在原理图上生成网络表(Design-> Create Netlist),之后在PCB图上导入网络表(Design->Load Nets)。就看见器件哗啦啦的全堆上去了,各管脚之间还有飞线提示连接。然后就可以对器件布局了。一般布局按如下原则进行:
①. 按电气性能合理分区,一般分为:数字电路区(即怕干扰、又产生干扰)、模拟电路区(怕干扰)、功率驱动区(干扰源);
②. 完成同一功能的电路,应尽量靠近放置,并调整各元器件以保证连线最为简洁;同时,调整各功能块间的相对位置使功能块间的连线最简洁;
③. 对于质量大的元器件应考虑安装位置和安装强度;发热元件应与温度敏感元件分开放置,必要时还应考虑热对流措施;
④. I/O驱动器件尽量靠近印刷板的边、靠近引出接插件;
⑤. 时钟产生器(如:晶振或钟振)要尽量靠近用到该时钟的器件;
⑥. 在每个集成电路的电源输入脚和地之间,需加一个去耦电容(一般采用高频性能好的独石电容);电路板空间较密时,也可在几个集成电路周围加一个钽电容。
⑦. 继电器线圈处要加放电二极管(1N4148即可);
⑧. 布局要求要均衡,疏密有序,不能头重脚轻或一头沉
——需要特别注意,在放置元器件时,一定要考虑元器件的实际尺寸大小(所占面积和高度)、元器件之间的相对位置,以保证电路板的电气性能和生产安装的可行性和便利性同时,应该在保证上面原则能够体现的前提下,适当修改器件的摆放,使之整齐美观,如同样的器件要摆放整齐、方向一致,不能摆得“错落有致” 。
这个步骤关系到板子整体形象和下一步布线的难易程度,所以一点要花大力气去考虑。布局时,对不太肯定的地方可以先作初步布线,充分考虑。
第四:布线。布线是整个PCB设计中最重要的工序。这将直接影响着PCB板的性能好坏。在PCB的设计过程中,布线一般有这么三种境界的划分:首先是布通,这时PCB设计时的最基本的要求。如果线路都没布通,搞得到处是飞线,那将是一块不合格的板子,可以说还没入门。其次是电器性能的满足。这是衡量一块印刷电路板是否合格的标准。这是在布通之后,认真调整布线,使其能达到最佳的电器性能。接着是美观。假如你的布线布通了,也没有什么影响电器性能的地方,但是一眼看过去杂乱无章的,加上五彩缤纷、花花绿绿的,那就算你的电器性能怎么好,在别人眼里还是垃圾一块。这样给测试和维修带来极大的不便。布线要整齐划一,不能纵横交错毫无章法。这些都要在保证电器性能和满足其他个别要求的情况下实现,否则就是舍本逐末了。
布线时主要按以下原则进行:
①.一般情况下,首先应对电源线和地线进行布线,以保证电路板的电气性能。在条件允许的范围内,尽量加宽电源、地线宽度,最好是地线比电源线宽,它们的关系是:地线>电源线>信号线,通常信号线宽为:0.2~0.3mm,最细宽度可达0.05~0.07mm,电源线一般为1.2~2.5mm。对数字电路的 PCB可用宽的地导线组成一个回路, 即构成一个地网来使用(模拟电路的地则不能这样使用)
②. 预先对要求比较严格的线(如高频线)进行布线,输入端与输出端的边线应避免相邻平行,以免产生反射干扰。必要时应加地线隔离,两相邻层的布线要互相垂直,平行容易产生寄生耦合。
③. 振荡器外壳接地,时钟线要尽量短,且不能引得到处都是。时钟振荡电路下面、特殊高速逻辑电路部分要加大地的面积,而不应该走其它信号线,以使周围电场趋近于零;
④. 尽可能采用45o的折线布线,不可使用90o折线,以减小高频信号的辐射;(要求高的线还要用双弧线)
⑤. 任何信号线都不要形成环路,如不可避免,环路应尽量小;信号线的过孔要尽量少;
⑥. 关键的线尽量短而粗,并在两边加上保护地。
⑦. 通过扁平电缆传送敏感信号和噪声场带信号时,要用“地线-信号-地线”的方式引出。
⑧. 关键信号应预留测试点,以方便生产和维修检测用
⑨.原理图布线完成后,应对布线进行优化;同时,经初步网络检查和DRC检查无误后,对未布线区域进行地线填充,用大面积铜层作地线用,在印制板上把没被用上的地方都与地相连接作为地线用。或是做成多层板,电源,地线各占用一层。
——PCB布线工艺要求
①. 线
一般情况下,信号线宽为0.3mm(12mil),电源线宽为0.77mm(30mil)或1.27mm(50mil);线与线之间和线与焊盘之间的距离大于等于0.33mm(13mil),实际应用中,条件允许时应考虑加大距离;
布线密度较高时,可考虑(但不建议)采用IC脚间走两根线,线的宽度为0.254mm(10mil),线间距不小于0.254mm(10mil)。特殊情况下,当器件管脚较密,宽度较窄时,可按适当减小线宽和线间距。
②. 焊盘(PAD)
焊盘(PAD)与过渡孔(VIA)的基本要求是:盘的直径比孔的直径要大于0.6mm;例如,通用插脚式电阻、电容和集成电路等,采用盘/孔尺寸 1.6mm/0.8mm(63mil/32mil),插座、插针和二极管1N4007等,采用1.8mm/1.0mm(71mil/39mil)。实际应用中,应根据实际元件的尺寸来定,有条件时,可适当加大焊盘尺寸;
PCB板上设计的元件安装孔径应比元件管脚的实际尺寸大0.2~0.4mm左右。
③. 过孔(VIA)
一般为1.27mm/0.7mm(50mil/28mil);
当布线密度较高时,过孔尺寸可适当减小,但不宜过小,可考虑采用1.0mm/0.6mm(40mil/24mil)。
④. 焊盘、线、过孔的间距要求
PAD and VIA : ≥ 0.3mm(12mil)
PAD and PAD : ≥ 0.3mm(12mil)
PAD and TRACK : ≥ 0.3mm(12mil)
TRACK and TRACK : ≥ 0.3mm(12mil)
密度较高时:
PAD and VIA : ≥ 0.254mm(10mil)
PAD and PAD : ≥ 0.254mm(10mil)
PAD and TRACK : ≥ 0.254mm(10mil)
TRACK and TRACK : ≥ 0.254mm(10mil)
第五:布线优化和丝印。“没有最好的,只有更好的”!不管你怎么挖空心思的去设计,等你画完之后,再去看一看,还是会觉得很多地方可以修改的。一般设计的经验是:优化布线的时间是初次布线的时间的两倍。感觉没什么地方需要修改之后,就可以铺铜了(Place->polygon Plane)。铺铜一般铺地线(注意模拟地和数字地的分离),多层板时还可能需要铺电源。时对于丝印,要注意不能被器件挡住或被过孔和焊盘去掉。同时,设计时正视元件面,底层的字应做镜像处理,以免混淆层面。
第六:网络和DRC检查和结构检查。首先,在确定电路原理图设计无误的前提下,将所生成的PCB网络文件与原理图网络文件进行物理连接关系的网络检查(NETCHECK),并根据输出文件结果及时对设计进行修正,以保证布线连接关系的正确性;
网络检查正确通过后,对PCB设计进行DRC检查,并根据输出文件结果及时对设计进行修正,以保证PCB布线的电气性能。最后需进一步对PCB的机械安装结构进行检查和确认。
第七:制版。在此之前,最好还要有一个审核的过程。
PCB设计是一个考心思的工作,谁的心思密,经验高,设计出来的板子就好。所以设计时要极其细心,充分考虑各方面的因数(比如说便于维修和检查这一项很多人就不去考虑),精益求精,就一定能设计出一个好板子。
step
1
贪——希望获得与保有,但终是受挫。
在很多时候,拿到刚刚完成贴装寄回手上的新电路板,做的第一件事情往往是接通电路,看看有没有预期的表现。在我刚刚接触电路设计工作不久的时候,我在此时往往期待的是一个非常明确的表现,恨不得屏幕上立即显示正确的结果;但是往往是一堆乱码,甚至是什么都没有。
在电路没有被实际生产出来之前,我总是很希望自己的设计是天衣无缝,面面俱到的 ,所以对新设计的期待很高。总是所有跳过的调试阶段直接观察最终的输出。好像最终输出正常就表示电路没有丝毫问题,而没有正常的输出往往会让人觉得很失望。
实际上难以发现和处理的问题往往隐藏在完全正常的最终表现之后。当我们看到一个符合预期的最终结果的时候,清晰的思路往往会被骄傲和庆幸占据而不再去关注不 易发现的细节问题,抱着侥幸的心态说没有什么问题了。实际上这种心态是内心深处对自己设计的不自信,以及对解决未知问题的惶恐,急于试图遮蔽自己的双眼, 对问题视而不见。
在最终输出正常的情况下,即使发现了电路细节上有不符合自己预期的地方,我有时候仍然会想到要把错误归结到仪器使用的问题,焊接问题,未知的干扰源(比如电网干扰)甚至是宇宙射线的影响;生怕深入挖掘这个问题的时候会发现更多的问题使当前的“正常”化为乌有。
有时候最终输出结果是错误百出的,完全不符合预期的;在这种时候反而给我们很多线索,只要抓住这些线索,分析产生现有输出的原因,反倒很容易发现错误的根源并且加以解决。
1:确认电路板走线的完好
2:确认元器件是否正常
3:确认焊接良好
其实第一次通电心里都是毛毛的,怕冒烟,但是只要能通电完好,就可以开始调试了·······
一次成功的事情其实很少,每次都在捉虫中成长
养成良好的习惯最重要. 多步骤多次检查也是必要的.
1. 做板之前原理图验证检查
2. PCB布线检查/完整性检查
3. 生成GERBER在此检查
4. 裸板检查
我觉得在原理图检查之前还要在过去没有经验的,或者功能复杂的器件的Data Sheet上多下一点功夫,确认自己真的理解了这些元器件的性能和表现。
step2
嗔——因无法得到和控制产生烦恼与仇恨。
电路没有正常工作,一般就要开始采取各种行动来探究它罢工 的原因。当我打开示波器,万用表,频谱仪,信号发生器,可调电源;花费半个小时拆解了机壳,卸下螺丝,焊上测试用飞线之后,有时候会发现输入是正常的,电源是正常的,配置也是正常的,就是输出不正常……
好像我能量到的其他地方都挺正常,但是信号进入芯片/模块之后,就再也没有好好出来;我摸摸芯片,它默默的不做声,可能会有点发热,但是也只是比环境温度高一点点。于是我开始想是不是这个芯片坏了,你用一个新的芯片替换它,但是电路仍然故我,保持罢工。
这时候有一种无名的怒火从我心中升起,我测量每一个测试点,看着各种电压/电流/频率/功率,但仅仅是盲目的测量,希望看到什么线索。但是所谓线索即所谓异 常的现象,都是相对于正常的现象来说的,而心中焦躁愤怒的情绪往往使人无法集中注意力思考看到的现象和期望之中的区别。
情况更糟的时候,你会认定是某个器件坏了,仿佛这就不是自己设计或者设备生产时的问题,而是元器件供应商的责任。但是事实上,经过出厂测试的商用芯片真正出现质量问题的可能性并不是那么大,当我反复测试芯片/模块本身性能之后往往得到的就是“它工作正常”这个结论。
“世界上没有不可思议之事,世界上只会发生可能发生之事。”
当每个器件都工作正常,但是系统整体发生问题的时候,那只能说明在系统设计的时候出现了问题。这种问题往往是因为对整个系统的运行考虑周全和深入理解,或者 是对元器件的工作原理和性能的了解还不充分。这个时候就更需要冷静的心态,暂时放下抱怨和急躁才能找到那关键的一点灵光一现。
当年电子设计竞赛俩月集训得到的怪经验:
1、你要引导电路怎么工作:直接测最后一级没有输出,那就从第一级开始测,有信号,第二级有信号,第三级有信号……最后一级也有信号了!
2、看着他,看到他不好意思,他就正常工作了!
3、不理他,冷落她,他就会自己好了。
step
3
痴——因对法界不如实知见,故作颠倒之行。
调试不仅仅是要发现问题而且还要让问题得到解决和消除。发现异常仅仅是起手第一步,之后是分析异常的本质。然而,人往往有惯性的思维希望依赖过去的 经验快速地解决问题。然而绝大部分时候过去的经验并不一定能很完美的解决一个现有的特定环境下的问题。只有掌握现象背后的原理,才能举一反三。
一个很简单的例子,在给高速数字芯片加去耦电容的时候,很多人都知道需要加“一个大电容和一个小电容”,问起原因有些人会说滤除电源系统上的噪声。实际上即 使直接采用电池供电(电源非常稳定,没有开关噪声)的系统当中,高速数字芯片附近仍然需要去耦电容,这些电容的存在是为了提高电源对芯片的瞬态输出能力。
当数字芯片的内部时钟边沿触发逻辑翻转是需要在瞬间从电源吸取比较大的电流,这时需要电容来提供一个“本地”的瞬态电源,以克服电源到芯片之间导线上的寄生 电感和电阻的影响。如果盲目的认为电容总是用来滤除噪声的,就会出现确实使用了两个电容,但是却用了比较长的导线布置在了远离芯片的地方之类的错误。
在遇到调试问题的时候要睁大双眼,同时也要扫除心理的惰性和对已有经验的依赖,从客观的角度分析问题。扎实的理论根基可以助人消除迷惘,同时利用从每一次的调试的机会也可以学到很多新的经验和隐藏在背后的知识。
第二:PCB结构设计。这一步根据已经确定的电路板尺寸和各项机械定位,在PCB 设计环境下绘制PCB板面,并按定位要求放置所需的接插件、按键/开关、螺丝孔、装配孔等等。并充分考虑和确定布线区域和非布线区域(如螺丝孔周围多大范围属于非布线区域)。
第三:PCB布局。布局说白了就是在板子上放器件。这时如果前面讲到的准备工作都做好的话,就可以在原理图上生成网络表(Design-> Create Netlist),之后在PCB图上导入网络表(Design->Load Nets)。就看见器件哗啦啦的全堆上去了,各管脚之间还有飞线提示连接。然后就可以对器件布局了。一般布局按如下原则进行:
①. 按电气性能合理分区,一般分为:数字电路区(即怕干扰、又产生干扰)、模拟电路区(怕干扰)、功率驱动区(干扰源);
②. 完成同一功能的电路,应尽量靠近放置,并调整各元器件以保证连线最为简洁;同时,调整各功能块间的相对位置使功能块间的连线最简洁;
③. 对于质量大的元器件应考虑安装位置和安装强度;发热元件应与温度敏感元件分开放置,必要时还应考虑热对流措施;
④. I/O驱动器件尽量靠近印刷板的边、靠近引出接插件;
⑤. 时钟产生器(如:晶振或钟振)要尽量靠近用到该时钟的器件;
⑥. 在每个集成电路的电源输入脚和地之间,需加一个去耦电容(一般采用高频性能好的独石电容);电路板空间较密时,也可在几个集成电路周围加一个钽电容。
⑦. 继电器线圈处要加放电二极管(1N4148即可);
⑧. 布局要求要均衡,疏密有序,不能头重脚轻或一头沉
——需要特别注意,在放置元器件时,一定要考虑元器件的实际尺寸大小(所占面积和高度)、元器件之间的相对位置,以保证电路板的电气性能和生产安装的可行性和便利性同时,应该在保证上面原则能够体现的前提下,适当修改器件的摆放,使之整齐美观,如同样的器件要摆放整齐、方向一致,不能摆得“错落有致” 。
这个步骤关系到板子整体形象和下一步布线的难易程度,所以一点要花大力气去考虑。布局时,对不太肯定的地方可以先作初步布线,充分考虑。
第四:布线。布线是整个PCB设计中最重要的工序。这将直接影响着PCB板的性能好坏。在PCB的设计过程中,布线一般有这么三种境界的划分:首先是布通,这时PCB设计时的最基本的要求。如果线路都没布通,搞得到处是飞线,那将是一块不合格的板子,可以说还没入门。其次是电器性能的满足。这是衡量一块印刷电路板是否合格的标准。这是在布通之后,认真调整布线,使其能达到最佳的电器性能。接着是美观。假如你的布线布通了,也没有什么影响电器性能的地方,但是一眼看过去杂乱无章的,加上五彩缤纷、花花绿绿的,那就算你的电器性能怎么好,在别人眼里还是垃圾一块。这样给测试和维修带来极大的不便。布线要整齐划一,不能纵横交错毫无章法。这些都要在保证电器性能和满足其他个别要求的情况下实现,否则就是舍本逐末了。
布线时主要按以下原则进行:
①.一般情况下,首先应对电源线和地线进行布线,以保证电路板的电气性能。在条件允许的范围内,尽量加宽电源、地线宽度,最好是地线比电源线宽,它们的关系是:地线>电源线>信号线,通常信号线宽为:0.2~0.3mm,最细宽度可达0.05~0.07mm,电源线一般为1.2~2.5mm。对数字电路的 PCB可用宽的地导线组成一个回路, 即构成一个地网来使用(模拟电路的地则不能这样使用)
②. 预先对要求比较严格的线(如高频线)进行布线,输入端与输出端的边线应避免相邻平行,以免产生反射干扰。必要时应加地线隔离,两相邻层的布线要互相垂直,平行容易产生寄生耦合。
③. 振荡器外壳接地,时钟线要尽量短,且不能引得到处都是。时钟振荡电路下面、特殊高速逻辑电路部分要加大地的面积,而不应该走其它信号线,以使周围电场趋近于零;
④. 尽可能采用45o的折线布线,不可使用90o折线,以减小高频信号的辐射;(要求高的线还要用双弧线)
⑤. 任何信号线都不要形成环路,如不可避免,环路应尽量小;信号线的过孔要尽量少;
⑥. 关键的线尽量短而粗,并在两边加上保护地。
⑦. 通过扁平电缆传送敏感信号和噪声场带信号时,要用“地线-信号-地线”的方式引出。
⑧. 关键信号应预留测试点,以方便生产和维修检测用
⑨.原理图布线完成后,应对布线进行优化;同时,经初步网络检查和DRC检查无误后,对未布线区域进行地线填充,用大面积铜层作地线用,在印制板上把没被用上的地方都与地相连接作为地线用。或是做成多层板,电源,地线各占用一层。
——PCB布线工艺要求
①. 线
一般情况下,信号线宽为0.3mm(12mil),电源线宽为0.77mm(30mil)或1.27mm(50mil);线与线之间和线与焊盘之间的距离大于等于0.33mm(13mil),实际应用中,条件允许时应考虑加大距离;
布线密度较高时,可考虑(但不建议)采用IC脚间走两根线,线的宽度为0.254mm(10mil),线间距不小于0.254mm(10mil)。特殊情况下,当器件管脚较密,宽度较窄时,可按适当减小线宽和线间距。
②. 焊盘(PAD)
焊盘(PAD)与过渡孔(VIA)的基本要求是:盘的直径比孔的直径要大于0.6mm;例如,通用插脚式电阻、电容和集成电路等,采用盘/孔尺寸 1.6mm/0.8mm(63mil/32mil),插座、插针和二极管1N4007等,采用1.8mm/1.0mm(71mil/39mil)。实际应用中,应根据实际元件的尺寸来定,有条件时,可适当加大焊盘尺寸;
PCB板上设计的元件安装孔径应比元件管脚的实际尺寸大0.2~0.4mm左右。
③. 过孔(VIA)
一般为1.27mm/0.7mm(50mil/28mil);
当布线密度较高时,过孔尺寸可适当减小,但不宜过小,可考虑采用1.0mm/0.6mm(40mil/24mil)。
④. 焊盘、线、过孔的间距要求
PAD and VIA : ≥ 0.3mm(12mil)
PAD and PAD : ≥ 0.3mm(12mil)
PAD and TRACK : ≥ 0.3mm(12mil)
TRACK and TRACK : ≥ 0.3mm(12mil)
密度较高时:
PAD and VIA : ≥ 0.254mm(10mil)
PAD and PAD : ≥ 0.254mm(10mil)
PAD and TRACK : ≥ 0.254mm(10mil)
TRACK and TRACK : ≥ 0.254mm(10mil)
第五:布线优化和丝印。“没有最好的,只有更好的”!不管你怎么挖空心思的去设计,等你画完之后,再去看一看,还是会觉得很多地方可以修改的。一般设计的经验是:优化布线的时间是初次布线的时间的两倍。感觉没什么地方需要修改之后,就可以铺铜了(Place->polygon Plane)。铺铜一般铺地线(注意模拟地和数字地的分离),多层板时还可能需要铺电源。时对于丝印,要注意不能被器件挡住或被过孔和焊盘去掉。同时,设计时正视元件面,底层的字应做镜像处理,以免混淆层面。
第六:网络和DRC检查和结构检查。首先,在确定电路原理图设计无误的前提下,将所生成的PCB网络文件与原理图网络文件进行物理连接关系的网络检查(NETCHECK),并根据输出文件结果及时对设计进行修正,以保证布线连接关系的正确性;
网络检查正确通过后,对PCB设计进行DRC检查,并根据输出文件结果及时对设计进行修正,以保证PCB布线的电气性能。最后需进一步对PCB的机械安装结构进行检查和确认。
第七:制版。在此之前,最好还要有一个审核的过程。
PCB设计是一个考心思的工作,谁的心思密,经验高,设计出来的板子就好。所以设计时要极其细心,充分考虑各方面的因数(比如说便于维修和检查这一项很多人就不去考虑),精益求精,就一定能设计出一个好板子。
step
1
贪——希望获得与保有,但终是受挫。
在很多时候,拿到刚刚完成贴装寄回手上的新电路板,做的第一件事情往往是接通电路,看看有没有预期的表现。在我刚刚接触电路设计工作不久的时候,我在此时往往期待的是一个非常明确的表现,恨不得屏幕上立即显示正确的结果;但是往往是一堆乱码,甚至是什么都没有。
在电路没有被实际生产出来之前,我总是很希望自己的设计是天衣无缝,面面俱到的 ,所以对新设计的期待很高。总是所有跳过的调试阶段直接观察最终的输出。好像最终输出正常就表示电路没有丝毫问题,而没有正常的输出往往会让人觉得很失望。
实际上难以发现和处理的问题往往隐藏在完全正常的最终表现之后。当我们看到一个符合预期的最终结果的时候,清晰的思路往往会被骄傲和庆幸占据而不再去关注不 易发现的细节问题,抱着侥幸的心态说没有什么问题了。实际上这种心态是内心深处对自己设计的不自信,以及对解决未知问题的惶恐,急于试图遮蔽自己的双眼, 对问题视而不见。
在最终输出正常的情况下,即使发现了电路细节上有不符合自己预期的地方,我有时候仍然会想到要把错误归结到仪器使用的问题,焊接问题,未知的干扰源(比如电网干扰)甚至是宇宙射线的影响;生怕深入挖掘这个问题的时候会发现更多的问题使当前的“正常”化为乌有。
有时候最终输出结果是错误百出的,完全不符合预期的;在这种时候反而给我们很多线索,只要抓住这些线索,分析产生现有输出的原因,反倒很容易发现错误的根源并且加以解决。
1:确认电路板走线的完好
2:确认元器件是否正常
3:确认焊接良好
其实第一次通电心里都是毛毛的,怕冒烟,但是只要能通电完好,就可以开始调试了·······
一次成功的事情其实很少,每次都在捉虫中成长
养成良好的习惯最重要. 多步骤多次检查也是必要的.
1. 做板之前原理图验证检查
2. PCB布线检查/完整性检查
3. 生成GERBER在此检查
4. 裸板检查
我觉得在原理图检查之前还要在过去没有经验的,或者功能复杂的器件的Data Sheet上多下一点功夫,确认自己真的理解了这些元器件的性能和表现。
step2
嗔——因无法得到和控制产生烦恼与仇恨。
电路没有正常工作,一般就要开始采取各种行动来探究它罢工 的原因。当我打开示波器,万用表,频谱仪,信号发生器,可调电源;花费半个小时拆解了机壳,卸下螺丝,焊上测试用飞线之后,有时候会发现输入是正常的,电源是正常的,配置也是正常的,就是输出不正常……
好像我能量到的其他地方都挺正常,但是信号进入芯片/模块之后,就再也没有好好出来;我摸摸芯片,它默默的不做声,可能会有点发热,但是也只是比环境温度高一点点。于是我开始想是不是这个芯片坏了,你用一个新的芯片替换它,但是电路仍然故我,保持罢工。
这时候有一种无名的怒火从我心中升起,我测量每一个测试点,看着各种电压/电流/频率/功率,但仅仅是盲目的测量,希望看到什么线索。但是所谓线索即所谓异 常的现象,都是相对于正常的现象来说的,而心中焦躁愤怒的情绪往往使人无法集中注意力思考看到的现象和期望之中的区别。
情况更糟的时候,你会认定是某个器件坏了,仿佛这就不是自己设计或者设备生产时的问题,而是元器件供应商的责任。但是事实上,经过出厂测试的商用芯片真正出现质量问题的可能性并不是那么大,当我反复测试芯片/模块本身性能之后往往得到的就是“它工作正常”这个结论。
“世界上没有不可思议之事,世界上只会发生可能发生之事。”
当每个器件都工作正常,但是系统整体发生问题的时候,那只能说明在系统设计的时候出现了问题。这种问题往往是因为对整个系统的运行考虑周全和深入理解,或者 是对元器件的工作原理和性能的了解还不充分。这个时候就更需要冷静的心态,暂时放下抱怨和急躁才能找到那关键的一点灵光一现。
当年电子设计竞赛俩月集训得到的怪经验:
1、你要引导电路怎么工作:直接测最后一级没有输出,那就从第一级开始测,有信号,第二级有信号,第三级有信号……最后一级也有信号了!
2、看着他,看到他不好意思,他就正常工作了!
3、不理他,冷落她,他就会自己好了。
step
3
痴——因对法界不如实知见,故作颠倒之行。
调试不仅仅是要发现问题而且还要让问题得到解决和消除。发现异常仅仅是起手第一步,之后是分析异常的本质。然而,人往往有惯性的思维希望依赖过去的 经验快速地解决问题。然而绝大部分时候过去的经验并不一定能很完美的解决一个现有的特定环境下的问题。只有掌握现象背后的原理,才能举一反三。
一个很简单的例子,在给高速数字芯片加去耦电容的时候,很多人都知道需要加“一个大电容和一个小电容”,问起原因有些人会说滤除电源系统上的噪声。实际上即 使直接采用电池供电(电源非常稳定,没有开关噪声)的系统当中,高速数字芯片附近仍然需要去耦电容,这些电容的存在是为了提高电源对芯片的瞬态输出能力。
当数字芯片的内部时钟边沿触发逻辑翻转是需要在瞬间从电源吸取比较大的电流,这时需要电容来提供一个“本地”的瞬态电源,以克服电源到芯片之间导线上的寄生 电感和电阻的影响。如果盲目的认为电容总是用来滤除噪声的,就会出现确实使用了两个电容,但是却用了比较长的导线布置在了远离芯片的地方之类的错误。
在遇到调试问题的时候要睁大双眼,同时也要扫除心理的惰性和对已有经验的依赖,从客观的角度分析问题。扎实的理论根基可以助人消除迷惘,同时利用从每一次的调试的机会也可以学到很多新的经验和隐藏在背后的知识。
“因对法界不如实知见,故作颠倒之行”
学习了。
小编有心了,很详细
小编有心,收藏了,写分享
写的好
贪,嗔,痴……这是铠甲勇士刑天吗……
小编辛苦了,写的非常好
恩 加油 一起努力
谢谢分享,谢谢分享!