如何開始使用 RISC-V 型微控制器
資料提供者:DigiKey 北美編輯群
2020-01-09
設計人員不斷面臨壓力,不僅要進行創新、保護智慧財產 (IP) 機密,還要降低功耗和成本。有鑑於此,RISC-V 開放原始碼硬體指令集架構 (ISA) 吸引了許多行動應用處理器的設計人員。由於 RISC-V 成了微控制器的選項之一,嵌入式系統和消費性元件的設計人員需要一個入門捷徑,以開始進行 RISC-V 設計。
GroupGets LLC 的 FE310 LoFive-R1 開發板,就是幫助入門的範例之一。在介紹 LoFive-R1 之前,本文會先探討 RISC-V,以及開發人員可能會想採用的原因。接著會說明 LoFive-R1 以及開始開發應用的方法,包括一些秘訣和訣竅。
什麼是 RISC-V?
RISC-V 是開放原始碼硬體指令集架構專案,2010 年在加州大學柏克萊分校開始執行。建立 RISC-V 架構的原因有很多,包括:
- 滿足對開放原始碼指令集架構 (ISA) 的需求,能在學術用途下,供學生用於大學專案中
- 藉此分享有關 ISA 開發的設計專業知識
- 藉此避免向目前的晶片公司支付權利金,並進而節省成本
- 保護某個架構 (某公司的 IP) 的設計細節,以維持商業可行性
從設計人員的觀點來看,RISC-V 是個針對速度和低功耗運作而設計的簡化架構。因此,RISC-V 型晶片除了適用於學術界,也適用於商業應用。事實上,RISC-V Foundation 基金會廣受關注,成員數已增長到 325 名左右,包括 Si-Five、Google、Microchip Technology、NVIDIA 和 Qualcomm 等公司。
雖然許多公司對 RISC-V 的開發都有貢獻,但對一般開發人員來說,最佳的 RISC-V 入門方式,是找到一款以 RISC-V 處理器為基礎的開發板。
LoFive FE310 開發板
GroupGets LLC 的 LoFive-R1 開發板就是範例之一 (圖 1)。
圖 1:LoFive-R1 開發板內建 RISC-V 處理器,以及所有必要的輔助電路,因此是能直接焊接到載板的處理器模組。(圖片來源:GroupGets LLC)
首先,LoFive R1 含有 RISC-V 處理器,運作頻率可高達 320 MHz。這款處理器內含 8 KB 一次性可編程 (OTP) 記憶體、8 KB 遮罩 ROM、16 KB 指令快取,以及 16 KB SRAM。此外,處理器還有三個獨立的脈寬調變 (PWM) 控制器、SPI、I2C、UART,甚至還有 QSPI 快閃介面。
其次,開發板上可焊接排針座,亦能直接焊接到載板上 (由於堡型邊緣),作為處理器模組使用。如此,開發人員便能非常輕鬆地設計自訂式硬體,不必費時額外採購處理器。
再者,開發板中含有板載 QSPI 快閃記憶體,是由 Integrated Silicon Solution Inc. (ISSI) 的 IS25LP128 快閃模組提供。IS25LP128 是 128 Mbit、16 MB 的快閃模組,在四通道輸入/輸出模式下,能以高達 133 MHz 的 SPI 匯流排速度運作 (圖 2)。SPI 快閃模組可用於儲存用途,以確保有足夠的應用程式空間,或是用來儲存應用日誌等執行時間資料。
圖 2:LoFive-R1 開發板內建 ISSI 的 128 Mbit SPI 快閃模組,可用於應用儲存用途。(圖片來源:ISSI)
另外,此開發板也能以 5 V 電壓運行,此電壓會透過 MaxLinear 的 SPX3819M5 線性穩壓器轉換成 3.3 V。此穩壓器採用 SOT23-5 封裝,但可供應高達 500 mA 電流。此開發板耗用的電流不多,因此能支援額外的感測器和元件,而不需新增額外的電力電路。
圖 3:LoFive-R1 開發板上的 SPX3819 3.3 V 線性穩壓器可供應高達 500 mA 電流,足以支援板載電路以及某些外部元件,如感測器。(圖片來源:MaxLinear)
最後,此開發板的所有設計細節,例如線路圖和物料清單,全都位於 GitHub 上。此資訊可讓開發人員更輕鬆瞭解板件的運作方式,也能作為自訂式開發專案的設計指南。
RISC-V 工具鏈設定及開發板編程
開發人員會發現,RISC-V 有很多可用的工具鏈,具體視選用的開發板而定。務必注意,RISC-V 的 SDK 有 Windows、macOS 和 Linux 版本。本文將說明如何針對 Linux 設定此開發板。
首先在終端機使用以下命令,從 git 簽出 LoFive Freedom-E SDK:
git clone --recursive https://github.com/mwelling/freedom-e-sdk.git
接著,用以下命令前往 SDK 建立的目錄:
cd freedom-e-sdk
此開發板共有兩種不同的 SDK。第一種稱為「傳統 SDK」,因為版本較舊。請使用最新的 SDK。這個 SDK 有預先建構的工具鏈,並內含除錯用的 OpenOCD。可用以下命令來簽出 SDK:
git checkout lofive-r1
git submodule sync
git submodule update –init –recursive
開發板的編程方法有好幾種。首先,處理器上有標準的 JTAG 訊號,可透過 LoFive-R1 擴充連接器取得。開發人員可使用任何支援 JTAG 的編程器,例如 SEGGER 的 J-Link。如果沒有編程器,開發人員也能使用低成本的 USB 對序列轉換器,例如 FTDI 的 FT2232H-56Q Mini MDL (圖 4)。FT2232H-56Q Mini MDL 是一種模組,當中具有介接 LoFive-R1 開發板所需的所有連線和分匯。SDK 可利用 FT2232H-56Q 上的一般用途 I/O,來建立必要的 JTAG 連線,以便對微控制器進行編程。
圖 4:FT2232H-56Q MINI MDL 是低成本的序列模組,可透過 USB 直接介接電腦,然後再接到 LoFive-R1 開發板上的板載 UART。(圖片來源:FTDI)
LoFive-R1 開發板和 FT2232H-56Q 模組之間,需要進行九個不同的連線 (表 1)。
|
表 1:這份簡易的表格可用於橋接 LoFive-R1 開發板和 FT2232H-56Q 模組。(表格來源:DigiKey)
這些連接可概述成:
- 電源和接地
- JTAG 訊號
- UART 訊號
這些連線可直接建立,或是利用 Global Specialties 推出的 PB-83M 等試驗電路板完成 (圖 5)。這些試驗電路板的香蕉插頭可用於連接兩個電壓來源和接地,能簡化原型開發作業。
圖 5:PB-83M 的香蕉插頭可用於連接兩個電壓來源和接地,能簡化原型開發作業。(圖片來源:Global Specialties)
第一次使用 LoFive-R1 時,建議在板件上安裝開機載入程式。開機載入程式只需要安裝一次,有利於進行後續的升級作業。執行下列命令,就可從 SDK 製作開機載入程式:
make PROGRAM=lofive-boot TARGET=lofive-r1-bootloader upload
接著可透過下列命令,將「hello world」應用程式載入到開發板:
make PROGRAM=sifive-welcome TARGET=lofive-r1 upload
此時,開發人員已經完成第一個 RISC-V 應用程式的編程作業,之後便可盡情探索操作的可能性。
使用 RISC-V 的秘訣與訣竅
RISC-V 處理器的入門與標準的微控制器生態系統不太一樣。以下提供幾個「秘訣和訣竅」:
- 簽出 LoFive-R1 SDK 之後,花時間閱讀主目錄中的 README.md 檔。裡面的資訊有助於找到 SDK 文件和板支援套件,還有其他實用資訊。
- 若有 SEGGER J-Link 等專業的除錯探針,則可用於將應用程式編程至 RISC-V 處理器中。從 2017 年開始,J-Link 就一直支援 RISC-V。
- 偏好使用 IDE 而非命令行工具的開發人員,可考慮使用 Freedom Studio 進行 RISC-V 開發,這是一種以 Eclipse 為基礎的 IDE。
若初次使用 RISC-V,只需遵循這些「秘訣和訣竅」,開發人員便能省下許多時間和麻煩。
結論
RISC-V 是值得關注的架構,適合想要使用原始碼硬體架構的開發人員。市面上已經有提供適用於 RISC-V 處理器的開發板,而且如本文所述,工具鏈的設定不會比其他任何標準微控制器的設定困難多少。
別忘了,RISC-V 雖然很吸引人,但不像現在許多微控制器平台一樣擁有豐富的生態系統,因此開發人員選用 RISC-V 後,可能會發現能運用的選項和資源較少。這種取捨或許是值得的,具體視最終應用和開發人員的偏好及資源而定。

聲明:各作者及/或論壇參與者於本網站所發表之意見、理念和觀點,概不反映 DigiKey 的意見、理念和觀點,亦非 DigiKey 的正式原則。