工作随笔

        时间流逝,不知不觉已工作两年多了。这两年来做了不少项目,从SMB Router到dump Switch再到Managed Switch,学到了很多,进步了不少。这个过程纠结过、郁闷过、被打击过、开心过、兴奋过,自然我自身是在慢慢成长的,不仅仅是专业知识上、设计经验上,也是心态及处理事情方式上。  
       当然,每个项目总不会那么的顺利,从前期新产品研究报告研究(芯片方案选型,看能否满足产品需求,同时考虑系统整体设计方案的可行性)--->原理图设计和相关文档撰写(开始很是不喜欢写文档,慢慢发现很有必要,帮助自己重新梳理设计思想,也是方便他人查阅与理解)--->PCB设计与打样(这主要由CAD mm帮忙搞定了,不过HW Engineer还得主控全局,包括布局布线,虽然PCB Layout不需要自己亲自处理,但得告诉她们如何进行布局布线。同时,需要和结构工程师、平面工程师一同讨论样机壳体及平面丝印布局配合问题)--->样机制作与调测(以前是由专门的样机制作人员制作样机,经常会遇到短路啊少焊错焊器件的麻烦,所以每次制作十几台样机要全部初步调试好都得花不少时间,后来SMB产品都要求到工厂制作,那样样机一致性会很好,此外出错概率非常小。样机初步调测OK后就要进行详细调试与测试了,要从电气参数上测试验证设计的合理性,当然也要测试验证功能和性能,包括高低温环境适应性测试。最后还得进行认证预扫,要进行RE、CE、ESD、Surge和安规等测试,毕竟产品都得经过各项认证才能进行销售的)--->提交测试部进行系统测试(这个过程一般会遇到很多BUG,特别是一个全新方案的项目,首先得大致区分硬件BUG还是软件BUG,然后是重新复现BUG,分析定位并解决它。最麻烦的是有些BUG出现概率极低,如开关机到一两千次时出现某些端口不link或不转发数据包,抑或是在高温高湿环境下出现CPU死机,这些BUG有个共性就是得花大量时间守候它再次出现。曾经为了分析定位高温高湿下DUT死机问题,足足守候老化箱一个月,都被同事戏称“老化王子”了,呵呵 )--->试产(数量几百到几K不定。测试部验证OK后,说明该产品研发初步完成,可以出BOM及首批单进行试产验证了,毕竟研发做的样机有限,一般就10PCS左右,如产品存在一些隐性的概率性问题的话,研发测试很可能是测试不出来的,在试产大量机型中就可能会暴露出来,这时还能补救进行对应修改解决,当然如果是硬件上需要修改就很麻烦了,有些只是添加某些预留的器件,记得有款产品研发一直顺顺利利,几乎没有什么BUG,但试产老化出现问题,和FAE一起去工厂产线上排查,最后确定需要添加EEPROM,幸亏设计时预留了EEPROM焊盘,只能麻烦工厂重新人工焊接那么多器件了,当然有些硬件更改必须得重新设计PCB,那后果就很严重了;如果是软件上可解决的就谢天谢地了,因为这样不会造成项目delay,不会影响产品上市)--->量产(当试产总结认为该产品符合出货要求后,该项目可以圆满画上句号了。今后的事情就是工厂按照客户订单定时制作就好了,当然同时该产品进入维护阶段,根据客户使用反馈的问题进行解决,大多是更新升级软件解决,要是要从硬件上解决且必须这么做的话,就得重新立项对该产品进行版本升级)。
       上述只是大致工作的流程,其中每个过程涉及到的东西太多太杂,知识的全面性和专业性决定了系统设计的好坏,当然选用的芯片方案也是决定该产品性能好坏的一个重要因素。此外,就是与人沟通问题,作为系统硬件工程师,从项目前期调研到最后试产完成,其中需要与软件工程师、产品工程师、CAD工程师、结构工程师、平面文档工程师、采购工程师等合作,沟通合作的能力的强弱决定了项目进度的快慢,毕竟我们是一个Team,很多东西需要大家一同努力才能完成的。当然,过程中也会经常同芯片厂商的FAE联系沟通,以最大可能熟悉使用的芯片特性,了解的越多才能对自己设计的产品信心更足嘛。
       
      总的来说,项目尤其是全新方案项目中可能会经常遇到一些棘手的问题,每个问题可能都不一样,要具体问题具体分析解决,但可以从以下三方面进行分析与解决:

 一、芯片级别BUG
       对于此类的问题,作为HW Engineer一般很无奈,我们并不懂IC里面是怎么设计的,但为了验证是芯片问题我们可以也必需进行N多测试,比如从上电开始每个时刻相关重要信号的捕获与分析,看是否符合芯片initial阶段的动作,看flash是否正常响应,看bootload是否正常,看内存是否正常工作。当然,这些的前提是对芯片启动特性很了解,否则你也不知道捕获的波形是否正确。
      之前有使用一款全新芯片,其中有一个全新的接口DDR SSSMII(MAC和PHY之间百兆通信接口),相对传统SSSMII接口,该接口节省了一半信号线,方便布线。它是在时钟上升沿传递奇数端口数据,而在下降沿传递偶数端口数据,收发都有各自的时钟和同步信号,保证通信的准确性。但正是这全新接口“害得”我很惨,因为这种接口在特定复位时会出现lock up现象,导致对应的PHY工作不正常。当初为分析问题,将该接口上电复位后及特定复位时TXCLK信号都进行详细测量与对比,并告之芯片厂商,其回复表明该款芯片确实存在BUG。
       这次事件给我的警示是芯片也是被设计出来的,一些成熟方案芯片出BUG概率会小些,但对于那些全新的芯片,得注意了,其存在的BUG可能性很大。当你不幸遇到这种情况,也不必过于沮丧。问题得从两面来看,其实这正是锻炼你的时候,只有遇到问题尤其是这种高级别的问题才能让你成长。   

 二、自身问题
       遇到的问题是不是自己设计的电路不够好造成的呢?对于新人来说,设计一种电路功能时可能经常考虑不周到或是不准确的。一个系统中包含的电路模块很多,但总体来说可概括为电源模块、时钟模块、复位模块、指示模块,当然还有些CPU系统包括的子系统模块及MAC芯片包含的数据通信接口和管理接口模块等。很多模块都是成熟的设计,有些可能较不同项目有所不同,这时需要查阅相关资料弄懂该种新电路模块,尽量考虑的周到,必要时预留一些设计,以防不时之需。
      遇到问题,追个排查,不要怕。每个新人都是慢慢成长的,可能都会遇到些低级的设计问题,只是个人基本功不同犯错几率及性质不同罢了。但要及时总结,是自身的问题,一定弄明白原因,同样的错误是不允许再犯的!只有从错误中认识错误,吸取教训才能成长。
      当然,除了设计问题还有可能是自己测试方面失误造成的。比如一个问题,你测试的信号不对或不准确,这会造成你对问题定位、分析不准确,由此引出来一系列耗时不得力的事情。因此,作为一名硬件工程师,尤其是优秀的硬件工程师,良好的测量技术也是必需的。

 三、他人---团队合作问题
       有些问题可能是他人造成的,比如软件工程师某句代码在不该出现的地方出现了,特别是与底层相关的软件。有时你会很纳闷,为什么样机运行UBOOT好好的,使用软件就出问题了。你得明白,UBOOT毕竟是最基本的少量的代码,能保证样机正常启动并使能相关接口就好,而软件要复杂很多,得有一个完整的操作系统。
       对于这些与硬件相关性很大的BUG,要排查起来得和相关软件工程师一同合作才成。因此,作为一名优秀的硬件工程师,基本的软件知识也得具备,这样的话解决这些与软件相关的BUG时会更得心应手些。

Mathcad 是一种功能强大的数学软件,它可以让我们非常方便地进行数学计算和分析。学习使用Mathcad 对我来说是一种挑战,但同时也是一次非常有意义的经历。 首先,通过学习Mathcad,我深刻认识到数学公式和计算的重要性。在过去,我常常依赖计算器和纸笔进行数学计算,但这种方式往往效率不高,并且难以避免出错。而Mathcad 提供了一个直观且可视化的界面,让我们可以更加直观地理解和应用数学原理。 其次,学习Mathcad 也提高了我的数学建模和问题解决能力。在学习过程中,我发现Mathcad 的强大之处在于它能够将数学公式和实际问题相结合。通过输入不同的数学公式和数据,我可以揭示和解决一些实际世界中的问题,例如电路分析、力学运动、概率统计等,这为我提供了宝贵的数学建模实践经验。 此外,通过学习Mathcad,我也掌握了一种全新的数学表达方式。通过使用Mathcad的函数和符号库,我可以更加准确地表达数学概念和计算过程。这种表达方式简洁明了,易于理解和阅读,有助于提高我的数学思维能力和表达能力。 尽管学习Mathcad可能会遇到一些挑战,例如复杂的函数和符号操作,对于初学者来说不太友好,但通过不断实践和学习,我相信我可以克服这些问题,并不断进步。 总的来说,学习Mathcad 是一次充满挑战和收获的过程。它帮助我提高了数学知识和技能,提升了我的数学建模和问题解决能力。我相信在未来的学习和工作中,Mathcad 将成为我强大的数学工具。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值