關於新唐科技NuMicro ISP的介紹和使用方式
目前新唐科技主流的幾款微控制器均支援ICP、ISP及IAP三種燒錄方式,本文主要介紹NuMicro ISP的使用方式並實作。在這之前讓我們先來了解以上三種燒錄方式的差異,但不同的微控制器設計製造商可能對這些名詞有不同的定義。 ICP全稱為"In circuit programming"中文為"在電路上燒錄程式",意思上就是該單晶片可以在工作電壓之下直接進行燒錄。早期的單晶片的程式記憶體為EPROM,更新程式前必須從電路中拔下來以紫外線清洗機將舊有的程式給清除乾淨,再插上燒錄器燒上新的程式。新一點的單晶片(如89C51)內部的程式記憶體為EEPROM,抹除及燒錄需使用12V高壓來進行,雖然可透過電氣的方式抹除舊有的程式並燒錄,但工作電壓5V依然需將其從電路中拔下來。這兩種燒錄方式在開發上都會造成不方便。而近期所出的單晶片則使用Flash Memory作為程式記憶體,能夠在工作電壓下直接進行讀寫、抹除故稱為"In circuit programming"。 ISP全稱為"In system programming"中文為"在系統上燒錄程式",此種燒錄方式是透過微控制器內部的程式對該程式以外的記憶體進行更新,通常會將一段更新用的程式碼放在程式記憶體的開頭或者特定的區塊,我們稱作為Bootloader。以新唐的微控制器舉例,記憶體主要分為LDROM和APROM,LDROM容量不大通常只有4KB,只擺一支小程式讀取UART、USB或其他通訊界面傳進來的的資料,並將這些資料存入APROM以達到更新的目的。所以這種燒錄方式只要在第一次透過燒錄器將Bootloader存入LDROM,往後使用者若要更新程式只要透過UART或者USB即可,無須再使用燒錄器。這個做法就跟Arduino UNO一樣透過Bootloader從UART進行軟體的更新。 #題外話 講到在這邊跟大家分享,我一位教微控制器實習的大學老師,自己設計了一塊課堂要使用的8051開發板,核心晶片使用89C51、用RS-232作為燒錄介面,做實驗時完全不需要將89C51拔下來插上燒錄器。整體的架構大致上就是在89C51裡的EEPROM放個讀取UART的程式並且會將UART的資料放入外部記憶體中,外部記憶體則是一顆...