diff options
| -rw-r--r-- | embassy-stm32/Cargo.toml | 4 | ||||
| -rw-r--r-- | embassy-stm32/src/rcc/f1.rs | 9 | ||||
| -rw-r--r-- | embassy-stm32/src/rcc/l4l5.rs | 3 | ||||
| -rw-r--r-- | embassy-stm32/src/rcc/u5.rs | 4 | ||||
| -rw-r--r-- | embassy-stm32/src/rcc/wb.rs | 14 | ||||
| -rw-r--r-- | embassy-stm32/src/rcc/wba.rs | 4 | ||||
| -rw-r--r-- | embassy-stm32/src/rcc/wl.rs | 4 | ||||
| -rw-r--r-- | embassy-stm32/src/sdmmc/mod.rs | 4 | ||||
| -rw-r--r-- | tests/stm32/src/common.rs | 9 |
9 files changed, 19 insertions, 36 deletions
diff --git a/embassy-stm32/Cargo.toml b/embassy-stm32/Cargo.toml index 3b9220bc7..f70e75d44 100644 --- a/embassy-stm32/Cargo.toml +++ b/embassy-stm32/Cargo.toml | |||
| @@ -58,7 +58,7 @@ rand_core = "0.6.3" | |||
| 58 | sdio-host = "0.5.0" | 58 | sdio-host = "0.5.0" |
| 59 | embedded-sdmmc = { git = "https://github.com/embassy-rs/embedded-sdmmc-rs", rev = "a4f293d3a6f72158385f79c98634cb8a14d0d2fc", optional = true } | 59 | embedded-sdmmc = { git = "https://github.com/embassy-rs/embedded-sdmmc-rs", rev = "a4f293d3a6f72158385f79c98634cb8a14d0d2fc", optional = true } |
| 60 | critical-section = "1.1" | 60 | critical-section = "1.1" |
| 61 | stm32-metapac = { git = "https://github.com/embassy-rs/stm32-data-generated", tag = "stm32-data-5b04234fbe61ea875f1a904cd5f68795daaeb526" } | 61 | stm32-metapac = { git = "https://github.com/embassy-rs/stm32-data-generated", tag = "stm32-data-296dd041cce492e3b2b7fb3b8a6c05c9a34a90a1" } |
| 62 | vcell = "0.1.3" | 62 | vcell = "0.1.3" |
| 63 | bxcan = "0.7.0" | 63 | bxcan = "0.7.0" |
| 64 | nb = "1.0.0" | 64 | nb = "1.0.0" |
| @@ -76,7 +76,7 @@ critical-section = { version = "1.1", features = ["std"] } | |||
| 76 | [build-dependencies] | 76 | [build-dependencies] |
| 77 | proc-macro2 = "1.0.36" | 77 | proc-macro2 = "1.0.36" |
| 78 | quote = "1.0.15" | 78 | quote = "1.0.15" |
| 79 | stm32-metapac = { git = "https://github.com/embassy-rs/stm32-data-generated", tag = "stm32-data-5b04234fbe61ea875f1a904cd5f68795daaeb526", default-features = false, features = ["metadata"]} | 79 | stm32-metapac = { git = "https://github.com/embassy-rs/stm32-data-generated", tag = "stm32-data-296dd041cce492e3b2b7fb3b8a6c05c9a34a90a1", default-features = false, features = ["metadata"]} |
| 80 | 80 | ||
| 81 | 81 | ||
| 82 | [features] | 82 | [features] |
diff --git a/embassy-stm32/src/rcc/f1.rs b/embassy-stm32/src/rcc/f1.rs index 8d315f7b2..169551e45 100644 --- a/embassy-stm32/src/rcc/f1.rs +++ b/embassy-stm32/src/rcc/f1.rs | |||
| @@ -169,14 +169,7 @@ pub(crate) unsafe fn init(config: Config) { | |||
| 169 | #[cfg(not(rcc_f100))] | 169 | #[cfg(not(rcc_f100))] |
| 170 | w.set_usbpre(Usbpre::from_bits(usbpre as u8)); | 170 | w.set_usbpre(Usbpre::from_bits(usbpre as u8)); |
| 171 | w.set_sw(if pllmul_bits.is_some() { | 171 | w.set_sw(if pllmul_bits.is_some() { |
| 172 | #[cfg(not(rcc_f1cl))] | 172 | Sw::PLL1_P |
| 173 | { | ||
| 174 | Sw::PLL1_P | ||
| 175 | } | ||
| 176 | #[cfg(rcc_f1cl)] | ||
| 177 | { | ||
| 178 | Sw::PLL | ||
| 179 | } | ||
| 180 | } else if config.hse.is_some() { | 173 | } else if config.hse.is_some() { |
| 181 | Sw::HSE | 174 | Sw::HSE |
| 182 | } else { | 175 | } else { |
diff --git a/embassy-stm32/src/rcc/l4l5.rs b/embassy-stm32/src/rcc/l4l5.rs index 683b47c05..e54bfa0e6 100644 --- a/embassy-stm32/src/rcc/l4l5.rs +++ b/embassy-stm32/src/rcc/l4l5.rs | |||
| @@ -189,9 +189,6 @@ pub(crate) unsafe fn init(config: Config) { | |||
| 189 | ClockSrc::HSE => hse.unwrap(), | 189 | ClockSrc::HSE => hse.unwrap(), |
| 190 | ClockSrc::HSI => hsi16.unwrap(), | 190 | ClockSrc::HSI => hsi16.unwrap(), |
| 191 | ClockSrc::MSI => msi.unwrap(), | 191 | ClockSrc::MSI => msi.unwrap(), |
| 192 | #[cfg(rcc_l4)] | ||
| 193 | ClockSrc::PLL1_P => pll._r.unwrap(), | ||
| 194 | #[cfg(not(rcc_l4))] | ||
| 195 | ClockSrc::PLL1_R => pll._r.unwrap(), | 192 | ClockSrc::PLL1_R => pll._r.unwrap(), |
| 196 | }; | 193 | }; |
| 197 | 194 | ||
diff --git a/embassy-stm32/src/rcc/u5.rs b/embassy-stm32/src/rcc/u5.rs index aba5ca831..62bed8be2 100644 --- a/embassy-stm32/src/rcc/u5.rs +++ b/embassy-stm32/src/rcc/u5.rs | |||
| @@ -92,7 +92,7 @@ impl Into<Pllsrc> for PllSrc { | |||
| 92 | match self { | 92 | match self { |
| 93 | PllSrc::MSIS(..) => Pllsrc::MSIS, | 93 | PllSrc::MSIS(..) => Pllsrc::MSIS, |
| 94 | PllSrc::HSE(..) => Pllsrc::HSE, | 94 | PllSrc::HSE(..) => Pllsrc::HSE, |
| 95 | PllSrc::HSI16 => Pllsrc::HSI16, | 95 | PllSrc::HSI16 => Pllsrc::HSI, |
| 96 | } | 96 | } |
| 97 | } | 97 | } |
| 98 | } | 98 | } |
| @@ -102,7 +102,7 @@ impl Into<Sw> for ClockSrc { | |||
| 102 | match self { | 102 | match self { |
| 103 | ClockSrc::MSI(..) => Sw::MSIS, | 103 | ClockSrc::MSI(..) => Sw::MSIS, |
| 104 | ClockSrc::HSE(..) => Sw::HSE, | 104 | ClockSrc::HSE(..) => Sw::HSE, |
| 105 | ClockSrc::HSI16 => Sw::HSI16, | 105 | ClockSrc::HSI16 => Sw::HSI, |
| 106 | ClockSrc::PLL1R(..) => Sw::PLL1_R, | 106 | ClockSrc::PLL1R(..) => Sw::PLL1_R, |
| 107 | } | 107 | } |
| 108 | } | 108 | } |
diff --git a/embassy-stm32/src/rcc/wb.rs b/embassy-stm32/src/rcc/wb.rs index 64173fea8..2d0b2711a 100644 --- a/embassy-stm32/src/rcc/wb.rs +++ b/embassy-stm32/src/rcc/wb.rs | |||
| @@ -59,7 +59,7 @@ pub const WPAN_DEFAULT: Config = Config { | |||
| 59 | frequency: mhz(32), | 59 | frequency: mhz(32), |
| 60 | prediv: HsePrescaler::DIV1, | 60 | prediv: HsePrescaler::DIV1, |
| 61 | }), | 61 | }), |
| 62 | sys: Sysclk::PLL, | 62 | sys: Sysclk::PLL1_R, |
| 63 | mux: Some(PllMux { | 63 | mux: Some(PllMux { |
| 64 | source: PllSource::HSE, | 64 | source: PllSource::HSE, |
| 65 | prediv: Pllm::DIV2, | 65 | prediv: Pllm::DIV2, |
| @@ -87,8 +87,8 @@ impl Default for Config { | |||
| 87 | #[inline] | 87 | #[inline] |
| 88 | fn default() -> Config { | 88 | fn default() -> Config { |
| 89 | Config { | 89 | Config { |
| 90 | sys: Sysclk::HSI, | ||
| 90 | hse: None, | 91 | hse: None, |
| 91 | sys: Sysclk::HSI16, | ||
| 92 | mux: None, | 92 | mux: None, |
| 93 | pll: None, | 93 | pll: None, |
| 94 | pllsai: None, | 94 | pllsai: None, |
| @@ -113,7 +113,7 @@ pub(crate) unsafe fn init(config: Config) { | |||
| 113 | let mux_clk = config.mux.as_ref().map(|pll_mux| { | 113 | let mux_clk = config.mux.as_ref().map(|pll_mux| { |
| 114 | (match pll_mux.source { | 114 | (match pll_mux.source { |
| 115 | PllSource::HSE => hse_clk.unwrap(), | 115 | PllSource::HSE => hse_clk.unwrap(), |
| 116 | PllSource::HSI16 => HSI_FREQ, | 116 | PllSource::HSI => HSI_FREQ, |
| 117 | _ => unreachable!(), | 117 | _ => unreachable!(), |
| 118 | } / pll_mux.prediv) | 118 | } / pll_mux.prediv) |
| 119 | }); | 119 | }); |
| @@ -133,8 +133,8 @@ pub(crate) unsafe fn init(config: Config) { | |||
| 133 | 133 | ||
| 134 | let sys_clk = match config.sys { | 134 | let sys_clk = match config.sys { |
| 135 | Sysclk::HSE => hse_clk.unwrap(), | 135 | Sysclk::HSE => hse_clk.unwrap(), |
| 136 | Sysclk::HSI16 => HSI_FREQ, | 136 | Sysclk::HSI => HSI_FREQ, |
| 137 | Sysclk::PLL => pll_r.unwrap(), | 137 | Sysclk::PLL1_R => pll_r.unwrap(), |
| 138 | _ => unreachable!(), | 138 | _ => unreachable!(), |
| 139 | }; | 139 | }; |
| 140 | 140 | ||
| @@ -161,12 +161,12 @@ pub(crate) unsafe fn init(config: Config) { | |||
| 161 | let rcc = crate::pac::RCC; | 161 | let rcc = crate::pac::RCC; |
| 162 | 162 | ||
| 163 | let needs_hsi = if let Some(pll_mux) = &config.mux { | 163 | let needs_hsi = if let Some(pll_mux) = &config.mux { |
| 164 | pll_mux.source == PllSource::HSI16 | 164 | pll_mux.source == PllSource::HSI |
| 165 | } else { | 165 | } else { |
| 166 | false | 166 | false |
| 167 | }; | 167 | }; |
| 168 | 168 | ||
| 169 | if needs_hsi || config.sys == Sysclk::HSI16 { | 169 | if needs_hsi || config.sys == Sysclk::HSI { |
| 170 | rcc.cr().modify(|w| { | 170 | rcc.cr().modify(|w| { |
| 171 | w.set_hsion(true); | 171 | w.set_hsion(true); |
| 172 | }); | 172 | }); |
diff --git a/embassy-stm32/src/rcc/wba.rs b/embassy-stm32/src/rcc/wba.rs index 72f653617..aabf782e7 100644 --- a/embassy-stm32/src/rcc/wba.rs +++ b/embassy-stm32/src/rcc/wba.rs | |||
| @@ -26,7 +26,7 @@ impl Into<Pllsrc> for PllSrc { | |||
| 26 | fn into(self) -> Pllsrc { | 26 | fn into(self) -> Pllsrc { |
| 27 | match self { | 27 | match self { |
| 28 | PllSrc::HSE(..) => Pllsrc::HSE, | 28 | PllSrc::HSE(..) => Pllsrc::HSE, |
| 29 | PllSrc::HSI16 => Pllsrc::HSI16, | 29 | PllSrc::HSI16 => Pllsrc::HSI, |
| 30 | } | 30 | } |
| 31 | } | 31 | } |
| 32 | } | 32 | } |
| @@ -35,7 +35,7 @@ impl Into<Sw> for ClockSrc { | |||
| 35 | fn into(self) -> Sw { | 35 | fn into(self) -> Sw { |
| 36 | match self { | 36 | match self { |
| 37 | ClockSrc::HSE(..) => Sw::HSE, | 37 | ClockSrc::HSE(..) => Sw::HSE, |
| 38 | ClockSrc::HSI16 => Sw::HSI16, | 38 | ClockSrc::HSI16 => Sw::HSI, |
| 39 | } | 39 | } |
| 40 | } | 40 | } |
| 41 | } | 41 | } |
diff --git a/embassy-stm32/src/rcc/wl.rs b/embassy-stm32/src/rcc/wl.rs index c1f6a6b1e..401486bbb 100644 --- a/embassy-stm32/src/rcc/wl.rs +++ b/embassy-stm32/src/rcc/wl.rs | |||
| @@ -42,7 +42,7 @@ impl Default for Config { | |||
| 42 | shd_ahb_pre: AHBPrescaler::DIV1, | 42 | shd_ahb_pre: AHBPrescaler::DIV1, |
| 43 | apb1_pre: APBPrescaler::DIV1, | 43 | apb1_pre: APBPrescaler::DIV1, |
| 44 | apb2_pre: APBPrescaler::DIV1, | 44 | apb2_pre: APBPrescaler::DIV1, |
| 45 | adc_clock_source: AdcClockSource::HSI16, | 45 | adc_clock_source: AdcClockSource::HSI, |
| 46 | ls: Default::default(), | 46 | ls: Default::default(), |
| 47 | } | 47 | } |
| 48 | } | 48 | } |
| @@ -50,7 +50,7 @@ impl Default for Config { | |||
| 50 | 50 | ||
| 51 | pub(crate) unsafe fn init(config: Config) { | 51 | pub(crate) unsafe fn init(config: Config) { |
| 52 | let (sys_clk, sw, vos) = match config.mux { | 52 | let (sys_clk, sw, vos) = match config.mux { |
| 53 | ClockSrc::HSI16 => (HSI_FREQ, Sw::HSI16, VoltageScale::RANGE2), | 53 | ClockSrc::HSI16 => (HSI_FREQ, Sw::HSI, VoltageScale::RANGE2), |
| 54 | ClockSrc::HSE => (HSE_FREQ, Sw::HSE, VoltageScale::RANGE1), | 54 | ClockSrc::HSE => (HSE_FREQ, Sw::HSE, VoltageScale::RANGE1), |
| 55 | ClockSrc::MSI(range) => (msirange_to_hertz(range), Sw::MSI, msirange_to_vos(range)), | 55 | ClockSrc::MSI(range) => (msirange_to_hertz(range), Sw::MSI, msirange_to_vos(range)), |
| 56 | }; | 56 | }; |
diff --git a/embassy-stm32/src/sdmmc/mod.rs b/embassy-stm32/src/sdmmc/mod.rs index 11ff24645..a99a5707e 100644 --- a/embassy-stm32/src/sdmmc/mod.rs +++ b/embassy-stm32/src/sdmmc/mod.rs | |||
| @@ -1466,7 +1466,7 @@ cfg_if::cfg_if! { | |||
| 1466 | (SDMMC1) => { | 1466 | (SDMMC1) => { |
| 1467 | critical_section::with(|_| unsafe { | 1467 | critical_section::with(|_| unsafe { |
| 1468 | let sdmmcsel = crate::pac::RCC.dckcfgr2().read().sdmmc1sel(); | 1468 | let sdmmcsel = crate::pac::RCC.dckcfgr2().read().sdmmc1sel(); |
| 1469 | if sdmmcsel == crate::pac::rcc::vals::Sdmmcsel::SYSCLK { | 1469 | if sdmmcsel == crate::pac::rcc::vals::Sdmmcsel::SYS { |
| 1470 | crate::rcc::get_freqs().sys | 1470 | crate::rcc::get_freqs().sys |
| 1471 | } else { | 1471 | } else { |
| 1472 | crate::rcc::get_freqs().pll1_q.expect("PLL48 is required for SDMMC") | 1472 | crate::rcc::get_freqs().pll1_q.expect("PLL48 is required for SDMMC") |
| @@ -1476,7 +1476,7 @@ cfg_if::cfg_if! { | |||
| 1476 | (SDMMC2) => { | 1476 | (SDMMC2) => { |
| 1477 | critical_section::with(|_| unsafe { | 1477 | critical_section::with(|_| unsafe { |
| 1478 | let sdmmcsel = crate::pac::RCC.dckcfgr2().read().sdmmc2sel(); | 1478 | let sdmmcsel = crate::pac::RCC.dckcfgr2().read().sdmmc2sel(); |
| 1479 | if sdmmcsel == crate::pac::rcc::vals::Sdmmcsel::SYSCLK { | 1479 | if sdmmcsel == crate::pac::rcc::vals::Sdmmcsel::SYS { |
| 1480 | crate::rcc::get_freqs().sys | 1480 | crate::rcc::get_freqs().sys |
| 1481 | } else { | 1481 | } else { |
| 1482 | crate::rcc::get_freqs().pll1_q.expect("PLL48 is required for SDMMC") | 1482 | crate::rcc::get_freqs().pll1_q.expect("PLL48 is required for SDMMC") |
diff --git a/tests/stm32/src/common.rs b/tests/stm32/src/common.rs index 8dde71fb3..95b5318f7 100644 --- a/tests/stm32/src/common.rs +++ b/tests/stm32/src/common.rs | |||
| @@ -323,14 +323,7 @@ pub fn config() -> Config { | |||
| 323 | #[cfg(any(feature = "stm32l496zg", feature = "stm32l4a6zg", feature = "stm32l4r5zi"))] | 323 | #[cfg(any(feature = "stm32l496zg", feature = "stm32l4a6zg", feature = "stm32l4r5zi"))] |
| 324 | { | 324 | { |
| 325 | use embassy_stm32::rcc::*; | 325 | use embassy_stm32::rcc::*; |
| 326 | #[cfg(feature = "stm32l4r5zi")] | 326 | config.rcc.mux = ClockSrc::PLL1_R; |
| 327 | { | ||
| 328 | config.rcc.mux = ClockSrc::PLL1_R; | ||
| 329 | } | ||
| 330 | #[cfg(not(feature = "stm32l4r5zi"))] | ||
| 331 | { | ||
| 332 | config.rcc.mux = ClockSrc::PLL1_P; | ||
| 333 | } | ||
| 334 | config.rcc.hsi16 = true; | 327 | config.rcc.hsi16 = true; |
| 335 | config.rcc.pll = Some(Pll { | 328 | config.rcc.pll = Some(Pll { |
| 336 | source: PLLSource::HSI, | 329 | source: PLLSource::HSI, |
