JL
JLink Technology 傑聯特科技
詢價
DAVICOM DM9051 在嵌入式 Linux 的驅動設定與除錯
DAVICOMDM9051LinuxEmbeddedDevice TreeSPI

DAVICOM DM9051 在嵌入式 Linux 的驅動設定與除錯

用 SPI 介面的 DM9051 為沒有內建 MAC 的 SoC 加上乙太網路:核心驅動啟用、Device Tree 設定與常見問題排解。

JL 傑聯特科技工程團隊審校 · 更新於 2025-04-01

為什麼選 SPI 乙太網

許多低階 SoC 或 MCU 並沒有內建 MAC,或 MAC 已被佔用。DM9051 是單晶片 10/100M 乙太網控制器,整合 MAC 與 PHY,只用 SPI 就能加上一個網路埠,大幅簡化硬體佈線。

它已有 Linux kernel 原生驅動,因此在 Buildroot / Yocto 等嵌入式 Linux 平台上整合相當成熟。

啟用核心驅動

DM9051 的驅動位於 kernel 的 drivers/net/ethernet/davicom 目錄。在 menuconfig 中啟用對應的 DM9051 選項(編譯進核心或做成模組)即可。

確認你的 SPI 控制器驅動也一併啟用,因為 DM9051 是掛在 SPI 匯流排上的裝置,必須有可用的 SPI master。

Device Tree 設定

在 SPI 控制器節點下新增一個子節點描述 DM9051:compatible 設為 "davicom,dm9051"、指定 reg(晶片選擇編號)、spi-max-frequency(先保守設定,如 10~25MHz)、以及連接到中斷腳的 interrupts/interrupt-parent。

若硬體有重置腳,也一併用 reset-gpios 描述。設定正確後開機 dmesg 應能看到網卡被註冊(例如 eth0)。

常見問題排解

若網卡註冊失敗或封包不通,依序檢查:中斷是否正確接線與設定(IRQ 是常見問題);SPI 速度是否過高,先調低再逐步提升;MAC 位址是否有效(必要時於 device tree 或開機腳本指定)。

善用 dmesg 與 ethtool 觀察連線狀態(link、速度、雙工),多數問題都能從這裡定位。

文中提及的產品

DM9051 現貨

DM9051 SPI 介面 10/100M Ethernet 控制器

DM9051 是 DAVICOM 推出的單晶片 10/100M Fast Ethernet 控制器,採用 SPI 介面,無需 8/16-bit 並列 bus,大幅簡化硬體設計。內建 16KB SRAM 收發 Buffer,支援 Full-Duplex 流控,已有 Linux kernel 原生驅動支援,適合 ARM 或 RISC-V MCU 系統的網路擴充。

EthernetSPIFast Ethernet
DM9000A 現貨

DM9000A 並列介面 10/100M Ethernet 控制器

DM9000A 是廣受嵌入式 Linux 社群熟悉的老牌 Ethernet 控制器,採用 8/16-bit 並列 ISA-like 介面,在 ARM9/ARM11 平台(如 Samsung S3C 系列)上有成熟驅動,u-boot 及 Linux kernel 原生支援,常見於工業嵌入式主板及 SoC 評估板。

EthernetParallelFast Ethernet

需要這些元件或設計支援?

傑聯特科技提供元件、規格書與工程技術支援。

立即詢價