aboutsummaryrefslogtreecommitdiff
path: root/examples
diff options
context:
space:
mode:
authorDario Nieuwenhuis <[email protected]>2023-10-15 03:08:14 +0200
committerDario Nieuwenhuis <[email protected]>2023-10-15 03:08:49 +0200
commit8a10948ce97fa3b3c29cf55c91585789dd0f360c (patch)
tree4ad52bcc18d35459e4431b4f65c66c243a152efb /examples
parent7045c5317091c8e81b0dbe64c9788bb2667472b1 (diff)
stm32/rcc: port L4 to the "flattened" API like h5/h7.
Diffstat (limited to 'examples')
-rw-r--r--examples/stm32l4/src/bin/rng.rs20
-rw-r--r--examples/stm32l4/src/bin/rtc.rs28
-rw-r--r--examples/stm32l4/src/bin/spe_adin1110_http_server.rs19
-rw-r--r--examples/stm32l4/src/bin/usb_serial.rs11
4 files changed, 47 insertions, 31 deletions
diff --git a/examples/stm32l4/src/bin/rng.rs b/examples/stm32l4/src/bin/rng.rs
index d0208d8a3..94251c12c 100644
--- a/examples/stm32l4/src/bin/rng.rs
+++ b/examples/stm32l4/src/bin/rng.rs
@@ -4,7 +4,7 @@
4 4
5use defmt::*; 5use defmt::*;
6use embassy_executor::Spawner; 6use embassy_executor::Spawner;
7use embassy_stm32::rcc::{ClockSrc, PLLSource, PllMul, PllPreDiv, PllQDiv, PllRDiv}; 7use embassy_stm32::rcc::{ClockSrc, PLLSource, Pll, PllMul, PllPreDiv, PllQDiv, PllRDiv};
8use embassy_stm32::rng::Rng; 8use embassy_stm32::rng::Rng;
9use embassy_stm32::{bind_interrupts, peripherals, rng, Config}; 9use embassy_stm32::{bind_interrupts, peripherals, rng, Config};
10use {defmt_rtt as _, panic_probe as _}; 10use {defmt_rtt as _, panic_probe as _};
@@ -16,14 +16,16 @@ 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 // 72Mhz clock (16 / 1 * 18 / 4) 19 config.rcc.mux = ClockSrc::PLL;
20 config.rcc.mux = ClockSrc::PLL( 20 config.rcc.hsi16 = true;
21 PLLSource::HSI16, 21 config.rcc.pll_src = PLLSource::HSI16;
22 PllRDiv::DIV4, 22 config.rcc.pll = Some(Pll {
23 PllPreDiv::DIV1, 23 prediv: PllPreDiv::DIV1,
24 PllMul::MUL18, 24 mul: PllMul::MUL18,
25 Some(PllQDiv::DIV6), // 48Mhz (16 / 1 * 18 / 6) 25 divp: None,
26 ); 26 divq: Some(PllQDiv::DIV6), // 48Mhz (16 / 1 * 18 / 6)
27 divr: Some(PllRDiv::DIV4), // sysclk 72Mhz clock (16 / 1 * 18 / 4)
28 });
27 let p = embassy_stm32::init(config); 29 let p = embassy_stm32::init(config);
28 30
29 info!("Hello World!"); 31 info!("Hello World!");
diff --git a/examples/stm32l4/src/bin/rtc.rs b/examples/stm32l4/src/bin/rtc.rs
index f5d46e95f..cd9f72ff3 100644
--- a/examples/stm32l4/src/bin/rtc.rs
+++ b/examples/stm32l4/src/bin/rtc.rs
@@ -5,7 +5,7 @@
5use chrono::{NaiveDate, NaiveDateTime}; 5use chrono::{NaiveDate, NaiveDateTime};
6use defmt::*; 6use defmt::*;
7use embassy_executor::Spawner; 7use embassy_executor::Spawner;
8use embassy_stm32::rcc::{ClockSrc, LsConfig, PLLSource, PllMul, PllPreDiv, PllRDiv}; 8use embassy_stm32::rcc::{ClockSrc, LsConfig, PLLSource, Pll, PllMul, PllPreDiv, PllRDiv};
9use embassy_stm32::rtc::{Rtc, RtcConfig}; 9use embassy_stm32::rtc::{Rtc, RtcConfig};
10use embassy_stm32::time::Hertz; 10use embassy_stm32::time::Hertz;
11use embassy_stm32::Config; 11use embassy_stm32::Config;
@@ -14,18 +14,20 @@ use {defmt_rtt as _, panic_probe as _};
14 14
15#[embassy_executor::main] 15#[embassy_executor::main]
16async fn main(_spawner: Spawner) { 16async fn main(_spawner: Spawner) {
17 let p = { 17 let mut config = Config::default();
18 let mut config = Config::default(); 18 config.rcc.mux = ClockSrc::PLL;
19 config.rcc.mux = ClockSrc::PLL( 19 config.rcc.hse = Some(Hertz::mhz(8));
20 PLLSource::HSE(Hertz::mhz(8)), 20 config.rcc.pll_src = PLLSource::HSE;
21 PllRDiv::DIV2, 21 config.rcc.pll = Some(Pll {
22 PllPreDiv::DIV1, 22 prediv: PllPreDiv::DIV1,
23 PllMul::MUL20, 23 mul: PllMul::MUL20,
24 None, 24 divp: None,
25 ); 25 divq: None,
26 config.rcc.ls = LsConfig::default_lse(); 26 divr: Some(PllRDiv::DIV2), // sysclk 80Mhz clock (8 / 1 * 20 / 2)
27 embassy_stm32::init(config) 27 });
28 }; 28 config.rcc.ls = LsConfig::default_lse();
29 let p = embassy_stm32::init(config);
30
29 info!("Hello World!"); 31 info!("Hello World!");
30 32
31 let now = NaiveDate::from_ymd_opt(2020, 5, 15) 33 let now = NaiveDate::from_ymd_opt(2020, 5, 15)
diff --git a/examples/stm32l4/src/bin/spe_adin1110_http_server.rs b/examples/stm32l4/src/bin/spe_adin1110_http_server.rs
index e2ac22d09..c1a27cf83 100644
--- a/examples/stm32l4/src/bin/spe_adin1110_http_server.rs
+++ b/examples/stm32l4/src/bin/spe_adin1110_http_server.rs
@@ -48,7 +48,7 @@ use embassy_net_adin1110::{self, Device, Runner, ADIN1110};
48use embedded_hal_bus::spi::ExclusiveDevice; 48use embedded_hal_bus::spi::ExclusiveDevice;
49use hal::gpio::Pull; 49use hal::gpio::Pull;
50use hal::i2c::Config as I2C_Config; 50use hal::i2c::Config as I2C_Config;
51use hal::rcc::{ClockSrc, PLLSource, PllMul, PllPreDiv, PllRDiv}; 51use hal::rcc::{ClockSrc, PLLSource, Pll, PllMul, PllPreDiv, PllRDiv};
52use hal::spi::{Config as SPI_Config, Spi}; 52use hal::spi::{Config as SPI_Config, Spi};
53use hal::time::Hertz; 53use hal::time::Hertz;
54 54
@@ -77,13 +77,16 @@ 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::PLL;
81 PLLSource::HSE(Hertz(8_000_000)), 81 config.rcc.hse = Some(Hertz::mhz(8));
82 PllRDiv::DIV2, 82 config.rcc.pll_src = PLLSource::HSE;
83 PllPreDiv::DIV1, 83 config.rcc.pll = Some(Pll {
84 PllMul::MUL20, 84 prediv: PllPreDiv::DIV1,
85 None, 85 mul: PllMul::MUL20,
86 ); 86 divp: None,
87 divq: None,
88 divr: Some(PllRDiv::DIV2), // sysclk 80Mhz clock (8 / 1 * 20 / 2)
89 });
87 config.rcc.hsi48 = true; // needed for rng 90 config.rcc.hsi48 = true; // needed for rng
88 91
89 let dp = embassy_stm32::init(config); 92 let dp = embassy_stm32::init(config);
diff --git a/examples/stm32l4/src/bin/usb_serial.rs b/examples/stm32l4/src/bin/usb_serial.rs
index dc0d98ad4..8f6eeef32 100644
--- a/examples/stm32l4/src/bin/usb_serial.rs
+++ b/examples/stm32l4/src/bin/usb_serial.rs
@@ -23,8 +23,17 @@ async fn main(_spawner: Spawner) {
23 info!("Hello World!"); 23 info!("Hello World!");
24 24
25 let mut config = Config::default(); 25 let mut config = Config::default();
26 config.rcc.mux = ClockSrc::PLL(PLLSource::HSI16, PllRDiv::DIV2, PllPreDiv::DIV1, PllMul::MUL10, None);
27 config.rcc.hsi48 = true; 26 config.rcc.hsi48 = true;
27 config.rcc.mux = ClockSrc::PLL;
28 config.rcc.hsi16 = true;
29 config.rcc.pll_src = PLLSource::HSI16;
30 config.rcc.pll = Some(Pll {
31 prediv: PllPreDiv::DIV1,
32 mul: PllMul::MUL10,
33 divp: None,
34 divq: None,
35 divr: Some(PllRDiv::DIV2), // sysclk 80Mhz (16 / 1 * 10 / 2)
36 });
28 37
29 let p = embassy_stm32::init(config); 38 let p = embassy_stm32::init(config);
30 39