沁恆最近推出的低價CH32V003系列, 基於青稞RISC-V2A內核, 48MHz主頻, 2KB SRAM, 16KB Flash, 工作電壓相容3.3V和5V. Win10下的開發環境是比較簡單的, 軟體就是MounRiver, 版本v1.82, 軟體集成了代碼編輯, 編譯環境和燒錄工具. 直接... ...
CH32V003
沁恆最近推出的低價CH32V003系列, 基於青稞RISC-V2A內核, 48MHz主頻, 2KB SRAM, 16KB Flash, 工作電壓相容3.3V和5V. 主要參數如下
- System Clock: 48MHz
- SRAM: 2KB
- Flash: 16KB
- Power Supply: 3.3/5V
- 多種低功耗模式: 睡眠, 待機
- 上/下電覆位, 可編程電壓檢測器
- DMA: 1組1路通用
- 運放比較器: 1組
- ADC: 1組10位
- Timer: 1個16位高級, 1個16位通用
- WDG: 2個看門狗定時器和1個32位系統時基定時器
- USART: 1
- IIC: 1
- SPI: 1
- I/O: 18
- UUID: 64bit
- Debug port: 1-wire serial (SWDIO)
- Package: TSSOP20, QFN20, SOP16, SOP8
硬體部分
開發板
- 典型的WCH風格開發板, 土綠+密集的過孔+不計面積走長線.
- 有開關, 但是沒有專門的燒錄口, 燒錄是通過右邊一排的 VCC, GND, PD1(SWDIO) 連接的.
- 三顆LED, 一顆電源指示, 兩顆未連接但是有排針, 可以自己用跳線連到其他pin口方便觀察輸出
燒錄器 WCH-Link
CH32V003的燒錄需要使用新出的WCHLink, 晶元是CH32V30x的這種, 據說舊的不支持但是我沒實際測過.
軟體部分
Win10下的開發環境是比較簡單的, 軟體就是MounRiver, 版本v1.82, 下載地址 http://mounriver.com/download
軟體集成了代碼編輯, 編譯環境和燒錄工具. 直接安裝即可. 因為是基於 Eclipse 開發, 使用體驗還不錯.
註意要使用較新的版本, 舊版本不支持 CH32V003, 編譯會報錯 riscv-none-embed/bin/ld.exe: cannot find -lprint
MounRiver的使用說明參考官方專欄, 介紹得較為詳細
運行LED閃燈示例代碼
下麵以最簡單的GPIO示例走一遍編譯燒錄的過程
連線
開發板 ---> WCHLink, 註意如果已經通過PC的USB口連接了開發板, 就不要連WCHLink VCC, 如果連了WCHLink VCC, 就不要接USB口
- VCC -> 3V3
- GND -> GND
- PD1 -> SWDIO
開發板本身
- 連接一個LED到 PD0, 用於觀察PD0的輸出
編譯項目
下載示例代碼: https://www.wch.cn/downloads/CH32V003EVT_ZIP.html
解壓後, 在MounRiver中 File -> Load -> Project, 打開 EVT\EXAM\GPIO\GPIO_Toggle目錄下的 GPIO_Toggle.wvproj
按 Shift + F7 或通過工具欄按鈕編譯即可. 編譯正常會顯示
07:29:58 **** Build of configuration obj for project GPIO_Toggle ****
make -j4 all
text data bss dec hex filename
3396 40 520 3956 f74 GPIO_Toggle.elf
07:30:02 Build Finished. 0 errors, 0 warnings. (took 4s.306ms)
示例項目中預設的構建結果為 bin 文件, 編譯結束後在 obj 目錄下能看到 GPIO_Toggle.bin, 但是沒有 GPIO_Toggle.hex, 與項目預設的燒錄目標 (hex) 不同, 為避免後面報錯, 需要將編譯輸出修改為 hex:
- 項目樹中選中當前項目
- 菜單 Project -> Properties
- 對話框 C/C++ Build -> Settings -> GNU RISC-V Cross Create Flash Image -> General
- 對話框 Output file format (-O): 將 Raw Binary 修改為 Intel HEX
再次編譯後, 在 obj 目錄下就能看到生成的 GPIO_Toggle.hex 文件
燒錄
菜單 Flash -> Config, 點擊第一個圖標 Query Status 查詢晶元狀態, 連接成功後底下會顯示0000#07:48:33:283>> Query Success, 同時會顯示紅色的Code Read-Protect Status Disabled或綠色的Code Read-Protect Status Enabled, 紅色的表示讀保護關閉, 這時候可以燒錄, 如果是綠色表示讀保護打開, 需要關閉後才能燒錄. 下麵 Target 中會顯示檢測到的MCU類型, 寫入開始地址 0x08000000, 以及要寫入的文件 obj\GPIO_Toggle.hex
以上無誤後, 應用保存, 按 F8 或點擊工具欄圖標燒錄, 燒錄過程輸出
------------ Begin flash process of "obj\GPIO_Toggle.hex" ------------
07:59:24:625 >> Current project vendor is WCH, debugger is WCH-Link
07:59:24:626 >> Attempt to open device and upgrade firmware if necessary...
07:59:24:629 >> WCH-Link no need to upgrade. Already the latest version.
07:59:24:711 >> Starting to Send Chip Type...
07:59:24:772 >> Send Chip Type Success
07:59:24:772 >> Starting to Check Read-Protect Status...
07:59:24:773 >> Read-Protect Status Currently Disabled
07:59:24:773 >> Starting to Erase All...
07:59:24:781 >> Erase All Success
07:59:24:841 >> Starting to Download & Verify...
07:59:25:278 >> Download & Verify Success
07:59:25:278 >> Starting to Reset...
07:59:25:295 >> Reset Success
07:59:25:295 >> Starting to Close Link...
07:59:25:296 >> Close Link Success
---------------------------------End ---------------------------------
Operation Finished (took 0s.672ms)
燒錄成功後就能看到連接的LED開始閃爍