【導(dǎo)讀】在單片機(jī)設(shè)計當(dāng)中,ISP和ICP是兩個比較常見且重要的概念。ISP能夠讓單片機(jī)通過采用簡單的方式來擦除或?qū)懭腚娐钒迳系某绦颍⒛軌蜻M(jìn)行在線調(diào)試。ICP也是比較常見的一種燒錄程序。對于新手來說,對于這兩種方式具有較大混淆性。本篇文章主講MCU當(dāng)中這兩種燒錄方法的區(qū)別,幫助各位新手進(jìn)行理解。
在開發(fā)階段
改code時, 不再需要將MCU從板子上拔起來, 拿到燒錄器上燒, 然后再裝回去。可以直接利用ISP/ICP Programmer做板上燒錄, 為開發(fā)者提供了極大的便利性。
在量產(chǎn)階段
客戶可以采用”先焊到板子上再燒code”的方式, 將燒code的動作安排在生產(chǎn)線的某一站。
那么傳統(tǒng)的方式 (先將code燒好再焊到板子上)有什么缺點(diǎn)?
傳統(tǒng)的方式是這樣的: 拆封-->從tray盤取出chip-->燒錄-->把chip放回tray盤。
這樣的流程比起上面建議的方式: 增加了燒錄時間, 容易造成QFP包裝的chip彎腳, 或忘了燒code即放回tray盤。
在成品階段
已組裝好的成品若要改code,可以透過預(yù)留的接口,利用ISP或ICP,更新MCU,不需要拆機(jī)。
什么是 IAP?
IAP指的是,MCU在運(yùn)行的狀態(tài)下,利用ISP的機(jī)制,不透過外接工具 (例如: ISP Programmer)的幫忙,去更新APROM,DataFlash或CONFIG。要實(shí)現(xiàn)這種功能,系統(tǒng)必須有取得更新數(shù)據(jù)的能力,例如: 處于某一種聯(lián)機(jī)的狀態(tài)。(注: 有時候, ISP/IAP的分別并不是那么清楚)
ISP與ICP的差別
For ISP
MCU必須處于可執(zhí)行程序的狀態(tài)(除了上電,還要接XTAL), 且必須預(yù)燒ISP-code在LDROM里面
燒錄范圍只限于APROM, DataFlash或CONFIG (但對使用者來說, 應(yīng)經(jīng)夠了!)
chip在LOCK的狀態(tài)下, 仍然可以只更新某一區(qū)塊 (APROM, DataFlash或CONFIG)
因?yàn)闊浀膭幼魅Q于ISP-code的寫法, 所以給系統(tǒng)設(shè)計者的彈性較大
For ICP
MCU只要處于上電狀態(tài)即可,不必預(yù)燒任何code在MCU里面。燒錄范圍涵蓋整顆MCU, 包括 APROM, DataFlash, CONFIG, LDROM和 ROMMAP chip在LOCK的狀態(tài)下, 無法只更新某一區(qū)塊,只能在erase-ALL之后,更新某一區(qū)塊,再逐一燒回其它區(qū)塊(因?yàn)镮CP的本質(zhì)就是走串行接口的Writer Mode, chip被LOCK之后,除了erase-ALL,所有燒錄動作皆會被禁止)。因?yàn)闊浖兇馐荌CP硬件的行為, MCU無法自己更新自己, 所以給系統(tǒng)設(shè)計者的彈性較小(例如: 無法藉由ICP去實(shí)現(xiàn)IAP的功能)
ISP與ICP的使用場合
從單片機(jī)的使用場合來說,要根據(jù)其不同的特性來進(jìn)行安排,按照客戶的系統(tǒng)需要,來為客戶推薦ISP或ICP。從使用者的角度來說,如果必須要在ISP與ICP當(dāng)中選擇一款來使用的話,那么ISP會是最優(yōu)的選擇。