SyncMOS MSM9059 使用手冊 SyncMOS MSM9059 使用手冊 適用微控制器型號:SM59R02A1、SM59R03A1、SM59R04A1、SM59R04A2 內 容 1. 前言 ............................................................................................................................................... 3 2. MSM9059 外觀圖 ........................................................................................................................... 3 3. ISP 簡介 ......................................................................................................................................... 4 4. 使用 ISP 功能之 Configuration 設定 ............................................................................................... 5 5. 進入 ISP 機制說明 ......................................................................................................................... 6 5.1 硬體 ISP ............................................................................................................................... 6 5.2 軟體 ISP ............................................................................................................................... 6 6. ICP 簡介 ......................................................................................................................................... 8 7. ICP 與 ISP 差異比較表 .............................................................................................................................9 8. 安裝 Prolific USB 驅動程式 .......................................................................................................... 10 9. SMAP 設定說明 ............................................................................................................................ 11 10.1 設定燒錄器 ....................................................................................................................... 11 10.2 自動更新韌體 .................................................................................................................... 12 10.3 手動更新韌體 .................................................................................................................... 13 10. SMAP 操作介面簡介 ................................................................................................................... 15 10.1 燒錄模式 ........................................................................................................................... 15 10.2 連接 COM Port ................................................................................................................. 15 10.3 選擇燒錄檔案 .................................................................................................................... 15 10.4 晶片組態 ........................................................................................................................... 16 10.4.1 晶片組態介面 ........................................................................................................... 16 10.4.2 讀取組態................................................................................................................... 16 10.4.3 組態選單.................................................................................................................... 17 10.5 燒錄選單 ........................................................................................................................... 18 10.6 訊息視窗 ........................................................................................................................... 18 10.7 緩存區............................................................................................................................... 18 11. ISP 燒錄教學 .............................................................................................................................. 20 11.1 硬體連接方式 .................................................................................................................... 20 11.2 手動燒錄 ........................................................................................................................... 21 11.3 上電燒錄 ........................................................................................................................... 21 11.4 自定義下載........................................................................................................................ 23 Specifications subject to change without notice, contact your sales representatives for the most recent information. ISSFT-0015 1 Ver. A 2010/04 SyncMOS MSM9059 使用手冊 12. ICP 燒錄教學 .............................................................................................................................. 30 13. 離線燒錄教學 ............................................................................................................................. 31 13.1 離線 ICP ........................................................................................................................... 31 13.2 離線 ISP ........................................................................................................................... 31 13.3 離線 ISP 上電燒錄 ............................................................................................................ 32 Specifications subject to change without notice, contact your sales representatives for the most recent information. ISSFT-0015 2 Ver. A 2010/04 SyncMOS MSM9059 使用手冊 1 前言: 1.1 MSM9059 支援 ICP,使用者將程式燒錄至 SM59R04A2 與 SM59R02/03/04A1 系列,使用者不 需要額外燒錄 ISP Code 於 IC 上,即可將所要燒錄的程式燒錄於 IC 中,也可支援 ISP 功能。 1.2 可支援之傳輸介面:USB。 1.3 可支援 MCU 之燒錄電壓:5V、3.3V。 2 MSM9059 外觀圖: Button USB Plug ICP Interface VCC GND N/A OCI_SCL OCI_SDA ISP Interface VCC GND N/A RxD TxD POWER(Red LED) GOOD(Green LED) BUSY(Yellow LED) FAIL(Red LED) Specifications subject to change without notice, contact your sales representatives for the most recent information. ISSFT-0015 3 Ver. A 2010/04 SyncMOS MSM9059 使用手冊 3 ISP 簡介: ISP(In System Programming),它是一個可線上燒錄的功能,何謂可線上燒錄,就是使用者不需將 IC 從機器中取下,放在特定的燒錄器進行燒錄的動作,它可直接透過特定的傳輸介面,例如 UART,搭配特 定的傳輸協定即可進行晶片抹除、寫入,為一便利的功能。但在執行此功能前須預先將 ISP 韌體程式透過 燒錄器燒進晶片內,這樣才可以跟 PC 端的應用程式進行連結與溝通,這種方式我們稱之為 ISP。下圖所示 為 ISP 系統圖。 UART COM Port MSM9059 USB Port 使用者程式 Windows 應用程式 {…… 判斷執行 ISP(); SMAP …..} ISP 韌體程式 ISP 系統圖 新茂提供上圖中 Windows 應用程式、ISP 韌體程式的 hex/bin 和原始碼供客戶使用,以縮短客戶開發 時間。為方便開發者使用,新茂公司在 SM59R04A2 與 SM59R02/03/04A1 系列 IC,出廠前已將 ISP 韌體 程式燒入 IC。 Specifications subject to change without notice, contact your sales representatives for the most recent information. ISSFT-0015 4 Ver. A 2010/04 SyncMOS MSM9059 使用手冊 4 使用 ISP 功能之 Configuration 設定: 若 IC 出廠的 ISP code 已經被通用燒錄器抹除過,需重新燒錄 ISP code 才能正常使用 ISP 功能,請依 照下列步驟燒錄 ISP code: 4.1 在 SM59R04A2 與 SM59R02/03/04A1 系列 IC,請使用通用型燒錄器設定 N=2。 4.2 依所使用的 IC 型號載入 ISP code,出廠 ISP code 在程式集中的 SMAP 路徑找到。 Specifications subject to change without notice, contact your sales representatives for the most recent information. ISSFT-0015 5 Ver. A 2010/04 SyncMOS MSM9059 使用手冊 5 進入 ISP 機制說明: 5.1 硬體 ISP:使用 IC 內部的硬體機制,使 PC Counter 可跳躍到 ISP code 執行 ISP 功能。 IC 型號 第一個位置的值 $0000=FFH P2.6/P2.7 = 0 P4.3 = 0 P3.0 輸入兩個時脈 Yes Yes Yes Yes Yes Yes Yes Yes Yes Yes Yes Yes 各 IC 型號支援硬體 ISP 機制一覽表 5.1.1 “第一個位置的值 $0000=FFH”:當 IC 為空片時,PC Counter 可自行跳躍到 ISP code。 5.1.2 “P2.6/P2.7 = 0”:當 Power-on 或 Reset 發生時,若 P2.6 與 P2.7 同時為低電位,PC Counter 可跳躍到 ISP code。 5.1.3 “P4.3 = 0”:當 Power-on 或 Reset 發生時,若 P4.3 為低電位,PC Counter 可跳躍到 ISP code。 因 DIP 無 Port 4,所以必須要 QFP 或 PLCC 封裝 IC 才可支援。 5.1.4 “P3.0 輸入兩個時脈”:當 Power-on 或 Reset 發生時,若 P3.0 收到兩個時脈,PC Counter 可跳躍到 ISP code。 5.2 軟體 ISP:以 Keil C 為例,要讓使用者程式能夠進入 ISP 韌體程式執行,須在 Project 內加入 Gotoisp.a51 檔案一起編譯,並在使用者程式加入是否執行 ISP 的判斷。如下所示: SM59R02A1 SM59R03A1 SM59R04A1 SM59R04A2 Yes Yes Yes Yes Gotoisp.a51 檔案: ; GOTOISP.A51 NAME GOTOISP ?PR?GotoIsp?GOTOISP SEGMENT CODE PUBLIC GotoIsp RSEG ?PR?GotoIsp?GOTOISP USING 0 GotoIsp: LJMP 03E00H ;isp start address END Specifications subject to change without notice, contact your sales representatives for the most recent information. ISSFT-0015 6 Ver. A 2010/04 SyncMOS MSM9059 使用手冊 使用者程式: #include <….h> … extern void GoToIsp(void); … void main(void) { if(P4.3 = = 0) { GoToIsp(); } // 使用者須在呼叫此函式先定義 // 是否執行 ISP 的判斷,此 Pin 4.3 使用者可自行定義。 … … } 備註: ※ Code Size 為 16KB 以下的 IC(如 SM59D04G2 與 SM59R04A2),其 ISP 位址在 3E00H;Code Size 為 32KB 的 IC(如 SM59R08A2),其 ISP 位址在 7E00H;Code Size 為 64KB 以上的 IC(如 SM5964A、 SM59264),其 ISP 位址在 FE00H,請依使用的 IC 型號修改需跳躍的 ISP 位址。 ※ SM59XX 系列與 SM59DXX 系列 ISP code 使用 Timer 1 當鮑率產生器,因此若客戶在主程式中使 用 Timer2 作為鮑率產生器,請必須在跳躍到 ISP code 前將 T2CON 給 00H,避免 Timer2 佔用 UART 串口。 Specifications subject to change without notice, contact your sales representatives for the most recent information. ISSFT-0015 7 Ver. A 2010/04 SyncMOS MSM9059 使用手冊 6 ICP 簡介: ICP(In Circuit Programming),它是一個可線上燒錄的功能,與 ISP 相較,由於 ISP 須預先將 ISP 韌體 程式透過燒錄器燒進晶片內,必須佔用 IC 的 code size,而 ICP 因內建在晶片硬體架構,不需內含 ISP boot code 即可進行晶片抹除、寫入,這種方式我們稱之為 ICP。下圖所示為 ICP 系統圖。 COM Port ICP Interface MSM9059 USB Port Windows 應用程式 SMAP ICP 系統圖 Specifications subject to change without notice, contact your sales representatives for the most recent information. ISSFT-0015 8 Ver. A 2010/04 SyncMOS MSM9059 使用手冊 7 ICP 與 ISP 差異比較表: 上線燒錄方式 燒錄 IC 組態 IC 加密 介面 備註 優點 ISP 可 可 VCC,GND,RX,TX 1. 需內含 0.5k ISP code 2. 出廠有 ISP code 可透過 MAX232 或 USB-toUART IC 直接與 PC 連線更新 ICP(2-Wires interface) 可 可 VCC, GND,OCI_SCL,OCI_SDA 無 不需內含 ISP code Specifications subject to change without notice, contact your sales representatives for the most recent information. ISSFT-0015 9 Ver. A 2010/04 SyncMOS MSM9059 使用手冊 8 安裝 Prolific USB 驅動程式: 安裝 SMAP 後可在程式集中的 SMAP 路徑找到 USB 的驅動程式進行安裝。 Specifications subject to change without notice, contact your sales representatives for the most recent information. ISSFT-0015 10 Ver. A 2010/04 SyncMOS MSM9059 使用手冊 9 SMAP 設定說明: 9.1 設定燒錄器: 9.1.1 首先將 SyncMOS SMAP 安裝於您的電腦,安裝完成之後在您的桌面會產生一個捷徑。 9.1.2 第一次啟動 SMAP 時,會跳出設定燒錄器視窗,有 MSM9059、MSM9059、MSM9171 可 供選擇,請選擇 MSM9059,然後按<確定>。 9.1.3 接著跳出 SMAP 主視窗,可在[設定]畫面中變更燒錄器型號,更新韌體以及改變語言設定。 Specifications subject to change without notice, contact your sales representatives for the most recent information. ISSFT-0015 11 Ver. A 2010/04 SyncMOS MSM9059 使用手冊 9.2 自動更新韌體: 9.2.1 進入[燒錄模式]並點選<連接>,若您的 MSM9059 韌體與目前的 SMAP 版本不符,會跳出 視窗請您更新韌體。依照下圖流程點選,跳出[更新的方式]視窗時請選<自動>並點選<確定> 鍵。 9.2.2 選擇 FW-9059VXXX.hex,並點選<開啟(O)>鍵,即開始更新。 Specifications subject to change without notice, contact your sales representatives for the most recent information. ISSFT-0015 12 Ver. A 2010/04 SyncMOS MSM9059 使用手冊 9.2.3 訊息視窗會依序顯示”掃瞄完成”、”抹除完成!”、”寫入完成!”、”保護完成!”、”晶片重置完 成!”、”連接成功!”,即代表完成更新。 9.3 手動更新韌體: 9.3.1 當使用自動更新韌體失敗時,也可以使用手動更新方式讓韌體能順利更新。先壓住按鈕同時 將 MSM9059 插入 USB 插孔,在[設定]頁面,COM Port 的設定必須為正確的連接串口,再 按<更新>按鈕,會跳出[更新方式]視窗。 Specifications subject to change without notice, contact your sales representatives for the most recent information. ISSFT-0015 13 Ver. A 2010/04 SyncMOS MSM9059 使用手冊 9.3.2 按<確定>後跳出[開啟]視窗,選擇 FW-9059VXXX.hex,然後按<開啟(O)>,即可開始更新 韌體。 Specifications subject to change without notice, contact your sales representatives for the most recent information. ISSFT-0015 14 Ver. A 2010/04 SyncMOS MSM9059 使用手冊 10 SMAP 操作介面簡介: 10.1 燒錄模式:有連線 ISP、離線 ISP、連線 ICP 與離線 ICP 四種模式可供選擇。 10.1.1 連線 ISP:MSM9059 需連接 PC,並透過 Rx、Tx 連接 MCU 燒錄。需設定晶振頻率,請依 照目標板所用的晶振頻率設定。 10.1.2 離線 ISP:可將待燒錄的 code 先傳到 MSM9059 上,便可不須連線電腦,透過 Rx、Tx 燒 錄連接 MCU 進行燒錄。設定注意事項如同連線 ISP。 10.1.3 連線 ICP:MSM9059 需連接 PC,並透過 OCI_SCL、OCI_SDA 連接 MCU 燒錄。 10.1.4 離線 ICP:可將待燒錄的 code 先傳到 MSM9059 上,便可不須連線電腦,透過 OCI_SCL、 OCI_SDA 連接 MCU 進行燒錄。 10.2 連接 COM Port: 10.2.1 開啟 SMAP 會出現 COMx(Prolific USB-to-Serial Comm Port) ,直接按<連接>即可連線成 功。 10.2.2 當搜尋不到您的 COM Port 時,此時表示您的 USB 不在 COM1~COM32 之間?或 MSM9059 電源未上電?請從 Windows 的裝置管理員更改您的 COM Port 於 COM1~COM32,並檢查 MSM9059 電源燈是否有亮。 10.3 選擇燒錄檔案: 10.3.1 點按<選擇>,會跳出”選擇燒錄檔案”視窗,按<開啟>選擇您要燒錄的檔案(XXX.HEX or XXX.BIN)。 Specifications subject to change without notice, contact your sales representatives for the most recent information. ISSFT-0015 15 Ver. A 2010/04 SyncMOS MSM9059 使用手冊 10.3.2 當使用 ICP 模式時如需同時載入 main code 與 ISP code 時,可以同時在”程式”與”ISP”各別 載入。 10.4 晶片組態: 10.4.1 晶片組態介面:選擇您要設定的項目,會再燒錄時將組態設定一起燒錄進 IC 中。 10.4.2 讀取組態:選取讀取組態圖示時,可讀出晶片組態設定。 Specifications subject to change without notice, contact your sales representatives for the most recent information. ISSFT-0015 16 Ver. A 2010/04 SyncMOS MSM9059 使用手冊 10.4.3 組態選單: a. 看門狗:可選擇<使用>或<關閉>,IC 出廠預設值為<使用>。 b. MCU 速度:可以選擇使用內部頻率 1~24MHz 或<使用外部頻率>,IC 出廠預設值為<使用外 部頻率>。 c. 腳位功能:可將 OCI_SCL、ALE、OCI_SDA 與 RESET 定義成 P4.4、P4.5、P4.6 與 P4.7 當 GPIO。可選擇<設定>或<取消>,IC 出廠預設值為<設定>。 d. 重置時間:整合 MAX810,可提供使用者設定重置時間。可選擇 4~200ms,IC 出廠預設值為 <25ms>。 e. 區塊值(N):用來設定 ISP 程式保護區塊的大小。可選擇<無 ISP 代碼>或 N=1~16,IC 出廠預 設值為<N=2 (3E00H)>。 f. ISP 啟動機制:有 4 種 ISP 啟動機制可供使用者選擇,每種機制分別設定使用 MAX810 電源 啟動方式或使用 Reset Pad 重置啟動,IC 出廠預設皆為開啟。 Specifications subject to change without notice, contact your sales representatives for the most recent information. ISSFT-0015 17 Ver. A 2010/04 SyncMOS MSM9059 使用手冊 10.5 燒錄選單: 10.5.1 :使用 ISP 模式時,會掃描出適合使用的傳輸鮑率。 10.5.2 :清除 IC 的所有資料。 10.5.3 :檢查 IC 的資料是否為 0xFF。 10.5.4 :將您載入的燒錄檔案與所設定的 config 選項燒錄到 IC 裡。 10.5.5 :確認您所載入的燒錄檔案與燒錄到 IC 的資料是否正確。 10.5.6 :將 IC 的資料加密,使其無法使用讀出正確的資料。 10.5.7 :當使用 ISP 時,燒錄完成後讓 IC 內部自行 Reset。 10.5.8 :勾選您要執行的項目,如<抹除>、<寫入>……等。點按<自動執行>則會執 行剛剛所選擇的項目。 10.6 訊息視窗: 10.6.1 點選<晶片組態>左邊的<訊息>可顯示出訊息視窗。 10.6.2 若要清除訊息視窗的資訊,按<清除訊息>即可清除。 10.7 緩存區: 10.7.1 檔案內容:可開啟檔案緩存區視窗,可查看所載入檔案的程式碼。 Specifications subject to change without notice, contact your sales representatives for the most recent information. ISSFT-0015 18 Ver. A 2010/04 SyncMOS MSM9059 使用手冊 10.7.2 晶片內容:可開啟晶片緩存區視窗,可查看所載入檔案的程式碼。 10.7.3 存檔:可將緩存區中的資料另存 bin 檔。 10.7.4 更新:更新檔案中的程式碼到緩存區視窗中。 10.7.5 更新:讀取 IC 中的程式碼到緩存區視窗中。 檔案緩存區視窗 晶片緩存區視窗 Specifications subject to change without notice, contact your sales representatives for the most recent information. ISSFT-0015 19 Ver. A 2010/04 SyncMOS MSM9059 使用手冊 11 ISP 燒錄教學: 11.1 硬體連接方式: 11.1.1 當使用 ISP 連目標板時,MSM9059 需透過 Rx、Tx 與目標板連線,請將目標板的 Rx、Tx、 VCC 與 GND 連接至 MSM9059。 VCC GND Rx Tx 11.1.2 ISP 燒錄需設定晶振頻率,如果連接目標板,請依照目標板所用的晶振頻率設定,若列表中 無貴公司所使用的頻率,請反應給我們新茂,我們將協助加入 SMAP 支援。 Specifications subject to change without notice, contact your sales representatives for the most recent information. ISSFT-0015 20 Ver. A 2010/04 SyncMOS MSM9059 使用手冊 11.2 手動燒錄: 11.2.1 請自行先讓 IC 利用硬體 ISP 或軟體 ISP 方式進入 ISP 狀態。 11.2.2 設定欲燒錄的晶片、頻率,燒錄方式選擇<手動燒錄>。 11.2.3 選擇所需燒錄之檔案,然後在燒錄功能圖塊中選取要執行之功能,按下<自動執行>即可, 也可以執行單步動作,直接按下所需功能之圖塊即可。 11.3 上電燒錄:只要 Power on 即可重新燒錄。 SM59R04A2 與 SM59R02/03/04A1 有 P3.0 收兩個時 脈的 ISP 硬體機制,則跳躍到 ISP code 進行 ISP 燒錄。操作步驟如下: (1) 將 MCU 放置於目標板上,先不要上電。 (2) 設定欲燒錄的晶片、頻率,燒錄方式選擇<上電燒錄>。 Specifications subject to change without notice, contact your sales representatives for the most recent information. ISSFT-0015 21 Ver. A 2010/04 SyncMOS MSM9059 使用手冊 (3) 按下<自動執行>按鈕,在停止鍵上方會顯示”偵測中”,此時再將系統板上電,即可開始燒錄。 (4) 燒錄完成後在停止鍵上方會顯示”晶片重置完成!”。 Specifications subject to change without notice, contact your sales representatives for the most recent information. ISSFT-0015 22 Ver. A 2010/04 SyncMOS MSM9059 使用手冊 11.4 自定義下載:此燒錄方式僅適用在目標板燒錄,可以讓使用者自定義 command 作為進入 ISP 燒 錄的通關指令,透過 UART 連接 SMAP 軟體做連線更新。 11.4.1 操作步驟: (1) 先將範例程式及 ISP 服務程式燒進 MCU 中。 (2) 將 MCU 放至上,與 MSM9059 連接並上電。 (3) 選擇<自定義>,並依據客戶主程式所使用的傳輸速度設定鮑率值,因範例程式使用 115200bps,因此需選擇 115200bps。 (4) 接著將自定義的指令輸入至視窗中,自定義的指令需配合客戶主程式中 UART 中斷的接收副程 式所接受之自定義的指令,客戶可自定義的指令長度最多達 32 個位元組,資料型態為 16 進制。 (5) 按下”自動執行”按鈕,即開始燒錄,燒錄完成後在停止鍵上方會顯示”晶片重置完成!”。 Specifications subject to change without notice, contact your sales representatives for the most recent information. ISSFT-0015 23 Ver. A 2010/04 SyncMOS MSM9059 使用手冊 11.4.2 動作流程圖: PC SMAP MCU Initial UART Run customer’s main code NO Send user-defined command Receive data YES Enter UART interrupt NO Check data = userdefined data YES NO Check data number = nCommandLength YES NO Receive ACK Send 0x5A YES Fail Start ISP erase, program, protect, reset LJMP ISP address Specifications subject to change without notice, contact your sales representatives for the most recent information. ISSFT-0015 24 Ver. A 2010/04 SyncMOS MSM9059 使用手冊 11.4.3 範例程式(使用 SM59R04G2 為例): (1) Keil C 範例程式: Description main.c (Main program) //此範例應用包括 main.c、GoToISP_Low.A51 #include "SM59D04G2.h" #define nCommandLength 32 #define nAckCommand 0x5A unsigned char UartCmdCount; unsigned char code CommandArray[nCommandLength]= {0x01, 0x02, 0x03, 0x04, 0x05, 0x06, 0x07, 0x08, 0x09, 0x10, 0x11, 0x12, 0x13, 0x14, 0x15, 0x16, 0x17, 0x18, 0x19, 0x20, 0x21, 0x22, 0x23, 0x24, 0x25, 0x26, 0x27, 0x28, 0x29, 0x30, 0x31, 0x32}; extern GoToISP_Low(); void delayms(unsigned int mscnt) { unsigned int i; while(mscnt--) { for(i=0;i<250;i++); } } void init_UART_timer1(unsigned char BR) { SCON = 0x50; //SCON: serail mode 1, 8-bit UART, enable receive TMOD = 0x22; //TMOD: timer 1, mode 2, 8-bit reload PCON = 0x80; //SMOD = 1; TH1 = BR; //Baud:57600 fosc=22.1184MHz TR1 = 1 ; //timer 1 run EA = 1; //all interrupt enable ES = 1; //UART enable } void init_UART_timer2(unsigned int T2value) { RCAP2L = (char)T2value; RCAP2H = (char)(T2value>>8); T2CON = 0x34; SCON = 0x50; EA = 1; //all interrupt enable ES = 1; //UART enable } void main(void) { init_UART_timer2(0xFFFA);//choise Timer 1 or Timer 2 as baud rate generator //init_UART_timer1(0xFF); //SyncMOS_GoToISP via UART //TH1 = 0xFF; //12T, 3.579MHz(19200), 11.0592MHz(57600) // 6T, 3.579MHz(38400), 11.0592MHz(115200) Specifications subject to change without notice, contact your sales representatives for the most recent information. ISSFT-0015 25 Ver. A 2010/04 SyncMOS MSM9059 使用手冊 //TH1 = 0xFE; //TH1 = 0xFD; //TH1 = 0xFC; //TH1 = 0xFB; //TH1 = 0xF7; //TH1 = 0xF5; //TH1 = 0xF3; // // while(1) { P0 = 0xF0; P0 = 0x0F; P2 = 0xF0; P2 = 0x0F; } //12T, 14.31818MHz(38400), 22.1184MHz(57600), 14.7456MHz(38400) // 6T, 22.1184MHz(115200) //12T, 4MHz(7200), 8MHz(14400), 8.192MHz(14400), 16MHz(28800) // 6T, 4MHz(14400),8MHz(28800), 8.192MHz(28800), 16MHz(57600) // // 6T, 14.31818MHz(38400), 14.7456MHz(38400) //12T, 18.432MHz(19200) // 6T, 18.432MHz(38400) //12T, 24.576MHz(14400), 25MHz(14400) // 6T, 24.576MHz(28800), 25MHz(28800) //12T, 20MHz(9600) // 6T, 20MHz(19200) //12T, 6MHz(2400), 12MHz(4800), 24MHz(9600) // 6T, 6MHz(4800), 12MHz(9600), 24MHz(19200) delayms(300); delayms(300); delayms(300); delayms(300); } GoToISP_Low. A51 void serial(void) interrupt 4 { if(RI) { if(SBUF == CommandArray[UartCmdCount]) UartCmdCount++; else UartCmdCount=0; RI = 0 ; if(UartCmdCount==nCommandLength) { IE = 0x00; //disabling interrupt SBUF = nAckCommand; while(!TI); TI = 0; T2CON = 0x00; //disabling T2 because using T1 baud rate generator in ISP code GoToISP_Low(); //LJMP 3E00H ISP code address } } else TI=0; } ; GoToISP_Low.A51 NAME GoToISP_Low ?PR?GoToISP_Low?GOTOISP_LOW SEGMENT CODE PUBLIC GoToISP_Low RSEG ?PR?GoToISP_Low?GOTOISP_LOW USING 0 GoToISP_Low: MOV DPTR,#3E00H ;LJMP 3E00H ISP code address Specifications subject to change without notice, contact your sales representatives for the most recent information. ISSFT-0015 26 Ver. A 2010/04 SyncMOS MSM9059 使用手冊 PUSH DPL PUSH DPH RETI END (2) 組合語言範例程式: Description Main program nCommandLength EQU 32 ;setting command length by user UARTCmdCount EQU 20H T2CON EQU 0C8H RCAP2L EQU 0CAH RCAP2H EQU 0CBH ORG 0000H AJMP ISP_Entry ORG 0023H AJMP UART_INTERRUPT ISP_Entry: ACALL SyncMOS_GoToISP ;initial setting ;;; ;;; main code start ;;; /* LED display demo */ MOV DPTR,#TABLE_01 ;DPTR point to data area START: MOV R0,#0 ; MOV R1,#8 ;8 datas LOOP: MOV A,R0 ;put R0 contect to A MOVC A,@A+DPTR ;use indirect address get data, and put into A MOV P0,A ;put ACC to Port 0 MOV P1,A ;put ACC to Port 1 ACALL DELAY100MS ;delay 0.1 second INC R0 ;R0 point to next data DJNZ R1,LOOP ;if R1 != 0 then jump to LOOP SJMP START ;if R1=0 then jump to START ;;; dealy subroutine DELAY100MS: MOV R5,#10 ;Dealy 10x10ms=100ms DELAY10MS: MOV R6,#50 ;delay time 10ms @ 11.0592MHz DELAY01: MOV R7,#99 DJNZ R7,$ ; Inner loop delay DJNZ R6,DELAY01 ; DJNZ R5,DELAY10MS RET ;;; TABLE_01: DB 11100111B DB 11000011B DB 10000001B Specifications subject to change without notice, contact your sales representatives for the most recent information. ISSFT-0015 27 Ver. A 2010/04 SyncMOS MSM9059 使用手冊 DB DB DB DB DB 00000000B 10000001B 11000011B 11100111B 11111111B ;;; ;;; main code End ;;; ;;; ;;; SyncMOS_GoToISP Subroutine ;;; SyncMOS_GoToISP: ;;;======UART Timer1 setting============= ;MOV TMOD,#00100001B ;Timer 1 is mode1 is mode 2, Timer 0 is mode 1 ;;; ;MOV TH1,#0FFH ;baud rate, 12T, 3.579MHz(19200), 11.0592MHz(57600) ; 6T, 3.579MHz(38400), 11.0592MHz(115200) ;MOV TH1,#0FEH ;baud rate, 12T, 14.31818MHz(38400), 22.1184MHz(57600), 14.7456MHz(38400) ; 6T, 22.1184MHz(115200) ;MOV TH1,#0FDH ;baud rate, 12T, 4MHz(7200), 8MHz(14400), 8.192MHz(14400), 16MHz(28800) ; 6T, 4MHz(14400),8MHz(28800), 8.192MHz(28800), 16MHz(57600) ;MOV TH1,#0FCH ;baud rate, ; 6T, 14.31818MHz(38400), 14.7456MHz(38400) ;MOV TH1,#0FBH ;baud rate, 12T, 18.432MHz(19200) ; 6T, 18.432MHz(38400) ;MOV TH1,#0F7H ;baud rate, 12T, 24.576MHz(14400), 25MHz(14400) ; 6T, 24.576MHz(28800), 25MHz(28800) ;MOV TH1,#0F5H ;baud rate, 12T, 20MHz(9600) ; 6T, 20MHz(19200) ;MOV TH1,#0F3H ;baud rate, 12T, 6MHz(2400), 12MHz(4800), 24MHz(9600) ; 6T, 6MHz(4800), 12MHz(9600), 24MHz(19200) ;SETB TR1 ;enable Timer 1 ;MOV PCON,#10000000B ;set SMOD = 1 ;;;====================================== ;;; ;;;======UART Timer2 setting============= ;choise Timer 1 or Timer 2 as baud rate generator MOV RCAP2H,#0FFH MOV RCAP2L,#0FAH MOV T2CON,#34H ;;;====================================== MOV SCON,#01010000B ;serial mode 1, REN=1, TI=0, RI=0 MOV IE,#90H ;enable UART interrupt MOV UARTCmdCount,#00H RET UART_INTERRUPT: JB RI,RX ; if RI=1 jump RX,else clear TI CLR TI RETI RX: CLR RI Specifications subject to change without notice, contact your sales representatives for the most recent information. ISSFT-0015 28 Ver. A 2010/04 SyncMOS MSM9059 使用手冊 PUSH ACC PUSH DPL PUSH DPH MOV A,UARTCmdCount MOV DPTR,#COMMAND_TABLE MOVC A,@A+DPTR CJNE A,SBUF,CLR_UARTCmdCount INC UARTCmdCount MOV A,UARTCmdCount CJNE A,#nCommandLength,RETURN CLR EA MOV SBUF,#5AH ;transmit ack MOV DPTR,#3E00H ;LJMP 3E00H ISP code address PUSH DPL PUSH DPH JNB TI,$ CLR TI MOV T2CON,#00H ;disabling T2 because using T1 baud rate generator in ISP code RETI CLR_UARTCmdCount: MOV UARTCmdCount,#00H RETURN: POP DPH POP DPL POP ACC RETI COMMAND_TABLE: DB 01H,02H,03H,04H,05H,06H,07H,08H ;to define command by user DB 09H,10H,11H,12H,13H,14H,15H,16H DB 17H,18H,19H,20H,21H,22H,23H,24H DB 25H,26H,27H,28H,29H,30H,31H,32H END 備註: ※ 相關範例程式已附在 SMAP 安裝目錄下 C:\Program Files\SyncMOS\SyncMOS Writers\SMAP\ OnlineUpdate\User-defined Specifications subject to change without notice, contact your sales representatives for the most recent information. ISSFT-0015 29 Ver. A 2010/04 SyncMOS MSM9059 使用手冊 12 ICP 燒錄教學: 12.1 MSM9059 需透過 OCI_SCL、OCI_SDA 與目標板連線。請將目標板的 OCI_SCL、OCI_SDA、 VCC 與 GND 連接至 MSM9059。設定好所需的項目,點選<自動執行>,即可使用 ICP 燒錄。 VCC GND OCI_SCL OCI_SDA 12.2 當 OCI_SCL、OCI_SDA 與 Reset pin 皆被組態為 GPIO,會影響 ICP 燒錄時無法入 ICP mode, 只有 IC 剛 Power on 可進入 ICP mode。在此情況下使用 MSM9059 請依照下列操作步驟: (1) 先將目標板電源關閉,並將目標板的 OCI_SCL、OCI_SDA、VCC 與 GND 連接至 MSM9059。 (2) 按下<自動執行>時會顯示”偵測中”。 (3) 這時候再開啟目標板電源,燒錄完成後會顯示完成資訊。 Specifications subject to change without notice, contact your sales representatives for the most recent information. ISSFT-0015 30 Ver. A 2010/04 SyncMOS MSM9059 使用手冊 13 離線燒錄教學: 13.1 離線 ICP 13.1.1 設定好所需的項目,點選<自動執行>,MSM9059 便會將所需燒錄的 code 存至 MSM9059 上的 flash 中,當執行成功後,停止鍵上方會顯示”傳送成功!”。 13.1.2 拔掉 USB 線,連接目標板並按下按鈕,便可使用離線燒錄的功能,燒錄過程中黃燈 LED 會 不斷閃爍,當黃燈熄滅且綠燈亮時,即代表離線燒錄作業完成。若您的 MCU 已把 OCI_SCL 與 OCI_SDA 設定為 GPIO,則必須要用 ICP 上電燒錄方式,先接好連接線,目標板再上電 即可開始燒錄。 13.2 離線 ISP 13.2.1 設定好所需的項目,點選<自動執行>,MSM9059 便會將所需燒錄的 code 存至 MSM9059 上的 flash 中,當執行成功後,停止鍵上方會顯示”傳送成功!”。 Specifications subject to change without notice, contact your sales representatives for the most recent information. ISSFT-0015 31 Ver. A 2010/04 SyncMOS MSM9059 使用手冊 13.2.2 拔掉 USB 線,連接目標板並按下按鈕,便可使用離線燒錄的功能,燒錄過程中黃燈 LED 會 不斷閃爍,當黃燈熄滅且綠燈亮時,即代表離線燒錄作業完成。 13.3 離線 ISP 上電燒錄: 13.3.1 燒錄方式需設定為”上電燒錄”,將欲燒錄 main code 以離線 ISP 方式將 code 儲存至 MSM9059 中。 13.3.2 先關掉目標板電源,拔掉 USB 線,如同一般 ISP 燒錄在 MCU 目標板連接方式連接 Rx,Tx,GND,VCC。 13.3.3 開啟電源,便會自動執行離線燒錄,燒錄過程中黃燈 LED 會不斷閃爍,當黃燈熄滅且綠燈 亮時,即代表離線燒錄作業完成。 Specifications subject to change without notice, contact your sales representatives for the most recent information. ISSFT-0015 32 Ver. A 2010/04