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