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

參考資料

2025年11月22日星期六

Microbit x MeArm

 最近總算有時間把手邊 MeArm 組完並且跟 microbit 結合,使用遊戲把手無線遙控 MeArm ,看著手臂動作蠻療育的😎



材料準備

  1. microbit V2.21 x 2
  2. MeArm x 1 (包含螺絲及伺服馬達)
  3. GamePad
  4. IObit


目  的

    使用 microbit 遊戲把手,對 MeArm 進行控制

組  裝

    組裝 MeArm 的一些照片,組裝時記得先使用這篇的教學,把馬達控制在 90 度的位置,不然 MeArm 全部組完後會不好調整,細部組裝的部分可以網路搜尋,這裡就不一一放上。


    接下來把伺服馬達的線接到 IObits 板子上,如果使用我的程式拼圖的話,需要依照我的腳位   組裝
    下方的馬達  => IObits 的 6
    左側的馬達  => IObits 的 9
    右側的馬達  => IObits 的 7
    夾子的馬達  => IObits 的 8
    額外的提醒:由於板子上是使用 3.3 V 提供點伺服馬達,會有供電不穩的狀況,建議在3.3 V 的腳位上增加電容。

程式拼圖

    這次就不一一放程式拼圖,有需要的可以參考下面的先前文章

    定義函式


    
    遊戲手把的拼圖
        這裡的廣播群組要設為跟 MeArm 的一樣喔
        補充說明一下,這裡要自行記錄自己的遊戲手把的搖桿數值,每個遊戲手把的數值或略有差異
        P1: 
            搖桿向上數值變小(MINI 25)
            搖桿置中數值(575)
            搖桿向下數值變大(MAX 1021)
        P2: 
            搖桿向右數值變小(MINI 12)
            搖桿置中數值(601)
            搖桿向左數值變大(MAX 1021)

        L:底部馬達左轉
        R:底部馬達右轉
        F:前後馬達向前
        B:前後馬達向後
        O:夾子打開
        C:夾子關閉
        T:手臂上抬
        D:手臂下放
    
    類比讀取引腳 P1 < 300,依照自己的搖桿讀到的數值設定,像我的搖桿搖桿置中數值(575) 往上推的時候數值變小(MINI 25),這裡我就取一個中間值 300 ,代表上推。類比讀取引腳 P1 > 798,搖桿置中數值(575) 往下推的時候數值變小(MAX 1021),這裡取一個中間值 798 ,代表下推。
   

    MeArm 部分

    



實際結果



專案連結



打賞按讚