aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--embassy-stm32/Cargo.toml4
-rw-r--r--embassy-stm32/src/rcc/f0.rs4
-rw-r--r--embassy-stm32/src/rcc/f1.rs9
-rw-r--r--embassy-stm32/src/rcc/f2.rs2
-rw-r--r--embassy-stm32/src/rcc/f3.rs4
-rw-r--r--embassy-stm32/src/rcc/f4.rs2
-rw-r--r--embassy-stm32/src/rcc/f7.rs2
-rw-r--r--embassy-stm32/src/rcc/l0l1.rs2
-rw-r--r--embassy-stm32/src/rcc/l4l5.rs14
-rw-r--r--examples/stm32l4/src/bin/rng.rs2
-rw-r--r--examples/stm32l4/src/bin/rtc.rs2
-rw-r--r--examples/stm32l4/src/bin/spe_adin1110_http_server.rs2
-rw-r--r--examples/stm32l4/src/bin/usb_serial.rs2
-rw-r--r--examples/stm32l5/src/bin/rng.rs4
-rw-r--r--examples/stm32l5/src/bin/usb_ethernet.rs4
-rw-r--r--examples/stm32l5/src/bin/usb_hid_mouse.rs4
-rw-r--r--examples/stm32l5/src/bin/usb_serial.rs4
-rw-r--r--tests/stm32/src/common.rs13
18 files changed, 44 insertions, 36 deletions
diff --git a/embassy-stm32/Cargo.toml b/embassy-stm32/Cargo.toml
index 861753bda..ab7b92219 100644
--- a/embassy-stm32/Cargo.toml
+++ b/embassy-stm32/Cargo.toml
@@ -58,7 +58,7 @@ rand_core = "0.6.3"
58sdio-host = "0.5.0" 58sdio-host = "0.5.0"
59embedded-sdmmc = { git = "https://github.com/embassy-rs/embedded-sdmmc-rs", rev = "a4f293d3a6f72158385f79c98634cb8a14d0d2fc", optional = true } 59embedded-sdmmc = { git = "https://github.com/embassy-rs/embedded-sdmmc-rs", rev = "a4f293d3a6f72158385f79c98634cb8a14d0d2fc", optional = true }
60critical-section = "1.1" 60critical-section = "1.1"
61stm32-metapac = { git = "https://github.com/embassy-rs/stm32-data-generated", tag = "stm32-data-c20cbde88fdfaef4645361d09df0cb63a4dc6462" } 61stm32-metapac = { git = "https://github.com/embassy-rs/stm32-data-generated", tag = "stm32-data-6f7449303bf8af60a63704d35df9af46006c6148" }
62vcell = "0.1.3" 62vcell = "0.1.3"
63bxcan = "0.7.0" 63bxcan = "0.7.0"
64nb = "1.0.0" 64nb = "1.0.0"
@@ -76,7 +76,7 @@ critical-section = { version = "1.1", features = ["std"] }
76[build-dependencies] 76[build-dependencies]
77proc-macro2 = "1.0.36" 77proc-macro2 = "1.0.36"
78quote = "1.0.15" 78quote = "1.0.15"
79stm32-metapac = { git = "https://github.com/embassy-rs/stm32-data-generated", tag = "stm32-data-c20cbde88fdfaef4645361d09df0cb63a4dc6462", default-features = false, features = ["metadata"]} 79stm32-metapac = { git = "https://github.com/embassy-rs/stm32-data-generated", tag = "stm32-data-6f7449303bf8af60a63704d35df9af46006c6148", default-features = false, features = ["metadata"]}
80 80
81 81
82[features] 82[features]
diff --git a/embassy-stm32/src/rcc/f0.rs b/embassy-stm32/src/rcc/f0.rs
index f7d605fd5..feaa2f4c0 100644
--- a/embassy-stm32/src/rcc/f0.rs
+++ b/embassy-stm32/src/rcc/f0.rs
@@ -127,7 +127,7 @@ pub(crate) unsafe fn init(config: Config) {
127 } 127 }
128 128
129 if config.usb_pll { 129 if config.usb_pll {
130 RCC.cfgr3().modify(|w| w.set_usbsw(Usbsw::PLLCLK)); 130 RCC.cfgr3().modify(|w| w.set_usbsw(Usbsw::PLL1_P));
131 } 131 }
132 // TODO: Option to use CRS (Clock Recovery) 132 // TODO: Option to use CRS (Clock Recovery)
133 133
@@ -140,7 +140,7 @@ pub(crate) unsafe fn init(config: Config) {
140 RCC.cfgr().modify(|w| { 140 RCC.cfgr().modify(|w| {
141 w.set_ppre(Ppre::from_bits(ppre_bits)); 141 w.set_ppre(Ppre::from_bits(ppre_bits));
142 w.set_hpre(Hpre::from_bits(hpre_bits)); 142 w.set_hpre(Hpre::from_bits(hpre_bits));
143 w.set_sw(Sw::PLL) 143 w.set_sw(Sw::PLL1_P)
144 }); 144 });
145 } else { 145 } else {
146 RCC.cfgr().modify(|w| { 146 RCC.cfgr().modify(|w| {
diff --git a/embassy-stm32/src/rcc/f1.rs b/embassy-stm32/src/rcc/f1.rs
index 367c88324..8d315f7b2 100644
--- a/embassy-stm32/src/rcc/f1.rs
+++ b/embassy-stm32/src/rcc/f1.rs
@@ -169,7 +169,14 @@ 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 Sw::PLL 172 #[cfg(not(rcc_f1cl))]
173 {
174 Sw::PLL1_P
175 }
176 #[cfg(rcc_f1cl)]
177 {
178 Sw::PLL
179 }
173 } else if config.hse.is_some() { 180 } else if config.hse.is_some() {
174 Sw::HSE 181 Sw::HSE
175 } else { 182 } else {
diff --git a/embassy-stm32/src/rcc/f2.rs b/embassy-stm32/src/rcc/f2.rs
index 06ea7e4f0..9a66e75a4 100644
--- a/embassy-stm32/src/rcc/f2.rs
+++ b/embassy-stm32/src/rcc/f2.rs
@@ -256,7 +256,7 @@ pub(crate) unsafe fn init(config: Config) {
256 ClockSrc::PLL => { 256 ClockSrc::PLL => {
257 RCC.cr().modify(|w| w.set_pllon(true)); 257 RCC.cr().modify(|w| w.set_pllon(true));
258 while !RCC.cr().read().pllrdy() {} 258 while !RCC.cr().read().pllrdy() {}
259 (pll_clocks.main_freq, Sw::PLL) 259 (pll_clocks.main_freq, Sw::PLL1_P)
260 } 260 }
261 }; 261 };
262 // RM0033 Figure 9. Clock tree suggests max SYSCLK/HCLK is 168 MHz, but datasheet specifies PLL 262 // RM0033 Figure 9. Clock tree suggests max SYSCLK/HCLK is 168 MHz, but datasheet specifies PLL
diff --git a/embassy-stm32/src/rcc/f3.rs b/embassy-stm32/src/rcc/f3.rs
index 3a314009d..9dcd50df4 100644
--- a/embassy-stm32/src/rcc/f3.rs
+++ b/embassy-stm32/src/rcc/f3.rs
@@ -214,7 +214,7 @@ pub(crate) unsafe fn init(config: Config) {
214 // CFGR has been written before (PLL, PLL48, clock divider) don't overwrite these settings 214 // CFGR has been written before (PLL, PLL48, clock divider) don't overwrite these settings
215 RCC.cfgr().modify(|w| { 215 RCC.cfgr().modify(|w| {
216 w.set_sw(match (pll_config, config.hse) { 216 w.set_sw(match (pll_config, config.hse) {
217 (Some(_), _) => Sw::PLL, 217 (Some(_), _) => Sw::PLL1_P,
218 (None, Some(_)) => Sw::HSE, 218 (None, Some(_)) => Sw::HSE,
219 (None, None) => Sw::HSI, 219 (None, None) => Sw::HSI,
220 }) 220 })
@@ -271,7 +271,7 @@ pub(crate) unsafe fn init(config: Config) {
271 pll_config.unwrap(); 271 pll_config.unwrap();
272 assert!((pclk2 == sysclk) || (pclk2 * 2u32 == sysclk)); 272 assert!((pclk2 == sysclk) || (pclk2 * 2u32 == sysclk));
273 273
274 RCC.cfgr3().modify(|w| w.set_hrtim1sw(Timsw::PLL)); 274 RCC.cfgr3().modify(|w| w.set_hrtim1sw(Timsw::PLL1_P));
275 275
276 Some(sysclk * 2u32) 276 Some(sysclk * 2u32)
277 } 277 }
diff --git a/embassy-stm32/src/rcc/f4.rs b/embassy-stm32/src/rcc/f4.rs
index b0585153e..eb51dc89a 100644
--- a/embassy-stm32/src/rcc/f4.rs
+++ b/embassy-stm32/src/rcc/f4.rs
@@ -328,7 +328,7 @@ pub(crate) unsafe fn init(config: Config) {
328 328
329 RCC.cfgr().modify(|w| { 329 RCC.cfgr().modify(|w| {
330 w.set_sw(if sysclk_on_pll { 330 w.set_sw(if sysclk_on_pll {
331 Sw::PLL 331 Sw::PLL1_P
332 } else if config.hse.is_some() { 332 } else if config.hse.is_some() {
333 Sw::HSE 333 Sw::HSE
334 } else { 334 } else {
diff --git a/embassy-stm32/src/rcc/f7.rs b/embassy-stm32/src/rcc/f7.rs
index 5ed74fe9f..7c6c150d9 100644
--- a/embassy-stm32/src/rcc/f7.rs
+++ b/embassy-stm32/src/rcc/f7.rs
@@ -247,7 +247,7 @@ pub(crate) unsafe fn init(config: Config) {
247 247
248 RCC.cfgr().modify(|w| { 248 RCC.cfgr().modify(|w| {
249 w.set_sw(if sysclk_on_pll { 249 w.set_sw(if sysclk_on_pll {
250 Sw::PLL 250 Sw::PLL1_P
251 } else if config.hse.is_some() { 251 } else if config.hse.is_some() {
252 Sw::HSE 252 Sw::HSE
253 } else { 253 } else {
diff --git a/embassy-stm32/src/rcc/l0l1.rs b/embassy-stm32/src/rcc/l0l1.rs
index 333e9eea9..f10c5962a 100644
--- a/embassy-stm32/src/rcc/l0l1.rs
+++ b/embassy-stm32/src/rcc/l0l1.rs
@@ -131,7 +131,7 @@ pub(crate) unsafe fn init(config: Config) {
131 RCC.cr().modify(|w| w.set_pllon(true)); 131 RCC.cr().modify(|w| w.set_pllon(true));
132 while !RCC.cr().read().pllrdy() {} 132 while !RCC.cr().read().pllrdy() {}
133 133
134 (freq, Sw::PLL) 134 (freq, Sw::PLL1_P)
135 } 135 }
136 }; 136 };
137 137
diff --git a/embassy-stm32/src/rcc/l4l5.rs b/embassy-stm32/src/rcc/l4l5.rs
index d99bc45c5..a10169d6c 100644
--- a/embassy-stm32/src/rcc/l4l5.rs
+++ b/embassy-stm32/src/rcc/l4l5.rs
@@ -187,12 +187,12 @@ pub(crate) unsafe fn init(config: Config) {
187 187
188 let sys_clk = match config.mux { 188 let sys_clk = match config.mux {
189 ClockSrc::HSE => hse.unwrap(), 189 ClockSrc::HSE => hse.unwrap(),
190 #[cfg(rcc_l5)]
191 ClockSrc::HSI16 => hsi16.unwrap(),
192 #[cfg(not(rcc_l5))]
193 ClockSrc::HSI => hsi16.unwrap(), 190 ClockSrc::HSI => hsi16.unwrap(),
194 ClockSrc::MSI => msi.unwrap(), 191 ClockSrc::MSI => msi.unwrap(),
195 ClockSrc::PLL => pll._r.unwrap(), 192 #[cfg(rcc_l4)]
193 ClockSrc::PLL1_P => pll._r.unwrap(),
194 #[cfg(not(rcc_l4))]
195 ClockSrc::PLL1_R => pll._r.unwrap(),
196 }; 196 };
197 197
198 #[cfg(stm32l4)] 198 #[cfg(stm32l4)]
@@ -203,9 +203,6 @@ pub(crate) unsafe fn init(config: Config) {
203 Clk48Src::HSI48 => hsi48, 203 Clk48Src::HSI48 => hsi48,
204 Clk48Src::MSI => msi, 204 Clk48Src::MSI => msi,
205 Clk48Src::PLLSAI1_Q => pllsai1._q, 205 Clk48Src::PLLSAI1_Q => pllsai1._q,
206 #[cfg(rcc_l5)]
207 Clk48Src::PLL_Q => pll._q,
208 #[cfg(not(rcc_l5))]
209 Clk48Src::PLL1_Q => pll._q, 206 Clk48Src::PLL1_Q => pll._q,
210 }; 207 };
211 208
@@ -363,9 +360,6 @@ fn init_pll(instance: PllInstance, config: Option<Pll>, input: &PllInput) -> Pll
363 let pll_src = match pll.source { 360 let pll_src = match pll.source {
364 PLLSource::NONE => panic!("must not select PLL source as NONE"), 361 PLLSource::NONE => panic!("must not select PLL source as NONE"),
365 PLLSource::HSE => input.hse, 362 PLLSource::HSE => input.hse,
366 #[cfg(rcc_l5)]
367 PLLSource::HSI16 => input.hsi16,
368 #[cfg(not(rcc_l5))]
369 PLLSource::HSI => input.hsi16, 363 PLLSource::HSI => input.hsi16,
370 PLLSource::MSI => input.msi, 364 PLLSource::MSI => input.msi,
371 }; 365 };
diff --git a/examples/stm32l4/src/bin/rng.rs b/examples/stm32l4/src/bin/rng.rs
index 49ae15e6b..d8a4e825f 100644
--- a/examples/stm32l4/src/bin/rng.rs
+++ b/examples/stm32l4/src/bin/rng.rs
@@ -16,7 +16,7 @@ bind_interrupts!(struct Irqs {
16#[embassy_executor::main] 16#[embassy_executor::main]
17async fn main(_spawner: Spawner) { 17async fn main(_spawner: Spawner) {
18 let mut config = Config::default(); 18 let mut config = Config::default();
19 config.rcc.mux = ClockSrc::PLL; 19 config.rcc.mux = ClockSrc::PLL1_R;
20 config.rcc.hsi16 = true; 20 config.rcc.hsi16 = true;
21 config.rcc.pll = Some(Pll { 21 config.rcc.pll = Some(Pll {
22 source: PLLSource::HSI, 22 source: PLLSource::HSI,
diff --git a/examples/stm32l4/src/bin/rtc.rs b/examples/stm32l4/src/bin/rtc.rs
index a1b41f84a..fec0a349d 100644
--- a/examples/stm32l4/src/bin/rtc.rs
+++ b/examples/stm32l4/src/bin/rtc.rs
@@ -15,7 +15,7 @@ use {defmt_rtt as _, panic_probe as _};
15#[embassy_executor::main] 15#[embassy_executor::main]
16async fn main(_spawner: Spawner) { 16async fn main(_spawner: Spawner) {
17 let mut config = Config::default(); 17 let mut config = Config::default();
18 config.rcc.mux = ClockSrc::PLL; 18 config.rcc.mux = ClockSrc::PLL1_R;
19 config.rcc.hse = Some(Hertz::mhz(8)); 19 config.rcc.hse = Some(Hertz::mhz(8));
20 config.rcc.pll = Some(Pll { 20 config.rcc.pll = Some(Pll {
21 source: PLLSource::HSE, 21 source: PLLSource::HSE,
diff --git a/examples/stm32l4/src/bin/spe_adin1110_http_server.rs b/examples/stm32l4/src/bin/spe_adin1110_http_server.rs
index 278d65438..3c9d2cfc0 100644
--- a/examples/stm32l4/src/bin/spe_adin1110_http_server.rs
+++ b/examples/stm32l4/src/bin/spe_adin1110_http_server.rs
@@ -77,7 +77,7 @@ async fn main(spawner: Spawner) {
77 77
78 // 80Mhz clock (Source: 8 / SrcDiv: 1 * PLLMul 20 / ClkDiv 2) 78 // 80Mhz clock (Source: 8 / SrcDiv: 1 * PLLMul 20 / ClkDiv 2)
79 // 80MHz highest frequency for flash 0 wait. 79 // 80MHz highest frequency for flash 0 wait.
80 config.rcc.mux = ClockSrc::PLL; 80 config.rcc.mux = ClockSrc::PLL1_R;
81 config.rcc.hse = Some(Hertz::mhz(8)); 81 config.rcc.hse = Some(Hertz::mhz(8));
82 config.rcc.pll = Some(Pll { 82 config.rcc.pll = Some(Pll {
83 source: PLLSource::HSE, 83 source: PLLSource::HSE,
diff --git a/examples/stm32l4/src/bin/usb_serial.rs b/examples/stm32l4/src/bin/usb_serial.rs
index 34361d112..282476547 100644
--- a/examples/stm32l4/src/bin/usb_serial.rs
+++ b/examples/stm32l4/src/bin/usb_serial.rs
@@ -24,7 +24,7 @@ async fn main(_spawner: Spawner) {
24 24
25 let mut config = Config::default(); 25 let mut config = Config::default();
26 config.rcc.hsi48 = true; 26 config.rcc.hsi48 = true;
27 config.rcc.mux = ClockSrc::PLL; 27 config.rcc.mux = ClockSrc::PLL1_R;
28 config.rcc.hsi16 = true; 28 config.rcc.hsi16 = true;
29 config.rcc.pll = Some(Pll { 29 config.rcc.pll = Some(Pll {
30 source: PLLSource::HSI, 30 source: PLLSource::HSI,
diff --git a/examples/stm32l5/src/bin/rng.rs b/examples/stm32l5/src/bin/rng.rs
index e6233dbe6..b57f438ff 100644
--- a/examples/stm32l5/src/bin/rng.rs
+++ b/examples/stm32l5/src/bin/rng.rs
@@ -17,10 +17,10 @@ bind_interrupts!(struct Irqs {
17async fn main(_spawner: Spawner) { 17async fn main(_spawner: Spawner) {
18 let mut config = Config::default(); 18 let mut config = Config::default();
19 config.rcc.hsi16 = true; 19 config.rcc.hsi16 = true;
20 config.rcc.mux = ClockSrc::PLL; 20 config.rcc.mux = ClockSrc::PLL1_R;
21 config.rcc.pll = Some(Pll { 21 config.rcc.pll = Some(Pll {
22 // 64Mhz clock (16 / 1 * 8 / 2) 22 // 64Mhz clock (16 / 1 * 8 / 2)
23 source: PLLSource::HSI16, 23 source: PLLSource::HSI,
24 prediv: PllPreDiv::DIV1, 24 prediv: PllPreDiv::DIV1,
25 mul: PllMul::MUL8, 25 mul: PllMul::MUL8,
26 divp: None, 26 divp: None,
diff --git a/examples/stm32l5/src/bin/usb_ethernet.rs b/examples/stm32l5/src/bin/usb_ethernet.rs
index baa86640e..bbe44642b 100644
--- a/examples/stm32l5/src/bin/usb_ethernet.rs
+++ b/examples/stm32l5/src/bin/usb_ethernet.rs
@@ -46,10 +46,10 @@ async fn net_task(stack: &'static Stack<Device<'static, MTU>>) -> ! {
46async fn main(spawner: Spawner) { 46async fn main(spawner: Spawner) {
47 let mut config = Config::default(); 47 let mut config = Config::default();
48 config.rcc.hsi16 = true; 48 config.rcc.hsi16 = true;
49 config.rcc.mux = ClockSrc::PLL; 49 config.rcc.mux = ClockSrc::PLL1_R;
50 config.rcc.pll = Some(Pll { 50 config.rcc.pll = Some(Pll {
51 // 80Mhz clock (16 / 1 * 10 / 2) 51 // 80Mhz clock (16 / 1 * 10 / 2)
52 source: PLLSource::HSI16, 52 source: PLLSource::HSI,
53 prediv: PllPreDiv::DIV1, 53 prediv: PllPreDiv::DIV1,
54 mul: PllMul::MUL10, 54 mul: PllMul::MUL10,
55 divp: None, 55 divp: None,
diff --git a/examples/stm32l5/src/bin/usb_hid_mouse.rs b/examples/stm32l5/src/bin/usb_hid_mouse.rs
index 1ce7e3e49..44e29ee9c 100644
--- a/examples/stm32l5/src/bin/usb_hid_mouse.rs
+++ b/examples/stm32l5/src/bin/usb_hid_mouse.rs
@@ -23,10 +23,10 @@ bind_interrupts!(struct Irqs {
23async fn main(_spawner: Spawner) { 23async fn main(_spawner: Spawner) {
24 let mut config = Config::default(); 24 let mut config = Config::default();
25 config.rcc.hsi16 = true; 25 config.rcc.hsi16 = true;
26 config.rcc.mux = ClockSrc::PLL; 26 config.rcc.mux = ClockSrc::PLL1_R;
27 config.rcc.pll = Some(Pll { 27 config.rcc.pll = Some(Pll {
28 // 80Mhz clock (16 / 1 * 10 / 2) 28 // 80Mhz clock (16 / 1 * 10 / 2)
29 source: PLLSource::HSI16, 29 source: PLLSource::HSI,
30 prediv: PllPreDiv::DIV1, 30 prediv: PllPreDiv::DIV1,
31 mul: PllMul::MUL10, 31 mul: PllMul::MUL10,
32 divp: None, 32 divp: None,
diff --git a/examples/stm32l5/src/bin/usb_serial.rs b/examples/stm32l5/src/bin/usb_serial.rs
index 03d277a22..612b891ac 100644
--- a/examples/stm32l5/src/bin/usb_serial.rs
+++ b/examples/stm32l5/src/bin/usb_serial.rs
@@ -21,10 +21,10 @@ bind_interrupts!(struct Irqs {
21async fn main(_spawner: Spawner) { 21async fn main(_spawner: Spawner) {
22 let mut config = Config::default(); 22 let mut config = Config::default();
23 config.rcc.hsi16 = true; 23 config.rcc.hsi16 = true;
24 config.rcc.mux = ClockSrc::PLL; 24 config.rcc.mux = ClockSrc::PLL1_R;
25 config.rcc.pll = Some(Pll { 25 config.rcc.pll = Some(Pll {
26 // 80Mhz clock (16 / 1 * 10 / 2) 26 // 80Mhz clock (16 / 1 * 10 / 2)
27 source: PLLSource::HSI16, 27 source: PLLSource::HSI,
28 prediv: PllPreDiv::DIV1, 28 prediv: PllPreDiv::DIV1,
29 mul: PllMul::MUL10, 29 mul: PllMul::MUL10,
30 divp: None, 30 divp: None,
diff --git a/tests/stm32/src/common.rs b/tests/stm32/src/common.rs
index 52edae3ac..9f1307ce5 100644
--- a/tests/stm32/src/common.rs
+++ b/tests/stm32/src/common.rs
@@ -295,7 +295,14 @@ pub fn config() -> Config {
295 #[cfg(any(feature = "stm32l496zg", feature = "stm32l4a6zg", feature = "stm32l4r5zi"))] 295 #[cfg(any(feature = "stm32l496zg", feature = "stm32l4a6zg", feature = "stm32l4r5zi"))]
296 { 296 {
297 use embassy_stm32::rcc::*; 297 use embassy_stm32::rcc::*;
298 config.rcc.mux = ClockSrc::PLL; 298 #[cfg(feature = "stm32l4r5zi")]
299 {
300 config.rcc.mux = ClockSrc::PLL1_R;
301 }
302 #[cfg(not(feature = "stm32l4r5zi"))]
303 {
304 config.rcc.mux = ClockSrc::PLL1_P;
305 }
299 config.rcc.hsi16 = true; 306 config.rcc.hsi16 = true;
300 config.rcc.pll = Some(Pll { 307 config.rcc.pll = Some(Pll {
301 source: PLLSource::HSI, 308 source: PLLSource::HSI,
@@ -320,10 +327,10 @@ pub fn config() -> Config {
320 { 327 {
321 use embassy_stm32::rcc::*; 328 use embassy_stm32::rcc::*;
322 config.rcc.hsi16 = true; 329 config.rcc.hsi16 = true;
323 config.rcc.mux = ClockSrc::PLL; 330 config.rcc.mux = ClockSrc::PLL1_R;
324 config.rcc.pll = Some(Pll { 331 config.rcc.pll = Some(Pll {
325 // 110Mhz clock (16 / 4 * 55 / 2) 332 // 110Mhz clock (16 / 4 * 55 / 2)
326 source: PLLSource::HSI16, 333 source: PLLSource::HSI,
327 prediv: PllPreDiv::DIV4, 334 prediv: PllPreDiv::DIV4,
328 mul: PllMul::MUL55, 335 mul: PllMul::MUL55,
329 divp: None, 336 divp: None,