CH32V: development platform for PlatformIO
The CH32V series offers industrial-grade, general-purpose microcontrollers based on a range of QingKe 32-bit RISC-V cores. All devices feature a DMA and a hardware stack area, which greatly improves interrupt latency. The family ranges from ultra-cheap, low-end CH32V003 with 2kB RAM / 16kB flash, up to high speed, ultra-connected CH32V307 with 64kB RAM / 256kB flash, hardware FPU, USB, CAN, Ethernet, etc.. For a list of available devices see the CH32V product selector page.
Note: WCH also offers the CH32F family with identical peripherals, which is based on ARM Cortex-M.
This repository is a PlatformIO platform. Just like platform-ststm32 etc., it enables the PlatformIO core to work with W.CH CH32V chips. This means in all the IDEs that PlatformIO supports (VSCode, CLion, etc.), developing and debugging firmwares for CH32V chips is easily possible.
Head over to https://github.com/Community-PIO-CH32V/ch32-pio-projects to see more example projects and detailed starting instructions.
Please visit https://pio-ch32v.readthedocs.io/ for the most recent documention.
This page is a work in progress at the moment.
- chips
- CH32V003 (QingKe V2A)
- CH32V103 (QingKe V3A)
- CH32V203 (QingKe V4B)
- CH32V208 (QingKe V4C)
- CH32V303 (QingKe V4F)
- CH32V305 (QingKe V4F)
- CH32V307 (QingKe V4F)
- CH32X035 (QingKe V4C)
- CH56x (QingKe V3A)
- CH57x (QingKe V3A)
- CH58x (QingKe V4A)
- development boards
- CH32V003F4P6-EVT-R0 (official by W.CH)
- CH32V203C8T6-EVT-R0 (official by W.CH)
- CH32V307 EVT (by SCDZ, close to official W.CH board)
- CH32X035C8T6-EVT-R0, CH32X035G8U6-EVT-R0, CH32X035F8U6-EVT-R0 (official by W.CH)
- frameworks
- None OS ("Simple Peripheral Library" / native SDK)
- Arduino
- for CH32V003 (thanks to arduino-wch32v003)
- for all else
- FreeRTOS
- (Huawei) Harmony LiteOS
- RT-Thread
- TencentOS Lite-M
- debuggers (also implicitly uploaders)
- WCH-Link(E)
- ST-Link
- J-Link
- GDB-UART stub for debug-probe-less debugging?
- uploaders (no debugging)
- USB ISP bootloader (supported via wchisp)
- Install PlatformIO
- Create PlatformIO project and configure a platform option in platformio.ini file:
- For Linux, add PlatformIO per documentation. Then, add WCH udev rules by appending the following content to
etc/udev/rules.d/99-platformio-udev.rules
.
SUBSYSTEM=="usb", ATTR{idVendor}="1a86", ATTR{idProduct}=="8010", GROUP="plugdev"
SUBSYSTEM=="usb", ATTR{idVendor}="4348", ATTR{idProduct}=="55e0", GROUP="plugdev"
SUBSYSTEM=="usb", ATTR{idVendor}="1a86", ATTR{idProduct}=="8012", GROUP="plugdev"
Without these udev rules or the missing group membership of the user in the plugdev group, accessing the WCH-Link(E) via OpenOCD or wchisp will not work!!
[env:development]
platform = https://github.com/Community-PIO-CH32V/platform-ch32v.git
board = ...
...
The configuration in regards to the builder scripts etc. are still in progress. See the above mentioned projects repository for now.