“這個世界上本沒有節日,諧音梗多了,就有了節日。”——魯迅
從2014年起,中國的互聯網圈把10月24日定為程序員節,到今年2021年已經是第1000個程序員節了。祝各位開發者節日快樂!

雖然搞嵌入式開發的也能算半個碼農,但是,啥時候能有真正屬于咱電子人的節日?
可能有些讀者朋友注意到了,我好久沒有更新原創文章了!因為最近一直忙著換工作、租房子、搬家等一些瑣事,現在入職新公司有1個月的時間了,還在熟悉公司業務。其實這些都是借口,就是懶!哈哈!
很長時間沒發過板卡評測的文章了,今天我們來評測沁恒的一款RISC-V開發板。
提到沁恒這個名字,可能有些朋友感到陌生,但是有一款芯片你肯定知道,那就是CH340——一款USB-TTL串口的轉換芯片。
記得我大學期間,第一次接觸的單片機是51系列,如STC89C51,它的下載方式是通過串口下載,所使用的的模塊就是基于CH340,后來接觸到STM32,也可以通過它進行串口下載,或者通過串口輸出調試信息。而CH340的廠家,就是WCH沁恒微電子!

今天我們要評測的是沁恒新出的RISC-V開發板——CH32V103R8T6-EVT-R1評估板。
它長這樣↓↓↓

是不是很熟悉,其實也可以稱之為CH32V103R_NUCLEO。
CH32V103是一款RISC-V內核芯片,在進行評測之前我們有必要了解一下RISC-V架構。
記得第一次認識RISC-V,是2019年4月參加在北航舉辦的RISC-V技術沙龍,也是我第一次參加線下的技術交流活動,第一次了解這個和ARM、x86完全不同的另一種全新的架構:RISC-V,當時國產的RISC-V內核芯片還寥寥無幾,短短兩年時間,很多國產RISC-V內核芯片量產:兆易GD32V、沁恒CH32V、樂鑫ESP32-C3、全志D1、阿里平頭哥等等。
關于RISC-V更多的介紹,可以查看之前發的幾篇關于RISC-V的文章:
RISC-V當真是中國處理器產業的最后一次機會?
兆易半導體RISC-V內核MCU上線,MCU架構真要三分天下?
《手把手教你設計CPU——RISC-V處理器》讀書筆記
阿里平頭哥首次交貨——玄鐵910是個啥?是芯片嗎?
NXP恩智浦VEGA織女星開發板免費申請!
其實RISC-V從2019年開始,才算是真正進入主流市場,政策的支持、半導體公司的崛起,很多公司都想在RISC-V新賽道有一番作為,據不完全統計,中國目前有300家以上的公司在參與RISC-V相關軟硬件開發。
熟悉了RISC-V架構,我們來看看板子都有哪些資源吧!
主控:RISC-V內核MCU—CH32V103R8T6,LQFP64M封裝
調試器:板載WCH-Link調試器,集成CDC串口功能,基于沁恒8051內核MCU CH549G實現,Type C接口,預留WCH-Link調試跳線,可以自由選擇是否使用板載調試器
按鍵:兩路輕觸按鍵,一個復位,一個用戶可編程
LED:6路,3路用于調試器指示狀態,2路用戶LED,1路電源指示
開關:核心板電源開關,當需要重啟時,不需要插拔USB口
GPIO:預留Arduino UNO接口,可以直接連接Arduino外設模塊,GPIO通過2.54mm間距排針引出,包括BOOT選擇。
USB:1路USB2.0通過Type C和USB母座引出,可以用于來連接U盤、鍵鼠等USB設備。

CH32V103是沁恒RISC-V內核MCU系列中的32位通用MCU產品,采用自研RISC-V3A處理器,最高80MHz主頻。
芯片內部框圖

RISC-V內核32位通用MCU,基于RISC-V3A處理器,最高80MHz系統主頻。
20KB SRAM、64KB Flash、51個用戶GPIO
2.7-5.5v寬供電范圍,-40~85℃工業級溫度范圍
16路ADC/觸摸按鍵通道
7個定時器:3個通用、1個高級、2個看門狗、1個系統時鐘
2路SPI、2路I2C、3路USART,1路USB 2.0,支持主機/設備模式
根據不同的存儲、RAM、外設資源,目前主要有4個型號

主控芯片,CH32V103R8T6

板載WCH-Link調試器,而且集成了CDC串口功能,基于CH549G方案,目前常用的數據線通常是TypeC接口,所以這款板卡也采用的TypeC接口。

EPSON 晶振,8M和32.768k。

撥動電源開關,只用于核心板電源控制,調試器電源不會被斷開。

USB 2.0接口,芯片只有1路USB2.0,板卡提供了Type C和USB母座兩種接口形式,可以做一些USB相關的應用,比如外接U盤、鼠標或鍵盤等。

USB連接器為富士康品牌

兩路按鍵,1個復位,1個用戶可編程。

對于MCU開發,除了開發環境外,比較重要的有4個文檔:數據手冊、參考手冊、固件庫、使用例程。
除了以上文檔之外,沁恒還提供有評估板說明書、原理圖、芯片SCH/PCB封裝等。
目前,半導體廠商的集成開發環境主要可分為2類。
通用平臺
這類平臺,廠家只需要提供器件支持包就可以使用,功能簡潔,集成代碼編輯、下載、調試功能,可以方便在不同芯片平臺間切換,但是代碼編輯功能實在有限,而且需要License授權費。如Keil MDK、IAR等。
定制平臺
通常是廠家基于Eclipse平臺深度定制,功能強大、界面美觀、操作簡單,配合ARM交叉編譯工具鏈,可以完成程序的下載、調試等功能,而且還集成了串口終端。這類開發環境通常無授權費用,對于用戶非常友好。如CH32V103開發環境MounRiver Studio,GD32V開發環境Nuclei Studio IDE,STM32 Cube IDE/True Studio,瑞薩e2 studio,NXP的MCUXpresso IDE,Microsemi的SoftConsole等,這些都是基于開源的Eclipse框架開發。其他還有RT-Thread Studio,卡姆派樂集成開發環境等等。
CH32V103使用MounRiver Studio(簡稱MRS)開發,基于Eclipse深度定制開發,支持Keil工程一鍵導入、RISC-V/ARM跨內核遷移,除了支持沁恒ARM和RISC-V內核MCU開發外,還支持GD32VF103開發。

提供的例程涵蓋了所有的外設資源:

使用MRS創建示例工程非常簡單,全程無需寫一行代碼,無論是裸機工程還是RTOS工程,軟件會自動添加所需要的驅動庫和示例代碼,而且已經實現了延時函數和UART printf支持。
在使用MRS新建RTOS工程時,支持創建基于3種常見RTOS的工程模板,分別是FreeRTOS、RT-Thread和Harmony LiteOS-M,當創建完成之后,你就獲得了一個基于RTOS的工程模板,無需任何修改,直接編譯下載,就可以運行,非常方便。

從驅動庫函數來看,大部分函數名和STM32一樣,對于STM32的用戶遷移到CH32V103平臺非常方便,整體代碼不需要做太多的修改。
部分外設驅動庫函數:
void GPIO_DeInit(GPIO_TypeDef* GPIOx);
void GPIO_AFIODeInit(void);
void GPIO_Init(GPIO_TypeDef* GPIOx, GPIO_InitTypeDef* GPIO_InitStruct);
void GPIO_StructInit(GPIO_InitTypeDef* GPIO_InitStruct);
uint8_t GPIO_ReadInputDataBit(GPIO_TypeDef* GPIOx, uint16_t GPIO_Pin);
uint16_t GPIO_ReadInputData(GPIO_TypeDef* GPIOx);
uint8_t GPIO_ReadOutputDataBit(GPIO_TypeDef* GPIOx, uint16_t GPIO_Pin);
uint16_t GPIO_ReadOutputData(GPIO_TypeDef* GPIOx);
void GPIO_SetBits(GPIO_TypeDef* GPIOx, uint16_t GPIO_Pin);
void GPIO_ResetBits(GPIO_TypeDef* GPIOx, uint16_t GPIO_Pin);
void GPIO_WriteBit(GPIO_TypeDef* GPIOx, uint16_t GPIO_Pin, BitAction BitVal);
void GPIO_Write(GPIO_TypeDef* GPIOx, uint16_t PortVal);
可能有些開發者以為沁恒只有USB、以太網、PCI等這些專用的接口轉換芯片,其實沁恒還有很多通用MCU產品,包括E8051內核、ARM Cortex-M0/M3內核,RISC-V內核的MCU產品等等。

其中RISC-V內核產品是近兩年才推出,主要有3個系列:低功耗藍牙、32位通用和超高速接口。
集成低功耗藍牙MCU:CH573/583系列,BLE 5.1,最低睡眠電流0.2uA,USB 2.0等
32位通用MCU:CH32V10x/20x/30x,最高144MHz主頻,ADC/DAC/SPI/I2C/UART外設,USB2.0等
超高速接口MCU:CH569/5,千兆以太網、3.8G高速接口口,USB3.0+OTG

CH32V103配套的軟硬件資料還是非常齊全的,主要包括中文數據手冊、參考手冊、評估板原理圖和說明書、外設使用例程、開發環境等等。

MRS集成開發環境V151安裝包:
http://file.mounriver.com/upgrade/MounRiver_Studio_Setup_V151.zip
MRS集成開發環境V151補丁包:
http://file.mounriver.com/upgrade/MounRiver_Update_V151.zip
以上資料包可以到官方網站下載:
http://www.wch.cn/products/CH32V103.html
或者關注公眾號,后臺回復:211023,獲取資料打包下載鏈接。
很明顯,無論是硬件配置還是開發方式,CH32V103對標的是STM32F103,對于想更換MCU平臺的用戶可以非常快速的完成遷移。對于早期使用沁恒ARM內核的用戶,遷移到RISC-V內核也非常方便,因為兩者除了內核不同,資源配置,外設操作這些應用層面的幾乎一致。
最近兩年,受益于國家的投入與政策的支持,疊加全球“芯片荒”,中國半導體產業進入發展“黃金期”,國產RISC-V芯片也如雨后春筍般涌現。國產芯片的發展,強大的生態是關鍵,文檔手冊、開發板、固件庫,交流社區,技術支持,創意競賽,大學計劃等等。
我想經歷過美國技術卡脖子、芯片缺芯之后,更多的用戶會選擇國產芯片來替代進口芯片,這對國產芯片是很有利的,但也不能盲目樂觀,由于芯片研發技術門檻高、資金大、周期長,爆雷事件也偶有傳出。未來一段時間,腳踏實地才能保證確保我國集成電路產業良性發展。
FPGA固件如何進行在線升級?
基于STM32的FPGA下載器USB Blaster
開源、低成本的Xilinx FPGA下載器
手把手教你制作Jlink-OB調試器
手把手教你用Qt寫一個串口助手控制LED
嵌入式軟硬件都開源的項目