前幾天加班加點畫了個單板。然后又是各種購買器件,焊接。折騰到半夜一兩點后終于完工??粗骷R排列的PCBA,才滿意地草草收工。第二天把單板拿出,接線,深吸一口氣,上電。還好沒有啥大動靜,懸著的心稍稍踏實了一點。
咦?電源指示燈沒有亮?慌亂中拿出萬用表開始一通測量。發(fā)現(xiàn)居然某個關(guān)鍵網(wǎng)絡(luò)沒有5V。趕緊打開電腦,對照圖紙一通翻找。找到問題之后,瞬間emo了。
請看下圖:
沒有什么問題,對不對?
把+5V往上拉一下,再看下面:
看出來了嗎?再放大:
是的,問題就出在這里:5V的網(wǎng)絡(luò)沒有完全連起來。導(dǎo)致在PCB布線的時候,也是斷開的。如下圖所示(藍色框框):
但是如果把+5V的電源符號放到這個正下方,剛好形成了一個圓點,把本該從視覺上就可以發(fā)現(xiàn)的問題隱藏了起來。
這個時候我想到了編譯。然后做了以下嘗試:
1、把編譯規(guī)則最右側(cè)一列全部設(shè)置為fatol error
仍然不會報錯;
2、檢查error reporting中其他編譯項,比如floating net ,floating power objects ,均設(shè)置為fatol error。仍然不會報錯,
3、把這個未連接的地方拉大距離,不幸的是還沒有報錯;
4、當(dāng)我把器件的一個端口從連線上斷開后,我發(fā)現(xiàn)是可以報錯的。如下圖:
好吧,事已至此,我認(rèn)為軟件應(yīng)該是這么考慮的:如果有器件的端口是未連接且沒有放“×”的話,那就會被編譯為錯誤。但是如果器件全部形成了閉合的網(wǎng)絡(luò),只有導(dǎo)線沒有連接,軟件就會直接抽象為兩個不同的網(wǎng)絡(luò)。
而這個地方出問題,又恰好被那個+5V的連接點所隱藏。你說這去哪說理去?所以說做技術(shù)能不較真嗎?這下又得在checklist 清單中增加一個檢查項了!否則真要遇到項目周期緊,量又大的板子,出了問題不得全公司加班飛線啦!不較真點不行啊,兄弟們。
好了,以上就是今天的內(nèi)容。