顯示包含「NK-N9H31A2」標籤的文章。顯示所有文章
顯示包含「NK-N9H31A2」標籤的文章。顯示所有文章

2026年2月27日星期五

NK-N9H31A2 開發板:開發環境建置 (四) NuWriter 下載與 UART 執行驗證

 在上一篇文章中,我們已成功完成 hello 範例的 GCC 編譯。本篇將透過 Nuvoton 官方工具 NuWriter 將程式下載至開發板,並透過 UART 確認程式是否正常執行。

NuWriter

NuWriter 是 Nuvoton 提供的下載工具,支援 DDR、SPI、NAND、eMMC 等模式,可用於將映像檔暫時下載至 DDR 執行,或寫入各類儲存裝置,NuWriter 專案中包含 Driver、Firmware 及 PC Tool 原始碼,本篇僅使用已編譯完成之 PC Tool(Release 版本)。本篇僅使用 DDR/SPRAM 模式進行開發階段的功能驗證。
NuWriter 為 Nuvoton ARM9 MPU 系列(包含 NUC970 / N9H30 / N9H31)共用下載工具,可於官方 GitHub 專案取得:https://github.com/OpenNuvoton/NUC970_NuWriter/tree/master

準備下載檔案

本次使用 hello.bin 進行下載測試。

NuWriter 燒錄步驟

1. 啟動軟體
    下載並解壓縮 NuWriter 原始碼後,在以下路徑找到執行檔
     NUC970_NuWriter-master\NuWriter\NuWriter\Release\NuWriter.exe 

    選擇 N9H31 series 及 N9H31K51FC.ini
2. 設定參數及下載
    選擇DDR/SRAM, address 要設定 0x0,Execute address 使用範例專案預設值(0x0),若使用其他專案請依 linker script 設定為準。
    點擊 Re-Connect, 確認有顯示 Device Connected
    Download and run 點擊 Download

3. 燒錄完成畫面

4. 確認功能 
    這裡使用 Arduino 軟體的 comport 進行確認,可以看到有顯示程式碼的資訊
    UART 設定為 115200, 8N1。

    提醒: 當發生 Disconnect 時,記得重新按一下板子上的重置按鈕或重新上電

為什麼使用 DDR/SPRAM 模式?

DDR/SPRAM 模式會將程式暫時下載至 DDR 記憶體執行,不會寫入 SPI Flash,適合開發階段驗證使用,斷電後程式不會保留。

2026年2月22日星期日

NK-N9H31A2 開發板:開發環境建置 (三) 範例專案導入與編譯測試

完成編譯環境設定後,接下來實際導入 Nuvoton 提供的範例專案進行建置測試。本次以 hello 範例為例,驗證 ARM GNU Toolchain 與 xPack Build Tools 是否能正常運作。

下載範例專案

到官方提供的連結下載範例專案 (此為 Nuvoton 官方 Non-OS 範例專案庫) 
下載到 C 槽並解壓縮,本次以 hello 範例專案作為編譯示範,如下圖。

圖片說明:解壓縮之後


圖片說明:範例專案

匯入專案

1. 在 Eclipse 中選擇 File → Open Projects from File System

2. 選擇 Directory

3. 選擇 sample code 資料夾內的 GCC
    範例專案同時提供 Keil 與 GCC 版本,本篇使用 GCC 版本進行測試。
    詳細路徑 C:\N9H31_NonOS-master\SampleCode\hello\GCC


    畫面會變成下方,點擊 Finish 即可


    專案導入完成後會顯示在左側,將 main.c 展開,點擊工具列的 Build 按鈕進行編譯。


    編譯完成後,Console 視窗應顯示下列訊息
    Build Finished. 0 errors, 0 warnings. 
    同時可在專案的 Release 資料夾中看到 hello.elf 檔案,這代表編譯環境設定正確,GCC 工具鏈與 make 工具運作正常。


    若出現 'arm-none-eabi-gcc: command not found',通常代表 Toolchain 或 xPack 路徑設定錯誤,請重新確認前述的 gcc-arm 或 xPack 路徑有沒有跑掉。

至此,N9H31 的 GCC 編譯環境驗證完成,下一篇將介紹如何將程式下載至開發板並實際執行範例。

NK-N9H31A2 開發板:開發環境建置 (二) ARM GNU Toolchain 與 xPack 設定

上一篇文章中,我們完成了 Eclipse IDE 的安裝與 Workspace 初始化。本篇將設定 Arm GNU Toolchain(arm-none-eabi)與 xPack Windows Build Tools 的路徑,使 Eclipse 能正確呼叫編譯器與 make 工具,完成 N9H31(ARM926EJ-S)專案的建置流程。

資料夾建立

在正式進入設定前,先於 C 槽建立 n9h_tools 資料夾,並在其中建立 gcc-arm 與 build-tools 兩個子資料夾,分別用來存放 Arm GNU Toolchain 與 xPack Windows Build Tools。


ARM GNU Toolchain 安裝與配置

1.下載 Arm GNU Toolchain(arm-none-eabi)
https://developer.arm.com/downloads/-/arm-gnu-toolchain-downloads
因使用 Windows 10 環境,所以選擇 Windows (mingw-w64-i686) zip 版本,如下圖。
下載完成後,將壓縮檔解壓縮至 C:\n9h_tools\gcc-arm 資料夾。

圖片來源:Arm Developer 官方下載頁面

2. 設定 Arm Toolchain 路徑
開啟 Window → Preferences

找到 MCU 的項目,選擇 Global Arm Toolchains Paths 將 Toolchain folder 指向解壓縮後的 Arm GNU Toolchain bin 目錄(該目錄內應包含 arm-none-eabi-gcc.exe)。
詳細路徑 C:\n9h_tools\gcc-arm\arm-gnu-toolchain-15.2.rel1-mingw-w64-i686-arm-none-eabi\bin
(這部分可以依照個人習慣進行替換)
設定完成後,點選 Apply and Close 套用設定。

xPack Windows Build Tools 安裝與配置

1.下載 xPack
xPack Windows Build Tools 主要提供 make、sh 等 GNU 建置工具,使 Windows 環境能正常執行 Makefile 編譯流程。
找到下圖並選擇 zip ,下載完成後,將壓縮檔解壓縮至 C:\n9h_tools\build-tools 資料夾。

圖片來源:xPack GitHub Releases 頁面
 

2. 設定 xPack Build Tools 路徑
找到 MCU 的項目,選擇 Global Build Tools Path 將 Build tools folder 指向 xPack 的 bin 目錄,Build tools folder 請指定到 xPack 的 bin 目錄(該目錄內應包含 make.exe)。
詳細路徑 C:\n9h_tools\build-tools\xpack-windows-build-tools-4.4.1-3\bin 
修改完之後記得按下 Apply and Close


完成以上兩項設定後,Eclipse 即可正確呼叫 ARM 編譯器與 make 工具,下一篇將示範如何導入範例專案並實際進行編譯測試。

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 核心電源
後  記:
    此篇為系列文章的第一篇,後續的文章皆由此展開

參考資料

打賞按讚