The structured MCU DB of HPM MCUs. The home of hpm-metapac.
All PRs and Issues are handled in hpmicro/hpm-data.
hpm-metapac
is generated from this repo. For each commit(or push) of hpm-data, it's pushed to https://github.com/hpmicro-rs/hpm-metapac,
with a tag of hpm-data-<commit-hash>
.
- The
hpm-metapac
crate has ametadata
feature, when enabled, it will provide the basic metadata of the currrent MCU - Patch vectored interrupt mode, add
CORE_LOCAL
for Non-External Interrupts - To best fit for HPM RISC-V's clustered register desigin, the following is added:
- All clocks, for
SYSCTL.CLOCK
, underhpm_metapac::clocks::
- All SYSCTL resources, under
hpm_metapac::resources::
- All GPIOs and it's PADs, for
IOC
, underhpm_metapac::pins::
- All IOMUX settings (
FUNC_CTL
), underhpm_metapac::iomux::
- All TRGM const definitions, under
hpm_metapac::trgmmux::
- All clocks, for
- The version on crates.io is not updated frequently, please use the git repo directly
[dependencies]
hpm-metapac = { version = "0.0.4", git = "https://github.com/hpmicro-rs/hpm-metapac.git", tag = "hpm-data-d8c87c6a676818ff6abd3b7ae54a1a7612cc8534", features = ["hpm5361"] }
# If you want to use the metadata feature in build.rs
[build-dependencies]
hpm-metapac = { version = "0.0.4", git = "https://github.com/hpmicro-rs/hpm-metapac.git", tag = "hpm-data-d8c87c6a676818ff6abd3b7ae54a1a7612cc8534", default-features = false, features = [
"metadata",
"hpm5361",
] }
A simple example to configure pin PA25 for PWM1_P1:
use hpm_metapac as pac;
use pac::{iomux, pins};
pac::IOC
.pad(pins::PA25)
.func_ctl()
.modify(|w| w.set_alt_select(iomux::IOC_PA25_FUNC_CTL_PWM1_P_1));
To get a local build of hpm-metapac
, you can use the following commands:
./d download-all
./d gen
Now you have a local build of hpm-metapac
in the build/hpm-metapac
directory.
[dependencies]
hpm-metapac = { path = "path/to/hpm-data/build/hpm-metapac", features = ["hpm5361"] }
- All peripherals are supported
- All MCU families are supported
- Peripherals that have an HAL driver or raw PAC demo in hpm-hal are reviewed and tested
(in order of release date)
- HPM6700/HPM6400 - High performance
- HPM6300 - General purpose
- HPM6200 - High performance, real-time, mixed signal
- HPM5300 - General purpose, motion control
- HPM6800 - Display dirver, user interface
- HPM6E00 - EtherCAT
- https://www.hpmicro.com/
- https://github.com/hpmicro/hpm_pinmux_tool
- https://github.com/hpmicro/hpm_sdk
- https://tools.hpmicro.com/pinmux
As of 2024-09-19, this project is transferred from andelf to hpmicro.