狗蛋(驱动小白)和老王(硬件老司机)关于硬件那点事儿的一次密谈
“老王,有個bug啊,很緊急啊?” QA急忙反饋到。
“什么問題? 老王心里咯噔了下,心想,NND,被QA纏住,看來今晚又得和我的躺椅相依為伴了。”
“這個陀螺儀有低概率會漂啊,定不住啊?”QA焦慮到。馬上要發版本了,才測出這個問題,QA也是很急。
“我分析分析看先,#@@##@#@#%¥¥¥@!!”一分鐘過去了,一小時過去了,一個通宵過去了。。。。。。
“QA,起床了,分析出來了,原來是這個機器的LCD屏異常了,然后軟件上重新拉了下它的LDO電源,然而這路LDO又和陀螺儀是共用的,所以LDO重新下電,上電導致陀螺儀也復位了,最終導致其數據異常,亂飄了。”老王疲倦的吧啦吧啦到。
“那趕緊解決吧,老板盯得很緊了。”QA說道。
“解不了,硬件設計問題,這個得找硬件。和SW沒有關系。”老王理直氣壯的回答到。
“什么?。。。10分鐘過后。”
“老張啊,老王說這個是硬件問題啊,你看怎么解決啊?很緊急啊。”QA拉著硬件部的老張說道。
“這個我是按照參考設計來的,HW已經定版了,改不了。老王,你看軟件上能不能規避下?”
“暈,又是規避,每次硬件出問題,都讓SW來擦屁股,有沒有天理啊,這已經是第幾次了啊?” 我心里極度憤怒。”
“老張啊,不行啊,軟件改的話如果LCD異常,只能做reset,不一定有用啊?,這個本來是硬件上設計的疏漏啊,不能一路LDO為兩個芯片同時供電啊,萬一其中一個LDO被復位,另外一個芯片不就懵逼了?”
“先改改,讓QA測測吧,HW這邊實在沒辦法改啊,你們軟件改幾行代碼就能搞定的了。只有你們SW想辦法啦。”
“我&**……%%¥¥¥,好吧,看來還是我們軟件萬能啊,我只想到這一句話。”
結論:做驅動的永遠都和做硬件的是一對歡喜冤家啊,與其事后出事兩相埋怨,還是事先我們多多溝通,避免設計上的疏漏吧。
最后老王想起了一首歌詞:
因為我們是一家人相親相愛的一家人
最后也因此引發了這次軟件和硬件的一次密談,目的是為了坦誠溝通,消除隔閡。讓我們來一起圍觀下他們的對話吧。
1. 硬件板的幾個常見概念,它們之間的關系
狗蛋(軟件小白):PCB?
老王(硬件大拿):Printed Circuit Board 印刷線路板,PCB沒有任何元器件。
狗蛋:PCBA?
老王:Printed Circuit Board +Assembly 線路板組裝成品。通過SMT或者插件加工在原材料PCB板上焊接組裝上所需的電子元器件,例如IC,電阻,電容,晶振,變壓器等電子元器件,經過回流焊爐高溫加熱,就會形成元器件與PCB板之間的機械連接,從而形成PCBA。
狗蛋:面包板?
老王:面包板是由于板子上有很多小插孔,專為電子電路的無焊接實驗設計制造的。由于各種電子元器件可根據需要隨意插入或拔出,免去了焊接,節省了電路的組裝時間,而且元件可以重復使用,所以非常適合電子電路的組裝、調試和訓練。
狗蛋:SMT?
老王:表面組裝技術(Surface Mount Technology的縮寫),它是一種將無引腳或片狀元器件安裝在印制電路板(PCB)的表面或其它基板的表面上,通過回流焊或浸焊等方法加以焊接組裝的電路裝連技術。是目前電子組裝行業里最流行的一種技術和工藝。
狗蛋:驅動可能涉及的問題,如何應對?
老王:
1) SMT時爐溫引起的虛焊,如DDR/CPU/各種外設。一些硬件單體異常問題可以考慮這種情況。
2) SMT貼錯/貼反/漏貼器件。
2. 主要器件的擺放位置(BB/RF/MEMORY)
狗蛋:如何找器件?
老王:根據原理圖的器件標識號結合器件的位號圖來找。
狗蛋:如何確認器件貼片是否正確?
老王:觀察芯片的PIN腳順序。
3. 其他附件
狗蛋:屏蔽罩?
老王:用屏蔽體將元部件,電路,組合件,電纜或整個系統的干擾源包圍起來,防止干擾電磁場向外擴散;用屏蔽體將接收電路,設備或系統包圍起來,防止它們受到外界電磁場的影響。
狗蛋:定位孔?
老王:代表芯片第一個引腳的位置,用來識別芯片的引腳的,有的可能代表焊接或者插入芯片插座的正確方向。
4. 關于驅動
狗蛋:驅動調試的順序?
老王:
1)器件的位置,型號,接口(讀寫接口,電源,其他信號如中斷等等)。
2)軟件配置(增加驅動代碼,配置接口)。
3)讀取關鍵調試信息(CHIP ID,驅動加載是否成功,獲取數據是否正確)。
4)貼片是否正確,外圍電路是否有缺失。
5)量取信號(電源,中斷,讀寫總線是否有數據,以及更進一步的數據是否正確,比如時序,干擾,電平,時鐘)。
狗蛋:PCB評審時驅動注意什么?
老王:
1)器件高度(大電容/TVS/ESD等和屏蔽罩/殼體的干涉)。
2)PCB強度。
2)走線距離板邊。
4)重要信號調試點是否預留,尤其是新器件。
5. 認識各個模塊的電路?
狗蛋:模塊電路關注什么?
老王:
1)每個模塊有哪些重要信號。
2)輸入輸出引腳。
3)硬件控制的原理。
4)是否曾經有重要的Bug。
6. 電路中的重要器件和概念???
狗蛋:上下拉電阻的作用?
老王:
1)加大高電平輸出時引腳的驅動能力。
2)電平匹配,拉高低電平。
3)芯片閑置管腳接上拉,提高輸入電平,管腳懸空易受電磁干擾。
4)上拉電阻是解決驅動能力不足時提供電流,下拉電阻用于吸收電流,解決灌電流。
狗蛋:0歐姆電阻的作用?
老王:
1)跳線,考慮兼容,為調試預留位置,美觀方便。
2)數字地和模擬地的單點連接。
3)配置電路,類似撥碼開關,比如選擇器件地址,更改電路功能。
4)做保險絲用,PCB走線熔斷電流較大,而0歐姆電阻電流承受能力較弱,在短路過流時發生熔斷,保護重要電路。
狗蛋:電感在電路中的作用?
老王:
通直流,阻交流;當直流通過時,電感相當于導線,在交流電路中,產生阻抗,但它與電阻阻礙電流不同,電阻阻礙電流是以消耗電能為標準,而電感則阻礙電流的變化,則是純粹不讓電流變化,當電流增加時,阻礙電流增加,并將能量以磁場的形式存儲起來,在電流減小時,將儲藏的能量釋放出來,以結果來說,就是阻礙電流變化。
狗蛋:電容在電路中的作用?
老王:
1)旁路,將輸入信號中的干擾作為濾除對象。
2)去耦,是把輸出信號的干擾作為濾除對象,防止干擾信號返回。
3)濾波,隔直通交,一般接在電源正負極之間,以濾除直流電源中不需要的交流成分,使直流電平滑。
狗蛋:什么是驅動能力?
老王:驅動能力就是指輸出端口的電流最大流入流出能力或者限制。
狗蛋:什么是電平匹配?
老王:電平匹配指的是電路級連時前級的輸出電壓與后級要求的輸入電壓相近或相同,凡是電平匹配的前后級可以直連,否則要經過適當的電平轉換,例如,同樣TTL數字集成電路因電平匹配就可以直接互連,而TTL要驅動CMOS集成電路就要因為電平不匹配要額外加轉換芯片。
狗蛋:什么是差分信號?
老王:通俗地說,就是驅動端發送兩個等值、反相的信號,接收端通過比較這兩個電壓的差值來判斷邏輯狀態“0”還是“1”。而承載差分信號的那對走線就稱為差分走線。
特點
a.抗干擾能力強。
b.能有效抑制 EMI。
c.時序定位精確。
狗蛋:如何看datasheet?
老王:由單元電路組成,包括主控制芯片,存儲,電源,射頻,輔助功能電路(TP/LCM/SENSOR/CAMEMRA/GPS等)。芯片命名規則,特性,Pin,控制信號,工作原理,重要寄存器,時序,電氣特性。
好了,這次對話應該能為以后軟件和硬件的合作打下良好的基礎。希望以后軟件不用再為硬件擦屁股了。硬件也不用給軟件量信號,協助分析軟件問題了,傷不起啊。
碼農大講堂這節課就到這吧,下課。老王要補覺去了,哇咔咔。
迎關注老王微信公眾號:“嵌入式職場加油站” 查看更多精彩文章。希望能夠在一些技術點上為大家拋磚引玉,答疑解惑。你們的關注將是激勵我堅持創作和分享更多干貨技能的源動力。更多技術干貨經驗技巧會第一時間發布在公眾號上,歡迎查閱!
總結
以上是生活随笔為你收集整理的狗蛋(驱动小白)和老王(硬件老司机)关于硬件那点事儿的一次密谈的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: java 异步阻塞_大白话搞懂什么是同步
- 下一篇: 得力条码扫描器怎么用_广东智能物流控制系