板子莫名其妙就不能進行調(diào)試了?燒錄芯片經(jīng)常出現(xiàn)壞片?良品率太低?是芯片太過脆弱么?還是我們的操作不當(dāng)?也許看了下面,你就能找到問題的真正原因。
我想大家或多或少遇到過這樣的問題,手上的芯片不知怎么的就燒不進去程序了,搞了半天也找不出原因,對于開發(fā)者來說,雖然也就是多花個幾兩銀子換個芯片的事,但也是挺鬧心的,而對于大批量生產(chǎn)來說,經(jīng)常出現(xiàn)這種情況可就不是個小問題了。這里總結(jié)了一些可能會搞壞你芯片的小細節(jié),可能對苦于換芯片或者糾結(jié)于良品率的你有一些幫助。
1.供電電壓
看到這里你也許就笑了,我系統(tǒng)板上的芯片供電是LDO輸出的,穩(wěn)定的很,怎么會燒芯片。這就要從芯片燒寫程序的兩種方式說起:在板燒錄和座燒。
對于個人用戶或是某些特定的行業(yè),如汽車電子,大部分都是用在板燒錄,
圖 1 在板燒錄
另一種方式工廠批量生產(chǎn)用的比較多,即座燒的方式,如下圖這種情況。
圖 2 座燒
對于很多開發(fā)板或者我們自己設(shè)計的系統(tǒng)板,調(diào)試接口的VCC一般都是直接從芯片供電引腳拉出,如果編程器供電不穩(wěn),則很容易造成芯片的過壓損壞。下圖為一款MCU的供電電壓范圍:
若編程器供電電壓不準(zhǔn)或電壓不穩(wěn),超過了這個范圍,則芯片將很容易損壞。
座燒就更不用說了,芯片直接由編程器供電,如果編程器供電不穩(wěn),那燒錄芯片的良品率將會成為你的噩夢。
2.芯片加密
一般的開發(fā)者很容易忽略芯片為我們提供的這個重要功能,但是當(dāng)你的產(chǎn)品要大賣的時候,這個功能就顯得尤為重要了,加密功能能有效防止你的產(chǎn)片代碼被抄襲。芯片加密等級一般有3級,我覺得這款Cypress的芯片手冊給出了比較明確的說明。
OPEN:芯片沒有保護,意味著你燒錄到芯片中的軟件可以被山寨者直接讀出。
PROTECTED:芯片有了讀出保護,意味著沒有人可以讀出來芯片中的數(shù)據(jù),但是芯片可以擦除,擦除之后可以再次使用。
KILL:你的芯片被“殺死了”,和上一個級別的保護一樣,沒有人可以讀取芯片數(shù)據(jù),但是這一次,整片擦除也不起作用了,你的芯片無法重新燒錄,但是不是真的“死了”,它還可以運行燒錄進去的程序。
需要注意的是這些保護一般都是重新上電后才會生效。
如果你哪天沒睡醒燒寫程序的時候把芯片的加密位設(shè)置成了KILL,那么恭喜你,可以換新的芯片了。
另外一種比較有意思的情況發(fā)生在大批量生產(chǎn)中,由于各種各樣的因素影響,芯片有時候燒到一半就被中斷了,而有些芯片的加密位恰恰是在燒錄文件的前段,對于有些燒錄器,可能會直接按燒錄文件順序燒錄,就會造成芯片已經(jīng)被KILL了,但是由于燒錄中斷造成后半段的程序還沒燒進去,那這個芯片就真的廢了。一種比較可靠的燒錄方案是在最后燒錄加密位,這樣就可以有效避免燒錄中斷造成的芯片意外鎖死。
3.編程高壓
有些OTP(一次可編程)芯片可能需要編程高壓才能將數(shù)據(jù)寫入,雖說是高壓,其實很多也就6、7V左右,再高也就十幾伏,這種程度的電壓對于我們來說比較安全,但對于很多芯片來說,已經(jīng)算是高壓了,即使是需要這種電壓才能編程的一些OTP芯片,也無法長時間承受,因此有些芯片會規(guī)定高壓加載的最長時間,一旦超過這個極限,OTP區(qū)就可能會永久損壞。有些編程器會提供編程高壓的輸出功能,在燒錄的流程中自動開關(guān)編程電壓,而對于那些沒有提供編程高壓的編程器,使用時就要小心不要在編程的時候發(fā)呆走神了,一定要及時斷開編程高壓。
此外,還有很多其他的因素會損壞你的芯片,比如靜電防護是否做得到位,芯片存儲的濕度,溫度是否符合要求,芯片焊接的溫度是否過高等,要提高燒寫的良品率,就要從多個方面做工作,當(dāng)然也不可忽略以上這些不易引起注意的細節(jié)。