2026年2月20日星期五

NK-N9H31A2 開發板:開發環境建置(Eclipse 安裝)

完成驅動程式安裝後,接下來正式進入開發環境建置階段,本篇使用作業系統為 Windows 10。
本系列將說明如何建立適用於 N9H31 (ARM926EJ-S 架構) 的開發環境,包含:
  1. Eclipse IDE 安裝(本篇)
  2. ARM GNU Toolchain 安裝與配置(下一篇)
  3. xPack Windows Build Tools 設定(下一篇)
  4. 範例專案導入與編譯測試(下一篇)
為什麼選擇 Eclipse?
在 ARM9 架構下,其實工具選擇不像 Cortex-M 那麼多,這次選擇 Eclipse,原因如下:
1. 開源工具鏈完整
Eclipse 為開源 IDE,可搭配 GNU Toolchain,對於裸機或嵌入式 Linux 開發都適用。 

2. Keil MDK 對 ARM9 並非主流支援架構
N9H31 採用 ARM926EJ-S(ARM9 / ARMv5TE)核心。雖然 Nuvoton 提供 Keil 範例專案,但該專案使用的是早期 ARM-ADS 工具鏈(屬於舊版 ARM9 開發環境)。目前 Keil MDK 官方產品定位主要聚焦於 Cortex-M / Cortex-R 架構,並以 Arm Compiler 6 為主流編譯器。ARM9 屬於較舊架構,需搭配舊版工具鏈使用,因此本次環境建置改採 GNU Toolchain + Eclipse。

3. 官方已提供 Eclipse 專案範例
Nuvoton Technology Corporation 官方已提供 Eclipse 範例專案,可直接導入。減少手動建立 linker script、已配置好 startup code、Makefile / build 設定完整,可直接編譯測試。ARM9 與 Cortex-M 不同,需要自行處理 DDR 初始化、MMU 設定、Cache 控制、向量表重定位,若從零開始配置會耗費大量時間。

下載連結
先把所有會用到的連結放在這裡

Eclipse 安裝說明

接下來會逐步引導安裝過程

1.點擊 Eclipse 連結後,進入官方頁面,我們要找到下圖,這裡要強調是 Embedded C/C++ ,並選擇x86

2. 下載之後建議直接在 C 槽解壓縮,避免發生解壓縮失敗

解壓縮之後的樣子,為了讓路徑更單純,將資料夾整包提取直接放到 C 槽路徑底下,如下圖

3. 第一次開啟的樣子
要點這個圖示進行開啟
在這裡我們在 C 槽建立一個給 N9H31 專用的 workspace
過程中如果遇到下圖,點擊允許,避免 windows 一直掃描,降低編譯時間

開啟之後的樣子






2026年1月25日星期日

NK-N9H31A2 開發板:驅動程式

有硬體之後就是要準備開發軟體環境,但在正式開始開發前需要先將需要的軟體驅動安裝完備,這篇會說明必要驅動安裝,由於都是一路點擊下一步,這裡提供驅動的網址,就不逐步說明。


開發環境

本文使用系統為 windows 11,不同作業系統可能略有差異

驅動程式

下面三個為主要安裝的驅動連結
CDC driver 功用
Communications Device Class 是 USB 協會制定的一種跨裝置類別,定義 USB 裝置如何模擬成傳統的通訊裝置,有以下三個主要特色。
    1. 通訊協定標準化 規定 USB 傳輸線中,哪些裝置用於傳輸資料,哪些用於傳輸控制訊號
    2. 跨平台相容 因為是標準化規範,現今的作業系統,windows  Linux, macOS 通常有內建此類的驅動,可以直接插上電腦的 USB 孔,就可以偵測到裝置
    3. 硬體抽象化
      對於 MCU 使用者來說,只需要在韌體中實作功能,不用寫複雜的 use 通訊協定 (這功能我也蠻想嘗試看看的,未來在設計板子時就可以省略掉一顆 Usb 轉換 IC 而且通訊傳輸速度更快)
Virtual COM driver 功用
主要功能就是在電腦作業系統中,模擬出一個傳統的序列埠,有些晶片商,在自己的燒錄器上也會有這功能,像是你插上去之後就會有兩個裝置出現,但這功能的好處有以下兩點
    1. 模擬傳統介面(像是 RS232 或是 RS485 等)
    2. 簡化軟體開發,在還沒有準備好完整硬體的時候,可以先模擬指令開發
Nu-Link driver 功用
讓電腦可以支援 keil MDK 或是 IAR 的開發軟體,包含 NuMicro 系列的晶片

安裝完成結果


在電腦裝置管理員中可以看到 NuVCOMDeviceClass 及 COM5(這個可能每個人的不一樣)

Note: 若沒有看到 NuVCOMDeviceClass 檢查板子上的 SW1 開關 PA0 PA1 有沒有調整到 ON


參考資料

https://www.nuvoton.com.cn/export/resource-files/en-us--UM_NuMaker_HMI_N9H31_A1_A2_EN_Rev1.00.pdf

https://www.nuvoton.com/export/resource-files/en-us--RH_Nu-Link_Driver_for_Keil_MDK_EN_V3.21.pdf

https://www.nuvoton.com/tool-and-software/ide-and-compiler/





2026年1月18日星期日

NK-N9H31A2 開發板:選擇背景與硬體規格

在 AI 不斷進化的這幾年,為了因應 Edge AI(終端 AI)的應用需求,可以預期終端裝置所使用的晶片效能將會越來越高, 從各大 MCU 晶片廠相繼推出高階 MCU 的趨勢中,其實也可以略知一二。

這一類晶片的定位,通常介於一般 MCU 與需要跑 Linux 的 CPU 之間,不論是在處理頻率或內部記憶體容量上,都比傳統 MCU 強上不少,但又不至於承擔完整作業系統的負擔, 因此在應用層面,開始具備影像加速處理,甚至執行簡易機器學習的能力。

在這樣的背景下,我開始尋找一個適合作為終端應用實驗的平台,也因此注意到了 Nuvoton 的這塊開發板, 它在周邊介面上,已經預先整合了工業常用的 RS232、RS485、CAN,並同時支援語音與網路相關功能,整體設計方向相當符合未來工廠端設備的使用情境。


開發板硬體規格

下面整理 NK-N9H31A2 開發板的主要硬體規格,內容以官方資料為主。

核心處理器與 SoC
    1. SoC:N9H31K51IFC
    2. CPU 核心:ARM926EJ-S
    3. CPU 主頻:最高可達 300 MHz
    4. 封裝:LQFP128
    5. MCP(Multi-Chip Package):內建 32 MB 記憶體
顯示與圖形處理能力
    1. 內建 TFT-LCD 顯示控制器
    2. 內建 2D 圖形加速器
    3. 內建 JPEG 編解碼器
    4. 支援最高 1024 × 768 顯示解析度
    5. 支援 16.7 百萬色(RGB 24 位元)
    6. 5 吋 800 × 480 LCD,搭配 CTP 電容式觸控面板
記憶體與儲存介面
    1. DRAM 介面頻率:最高 150 MHz
    2. 支援記憶體類型:DDR2 SDRAM
    3. SPI Flash:W25Q256JVEIQ(32 MB),支援 Quad SPI
    4. SD0 介面:
    5. 支援 SD / eMMC 記憶卡
    6. 可作為資料儲存或 SDIO(Wi-Fi)裝置使用
通訊與工業介面
    1. UART0:虛擬 COM Port,用於系統開發與除錯
    2. CAN:一組 CAN 收發器與接頭
    3. RS232 / RS485:兩組收發器,提供 DB9 與接頭連接器
    4. 乙太網路:10 / 100 Mbps Ethernet(RJ45)
    5. 音訊、多媒體與 USB
    6. 音訊編解碼器:NAU88C22(24 位元立體聲)
    7. 麥克風輸入
    8. 耳機 / 喇叭輸出
    9. 使用 I²S 介面
    10. USB_0:Device / Host 模式
    11. USB_1:Host 模式
    12. 支援隨身碟、鍵盤、滑鼠、印表機
電源配置
    1. 3V I/O 電源
    2. 1.8V 記憶體電源
    3. 1.2V 核心電源
後  記:
    此篇為系列文章的第一篇,後續的文章皆由此展開

參考資料

打賞按讚