2020年8月15日 星期六

nuvoTon(新唐)8bit 8051 微控制器開發環境建置 [3]-離線和 ISP(UART)燒錄

網頁最後修改時間:2020/08/15
從這篇網頁開始,將會說明如何在 Keil µVision 5 建立 nuvoTon(新唐) 8-bit 8051 MCU(微控制器)的韌體開發環境,主要分為:
  1. Keil C51 開發環境建置所需軟體安裝;
    主要說明建置開發環境時所需要的軟體的下載和安裝。
  2. 如何建立一個全新的 Keil 專案檔(以新唐 N76E003 晶片為例);
    包含樣本檔的建立、一鍵燒錄設定和除錯設置等...。
  3. 離線和 ISP(UART)燒錄;
    NuMicro ICP Programming Tool 燒錄 .hex 檔的說明,和使用 ISP(UART)燒錄韌體的方法。
這一篇是這系列的第三篇,主要說明韌體離線燒錄的方法,以及如何像 Arduino 一樣使用 UART 下載程式。

/*-/--*-*/*/*/*/***//-*-*-**-*/*-*-/*/*/*-*-/-////--/**/**--**/--///--//**----**//--**//**----***//*-**//*
有購買商品的使用者,網頁中所需相關資料已放置於雲端硬碟,請自行下載使用!
/*-/--*-*/*/*/*/***//-*-*-**-*/*-*-/*/*/*-*-/-////--/**/**--**/--///--//**----**//--**//**----***//*-**//*


*********************************************************************************
網頁所用到的開發板與燒錄模擬器:
*********************************************************************************

本篇分為下面幾個小節作為說明:
  • Nuvoton NuMicro ICP Programming Tool;
    • ICP Programming Tool 安裝;
    • ICP Programming Tool 燒錄說明;
      • 燒錄模擬器韌體更新;
  • ISP(UART)燒錄方式說明;
    • 燒錄 N76E003 Bootloader;
    • Nuvoton NuMicro ISP Programming Tool 燒錄測試;
    • Keil µVision 專案設定 Hex to Bin;

【Nuvoton NuMicro ICP Programming Tool 】

請直接上 nuvoTon 官網下載頁 下載最新版的軟體,下面只是撰寫網頁時擷取的畫面,官網會不時的更新。

ICP Programming Tool 下載頁

/*--*//**---/*///**---*-*////***--*/*///***----*///--*/*///**--*/*//**--**/*//
ICP Programming Tool 安裝

下載後,點擊(NuMicro ICP Programming Tool **版本號**.exe)兩下開啟 ICP Programming Tool 安裝畫面。

 選擇 繁體中文 作為安裝語言,按 "確定" 進入到下一個畫面。

ICP Programming Tool Installation - 01
"下一步(N)" 進入到下一個畫面。

ICP Programming Tool Installation - 02
 勾選 我同意(A),按 "下一步(N)" 進入到下一個畫面。

ICP Programming Tool Installation - 03
選擇軟體安裝的目錄。

若沒有特殊需求就維持預設值,然後按 "下一步(N)" 進入到下一個畫面。

ICP Programming Tool Installation - 04
一般不需要做修改,直接按 "下一步(N)" 進入到下一個畫面。

ICP Programming Tool Installation - 05
 按 "安裝(I)" 開始安裝。

ICP Programming Tool Installation - 06
 安裝需要一些時間,就耐心等一下!

ICP Programming Tool Installation - 07
到這邊就完成了 ICP Programming Tool 的安裝工作。

由於第一篇已經安裝過了 Nu-Link USB 驅動程式,所以下面的選項就不需要再次選擇了;請取消勾選 [ ]安裝 Nu-Link USB Driver 1.6 (選擇性),按 "完成(F)" 結束 ICP Programming Tool 的安裝。

ICP Programming Tool Installation - 08


/*--*//**---/*///**---*-*////***--*/*///***----*///--*/*///**--*/*//**--**/*//
ICP Programming Tool 燒錄說明

開啟剛剛安裝好的 "ICP Programming Tools",選擇目標晶片: 8051 1T系列

將燒錄模擬器接上 N76E003 系統板,並接至電腦。

燒錄模擬器與 N76E003 系統板接線示意圖
"繼續>>" 進入到主畫面。

ICP Programming Tool 燒錄說明 - 01
ICP Programming Tool 主畫面的左上角,按 "連接" 開始與燒錄模擬器和系統板連線。


ICP Programming Tool 燒錄說明 - 02
開啟 ICP Programming Tool 的當下,軟體同時也會檢測燒錄模擬器的韌體版本。

若是韌體版本符合 ICP Programming Tool 的需求,就會直接進入到軟體的主畫面。

若一但發現燒錄模擬器的韌體版本小於 ICP Programming Tool 需要的燒錄模擬器的韌體版本,就會出現警告對話方塊,提醒用戶需要更新燒錄模擬器的韌體。

下一節我們就來看看,若是發生提示需要更新燒錄模擬器韌體的時候,實際的操作步驟為何?

** 燒錄模擬器韌體更新:

一但軟體偵測到燒錄模擬器的韌體版本過低,就會出現提示用戶要更新燒錄模擬器韌體的警告對話視窗。

在該對話視窗中按 "是(Y)" ,開始更新韌體。

Nu-Link Firmware Upgrade - 01
韌體更新很快,等待一會兒就好了!

Nu-Link Firmware Upgrade - 02
韌體更新的過程中,完成更新時,會需要用戶重新插拔燒錄模擬器使其生效並重新被檢測;請照著畫面中的提示,拔下 USB 再重新插入。

Nu-Link Firmware Upgrade - 03
如果沒有出現任何問題,就會提示 已經成功更新韌體!

"確定" 關閉對話方塊,回到主畫面。

Nu-Link Firmware Upgrade - 04



若不需要更新燒錄模擬器的韌體,則繼續上面 ICP Programming Tool 韌體燒錄的說明。

"連接" 與燒錄模擬器和 N76E003 系統板連線。

ICP Programming Tool 燒錄說明 - 03
成功連線後,燒錄模擬器和系統板的晶片型號都會出現在按鈕右邊的欄位中。

ICP Programming Tool 燒錄說明 - 04
"APROM" 載入 .hex 韌體檔案。

ICP Programming Tool 燒錄說明 - 05
選擇第二篇網頁裡專案所產生的 N76E003_Template.hex 檔案。

ICP Programming Tool 燒錄說明 - 06
"選項" 開啟燒錄選項的設定。

ICP Programming Tool 燒錄說明 - 07
"編程選項" 頁面,中勾選 [v]驗證,然後按 "確定" 儲存後離開回到主畫面。

ICP Programming Tool 燒錄說明 - 08
勾選 編程 裡的 [v] APROM 和 [v] 配置區 後,按 "開始" 進行燒錄。

ICP Programming Tool 燒錄說明 - 09
出現警告視窗,別管它!

"確定" 關閉視窗。

ICP Programming Tool 燒錄說明 - 10
接著出現另一個詢問視窗,詢問是否要做批次燒錄?因為只做一次,因此按 "否(N)" 關閉視窗並開始做燒錄的工作。

ICP Programming Tool 燒錄說明 - 11
到此,就完成燒錄韌體到 APROM 的工作。

"確定" 完成燒錄的工作並離開回到主畫面。

ICP Programming Tool 燒錄說明 - 12
上面就是使用 ICP Programming Tool 燒錄專案編譯之後 .hex 檔的方法,完成後系統板就會開始運作。

下面介紹另一種燒錄韌體的方式:ISP(UART)燒錄,它就像是 Arduino 燒錄韌體的方法。使用前,也是需要先燒錄 Bootloaderder,但不同的是,是要燒錄到 N76E003 的 LDROM 去,而不是 APROM。

接下來,就來看看要怎麼做!

【ISP(UART)燒錄方式說明】

N76E003 支援透過 UART 的方式進行韌體的燒錄,主要是透過預先在其 LDROM 燒錄一段更新用的程式碼(稱作為 Bootloader),透過讀取 UART 傳進來的資料,將這些資料轉存到 APROM 進行更新,這種方式類似於 Arduino 使用 UART 燒錄的方式。

開啟並解壓縮套件雲端資料夾 {新唐 N76E003(1T 8051)系統板學習套件} \ 程式碼  的檔案 ISP_UART燒錄_2020-08-14.zip

N76E003 ISP(UART)燒錄需要的檔案

/*--*//**---/*///**---*-*////***--*/*///***----*///--*/*///**--*/*//**--**/*//
* 燒錄 N76E003 Bootloader:

開啟 ICP Programming Tool 並進入到主畫面。

在主畫面左上角,按 "連接" 連線燒錄模擬器和 N76E003 系統板。

燒錄 N76E003 Bootloader - 01
成功連線後,燒錄模擬器和系統板的晶片型號都會出現在按鈕右邊的欄位中。

因為要燒錄 ISP(UART)韌體,所以這裡要選擇載入到記憶體 LDROM。

請按下 "LDROM" 開啟檔案總管。

燒錄 N76E003 Bootloader - 02
從剛剛 ISP_UART燒錄_2020-08-14.zip 解壓縮的目錄中,選定 Bootloader 文件 N76E003_ISP_UART0.hex 後,按 "開啟(O)" 打開檔案。

燒錄 N76E003 Bootloader - 03
載入 Bootloader 文件後,看一下檔案大小(1990 Bytes < 2K),這個檔案跟等一下設定 LDROM 的大小有關。

配置位"設定",打開晶片配置位的選項設定視窗。

燒錄 N76E003 Bootloader - 04
請依照下面說明進行相關設定(或依下圖紅框標示做設定):
  • 啟動選擇LDROM
  • LDROM區域選擇LDROM為2KB
    這裡的選擇必須大於剛剛載入的 Bootloader。
  • 看門狗時鐘WDT選擇WDT 禁用
"確定" 儲存設定後,離開到主畫面。

燒錄 N76E003 Bootloader - 05
設定好的 配置位 的值,就如下畫面中所示。

接著按下 "選項",開啟 "編程選項" 視窗。

燒錄 N76E003 Bootloader - 06
勾選如下畫面,紅框中的設定。

完成後,按 "確定" 儲存選項設定後,離開到主畫面。

燒錄 N76E003 Bootloader - 07
回到主畫面後,勾選 編程 裡的 [v] LDROM[v] 配置區,按 "開始" 開始進行燒錄。

燒錄 N76E003 Bootloader - 08
出現警告視窗,別管它!

"確定" 關閉視窗。

燒錄 N76E003 Bootloader - 09
接著出現另一個詢問視窗,詢問是否要做批次燒錄?

因為只做一次,因此按 "否(N)" 關閉視窗並開始做燒錄的工作。

燒錄 N76E003 Bootloader - 10
燒錄完成會出現燒錄結果的對話視窗,按 "確定" 完成燒錄並回到主畫面。

燒錄 N76E003 Bootloader - 11
按主畫面左上角的 "斷開",斷開與燒錄模擬器和 N76E003 系統板的連線。

燒錄 N76E003 Bootloader - 12
到此,就完成使用 ICP Progrimming Tool 燒錄 N76E003 Bootloader 韌體的工作。

接下來,可以試試用 UART 來燒錄韌體程式到 N76E003 (APROM)了!

燒錄 N76E003 Bootloader - 13

/*--*//**---/*///**---*-*////***--*/*///***----*///--*/*///**--*/*//**--**/*//
* Nuvoton NuMicro ISP Programming Tool 燒錄測試:

有了 Bootloader 之後,用戶可以利用 UART 進行韌體程式的燒錄。這時燒錄使用的工具就不再是 ICP Programming Tool,而是 (Nuvoton NuMicro) ISP Programming Tool。

開始之前,請先準備 USB 轉 TTL 模組與 N76E003 進行下面的接線:

USB 轉 TTL 模組N76E003 系統板
RXDTX
TXDRX
+5VVDD
GNDGND

開啟 "ISP Programming Tool",在 Connection Interface 下拉選單中,選擇 UART

ISP Programming Tool 燒錄 - 01

點選一次 UART 下拉選單下面的下拉選單中的 Scan Port 一次(這會讓軟體再去抓取一次系統中的 COM Port 列表),之後再按一次就有 COM Port 可以選擇。

ISP Programming Tool 燒錄 - 02
"Connect" 與 N76E003 進行連線。

ISP Programming Tool 燒錄 - 03
成功連線時,原按鈕的右方就會出現 Connected(如下圖所示);如果沒有成功,請按一下系統板上面的 RESET 就能成功連線,或是再次檢查硬體連線。

ISP Programming Tool 只能燒錄附檔名是 bin 的檔案,所以 Keil 專案所輸出的 hex 需要做轉檔後才能用;這部份下面會另外再做說明,這裡只做簡單描述。

"APROM" 開啟檔案總管,選擇 ISP_UART燒錄_2020-08-14.zip 壓縮檔裡的 N76E003_Template.bin,按 "開啟(O)" 離開回到主畫面。

ISP Programming Tool 燒錄 - 04

ISP Programming Tool 燒錄 - 05
勾選 Programming 的 [v] APROM,然後按 "Start" 開始燒錄程式。

ISP Programming Tool 燒錄 - 06
燒錄的時間很短,一下子就完成了!

"確定" 完成燒錄的工作,回到主畫面。

ISP Programming Tool 燒錄 - 07

ISP Programming Tool 燒錄 - 08
完成燒錄之後,直接就能看到系統板上面的 <D2> LED 燈開始做亮滅的動作。

不過,只有在按下系統板的 RESET 做重置,重置之後 <D2> LED 燈也同樣開始做亮滅的動作,這樣才算是真的燒錄成功。

/*--*//**---/*///**---*-*////***--*/*///***----*///--*/*///**--*/*//**--**/*//
* Keil µVision 專案設定 Hex to Bin:

要用 ISP(UART)的方式燒錄韌體,首先就是要在編譯後生成 .bin 檔。最簡單的方式就是直接在專案編譯時就產生,方法很簡單,請看下面的說明。

開啟前一篇建立的 N76E003_Template 專案檔,然後進行下面的設定。

首先複製  ISP_UART燒錄_2020-08-14.zip 壓縮檔裡的 hex2bin.exe,然後將它複製到 {N76E003_Template}\Project\Objects 目錄下。

滑鼠左擊 N76E003_Template,下拉選單選擇 "Options for Target 'N76E003_Template'..."

點選 "User" 頁籤,勾選 After Build/Rebuil 下的 [v] Run #1,然後在右方的 User Command 欄位中填入

.\Objects\hex2bin.exe .\Objects\@L.hex

完成後按 "OK",離開到主畫面。

Keil Project, Hex to Bin - 01
"Rebuild" 重新編譯專案後,可以看到 User command #1... 成功輸出的訊息。

Keil Project, Hex to Bin - 02
這時查看專案輸出的 Objects 資料夾,就可以看到 N76E003_Template.hex 轉換之後的 BIN 檔 N76E003_Template.bin

Keil Project, Hex to Bin - 03
經由上面的設定,就能很方便地在編譯專案的時候,同時輸出 .hex.bin 同一檔名不同類型的兩個輸出檔。

** 關於 NuvoTon NuMicro ICP Programming Tool 更詳細的使用說明,請參考安裝資料夾裡的 PDF 文件,這裡不再贅述!

【結論】

總結一下這一篇的重點:
  • 燒錄模擬器的韌體更新,會在開啟 ICP Programming Tool 自動檢測,有更新版本會自動提供升級選項,讓用戶選擇是否要進行韌體更新的動作;
  • 要用 ISP(UART) 來燒錄 N76E003 的韌體,必須先使用 ICP Programming Tool 燒錄 Bootloader 到 LDROM 中,再將專案編譯輸出 .hex 轉換為 .bin 檔給 ISP Programming Tool 做為韌體燒錄到 APROM 中。
當可以使用燒錄模擬器燒錄韌體時,其實並不用要用 ISP(UART) 的方式燒錄韌體。但是使用這個方法卻是可以省下燒錄模擬器,只需要有 USB 轉 TTL 模組就可以進行韌體燒錄,這對於不方便取得燒錄模擬器的地方,是個可考慮的解決方案。


<< 部落格相關文章 >>


.
.

沒有留言:

張貼留言

留言屬名為"Unknown"或"不明"的用戶,大多這樣的留言都會直接被刪除掉,不會得到任何回覆!

發問問題,請描述清楚你(妳)的問題,別人回答前不會想去 "猜" 問題是什麼?

不知道怎麼發問,請看 [公告] 部落格提問須知 - 如何問問題 !