Skip to content
forked from ch32-rs/ch32-rs

Embedded Rust device crates for WCH's RISC-V and Cortex-M microcontrollers

Notifications You must be signed in to change notification settings

vapor-keeb/ch32-rs

 
 

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

ch32-rs - WCH's CH32 Peripheral Access Crates

crates.io crates.io crates.io crates.io crates.io crates.io

crates.io crates.io crates.io crates.io crates.io crates.io


Embedded Rust device crates for WCH's RISC-V and Cortex-M(planned) microcontrollers.

Note This project is not affiliated with WCH. This is a hobby project.

Alternatives to PAC crates

The ch32-rs team also working on a unified "metapac" solution for all WCH's MCUs, using metadata to generate an "all-in-one" PAC crate. It's still in early stage, but you can check it out at ch32-rs/ch32-data and ch32-rs/ch32-metapac.

Notes on License

The original SVD files were distributed with MounRiver IDE without explicit license information. These files have been extensively modified and corrected for use in this project. If you believe this project violates any licensing terms or if you have any concerns, please contact the project maintainers immediately.

If you are planing to use these SVD files in another product, please contact WCH for license information.

To handle the license issue, ch32-data is created. The data in ch32-data has been manually created and curated, referencing the original SVD files and official datasheets but incorporating significant modifications and corrections. And, the most important, ch32-data is released under the MIT license.

HAL crates

  • ch58x-hal - embassy, gpio, spi, i2c, ble
  • ch32x0-hal - embassy, gpio
  • ch59x-hal - early stage, ch58x-hal can be used with very minor changes
  • ch57x-hal - planning, ch58x-hal can be used with very minor changes
  • ch32v00x-hal - early stage, requires nightly rust for RV32EC support
  • ch32-hal - wip unified hal for all WCH's MCUs

Runtime Support

Roadmap

Development

# Do not use rust version of svdtools
pip install svdtools

# install xmlint

cargo install svd2rust

./scripts/generate.sh && ./scripts/update.sh

MCU list

NOTE: Will never support 8-bit MCUs.

RISC-V

Nick name: "赤菟"(Chitu). IP Core brand: 青稞(Qingke). V2A, V3A, V4A, V4B, V4C, V4F.

  • CH32V003: Qingke-V2A
  • CH32V103: Qingke-V3A
  • CH32V203: Qingke-V4B
  • CH32V208: Qingke-V4C, BLE
  • CH32V30x: Qingke-V4F
  • CH32L103 Qingke-V4C, Low power
  • CH32X03x: Qingke-V4C, USB PD, PIOC
  • CH56x: Qingke-V3A, USB 3.0 SS
  • CH571, CH573: Qingke-V3A, BLE 4.2
  • CH58x: Qingke-V4A, BLE 5.3
  • CH59x: Qingke-V4C, BLE 5.4
  • CH641: Qingke-V2A, USB PD
  • CH643: Qingke-V4C RGB/LED/PWM, PIOC, USB PD
  • CH645: Qingke-V4C, USB PD + USB HS

Cortex-M

CH32F uses Cortex-M3. CH577/CH578/CH579 uses Cortex-M0.

  • CH32F103
  • CH32F203
  • CH32F205
  • CH32F207
  • CH32F208, BLE 5.3
  • CH577/CH578/CH579, BLE 4.2

Toolchain

Ref

About

Embedded Rust device crates for WCH's RISC-V and Cortex-M microcontrollers

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages

  • Python 60.8%
  • Shell 39.2%