電子產(chǎn)業(yè)一站式賦能平臺(tái)

PCB聯(lián)盟網(wǎng)

搜索
查看: 30|回復(fù): 0
收起左側(cè)

電子工程師踩過(guò)的這些坑!

[復(fù)制鏈接]

305

主題

305

帖子

2325

積分

三級(jí)會(huì)員

Rank: 3Rank: 3

積分
2325
跳轉(zhuǎn)到指定樓層
樓主
發(fā)表于 昨天 11:45 | 只看該作者 |只看大圖 回帖獎(jiǎng)勵(lì) |倒序?yàn)g覽 |閱讀模式
關(guān)注+星標(biāo)公眾號(hào),不錯(cuò)過(guò)精彩內(nèi)容來(lái)源 | 嵌入式ARM
有很多時(shí)候,工程師們并不覺(jué)得自己在犯錯(cuò)誤,反而以為自己找到了更好的解決方式而竊喜呢!
其實(shí),面對(duì)雜亂眾多的元器件和復(fù)雜的電路圖,工程師們不時(shí)出現(xiàn)的小錯(cuò)誤是難免的,而且說(shuō)不定就從哪次錯(cuò)誤中發(fā)現(xiàn)了“新大陸”,那你就成為科技革命的先驅(qū)了!
但是,對(duì)于資歷尚淺的新手工程師來(lái)說(shuō),這些過(guò)來(lái)人的經(jīng)驗(yàn)可能會(huì)對(duì)你大有裨益,這些前人趟過(guò)的“雷”你就不要再去踩了。下面,快來(lái)看看這29個(gè)錯(cuò)誤你有沒(méi)有犯過(guò)?
誤區(qū)一:成本節(jié)約
常見(jiàn)錯(cuò)誤1:面板上的指示燈選什么顏色呢?我個(gè)人比較喜歡藍(lán)色,就選它吧。
正解:對(duì)于市面上的指示燈,紅綠黃橙等顏色的,不管大。5MM以下)、封裝如何,都已成熟了幾十年,所以?xún)r(jià)格便宜一般都在5毛錢(qián)以下。而藍(lán)色指示燈技術(shù)成熟度和供貨穩(wěn)定度都較差,所以?xún)r(jià)格要貴出四五倍。
如果你設(shè)計(jì)的面板堆指示燈顏色沒(méi)有特殊要求,就不要選藍(lán)色了。
常見(jiàn)錯(cuò)誤2:這些拉低 / 拉高的電阻,用多大的阻值好像都沒(méi)太大關(guān)系,就選個(gè)整數(shù)5K吧。
正解:其實(shí)市場(chǎng)上不存在5K的阻值,最接近的是 4.99K(精度1%),其次是5.1K(精度5%),其成本價(jià)格分別比精度為20%的4.7K高4倍和2倍。
20%精度的電阻阻值只有1、1.5、2.2、 3.3、4.7、6.8幾個(gè)種類(lèi)(含10的整數(shù)倍);相應(yīng)的,20%精度的電容也一樣只有以上幾種容值。對(duì)于電阻和電容來(lái)說(shuō),如果選了這幾種之外的其它的值,就必須使用更高的精度,成本就翻了幾倍,如果對(duì)精度的要求并不大,這樣做是成本上的浪費(fèi)。
除此之外,電阻質(zhì)量也非常重要,有時(shí)候一批劣質(zhì)的電阻足以毀掉一個(gè)項(xiàng)目,建議大家在立創(chuàng)商城等正品自營(yíng)商城購(gòu)買(mǎi)。
常見(jiàn)錯(cuò)誤3:這點(diǎn)邏輯用74XX的門(mén)電路搭也行,但太土,還是用CPLD吧,顯得高檔多了。
正解:74XX的門(mén)電路只幾毛錢(qián),而CPLD至少也得幾十塊(GAL/PAL雖然只幾塊錢(qián),但不推薦使用),成本提高了很多倍不說(shuō),還給生產(chǎn)、文檔等工作增添數(shù)倍的工作。在不影響性能的前提下,使用性?xún)r(jià)比更高的74XX顯然更合適。
常見(jiàn)錯(cuò)誤4:這板子的pcb設(shè)計(jì)要求不高,就用細(xì)一點(diǎn)的線(xiàn),自動(dòng)布吧。
正解:自動(dòng)布線(xiàn)必然要占用更大的PCB面積,同時(shí)產(chǎn)生比手動(dòng)布線(xiàn)多好多倍的過(guò)孔,在批量很大的產(chǎn)品中,PCB廠(chǎng)家在定價(jià)方面,線(xiàn)寬、過(guò)孔數(shù)量是重要的考量因素,它們分別影響到PCB的成品率和鉆頭的消耗數(shù)量。此外,PCB板的面積也是影響價(jià)格的一方面,所以自動(dòng)布線(xiàn)勢(shì)必會(huì)增加線(xiàn)路板的生產(chǎn)成本。
常見(jiàn)錯(cuò)誤5:我們的系統(tǒng)要求這么高,包括MEM、CPU、FPGA等所有的芯片都要選最快的。
正解:在一個(gè)高速系統(tǒng)中并不是每一部分都工作在高速狀態(tài),而器件速度每提高一個(gè)等級(jí),價(jià)格差不多要翻倍,另外還給信號(hào)完整性問(wèn)題帶來(lái)極大的負(fù)面影響。所以,在選擇芯片時(shí),要根據(jù)不同部分器件的使用程度來(lái)考量,而不是都用最快的。
常見(jiàn)錯(cuò)誤6:程序只要穩(wěn)定就可以了,代碼長(zhǎng)一點(diǎn)、效率低一點(diǎn)不是關(guān)鍵。
正解:CPU的速度和存儲(chǔ)器的空間都是用錢(qián)買(mǎi)來(lái)的,如果寫(xiě)代碼時(shí)多花幾天時(shí)間提高一下程序效率,那么從降低CPU主頻和減少存儲(chǔ)器容量所節(jié)約的成本絕對(duì)是劃算的。CPLD/FPGA設(shè)計(jì)也類(lèi)似。
誤區(qū)二:可靠性設(shè)計(jì)
常見(jiàn)錯(cuò)誤7:這塊單板已小批量生產(chǎn)了,經(jīng)過(guò)長(zhǎng)時(shí)間測(cè)試沒(méi)發(fā)現(xiàn)任何問(wèn)題,不用再看芯片手冊(cè)了。
正解:硬件設(shè)計(jì)和芯片應(yīng)用必須符合相關(guān)規(guī)范,尤其是芯片手冊(cè)中提到的所有參數(shù)(耐壓、I/O電平范圍、電流、時(shí)序、溫度PCB布線(xiàn)、電源質(zhì)量等)必須嚴(yán)格遵循設(shè)定,不能光靠試驗(yàn)來(lái)驗(yàn)證。
很多公司有不少產(chǎn)品都有過(guò)慘痛的教訓(xùn),產(chǎn)品賣(mài)了一兩年,IC廠(chǎng)家換了個(gè)生產(chǎn)線(xiàn),板子就不轉(zhuǎn)了,原因就是人家的芯片參數(shù)發(fā)生了點(diǎn)變化,但并沒(méi)有超出手冊(cè)的范圍。如果你以手冊(cè)為準(zhǔn),那他怎么變化都不怕,如果參數(shù)變得超出手冊(cè)范圍了還可找他索賠(假如這時(shí)你的板子還能轉(zhuǎn),那你的可靠性就更牛了)。
常見(jiàn)錯(cuò)誤8:用戶(hù)操作錯(cuò)誤發(fā)生問(wèn)題就不能怪我了。
正解:要求用戶(hù)嚴(yán)格按手冊(cè)操作是沒(méi)錯(cuò)的,但用戶(hù)是人,就有犯錯(cuò)的時(shí)候,不能說(shuō)碰錯(cuò)一個(gè)鍵就死機(jī),插錯(cuò)一個(gè)插頭就燒板子。所以對(duì)用戶(hù)可能犯的各種錯(cuò)誤必須提前預(yù)測(cè)到并加以保護(hù)。
常見(jiàn)錯(cuò)誤9:這板子壞的原因是對(duì)端的板子出問(wèn)題了,也不是我的責(zé)任。
正解:對(duì)于各種對(duì)外的硬件接口應(yīng)有足夠的兼容性,不能因?yàn)閷?duì)方信號(hào)不正常,你就徹底罷工了。它不正常只應(yīng)影響到與其有關(guān)的那部分功能,而其它功能應(yīng)能正常工作,不應(yīng)徹底罷工,甚至永久損壞,而且一旦接口恢復(fù),你也應(yīng)立即恢復(fù)正常。
常見(jiàn)錯(cuò)誤10:這部分電路只要要求軟件這樣設(shè)計(jì)就不會(huì)有問(wèn)題。
正解:硬件上很多器件特性直接受軟件控制,但軟件是經(jīng)常出現(xiàn)bug的,程序跑飛了之后無(wú)法預(yù)料會(huì)有什么操作。設(shè)計(jì)者應(yīng)確保不論軟件做什么樣的操作硬件都不應(yīng)在短時(shí)間內(nèi)發(fā)生永久性損壞。
誤區(qū)三:系統(tǒng)效率
常見(jiàn)錯(cuò)誤11:這么多任務(wù)到底是用中斷,還是用查詢(xún)呢?還是中斷快些吧!
正解:中斷的實(shí)時(shí)性強(qiáng),但不一定快。如果中斷任務(wù)特別多的話(huà),這個(gè)沒(méi)退出來(lái),后面又接踵而至,一會(huì)兒系統(tǒng)就將崩潰了。如果任務(wù)數(shù)量多但很頻繁的話(huà),CPU的很大精力都用在進(jìn)出中斷的開(kāi)銷(xiāo)上,系統(tǒng)效率極為低下。如果改用查詢(xún)方式反而可極大提高效率,但查詢(xún)有時(shí)不能滿(mǎn)足實(shí)時(shí)性要求。
所以最好的辦法就是在中斷中查詢(xún),即進(jìn)一次中斷就把積累的所有任務(wù)都處理完再退出。
常見(jiàn)錯(cuò)誤12:這主頻100M的CPU只能處理70%,換200M主頻的就沒(méi)事了。
正解:系統(tǒng)的處理能力牽涉到多種多樣的因素,在通信業(yè)務(wù)中其瓶頸一般都在存儲(chǔ)器上,CPU再快,外部訪(fǎng)問(wèn)快不起來(lái)也是徒勞。
常見(jiàn)錯(cuò)誤13:CPU用大一點(diǎn)的CACHE,就應(yīng)該快了。
正解:CACHE的增大,并不一定就導(dǎo)致系統(tǒng)性能的提高,在某些情況下關(guān)閉CACHE反而比使用CACHE還快。其原因是搬到CACHE中的數(shù)據(jù)必須得到多次重復(fù)使用才會(huì)提高系統(tǒng)效率。所以,在通信系統(tǒng)中一般只打開(kāi)指令CACHE,數(shù)據(jù)CACHE即使打開(kāi)也只局限在部分存儲(chǔ)空間,如堆棧部分。;同時(shí)也要求程序設(shè)計(jì)要兼顧C(jī)ACHE的容量及塊大小,這涉及到關(guān)鍵代碼循環(huán)體的長(zhǎng)度及跳轉(zhuǎn)范圍,如果一個(gè)循環(huán)剛好比CACHE大那么一點(diǎn)點(diǎn),又在反復(fù)循環(huán)的話(huà),那就麻煩了。
常見(jiàn)錯(cuò)誤14:存儲(chǔ)器接口的時(shí)序都是廠(chǎng)家默認(rèn)的配置,不用修改的。
正解:BSP對(duì)存儲(chǔ)器接口設(shè)置的默認(rèn)值都是按最保守的參數(shù)設(shè)置的,在實(shí)際應(yīng)用中應(yīng)結(jié)合總線(xiàn)工作頻率和等待周期等參數(shù)進(jìn)行合理調(diào)配。有時(shí)把頻率降低反而可提高效率,如RAM的 存取周期是70ns,總線(xiàn)頻率為40M時(shí),設(shè)3個(gè)周期的存取時(shí)間,即75ns即可;若總線(xiàn)頻率為50M時(shí),必須設(shè)為4個(gè)周期,實(shí)際存取時(shí)間卻放慢到了80ns。
常見(jiàn)錯(cuò)誤15:這個(gè)CPU帶有DMA模塊,用它來(lái)搬數(shù)據(jù)肯定快。
正解:真正的DMA是由硬件搶占總線(xiàn)后同時(shí)啟動(dòng)兩端設(shè)備,在一個(gè)周期內(nèi)這邊讀、那邊些,但很多嵌入CPU內(nèi)的DMA只是模擬而已,啟動(dòng)每一次DMA之前要做很多準(zhǔn)備工作(設(shè)起始地址和長(zhǎng)度等),在傳輸時(shí)往往是先讀到芯片內(nèi)暫存,然后再寫(xiě)出去,即搬一次數(shù)據(jù)需兩個(gè)時(shí)鐘周期,比軟件來(lái)搬要快一些(不需要取指令, 沒(méi)有循環(huán)跳轉(zhuǎn)等額外工作),但如果一次只搬幾個(gè)字節(jié),還要做一堆準(zhǔn)備工作,一般還涉及函數(shù)調(diào)用,效率并不高。所以,這種DMA只對(duì)大數(shù)據(jù)塊才適用,不要盲目使用。
常見(jiàn)錯(cuò)誤16:一個(gè)CPU處理不過(guò)來(lái),就用兩個(gè)分布處理,處理能力可提高一倍。
正解:對(duì)于搬磚頭來(lái)說(shuō),兩個(gè)人應(yīng)該比一個(gè)人的效率高一倍;對(duì)于作畫(huà)來(lái)說(shuō),多一個(gè)人只能幫倒忙。使用幾個(gè)CPU需對(duì)業(yè)務(wù)有較多的了解后才能確定,也就說(shuō)要盡量減少兩個(gè)CPU間協(xié)調(diào)的代價(jià),使1+1盡可能接近2,千萬(wàn)別小于1。
誤區(qū)四:低功耗設(shè)計(jì)
常見(jiàn)錯(cuò)誤17:這些總線(xiàn)信號(hào)都用電阻拉一下,感覺(jué)放心些。
正解:信號(hào)需要上下拉的原因很多,但也不是個(gè)個(gè)都要拉。上下拉電阻拉一個(gè)單純的輸入信號(hào),電流也就幾十微安以下,但拉一個(gè)被驅(qū)動(dòng)了的信號(hào),其電流將達(dá)毫安級(jí),現(xiàn)在的系統(tǒng)常常是地址數(shù)據(jù)各32位,可能還有244/245隔離后的總線(xiàn)及其它信號(hào),都上拉的話(huà),幾瓦的功耗就耗在這些電阻上了(不要用8毛錢(qián)一度電的觀(guān)念來(lái)對(duì)待這幾瓦的功耗,原因往下看)。
常見(jiàn)錯(cuò)誤18:我們這系統(tǒng)是220V供電,就不用在乎功耗問(wèn)題了。
正解:低功耗設(shè)計(jì)并不僅僅是為了省電,更多的好處在于降低了電源模塊及散熱系統(tǒng)的成本、由于電流的減小也減少了電磁輻射和熱噪聲的干擾。隨著設(shè)備溫度的降低,器件壽命則相應(yīng)延長(zhǎng)(半導(dǎo)體器件的工作溫度每提高10度,壽命則縮短一半)。功耗問(wèn)題隨時(shí)都要考慮到。
常見(jiàn)錯(cuò)誤19:這些小芯片的功耗都很低,不用考慮。
正解:對(duì)于內(nèi)部不太復(fù)雜的芯片功耗是很難確定的,它主要由引腳上的電流確定,一個(gè)ABT16244,沒(méi)有負(fù)載的話(huà)耗電大概不到1毫安,但它的指標(biāo)是每個(gè)腳可驅(qū)動(dòng)60毫安的負(fù)載(如匹配幾十歐姆的電阻),即滿(mǎn)負(fù)荷的功耗最大可達(dá)60*16=960mA,當(dāng)然只是電源電流這么大,熱量都落到負(fù)載身上了。
常見(jiàn)錯(cuò)誤20:CPU和FPGA的這些不用的I/O口怎么處理呢?可以讓它空著,以后再說(shuō)。
正解:不用的I/O口如果懸空的話(huà),受外界的一點(diǎn)點(diǎn)干擾就可能成為反復(fù)振蕩的輸入信號(hào)了,而MOS器件的功耗基本取決于門(mén)電路的翻轉(zhuǎn)次數(shù)。如果把它上拉的話(huà),每個(gè)引腳也會(huì)有微安級(jí)的電流,所以最好的辦法是設(shè)成輸出(當(dāng)然外面不能接其它有驅(qū)動(dòng)的信號(hào))。
常見(jiàn)錯(cuò)誤21:這款FPGA還剩這么多門(mén)用不完,可盡情發(fā)揮吧。
正解:FGPA的功耗與被使用的觸發(fā)器數(shù)量及其翻轉(zhuǎn)次數(shù)成正比,所以同一型號(hào)的FPGA在不同電路不同時(shí)刻的功耗可能相差100倍。盡量減少高速翻轉(zhuǎn)的觸發(fā)器數(shù)量是降低FPGA功耗的根本方法。
常見(jiàn)錯(cuò)誤22:存儲(chǔ)器有這么多控制信號(hào),我這塊板子只需要用OE和WE信號(hào)就可以了,片選就接地吧,這樣讀操作時(shí)數(shù)據(jù)出來(lái)得快多了。
正解:大部分存儲(chǔ)器的功耗在片選有效時(shí)(不論OE和WE如何)將比片選無(wú)效時(shí)大100倍以上,所以應(yīng)盡可能使用CS來(lái)控制芯片,并且在滿(mǎn)足其它要求的情況下盡可能縮短片選脈沖的寬度。
常見(jiàn)錯(cuò)誤23:降低功耗都是硬件人員的事,與軟件沒(méi)關(guān)系。
正解:硬件只是搭個(gè)舞臺(tái),唱戲的卻是軟件,總線(xiàn)上幾乎每一個(gè)芯片的訪(fǎng)問(wèn)、每一個(gè)信號(hào)的翻轉(zhuǎn)差不多都由軟件控制的,如果軟件能減少外存的訪(fǎng)問(wèn)次數(shù)(多使用寄存 器變量、多使用內(nèi)部CACHE等)、及時(shí)響應(yīng)中斷(中斷往往是低電平有效并帶有上拉電阻)及其它爭(zhēng)對(duì)具體單板的特定措施都將對(duì)降低功耗作出很大的獻(xiàn)。要想板子轉(zhuǎn)得好,硬件軟件必須兩手抓!
常見(jiàn)錯(cuò)誤24:這些信號(hào)怎么都有過(guò)沖?只要匹配得好,就可以消除了。
正解:除了少數(shù)特定信號(hào)外(如100BASE-T、CML),都是有過(guò)沖的,只要不是很大,并不一定都需要匹配,即使匹配也并非要匹配得最好。象TTL的輸出阻抗不到50歐姆,有的甚至20歐姆,如果也用這么大的匹配電阻的話(huà),那電流就非常大了,功耗是無(wú)法接受的。
另外,信號(hào)幅度也將小得不能用,再說(shuō)一般信號(hào)在輸出高電平和輸出低電平時(shí)的輸出阻抗并不相同,也辦法做到完全匹配。所以,TTL、LVDS、422等信號(hào)的匹配只要做到過(guò)沖可以接受即可。
誤區(qū)五:信號(hào)完整性
常見(jiàn)錯(cuò)誤25:這些信號(hào)都經(jīng)過(guò)仿真了,肯定沒(méi)問(wèn)題。
正解:仿真模型不可能與實(shí)物一模一樣,連不同批次加工的實(shí)物都有差別,就更別說(shuō)模型了。再說(shuō)實(shí)際情況千差萬(wàn)別,仿真也不可能窮舉所有可能,尤其是串?dāng)_。
曾經(jīng)有一教訓(xùn)是某單板只有特定長(zhǎng)度的包極易丟包,最后的原因是長(zhǎng)度域的值是0xFF,當(dāng)這個(gè)數(shù)據(jù)出現(xiàn)在總線(xiàn)上時(shí),干擾了相鄰的WE信號(hào),導(dǎo)致寫(xiě)不進(jìn)RAM。其它數(shù)據(jù)也會(huì)對(duì)WE產(chǎn)生干擾,但干擾在可接受的范圍內(nèi),可是當(dāng)8位總線(xiàn)同時(shí)由0邊1時(shí),附近的信號(hào)就招架不住了。結(jié)論是仿真結(jié)果僅供參考,還應(yīng)留有足夠的余量。
常見(jiàn)錯(cuò)誤26:為保證干凈的電源,去偶電容是多多益善。
正解:總的來(lái)說(shuō),去偶電容越多電源當(dāng)然會(huì)更平穩(wěn),但太多了也有不利因素:浪費(fèi)成本、布線(xiàn)困難、上電沖擊電流太大等。去偶電容的設(shè)計(jì)關(guān)鍵是要選對(duì)容量并且放對(duì)地方,一般的芯片手冊(cè)都有爭(zhēng)對(duì)去偶電容的設(shè)計(jì)參考,最好按手冊(cè)去做。
常見(jiàn)錯(cuò)誤27:既然是數(shù)字信號(hào),邊沿當(dāng)然是越陡越好。
正解:邊沿越陡,其頻譜范圍就越寬,高頻部分的能量就越大;頻率越高的信號(hào)就越容易輻射(如微波電臺(tái)可做成手機(jī),而長(zhǎng)波電臺(tái)很多國(guó)家都做不出來(lái)),也就越容易干擾別的信號(hào),而自身在導(dǎo)線(xiàn)上的傳輸質(zhì)量卻變得越差。所以能用低速芯片的盡量使用低速芯片。
常見(jiàn)錯(cuò)誤28:信號(hào)匹配真麻煩,如何才能匹配好呢?
正解:一般來(lái)說(shuō),當(dāng)信號(hào)在導(dǎo)線(xiàn)上的傳輸時(shí)間超過(guò)其跳變時(shí)間時(shí),信號(hào)的反射問(wèn)題才顯得重要。信號(hào)產(chǎn)生反射的原因是線(xiàn)路阻抗的不均勻造成的,匹配的目的就是為了使驅(qū)動(dòng)端、負(fù)載端及傳輸線(xiàn)的阻抗變得接近,但能否匹配得好,與信號(hào)線(xiàn)在PCB上的拓?fù)浣Y(jié)構(gòu)也有很大關(guān)系,傳輸線(xiàn)上的一條分支、一個(gè)過(guò)孔、一個(gè)拐角、一個(gè)接插件、不同位置與地線(xiàn)距離的改變等都將使阻抗產(chǎn)生變化,而且這些因素將使反射波形變得異常復(fù)雜,很難匹配。因此,高速信號(hào)僅使用點(diǎn)到點(diǎn)的方式,盡可能地減少 過(guò)孔、拐角等問(wèn)題。
常見(jiàn)錯(cuò)誤29:100M的數(shù)據(jù)總線(xiàn)應(yīng)該算高頻信號(hào),至于這個(gè)時(shí)鐘信號(hào)頻率才8K,問(wèn)題不大。
正解:數(shù)據(jù)總線(xiàn)的值一般是由控制信號(hào)或時(shí)鐘信號(hào)的某個(gè)邊沿來(lái)采樣的,只要爭(zhēng)對(duì)這個(gè)邊沿保持足夠的建立時(shí)間和保持時(shí)間即可,此范圍之外有干擾也罷過(guò)沖也罷都不會(huì)有多大影響(當(dāng)然過(guò)沖最好不要超過(guò)芯片所能承受的最大電壓值),但時(shí)鐘信號(hào)不管頻率多低(其實(shí)頻譜范圍是很寬的),它的邊沿才是最關(guān)鍵的,必須保證其單調(diào)性,并且跳變時(shí)間需在一定范圍內(nèi)。
相信很多新手工程師在設(shè)計(jì)電路時(shí)有過(guò)類(lèi)似的想法,如果你也中招了,轉(zhuǎn)發(fā)出去給更多的人看到!除了上述提到的,你還犯過(guò)哪些低級(jí)/嚴(yán)重的錯(cuò)誤?不妨分享出來(lái)大家一起探討!
------------ END ------------



●專(zhuān)欄《嵌入式工具
●專(zhuān)欄《嵌入式開(kāi)發(fā)》
●專(zhuān)欄《Keil教程》
●嵌入式專(zhuān)欄精選教程

關(guān)注公眾號(hào)回復(fù)“加群”按規(guī)則加入技術(shù)交流群,回復(fù)“1024”查看更多內(nèi)容。

點(diǎn)擊“閱讀原文”查看更多分享。

發(fā)表回復(fù)

本版積分規(guī)則

關(guān)閉

站長(zhǎng)推薦上一條 /1 下一條


聯(lián)系客服 關(guān)注微信 下載APP 返回頂部 返回列表