2026年2月9日 星期一

艾鍗學院獨家研發 STM32 開發板

 


MCU:

  • 型號: 意法半導體 STM32F411CEU6

  • 核心: 高達 100 MHz Arm® Cortex®-M4F 核心,具備 FPU (浮點運算單元)

  • 快閃記憶體 (Flash): 512 KB

  • 隨機存取記憶體 (RAM): 128 KB

  • 具備 ART Accelerator™ (零等待執行技術) 與 DMA Burst / FIFO 等高速資料搬移機制


電源:

  • 輸入電源: USB Type‑C 5 V 供電(核心板或 DAPLink 介面)

  • 系統穩壓: 3.3V 穩壓輸出供 MCU 及周邊感測器使用


燒錄除錯器:

  • DAPLink: 板載一組 DAPLink 燒錄器模組 (標示 10),支援直接透過 USB 進行程式燒錄與除錯。


USB:

  • USB Type-C(5 V in,USB 2.0 FS OTG,無 PD)


GPIO 與周邊組件 (依圖片內容):

  • 顯示模組:

    • TFT 觸控顯示器: 圓形彩色顯示螢幕 (標示 7)

    • 三位數七段顯示器: 用於數值、溫度顯示 (標示 4)

  • 輸入按鍵: * 旋轉編碼器 x1 (標示 8)

    • 使用者按鍵 x2 (標示 9)

    • 核心板上另有 Reset 與 Boot 按鍵

  • 溫濕度感測:

    • DHT11 數位溫濕度計 (標示 13)

    • 10K 溫度熱敏電阻 (標示 3)

  • 光感測與通訊:

    • BH1750 I2C 照度計 (標示 12)

    • 紅外線接收器 (標示 1)


12-bit ADC:

  • AD 通道: 核心晶片支援 1 組 ADC,最多 16 通道(實際可用通道依封裝與腳位複用而定)

  • 板載分配:

    • 連接至 100K 電位計 (標示 2)

    • 連接至溫度熱敏電阻 (標示 3)


定時器與 PWM (16/32-bit):

  • PWM 應用: 支援多路 PWM 輸出

  • 指示燈: PC13 綠色 LED (標示 11)


儲存與通訊介面:

  • 外部 Flash: W25Q 系列 SPI Flash (標示 6),用於資料日誌或檔案儲存

  • I2C: 用於 BH1750 照度計 (標示 12)

  • UART/SPI: 核心引腳引出,支援與其他模組通訊






STM32F411CEU6 晶片詳細規格資料:


  • 核心 (Core)

    • 100 MHz Arm® Cortex®-M4F (125 DMIPS)

    • 支援 DSP 指令集與 FPU

  • 記憶體 (Memory)

    • 512 KB Flash / 128 KB RAM

    • 96 位元唯一識別碼 (Unique ID)

  • 時脈 (Clocks)

    • 支援 4-26 MHz 外部晶振 (HSE)

    • 內建 16 MHz RC 振盪器

  • 類比周邊 (Analog)

    • 1 個 12 位元 ADC (最高 2.4 MSPS)

  • 通訊介面 (Connectivity)

    • 3 個 USART

    • 3 個 I2C

    • 5 個 SPI (可複用為 I2S)

    • 1 個 SDIO (支援 SD 卡)

    • USB 2.0 OTG FS

  • 操作特性

    • 電壓範圍:1.7V to 3.6V

    • 溫度範圍:-40 °C to 85 °C








資源連結:

1. STM32F411晶片規格
2. 艾鍗STM32開發板電路圖



2026年2月4日 星期三

深入淺出 FPGA 網路實作:從「精簡版手刻電路」到「完整版 TSE IP」架構解析

 

在開發 Altera Cyclone V SoC FPGA(如 DE10-Nano)時,網路功能一直是學員最感興趣也最具挑戰性的部分。許多同學會問:「為什麼有的範例可以直接上網,有的卻只能傳送簡單的封包?」

本文將透過精簡版(手刻邏輯) 與 完整版(TSE IP + Linux)兩種架構的對比,帶您看懂 FPGA 網路通訊的底層邏輯。




一、 精簡版架構:理解 RGMII 協議的敲門磚

精簡版的目的不在於「連接網際網路」,而是為了讓開發者掌握如何透過 Verilog 直接驅動外部的 Ethernet PHY 晶片。


1. 系統組成與資料流

如【圖一】與【圖二】所示,精簡版架構跳過了複雜的 MAC IP,直接在 FPGA Fabric(邏輯閘陣列)中實作:

  • Ethernet Frame Generator: 負責根據 RGMII 協議產生傳送封包。
  • Ethernet Frame Receiver: 負責解析從網線進來的原始資料。


【圖一】


【圖二】


2. 關鍵技術:LOANIO 的橋接

由於 Cyclone V 的硬體設計限制,FPGA Fabric 要存取特定的 Ethernet PHY 引腳,必須經過 HPS LOANIO 進行「借用」。如【圖三】所示,這是一種雙向 IO 的配置方式。

在程式碼實作上(參見【圖三】的 Verilog 程式片段),我們需要手動指派 loan_io_out loan_io_in,將 FPGA 內部的訊號與實體引腳掛鉤:

Verilog

// 範例:將 FPGA 內部訊號對接到 LOANIO 引腳

assign loan_io_out[14] = HPS_ENET_GTX_CLK;

assign HPS_ENET_RX_CLK = loan_io_in[24];


【圖三】


3. 時序與訊號實作

根據 RGMII 100Mbps 的波形規範【圖四】,資料是在時鐘的邊緣進行傳輸。

*實務上 RGMII 可支援到 1000Mbps (Gigabit),但在精簡版手刻實驗中,為了簡化時序處理,通常先從 100Mbps 開始。

  • 傳送端【圖五: rgmii_tx_gen 模組負責將資料對齊時鐘送出。
  • 接收端【圖六: 透過 rx_payload_cnt 計數器與 rx_payload 暫存器,在每個時鐘邊緣重組封包位元組(Byte)。

圖四】


【圖五】


【圖六】





二、 完整版架構:實現 Linux 上網的標準方案

當您的需求是「執行 Linux 並開網頁」或「進行 Socket 通訊」時,就必須採用【圖七】所示的完整架構。


圖七

1. 核心元件:TSE IP

完整版使用 Altera 官方提供的 Triple Speed Ethernet (TSE) MAC IP,取代了前面辛苦手刻的 Generator ReceiverTSE IP 處理了所有乙太網路層的複雜協議(如 CRC 校驗、前導碼處理等)。


2. 資料高速公路:msgdma

為了讓 HPSARM CPU)能處理網路資料,中間必須建立一條高速通道。這裡使用 msgdma (Modular Scatter-Gather DMA),將網路封包直接搬移到 HPS DDR3 記憶體中,大幅降低 CPU 參與資料搬移的負擔,提升整體網路處理效率。


3. 軟硬體整合:Linux Driver

有了上述硬體配置後,在 Linux 核心中載入對應的 Ethernet Driver。對作業系統而言,它看到的是一個標準的 eth0 介面,這時才能叫醒那隻「網路小精靈」,實現真正的上網功能。




三、 總結:我該選擇哪種架構?

我們將兩者差異整理如下表:

特性

精簡版 (Hand-coded Verilog)

完整版 (TSE IP + DMA)

主要目的

學習 RGMII 協議、底層時序控制

實際應用、Linux 系統整合

通訊層級

實體層/資料鏈結層 (Partial)

完整的 MAC 層支援

複雜度

低,僅需基礎 Verilog 知識

高,需配置 Qsys (Platform Designer)

軟體支援

無,需自行處理資料

支援標準 Linux Network Stack


老師的建議:

如果您是初學者,建議先從精簡版下手,理解訊號如何在 FPGA PHY 之間流動(【圖六】的接收邏輯是很好的練習)。一旦掌握了基礎,再進階到完整版架構,屆時您對 Preloader 的重製與 Linux Driver 的掛載將會有更深刻的體會。


FPGA

📌 艾鍗學院FPGA課程 https://www.ittraining.com.tw/ittraining/course/hardware/fpga