Git Product home page Git Product logo

platform-ch32v's Introduction

CH32V: development platform for PlatformIO

Build Status Documentation Status

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.

Documentation

Please visit https://pio-ch32v.readthedocs.io/ for the most recent documention.

This page is a work in progress at the moment.

Important notices

The newest used version of OpenOCD requires the firmware of the WCH-Link(E) probe to be the latest (2.10 and 2.11 respectively). Otherwise you will be seeing flash programming errors like

Info : WCH-LinkE  mode:RV version 2.9 
..
** Programming Started **
Info : device id = 0xabc8abcd
Error: error writing to flash at address 0x00000000 at offset 0x00000000
embedded:startup.tcl:1162: Error: ** Programming Failed **

Please update the WCH-Link(E) firmware using

If you use Mac, the usage of a Linux virtual machine may be required to run these tools.

Media

vscode debugging

platform

Support

  • 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)
    • CH59x (QingKe V4C)
  • 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
  • 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)

Installation

  1. Install PlatformIO
  2. Create PlatformIO project and configure a platform option in platformio.ini file:
  3. 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!!

Development version

[env:development]
platform = https://github.com/Community-PIO-CH32V/platform-ch32v.git
board = ...
...

Configuration

The configuration in regards to the builder scripts etc. are still in progress. See the above mentioned projects repository for now.

Media Supported Development Boards

ch32v307 evt board ch32v003 evt board ch32v203 evt board

platform-ch32v's People

Contributors

74th avatar maxgerhardt avatar

Watchers

 avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.