Skip to content

Dont depend on hal #6

New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Merged
merged 9 commits into from
May 1, 2025
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
4 changes: 1 addition & 3 deletions .github/workflows/ci.yml
Original file line number Diff line number Diff line change
Expand Up @@ -15,9 +15,7 @@ jobs:
rust:
- stable
device:
- stm32f334x4
- stm32f334x6
- stm32f334x8
- stm32f334

- stm32h742
- stm32h743
Expand Down
66 changes: 23 additions & 43 deletions Cargo.toml
Original file line number Diff line number Diff line change
Expand Up @@ -3,21 +3,17 @@ name = "stm32-hrtim"
version = "0.1.0"
edition = "2021"

[dependencies]
[patch.crates-io]
stm32-hrtim = { path = "." }

[patch."https://github.com/usbalbin/stm32-hrtim"]
stm32-hrtim = { path = "." }

[dependencies]
stm32f3 = { git = "https://github.com/stm32-rs/stm32-rs-nightlies", optional = true }
stm32h7 = { git = "https://github.com/stm32-rs/stm32-rs-nightlies", fatures = ["critical-section"], optional = true }
#stm32g4 = { git = "", optional = true }

#stm32f3xx-hal = { version = "0.10.0", optional = true }
stm32f3xx-hal = { git = "https://github.com/usbalbin/stm32f3xx-hal", branch = "update_for_new_pac", optional = true }
#stm32h7xx-hal = { version = "0.16.0", optional = true }
stm32h7xx-hal = { git = "https://github.com/usbalbin/stm32h7xx-hal", branch = "update_for_new_pac", optional = true }
#stm32h7xx-hal = { path = "../stm32h7xx-hal", optional = true }

#stm32g4xx-hal = { version = "0.0.1", optional = true }
stm32g4xx-hal = { git = "https://github.com/stm32-rs/stm32g4xx-hal", branch = "staged-pac", optional = true }
#stm32g4xx-hal = { path = "../stm32g4xx-hal", optional = true }
stm32h7 = { git = "https://github.com/stm32-rs/stm32-rs-nightlies", features = ["critical-section"], optional = true }
stm32g4 = { version = "0.22.0", package = "stm32g4-staging", optional = true }

defmt = { version = "0.3.10", optional = true }
fugit = "0.3.7"

Expand All @@ -26,6 +22,7 @@ cortex-m = { version = "0.7.7", features = ["critical-section-single-core"] }
defmt-rtt = "0.4.0"
cortex-m-rt = "0.7.2"
panic-probe = { version = "0.3.0", features = ["print-defmt"] }
stm32g4xx-hal = { git = "https://github.com/usbalbin/stm32g4xx-hal", branch = "hrtim", features = ["defmt", "hrtim"] }
Copy link
Owner Author

@usbalbin usbalbin Apr 26, 2025

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

@burrbull As far as I know we can not have optional dev dependendecies and thus need to select one hal to use for the examples. Would it then be better to let the examples live in the corresponding hals? See stm32-rs/stm32g4xx-hal#192


[features]
default = []
Expand All @@ -38,30 +35,20 @@ stm32f3 = ["stm32f3/stm32f3x4"]
stm32h7 = ["dep:stm32h7"]
stm32g4 = []

stm32f334x4 = ["stm32f3", "stm32f3xx-hal/stm32f334x4", "hrtim_v1"]
stm32f334x6 = ["stm32f3", "stm32f3xx-hal/stm32f334x6", "hrtim_v1"]
stm32f334x8 = ["stm32f3", "stm32f3xx-hal/stm32f334x8", "hrtim_v1"]

stm32h742 = ["stm32h7", "stm32h7xx-hal/stm32h742", "hrtim_v1_1"]
stm32h743 = ["stm32h7", "stm32h7xx-hal/stm32h743", "hrtim_v1_1"]
#stm32h745 = ["stm32h7", "stm32h7xx-hal/stm32h745", "hrtim_v1_1"]
stm32h747cm7 = ["stm32h7", "stm32h7xx-hal/stm32h747cm7", "hrtim_v1_1"]
stm32h750 = ["stm32h7", "stm32h7xx-hal/stm32h750", "hrtim_v1_1"]
stm32h753 = ["stm32h7", "stm32h7xx-hal/stm32h753", "hrtim_v1_1"]
#stm32h755 = ["stm32h7", "stm32h7xx-hal/stm32h755", "hrtim_v1_1"]
#stm32h757 = ["stm32h7", "stm32h7xx-hal/stm32h757", "hrtim_v1_1"]

stm32g474 = ["stm32g4", "stm32g4xx-hal/stm32g474", "hrtim_v2"]
stm32g484 = ["stm32g4", "stm32g4xx-hal/stm32g484", "hrtim_v2"]
defmt = ["dep:defmt", "fugit/defmt"]
stm32f334 = ["stm32f3/stm32f3x4", "hrtim_v1"]

# F3

[[example]]
name = "stm32f3"
required-features = ["stm32f3"]
path = "examples/stm32f3/hrtim.rs"
stm32h742 = ["stm32h7/stm32h742", "hrtim_v1_1"]
stm32h743 = ["stm32h7/stm32h743", "hrtim_v1_1"]
#stm32h745 = ["stm32h7/stm32h745", "hrtim_v1_1"]
stm32h747cm7 = ["stm32h7/stm32h747cm7", "hrtim_v1_1"]
stm32h750 = ["stm32h7/stm32h750", "hrtim_v1_1"]
stm32h753 = ["stm32h7/stm32h753", "hrtim_v1_1"]
#stm32h755 = ["stm32h7/stm32h755", "hrtim_v1_1"]
#stm32h757 = ["stm32h7/stm32h757", "hrtim_v1_1"]

stm32g474 = ["stm32g4/stm32g474", "stm32g4xx-hal/stm32g474", "hrtim_v2"]
stm32g484 = ["stm32g4/stm32g484", "stm32g4xx-hal/stm32g484", "hrtim_v2"]
defmt = ["dep:defmt", "fugit/defmt"]

# G4

Expand Down Expand Up @@ -108,11 +95,4 @@ path = "examples/stm32g4/hrtim.rs"
[[example]]
name = "stm32g4-master"
required-features = ["stm32g4"]
path = "examples/stm32g4/master.rs"

# H7

[[example]]
name = "stm32h7"
required-features = ["stm32h7"]
path = "examples/stm32h7/hrtim.rs"
path = "examples/stm32g4/master.rs"
107 changes: 0 additions & 107 deletions examples/stm32f3/hrtim.rs

This file was deleted.

5 changes: 3 additions & 2 deletions examples/stm32g4/adc-trigger.rs
Original file line number Diff line number Diff line change
Expand Up @@ -5,14 +5,15 @@
use cortex_m_rt::entry;
use panic_probe as _;
use stm32_hrtim::{
compare_register::HrCompareRegister, control::HrControltExt, output::HrOutput, timer::HrTimer,
HrParts, HrPwmAdvExt, Pscl4,
compare_register::HrCompareRegister, output::HrOutput, timer::HrTimer, HrParts, HrPwmAdvExt,
Pscl4,
};
use stm32g4xx_hal::{
adc::{self, AdcClaim, ClockSource, Temperature, Vref},
delay::SYSTDelayExt,
dma::{self, channel::DMAExt, config::DmaConfig, TransferExt},
gpio::GpioExt,
hrtim::{HrControltExt, HrPwmBuilderExt},
pwr::PwrExt,
rcc::{self, RccExt},
stm32::{CorePeripherals, Peripherals},
Expand Down
2 changes: 1 addition & 1 deletion examples/stm32g4/capture-dma.rs
Original file line number Diff line number Diff line change
Expand Up @@ -7,7 +7,6 @@ use panic_probe as _;
use stm32_hrtim::{
capture,
compare_register::HrCompareRegister,
control::HrControltExt,
external_event::{self, ToExternalEventSource},
output::HrOutput,
timer::{HrSlaveTimerCpt, HrTimer, TimerSplitCapture},
Expand All @@ -16,6 +15,7 @@ use stm32_hrtim::{
use stm32g4xx_hal::{
dma::{channel::DMAExt, config::DmaConfig, TransferExt},
gpio::GpioExt,
hrtim::{external_event::EevInputExt, HrControltExt, HrPwmBuilderExt},
pwr::PwrExt,
rcc::{self, RccExt},
stm32::Peripherals,
Expand Down
2 changes: 1 addition & 1 deletion examples/stm32g4/capture.rs
Original file line number Diff line number Diff line change
Expand Up @@ -7,14 +7,14 @@ use panic_probe as _;
use stm32_hrtim::{
capture::HrCapture,
compare_register::HrCompareRegister,
control::HrControltExt,
external_event::{self, ToExternalEventSource},
output::HrOutput,
timer::{HrSlaveTimerCpt, HrTimer},
HrParts, HrPwmAdvExt, Pscl128,
};
use stm32g4xx_hal::{
gpio::GpioExt,
hrtim::{external_event::EevInputExt, HrControltExt, HrPwmBuilderExt},
pwr::PwrExt,
rcc::{self, RccExt},
stm32::Peripherals,
Expand Down
7 changes: 3 additions & 4 deletions examples/stm32g4/eev-comp.rs
Original file line number Diff line number Diff line change
Expand Up @@ -7,19 +7,18 @@ use cortex_m_rt::entry;
use panic_probe as _;
use stm32_hrtim::{
compare_register::HrCompareRegister,
control::HrControltExt,
external_event::{self, ToExternalEventSource},
output::HrOutput,
timer::HrTimer,
timer_eev_cfg::{EevCfg, EevCfgs},
HrParts, HrPwmAdvExt, Pscl4,
HrParts, HrPwmAdvExt, Polarity, Pscl4,
};
use stm32g4xx_hal::{
comparator::{self, ComparatorExt, ComparatorSplit},
dac::{self, DacExt, DacOut},
delay::SYSTDelayExt,
gpio::{GpioExt, SignalEdge},
pwm,
hrtim::{external_event::EevInputExt, HrControltExt, HrPwmBuilderExt},
pwr::PwrExt,
rcc::{self, RccExt},
stm32::{CorePeripherals, Peripherals},
Expand Down Expand Up @@ -80,7 +79,7 @@ fn main() -> ! {
.eev_input4
.bind(&comp1)
.edge_or_polarity(external_event::EdgeOrPolarity::Polarity(
pwm::Polarity::ActiveHigh,
Polarity::ActiveHigh,
))
.finalize(&mut hr_control);

Expand Down
7 changes: 3 additions & 4 deletions examples/stm32g4/eev.rs
Original file line number Diff line number Diff line change
Expand Up @@ -7,16 +7,15 @@ use cortex_m_rt::entry;
use panic_probe as _;
use stm32_hrtim::{
compare_register::HrCompareRegister,
control::HrControltExt,
external_event::{self, ToExternalEventSource},
output::HrOutput,
timer::HrTimer,
timer_eev_cfg::EevCfgs,
HrParts, HrPwmAdvExt, Pscl4,
HrParts, HrPwmAdvExt, Polarity, Pscl4,
};
use stm32g4xx_hal::{
gpio::GpioExt,
pwm,
hrtim::{external_event::EevInputExt, HrControltExt, HrPwmBuilderExt},
pwr::PwrExt,
rcc::{self, RccExt},
stm32::Peripherals,
Expand Down Expand Up @@ -50,7 +49,7 @@ fn main() -> ! {
.eev_input3
.bind(gpiob.pb7.into_pull_down_input())
.edge_or_polarity(external_event::EdgeOrPolarity::Polarity(
pwm::Polarity::ActiveHigh,
Polarity::ActiveHigh,
))
.finalize(&mut hr_control);

Expand Down
25 changes: 6 additions & 19 deletions examples/stm32g4/flt-comp.rs
Original file line number Diff line number Diff line change
Expand Up @@ -7,23 +7,10 @@ use cortex_m_rt::entry;
use fugit::ExtU32 as _;
use panic_probe as _;
use stm32_hrtim::{
compare_register::HrCompareRegister,
control::HrControltExt,
fault::{FaultAction, FaultMonitor},
output::HrOutput,
timer::HrTimer,
HrParts, HrPwmAdvExt, Pscl4,
compare_register::HrCompareRegister, fault::{FaultAction, FaultMonitor}, output::HrOutput, timer::HrTimer, HrParts, HrPwmAdvExt, Polarity, Pscl4
};
use stm32g4xx_hal::{
self as hal,
adc::AdcClaim,
comparator::{self, ComparatorExt, ComparatorSplit},
dac::{Dac3IntSig1, DacExt, DacOut},
delay::{DelayExt as _, SYSTDelayExt},
gpio::GpioExt,
pwr::PwrExt,
rcc::{self, RccExt},
stm32::{CorePeripherals, Peripherals},
self as hal, adc::AdcClaim, comparator::{self, ComparatorExt, ComparatorSplit}, dac::{Dac3IntSig1, DacExt, DacOut}, delay::{DelayExt as _, SYSTDelayExt}, gpio::GpioExt, hrtim::{fault::FaultInput, HrControltExt, HrPwmBuilderExt}, pwr::PwrExt, rcc::{self, RccExt}, stm32::{CorePeripherals, Peripherals}
};

#[entry]
Expand Down Expand Up @@ -85,8 +72,8 @@ fn main() -> ! {

let fault_source5 = flt_inputs
.fault_input5
.bind_comp(&comp3)
.polarity(hal::pwm::Polarity::ActiveHigh)
.bind(comp3)
.polarity(Polarity::ActiveHigh)
.finalize(&mut hr_control);

// ...with a prescaler of 4 this gives us a HrTimer with a tick rate of 960MHz
Expand Down Expand Up @@ -137,9 +124,9 @@ fn main() -> ! {
for _ in 0..5 {
delay.delay(500_u32.millis());
defmt::info!(
"State: {:?}, comp: {}, is_fault_active: {}, pc1: {}",
"State: {:?}, comp: {}, is_fault_active: _, pc1: {}",
out1.get_state(),
comp3.output(),
//comp3.output(), // TODO
hr_control.fault_5.is_fault_active(),
adc1.convert(&pc1, hal::adc::config::SampleTime::Cycles_92_5)
);
Expand Down
Loading
Loading