0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
会员中心
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

说说硬件调试中发现的那些低级错误

一博科技 来源:edadoc 作者:edadoc 2024-07-03 12:00 次阅读

高速先生成员--周伟

最近遇到很多debug相关的咨询,曾经我们说过,我们做过的板子越多,遇到问题的概率也越多,很多别人没遇到过的问题,说不定我们早就触过雷,从而类似的问题形成经验总结,就不会再有同样的问题发生。一些问题可能不一定和PCB设计相关,但由于找不到原因到底在哪里,最终需要进行一一排除,所以兜兜转转又回到PCB设计上来,这也是我们经常要面对的工作之一。

调试是一项很辛苦的差事,说起调试,曾经听过一个故事。早期某大厂一些硬件人员在调试前会去仙湖植物园的弘法寺拜一拜,烧香祈求项目能一次性调试通过。虽然是传言甚至戏谑但多少也反应出硬件调试中一些奇怪的问题,有时甚至不以人的意志为转移。

在我们看来,系统性能能否成功无非就是软件和硬件的配合,所以很多时候硬件和软件大家的工作都是相互配合,相安无事的,但一旦出了问题却找不出具体原因的时候,大家可能就会相互指责,各说各有理,但大多数时候往往硬件最后是落於下风的,因为硬件涉及到的因素会更多,比如硬件原理、器件选型、物料、PCB设计、制板、焊接等,这些最终都和硬件相关,哪一个环节出问题了,都会影响系统性能。而软件只需要简单说一句上次同样的原理已经验证通过了,什么都是一样为什么这次改了个PCB版本就不行了呢?接着硬件也补充说对啊,原理、器件和软件都是一样,就改了个PCB设计,重新打了一板为什么调试出来就有问题,难道是PCB的问题?最后这个“锅”就到了和PCB相关的身上了。今天不说“锅”的事,系统需要良好的工作,需要各方面一起协调努力,软件也需要配合硬件的变化进行一定的调整,大家都要做好才能保证系统的稳定运行,所以每一方面都不能忽略,出了问题当然就需要从各个方面进行排查,实事求是从解决问题的角度出发,不要有背“锅”侠的心态。

虽然我们不直接进行硬件调试,但我们遇到调试的问题也很多,因为我们是实现硬件原理中重要的一环,发挥着桥梁作用,所以很多问题最终会排查到PCB设计环节中来,大家要有这种意识。最近就遇到一个HDMI显示不正常的案例,大致经过是这样的。

客户在我司设计的一个板卡在调试时发现HDMI接口能正确识别,但接上显示器后却一直闪屏,最后直接就识别不到了。客户用示波器测试信号眼图也没有发现太多问题,这个问题客户内部已经调了几个月还没有找到原因,最后希望我们从PCB的角度排查一下看能否找到是不是和信号完整性相关,部分PCB设计如下图所示:

wKgZomaEzOKAC8CnAANhLhRO5rw384.jpg

从PCB设计来看,4对数据走线和换层基本都是一致的,从表层走到内层,再从内层换层到底层,经过底层的电容,电感和ESD器件再到HDMI接口,中间换层过孔做了反焊盘连盘掏空处理,内层信号换层到底层,存在过孔stub比较长的风险,但对于6Gbps的信号来说,这个50mil的stub正好处于可钻可不钻的边沿,也就是说影响不是致命的,能背钻当然更好。另外电容、电感和ESD器件,这些器件和连接器表贴焊盘等没有经过一定的优化,可能存在阻抗不连续的影响,这块我们的要求是8Gbps以上是必须要优化,8Gbps以下如果有空间可以优化,因为如果要优化的话,意味着第三层或者倒数第三层焊盘位置是不能走线的,有可能还要补参考层,尤其是空间很紧张的情况下,实现起来会比较麻烦,很多设计人员本着多一事不如少一事的原则,很多就不优化了,PCB设计本来就是权衡的艺术,这也能理解。

除了器件焊盘的影响,这些器件的选型会对阻抗带来更大的影响,之前的文章就写过,由于ESD选型不当,导致阻抗偏低很多,没看过的可以再看看这篇文章:ESD器件对高速信号有影响吗(陈雅给链接),可以看到加了ESD后的阻抗确实低了差不多14欧姆,如下图所示:

wKgaomaEzOKAMUnFAAC6YazgJjA890.jpg

但客户反馈这些器件都去掉了,结果还是没有改善,依然显示不正常。

wKgZomaEzOOAQ1OHAAA55yXaBeo860.jpg

然后我们只能试一下看降速是否有改善,因为如果是PCB设计上stub太长,或者焊盘等阻抗有影响,降速可以降低这些负面的影响,同时速率低了系统裕量也会大很多,反复修改参数调试后,最终结局却以非常意想不到的方式结束了。

wKgaomaEzOSAbdDvAADlT9R-bzs921.jpg

幸福来得太突然,我竟无言以对,这个错误,真的有点低级,真是“接反一对线,多调三个月”。

看到这里,我们的问题来了:

调试了几个月,最终却非常意外的找到了问题的原因,大家在调试中有没有遇到过类似的问题?

大家可以把问题写出来发给高速先生投稿,也可以分享相关的素材我们来整理,一经采用会有相应的奖励,欢迎大家尝试并畅所欲言。

审核编辑 黄宇

声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • HDMI
    +关注

    关注

    32

    文章

    1541

    浏览量

    150493
  • 接口
    +关注

    关注

    33

    文章

    7982

    浏览量

    149281
  • 高速PCB
    +关注

    关注

    4

    文章

    89

    浏览量

    24984
  • 硬件调试
    +关注

    关注

    1

    文章

    9

    浏览量

    10667
收藏 人收藏

    评论

    相关推荐

    说说硬件调试中发现那些低级错误

    说说硬件调试中发现那些低级错误 2024-07-0
    发表于 07-03 12:02

    在官方库中发现GPIOx->ODR这种写法,是什么意思,怎么中间会有->?

    本人新手,刚接触st的芯片 在官方库中发现GPIOx->ODR这种写法,不知道这是什么意思,怎么中间会有->? 请论坛上高手予以帮忙解答
    发表于 05-10 06:48

    ucosiii的串口打印输出遇到了硬件错误怎么解决?

    我练两天调试了ucos-iii之前是应为一些问题发现系统运行错误,但是到了第二天打开工程从新编译下载程序测试,发现一刚刚开始打印串口消息就出现了硬件
    发表于 04-24 06:03

    分享一个调测电量计过程中发现的电阻问题

    今天,给大家先分享一个,调测电量计过程中发现的电阻问题,盲猜99%的工程师小白不了解这个特性。
    的头像 发表于 03-12 16:48 439次阅读
    分享一个调测电量计过程<b class='flag-5'>中发现</b>的电阻问题

    利用UDE仿真器调试QSPI读写EEPROM过程中发现仿真器中观察到的全局变量值不对,没有读到数据怎么解决?

    在利用UDE仿真器调试QSPI读写EEPROM过程中发现,单步运行能够读取到数据,如果全速运行,示波器中读取数据正确,但仿真器中观察到的全局变量值不对,没有读到数据。请问有人遇到过吗,如何解决?
    发表于 02-18 08:14

    FPGA硬件电路的调试必备原则和技巧

    调试FPGA电路时要遵循必须的原则和技巧,才能降低调试时间,防止误操作损坏电路。通常情况下,参考以下步骤执行 FPGA硬件系统的调试。 1、在焊接
    的头像 发表于 12-22 16:40 469次阅读
    FPGA<b class='flag-5'>硬件</b>电路的<b class='flag-5'>调试</b>必备原则和技巧

    调试AD7172-2的时候发现ADC总是发生超量程错误怎么解决?

    调试AD7172-2的时候发现ADC总是发生超量程错误(ADCSTATUS寄存器返回值为0x40),后来发现配置好的REFOUT引脚没有电压输出,REF+输出为零,还有REGCAP_A
    发表于 12-07 07:20

    嵌入式开发为什么需要输出调试信息?

    作用: 1.错误排查与问题定位 输出调试信息可以帮助你在代码中发现和定位错误。当程序出现异常行为或崩溃时,通过查看输出的调试信息,你可以更容
    发表于 11-28 16:46

    最新基准测试错误率竟高达90%:红绿灯认错、勾股定理也不会

    马里兰大学的研究团队在探索过程中发现了这些问题,并在此基础上提出了两种主要的错误类型:语言幻觉和视觉错觉,以此来阐释这些错误的原因。
    的头像 发表于 11-02 16:00 265次阅读
    最新基准测试<b class='flag-5'>错误</b>率竟高达90%:红绿灯认错、勾股定理也不会

    单片机调试时的那些技术

    单片机调试时的那些技术
    的头像 发表于 10-18 17:56 528次阅读
    单片机<b class='flag-5'>调试</b>时的<b class='flag-5'>那些</b>技术

    硬件调试流程介绍

    的流程。 1.检查电路 任何组装好的电子电路,在通电调试之前,必须认真检查电路连线是否有错误。对照电路图,按一定的顺序逐级对应检查。 特别要注意检查电源是否接错,电源与地是否有短路,二极管方向和电解电容的极性是否接
    的头像 发表于 09-10 10:16 1153次阅读
    <b class='flag-5'>硬件</b><b class='flag-5'>调试</b>流程介绍

    在基于ARMv7的平台1.0版上使用CSAT进行低级调试

    Armv7-A 平台上执行某些调试操作。 侧重于平台推移硅、 FPGA 和硬件模拟环境的用户如果想要测试其调试设计的某些方面, 可能会发现调试
    发表于 08-28 06:50

    在基于ARMv8的平台1.0版上使用CSAT进行低级调试

    此教程将概述使用 CoreSight Access 工具( CSAT) 进行低级调试的情况, 其目标为 Armv8 。 低级调试允许您操作单个登记器, 包括通常无法为应用程序级别
    发表于 08-28 06:28

    说说EEPROM和FLASH的那些

    最开始参加工作的时候,经常听到有需求说XX参数存到EEPROM,XX事件保存在FLASH中,当时只是觉得这两个东西都是可以用来存数据,应该大差不差。那真是这样么?这篇就来说说EEPROM和FLASH的那些事。
    发表于 08-10 11:15 893次阅读
    <b class='flag-5'>说说</b>EEPROM和FLASH的<b class='flag-5'>那些</b>事

    单片机串口模块调试方法

    笔者在调试某Cortex-M3内核单片机时遇到一个问题,此单片机不具备在线仿真功能,因此调试代码时只能使用UART输出Log的方式调试调试过程中发现串口模块会影响单片机启动,进入死机
    发表于 07-28 15:48 1149次阅读
    单片机串口模块<b class='flag-5'>调试</b>方法