在不斷創(chuàng)新并保護(hù)其知識(shí)產(chǎn)權(quán) (IP) 的同時(shí),還需兼顧低功耗和低成本,致使設(shè)計(jì)人員持續(xù)面臨著壓力。因此,對(duì)于移動(dòng)應(yīng)用處理器的設(shè)計(jì)人員而言,RISC-V 開(kāi)源硬件指令集架構(gòu) (ISA) 值得留意。既然 RISC-V 已成為微控制器的一個(gè)選項(xiàng),嵌入式系統(tǒng)和消費(fèi)類(lèi)設(shè)備的設(shè)計(jì)人員需要學(xué)習(xí)如何著手將 RISC-V 整合至自己的設(shè)計(jì)。
GroupGets LLC 的 FE310 LoFive-R1 開(kāi)發(fā)板為此提供了一條捷徑。在介紹 LoFive-R1 之前,本文將介紹 RISC-V 并說(shuō)明開(kāi)發(fā)人員應(yīng)考慮使用該架構(gòu)的原因。然后,本文將詳細(xì)介紹 LoFive-R1,說(shuō)明如何著手應(yīng)用開(kāi)發(fā)以及可用的一些技巧與訣竅。
什么是 RISC-V?
RISC-V 是一個(gè)開(kāi)源硬件指令集架構(gòu)項(xiàng)目,2010 年始于加州大學(xué)伯克利分校。構(gòu)建 RISC-V 架構(gòu)的原因很多,包括:
滿足對(duì)開(kāi)源指令集架構(gòu) (ISA) 的需求,以供大學(xué)項(xiàng)目學(xué)術(shù)研究和學(xué)生使用
分享 ISA 開(kāi)發(fā)設(shè)計(jì)專(zhuān)業(yè)知識(shí)的途徑
避免向現(xiàn)有芯片公司支付特許權(quán)使用費(fèi)以節(jié)省成本的方法
保護(hù)架構(gòu)(公司 IP)的設(shè)計(jì)細(xì)節(jié)以保持商業(yè)可行性
就設(shè)計(jì)人員而言,RISC-V 是一種專(zhuān)為高速和低功耗而設(shè)計(jì)的簡(jiǎn)化架構(gòu)。因此,基于 RISC-V 的芯片不僅適用于學(xué)術(shù)界,也非常適合商業(yè)應(yīng)用。實(shí)際上,RISC-V 基金會(huì)備受關(guān)注,目前已吸納約 325 名成員,其中包括 Si-Five、Google、Microchip Technology、NVIDIA 和 Qualcomm 等公司。
為 RISC-V 開(kāi)發(fā)做出貢獻(xiàn)的公司雖不少,但對(duì)于普通開(kāi)發(fā)人員而言,獲得 RISC-V 實(shí)踐經(jīng)驗(yàn)的最佳方法是找到一款基于 RISC-V 處理器的開(kāi)發(fā)板。
LoFive FE310 開(kāi)發(fā)板
GroupGets LLC 的 LoFive-R1 開(kāi)發(fā)板正是其中之一。
LoFive-R1 開(kāi)發(fā)板包含 RISC-V 處理器和所有必要的支持電路,因此該開(kāi)發(fā)板可作為處理器模塊直接焊接到載板上。
首先,LoFive R1 包含的 RISC-V 處理器最高可在 320 MHz 下運(yùn)行。該處理器包括 8 KB 的一次性可編程 (OTP) 存儲(chǔ)器、8 KB 的掩膜 ROM、16 KB 的指令緩存和 16 KB 的 SRAM。此外,該處理器還具有三個(gè)獨(dú)立脈沖寬度調(diào)制 (PWM) 控制器、SPI、I2C、UART,甚至 QSPI 閃存接口。
其次,該開(kāi)發(fā)板既可焊接針座,也可直接焊接到載板上用作處理器模塊(由于其邊緣呈圓齒形),無(wú)需費(fèi)時(shí)額外采購(gòu)處理器,從而極大簡(jiǎn)化了開(kāi)發(fā)人員對(duì)定制硬件的設(shè)計(jì)流程。
再者,該開(kāi)發(fā)板的板載 QSPI 閃存由 Integrated Silicon Solution Inc. (ISSI) 的 IS25LP128 閃存模塊提供。IS25LP128 閃存模塊容量為 128 Mb(即 16 MB),在四通道輸入/輸出模式下 SPI 總線接口速度高達(dá) 133 MHz(圖 2)。該 SPI 閃存模塊可用于存儲(chǔ)以確保充足的應(yīng)用程序空間,也可用于存儲(chǔ)應(yīng)用程序日志等運(yùn)行時(shí)數(shù)據(jù)。
圖 2:LoFive-R1 開(kāi)發(fā)板包括 ISSI 的 128 Mb SPI 閃存模塊,可用于應(yīng)用程序存儲(chǔ)。(圖片來(lái)源:ISSI)
另外,該開(kāi)發(fā)板也可采用 5 V 的工作電壓,通過(guò) MaxLinear 的 SPX3819M5 線性穩(wěn)壓器轉(zhuǎn)換為 3.3 V。該穩(wěn)壓器采用 SOT23-5 封裝,卻可提供高達(dá) 500 mA 的電流。該開(kāi)發(fā)板消耗電流較小,因此可支持其他傳感器和器件,而無(wú)需額外添加電源電路。
圖 3:LoFive-R1 開(kāi)發(fā)板的 SPX3819 3.3 V 線性穩(wěn)壓器可提供高達(dá) 500 mA 的電流,足以支持整個(gè)板載電路和部分外部器件(如傳感器)。(圖片來(lái)源:MaxLinear)
最后,該開(kāi)發(fā)板的原理圖和物料清單等所有設(shè)計(jì)細(xì)節(jié)均可從 github 獲取。這些信息有助于開(kāi)發(fā)人員理解該開(kāi)發(fā)板的工作原理,也可用作定制開(kāi)發(fā)項(xiàng)目的設(shè)計(jì)指南。
RISC-V 工具鏈設(shè)置和開(kāi)發(fā)板編程
開(kāi)發(fā)人員會(huì)發(fā)現(xiàn) RISC-V 可用的工具鏈有多種,具體取決于所選擇的開(kāi)發(fā)板。需要注意的是,適用于 RISC-V 的 SDK 支持 Windows、macOS 和 Linux。本文將展示用于 Linux 的開(kāi)發(fā)板設(shè)置方法。
首先,在終端上使用以下命令從 git 中簽出 LoFive Freedom-E SDK:
git clone --recursive https://github.com/mwelling/freedom-e-sdk.git
然后,使用以下命令進(jìn)入按 SDK 創(chuàng)建的目錄:
cd freedom-e-sdk
該開(kāi)發(fā)板可用的 SDK 有兩款。第一款稱(chēng)為“舊版 SDK”,因?yàn)榘姹据^舊。請(qǐng)使用新版 SDK,其中包括預(yù)構(gòu)建的工具鏈和用于調(diào)試的 OpenOCD。使用以下命令簽出 SDK:
git checkout lofive-r1
git submodule sync
git submodule update –init –recursive
開(kāi)發(fā)板編程可通過(guò)幾種不同的方式完成。首先,該處理器具有標(biāo)準(zhǔn) JTAG 信號(hào),可通過(guò) LoFive-R1 擴(kuò)展連接器獲取該信號(hào)。開(kāi)發(fā)人員可以使用任何支持 JTAG 的編程器,例如 SEGGER 的 J-Link。若沒(méi)有相應(yīng)的編程器,開(kāi)發(fā)人員也可使用 FTDI 的 FT2232H-56Q Mini MDL 等低成本的 USB 轉(zhuǎn)串口轉(zhuǎn)換器(圖 4)。FT2232H-56Q Mini MDL 模塊可提供連接 LoFive-R1 開(kāi)發(fā)板所需的所有連接和分線。SDK 可使用 FT2232H-56Q 的通用 I/O 來(lái)構(gòu)建必要的 JTAG 連接,實(shí)現(xiàn)對(duì)微控制器的編程。
FT2232H-56Q MINI MDL 是一款低成本的串口模塊,可通過(guò) USB 直接連接計(jì)算機(jī),然后連接 LoFive-R1 開(kāi)發(fā)板的板載 UART。
LoFive-R1 開(kāi)發(fā)板與 FT2232H-56Q 模塊之間需要九個(gè)不同的連接(表 1)。
表 1:LoFive-R1 開(kāi)發(fā)板與 FT2232H-56Q 模塊的連接簡(jiǎn)表。(表格來(lái)源:Digi-Key Electronics)
上述連接可以總結(jié)為:
電源和接地
JTAG 信號(hào)
UART 信號(hào)
連接可以采用直連法,也可使用 Global Specialties 的 PB-83M 等試驗(yàn)板來(lái)完成。該試驗(yàn)板的香蕉插孔可用于連接兩個(gè)電壓源和接地,以簡(jiǎn)化原型開(kāi)發(fā)。
PB-83M 提供的香蕉插孔可用于連接兩個(gè)電壓源和接地,以簡(jiǎn)化原型開(kāi)發(fā)。(圖片來(lái)源:Global Specialties)
首次使用 LoFive-R1 時(shí),建議先安裝板載引導(dǎo)程序。引導(dǎo)程序只需安裝一次,后續(xù)即可輕松升級(jí)。通過(guò)執(zhí)行以下命令,即可從 SDK 中加載引導(dǎo)程序:
make PROGRAM=lofive-boot TARGET=lofive-r1-bootloader upload
然后,使用以下命令將 “hello world” 應(yīng)用程序加載到開(kāi)發(fā)板:
make PROGRAM=sifive-welcome TARGET=lofive-r1 upload
至此,開(kāi)發(fā)人員就已完成了首個(gè) RISC-V 應(yīng)用程序編寫(xiě),此后的擴(kuò)展則具有無(wú)限可能。
RISC-V 的使用技巧與訣竅
RISC-V 處理器入門(mén)與標(biāo)準(zhǔn)微控制器生態(tài)系統(tǒng)有所不同。 以下是幾點(diǎn)“技巧與訣竅”:
簽出 LoFive-R1 SDK 后,花時(shí)間查看主目錄下的 README.md 文件。其中包含了在何處能找到 SDK 說(shuō)明文檔、板級(jí)支持包及其他有用信息。
若有 SEGGER 的 J-Link 等專(zhuān)業(yè)調(diào)試探測(cè)器,即可用于 RISC-V 處理器的應(yīng)用程序編程。自 2017 年以來(lái),J-Link 一直支持 RISC-V。
如果開(kāi)發(fā)人員偏好使用 IDE 而非命令行工具,可以考慮使用 Freedom Studio(基于 Eclipse 的 IDE)進(jìn)行 RISC-V 開(kāi)發(fā)。
首次使用 RISC-V 時(shí),只需遵循這些“技巧與訣竅”,開(kāi)發(fā)人員即可節(jié)省大量時(shí)間和精力。
總結(jié)
對(duì)于希望使用開(kāi)源硬件架構(gòu)的開(kāi)發(fā)人員而言,RISC-V 架構(gòu)值得留意。目前,市面上已有基于 RISC-V 處理器的開(kāi)發(fā)板,如本文所述,工具鏈設(shè)置難度與任何其他標(biāo)準(zhǔn)微控制器差別不大。
RISC-V 雖令人著迷,但是請(qǐng)別忘記,其生態(tài)系統(tǒng)對(duì)比現(xiàn)有的許多微控制器平臺(tái)相對(duì)貧乏,因此開(kāi)發(fā)人員選擇深入探索 RISC-V 后,就會(huì)發(fā)現(xiàn)可用的選擇和資源很少。權(quán)衡取舍不失為良策,具體取決于最終應(yīng)用以及開(kāi)發(fā)人員的偏好和資源。
評(píng)論
查看更多