aboutsummaryrefslogtreecommitdiff
path: root/examples
diff options
context:
space:
mode:
authorDario Nieuwenhuis <[email protected]>2023-11-13 01:08:27 +0000
committerGitHub <[email protected]>2023-11-13 01:08:27 +0000
commitac7134ed0d304282d2b10b1efff316426757fdab (patch)
tree69cd68e35968cf0a5da5000308e338bdbad3724a /examples
parentf00e97a5f14b25d261eafba7cbc63b035c938996 (diff)
parentace52210802a18a551f506bc3ad163703e3f9efa (diff)
Merge pull request #2178 from embassy-rs/rcc-no-spaghetti
stm32/rcc: unify f2 into f4/f7.
Diffstat (limited to 'examples')
-rw-r--r--examples/stm32f2/src/bin/pll.rs55
-rw-r--r--examples/stm32f4/src/bin/eth.rs2
-rw-r--r--examples/stm32f4/src/bin/sdmmc.rs4
-rw-r--r--examples/stm32f4/src/bin/usb_ethernet.rs4
-rw-r--r--examples/stm32f4/src/bin/usb_raw.rs4
-rw-r--r--examples/stm32f4/src/bin/usb_serial.rs4
-rw-r--r--examples/stm32f7/src/bin/eth.rs2
-rw-r--r--examples/stm32f7/src/bin/sdmmc.rs4
-rw-r--r--examples/stm32f7/src/bin/usb_serial.rs4
9 files changed, 43 insertions, 40 deletions
diff --git a/examples/stm32f2/src/bin/pll.rs b/examples/stm32f2/src/bin/pll.rs
index feec90016..aae7637dc 100644
--- a/examples/stm32f2/src/bin/pll.rs
+++ b/examples/stm32f2/src/bin/pll.rs
@@ -6,9 +6,6 @@ use core::convert::TryFrom;
6 6
7use defmt::*; 7use defmt::*;
8use embassy_executor::Spawner; 8use embassy_executor::Spawner;
9use embassy_stm32::rcc::{
10 APBPrescaler, ClockSrc, HSEConfig, HSESrc, Pll, PllMul, PllPDiv, PllPreDiv, PllQDiv, PllSource,
11};
12use embassy_stm32::time::Hertz; 9use embassy_stm32::time::Hertz;
13use embassy_stm32::Config; 10use embassy_stm32::Config;
14use embassy_time::Timer; 11use embassy_time::Timer;
@@ -19,29 +16,35 @@ async fn main(_spawner: Spawner) {
19 // Example config for maximum performance on a NUCLEO-F207ZG board 16 // Example config for maximum performance on a NUCLEO-F207ZG board
20 17
21 let mut config = Config::default(); 18 let mut config = Config::default();
22 // By default, HSE on the board comes from a 8 MHz clock signal (not a crystal) 19
23 config.rcc.hse = Some(HSEConfig { 20 {
24 frequency: Hertz(8_000_000), 21 use embassy_stm32::rcc::*;
25 source: HSESrc::Bypass, 22
26 }); 23 // By default, HSE on the board comes from a 8 MHz clock signal (not a crystal)
27 // PLL uses HSE as the clock source 24 config.rcc.hse = Some(Hse {
28 config.rcc.pll_mux = PllSource::HSE; 25 freq: Hertz(8_000_000),
29 config.rcc.pll = Pll { 26 mode: HseMode::Bypass,
30 // 8 MHz clock source / 8 = 1 MHz PLL input 27 });
31 pre_div: unwrap!(PllPreDiv::try_from(8)), 28 // PLL uses HSE as the clock source
32 // 1 MHz PLL input * 240 = 240 MHz PLL VCO 29 config.rcc.pll_src = PllSource::HSE;
33 mul: unwrap!(PllMul::try_from(240)), 30 config.rcc.pll = Some(Pll {
34 // 240 MHz PLL VCO / 2 = 120 MHz main PLL output 31 // 8 MHz clock source / 8 = 1 MHz PLL input
35 divp: PllPDiv::DIV2, 32 prediv: unwrap!(PllPreDiv::try_from(8)),
36 // 240 MHz PLL VCO / 5 = 48 MHz PLL48 output 33 // 1 MHz PLL input * 240 = 240 MHz PLL VCO
37 divq: PllQDiv::DIV5, 34 mul: unwrap!(PllMul::try_from(240)),
38 }; 35 // 240 MHz PLL VCO / 2 = 120 MHz main PLL output
39 // System clock comes from PLL (= the 120 MHz main PLL output) 36 divp: Some(PllPDiv::DIV2),
40 config.rcc.mux = ClockSrc::PLL; 37 // 240 MHz PLL VCO / 5 = 48 MHz PLL48 output
41 // 120 MHz / 4 = 30 MHz APB1 frequency 38 divq: Some(PllQDiv::DIV5),
42 config.rcc.apb1_pre = APBPrescaler::DIV4; 39 divr: None,
43 // 120 MHz / 2 = 60 MHz APB2 frequency 40 });
44 config.rcc.apb2_pre = APBPrescaler::DIV2; 41 // System clock comes from PLL (= the 120 MHz main PLL output)
42 config.rcc.sys = Sysclk::PLL1_P;
43 // 120 MHz / 4 = 30 MHz APB1 frequency
44 config.rcc.apb1_pre = APBPrescaler::DIV4;
45 // 120 MHz / 2 = 60 MHz APB2 frequency
46 config.rcc.apb2_pre = APBPrescaler::DIV2;
47 }
45 48
46 let _p = embassy_stm32::init(config); 49 let _p = embassy_stm32::init(config);
47 50
diff --git a/examples/stm32f4/src/bin/eth.rs b/examples/stm32f4/src/bin/eth.rs
index 1747bbf4b..088d83c06 100644
--- a/examples/stm32f4/src/bin/eth.rs
+++ b/examples/stm32f4/src/bin/eth.rs
@@ -42,7 +42,7 @@ async fn main(spawner: Spawner) -> ! {
42 config.rcc.pll = Some(Pll { 42 config.rcc.pll = Some(Pll {
43 prediv: PllPreDiv::DIV4, 43 prediv: PllPreDiv::DIV4,
44 mul: PllMul::MUL180, 44 mul: PllMul::MUL180,
45 divp: Some(Pllp::DIV2), // 8mhz / 4 * 180 / 2 = 180Mhz. 45 divp: Some(PllPDiv::DIV2), // 8mhz / 4 * 180 / 2 = 180Mhz.
46 divq: None, 46 divq: None,
47 divr: None, 47 divr: None,
48 }); 48 });
diff --git a/examples/stm32f4/src/bin/sdmmc.rs b/examples/stm32f4/src/bin/sdmmc.rs
index 37e42384b..91747b2d5 100644
--- a/examples/stm32f4/src/bin/sdmmc.rs
+++ b/examples/stm32f4/src/bin/sdmmc.rs
@@ -30,8 +30,8 @@ async fn main(_spawner: Spawner) {
30 config.rcc.pll = Some(Pll { 30 config.rcc.pll = Some(Pll {
31 prediv: PllPreDiv::DIV4, 31 prediv: PllPreDiv::DIV4,
32 mul: PllMul::MUL168, 32 mul: PllMul::MUL168,
33 divp: Some(Pllp::DIV2), // 8mhz / 4 * 168 / 2 = 168Mhz. 33 divp: Some(PllPDiv::DIV2), // 8mhz / 4 * 168 / 2 = 168Mhz.
34 divq: Some(Pllq::DIV7), // 8mhz / 4 * 168 / 7 = 48Mhz. 34 divq: Some(PllQDiv::DIV7), // 8mhz / 4 * 168 / 7 = 48Mhz.
35 divr: None, 35 divr: None,
36 }); 36 });
37 config.rcc.ahb_pre = AHBPrescaler::DIV1; 37 config.rcc.ahb_pre = AHBPrescaler::DIV1;
diff --git a/examples/stm32f4/src/bin/usb_ethernet.rs b/examples/stm32f4/src/bin/usb_ethernet.rs
index 34407b95a..6bf5b1cba 100644
--- a/examples/stm32f4/src/bin/usb_ethernet.rs
+++ b/examples/stm32f4/src/bin/usb_ethernet.rs
@@ -56,8 +56,8 @@ async fn main(spawner: Spawner) {
56 config.rcc.pll = Some(Pll { 56 config.rcc.pll = Some(Pll {
57 prediv: PllPreDiv::DIV4, 57 prediv: PllPreDiv::DIV4,
58 mul: PllMul::MUL168, 58 mul: PllMul::MUL168,
59 divp: Some(Pllp::DIV2), // 8mhz / 4 * 168 / 2 = 168Mhz. 59 divp: Some(PllPDiv::DIV2), // 8mhz / 4 * 168 / 2 = 168Mhz.
60 divq: Some(Pllq::DIV7), // 8mhz / 4 * 168 / 7 = 48Mhz. 60 divq: Some(PllQDiv::DIV7), // 8mhz / 4 * 168 / 7 = 48Mhz.
61 divr: None, 61 divr: None,
62 }); 62 });
63 config.rcc.ahb_pre = AHBPrescaler::DIV1; 63 config.rcc.ahb_pre = AHBPrescaler::DIV1;
diff --git a/examples/stm32f4/src/bin/usb_raw.rs b/examples/stm32f4/src/bin/usb_raw.rs
index 689aea4fc..719b22bb9 100644
--- a/examples/stm32f4/src/bin/usb_raw.rs
+++ b/examples/stm32f4/src/bin/usb_raw.rs
@@ -85,8 +85,8 @@ async fn main(_spawner: Spawner) {
85 config.rcc.pll = Some(Pll { 85 config.rcc.pll = Some(Pll {
86 prediv: PllPreDiv::DIV4, 86 prediv: PllPreDiv::DIV4,
87 mul: PllMul::MUL168, 87 mul: PllMul::MUL168,
88 divp: Some(Pllp::DIV2), // 8mhz / 4 * 168 / 2 = 168Mhz. 88 divp: Some(PllPDiv::DIV2), // 8mhz / 4 * 168 / 2 = 168Mhz.
89 divq: Some(Pllq::DIV7), // 8mhz / 4 * 168 / 7 = 48Mhz. 89 divq: Some(PllQDiv::DIV7), // 8mhz / 4 * 168 / 7 = 48Mhz.
90 divr: None, 90 divr: None,
91 }); 91 });
92 config.rcc.ahb_pre = AHBPrescaler::DIV1; 92 config.rcc.ahb_pre = AHBPrescaler::DIV1;
diff --git a/examples/stm32f4/src/bin/usb_serial.rs b/examples/stm32f4/src/bin/usb_serial.rs
index 3e05b0ef2..e2ccc9142 100644
--- a/examples/stm32f4/src/bin/usb_serial.rs
+++ b/examples/stm32f4/src/bin/usb_serial.rs
@@ -32,8 +32,8 @@ async fn main(_spawner: Spawner) {
32 config.rcc.pll = Some(Pll { 32 config.rcc.pll = Some(Pll {
33 prediv: PllPreDiv::DIV4, 33 prediv: PllPreDiv::DIV4,
34 mul: PllMul::MUL168, 34 mul: PllMul::MUL168,
35 divp: Some(Pllp::DIV2), // 8mhz / 4 * 168 / 2 = 168Mhz. 35 divp: Some(PllPDiv::DIV2), // 8mhz / 4 * 168 / 2 = 168Mhz.
36 divq: Some(Pllq::DIV7), // 8mhz / 4 * 168 / 7 = 48Mhz. 36 divq: Some(PllQDiv::DIV7), // 8mhz / 4 * 168 / 7 = 48Mhz.
37 divr: None, 37 divr: None,
38 }); 38 });
39 config.rcc.ahb_pre = AHBPrescaler::DIV1; 39 config.rcc.ahb_pre = AHBPrescaler::DIV1;
diff --git a/examples/stm32f7/src/bin/eth.rs b/examples/stm32f7/src/bin/eth.rs
index 7c6c419a6..dd0069447 100644
--- a/examples/stm32f7/src/bin/eth.rs
+++ b/examples/stm32f7/src/bin/eth.rs
@@ -43,7 +43,7 @@ async fn main(spawner: Spawner) -> ! {
43 config.rcc.pll = Some(Pll { 43 config.rcc.pll = Some(Pll {
44 prediv: PllPreDiv::DIV4, 44 prediv: PllPreDiv::DIV4,
45 mul: PllMul::MUL216, 45 mul: PllMul::MUL216,
46 divp: Some(Pllp::DIV2), // 8mhz / 4 * 216 / 2 = 216Mhz 46 divp: Some(PllPDiv::DIV2), // 8mhz / 4 * 216 / 2 = 216Mhz
47 divq: None, 47 divq: None,
48 divr: None, 48 divr: None,
49 }); 49 });
diff --git a/examples/stm32f7/src/bin/sdmmc.rs b/examples/stm32f7/src/bin/sdmmc.rs
index 430aa781f..990de0ab1 100644
--- a/examples/stm32f7/src/bin/sdmmc.rs
+++ b/examples/stm32f7/src/bin/sdmmc.rs
@@ -26,8 +26,8 @@ async fn main(_spawner: Spawner) {
26 config.rcc.pll = Some(Pll { 26 config.rcc.pll = Some(Pll {
27 prediv: PllPreDiv::DIV4, 27 prediv: PllPreDiv::DIV4,
28 mul: PllMul::MUL216, 28 mul: PllMul::MUL216,
29 divp: Some(Pllp::DIV2), // 8mhz / 4 * 216 / 2 = 216Mhz 29 divp: Some(PllPDiv::DIV2), // 8mhz / 4 * 216 / 2 = 216Mhz
30 divq: Some(Pllq::DIV9), // 8mhz / 4 * 216 / 9 = 48Mhz 30 divq: Some(PllQDiv::DIV9), // 8mhz / 4 * 216 / 9 = 48Mhz
31 divr: None, 31 divr: None,
32 }); 32 });
33 config.rcc.ahb_pre = AHBPrescaler::DIV1; 33 config.rcc.ahb_pre = AHBPrescaler::DIV1;
diff --git a/examples/stm32f7/src/bin/usb_serial.rs b/examples/stm32f7/src/bin/usb_serial.rs
index 6aca732b4..4991edbf0 100644
--- a/examples/stm32f7/src/bin/usb_serial.rs
+++ b/examples/stm32f7/src/bin/usb_serial.rs
@@ -32,8 +32,8 @@ async fn main(_spawner: Spawner) {
32 config.rcc.pll = Some(Pll { 32 config.rcc.pll = Some(Pll {
33 prediv: PllPreDiv::DIV4, 33 prediv: PllPreDiv::DIV4,
34 mul: PllMul::MUL216, 34 mul: PllMul::MUL216,
35 divp: Some(Pllp::DIV2), // 8mhz / 4 * 216 / 2 = 216Mhz 35 divp: Some(PllPDiv::DIV2), // 8mhz / 4 * 216 / 2 = 216Mhz
36 divq: Some(Pllq::DIV9), // 8mhz / 4 * 216 / 9 = 48Mhz 36 divq: Some(PllQDiv::DIV9), // 8mhz / 4 * 216 / 9 = 48Mhz
37 divr: None, 37 divr: None,
38 }); 38 });
39 config.rcc.ahb_pre = AHBPrescaler::DIV1; 39 config.rcc.ahb_pre = AHBPrescaler::DIV1;