diff options
| author | Dario Nieuwenhuis <[email protected]> | 2023-10-18 04:31:53 +0200 |
|---|---|---|
| committer | Dario Nieuwenhuis <[email protected]> | 2023-10-18 05:11:31 +0200 |
| commit | f20f170b1fa97a86e9d9258ac5cea248203580fb (patch) | |
| tree | 2a5678ff5f825cbfa73f003b0a7b3992fad0eb70 /examples/stm32f4 | |
| parent | 67010d123c874383f48ccd5c1b2287907677e460 (diff) | |
stm32/rcc: refactor and unify f4 into f7.
Diffstat (limited to 'examples/stm32f4')
| -rw-r--r-- | examples/stm32f4/src/bin/eth.rs | 22 | ||||
| -rw-r--r-- | examples/stm32f4/src/bin/hello.rs | 4 | ||||
| -rw-r--r-- | examples/stm32f4/src/bin/sdmmc.rs | 23 | ||||
| -rw-r--r-- | examples/stm32f4/src/bin/usb_ethernet.rs | 24 | ||||
| -rw-r--r-- | examples/stm32f4/src/bin/usb_serial.rs | 24 |
5 files changed, 81 insertions, 16 deletions
diff --git a/examples/stm32f4/src/bin/eth.rs b/examples/stm32f4/src/bin/eth.rs index ddf8596ae..1747bbf4b 100644 --- a/examples/stm32f4/src/bin/eth.rs +++ b/examples/stm32f4/src/bin/eth.rs | |||
| @@ -10,7 +10,7 @@ use embassy_stm32::eth::generic_smi::GenericSMI; | |||
| 10 | use embassy_stm32::eth::{Ethernet, PacketQueue}; | 10 | use embassy_stm32::eth::{Ethernet, PacketQueue}; |
| 11 | use embassy_stm32::peripherals::ETH; | 11 | use embassy_stm32::peripherals::ETH; |
| 12 | use embassy_stm32::rng::Rng; | 12 | use embassy_stm32::rng::Rng; |
| 13 | use embassy_stm32::time::mhz; | 13 | use embassy_stm32::time::Hertz; |
| 14 | use embassy_stm32::{bind_interrupts, eth, peripherals, rng, Config}; | 14 | use embassy_stm32::{bind_interrupts, eth, peripherals, rng, Config}; |
| 15 | use embassy_time::Timer; | 15 | use embassy_time::Timer; |
| 16 | use embedded_io_async::Write; | 16 | use embedded_io_async::Write; |
| @@ -32,7 +32,25 @@ async fn net_task(stack: &'static Stack<Device>) -> ! { | |||
| 32 | #[embassy_executor::main] | 32 | #[embassy_executor::main] |
| 33 | async fn main(spawner: Spawner) -> ! { | 33 | async fn main(spawner: Spawner) -> ! { |
| 34 | let mut config = Config::default(); | 34 | let mut config = Config::default(); |
| 35 | config.rcc.sys_ck = Some(mhz(200)); | 35 | { |
| 36 | use embassy_stm32::rcc::*; | ||
| 37 | config.rcc.hse = Some(Hse { | ||
| 38 | freq: Hertz(8_000_000), | ||
| 39 | mode: HseMode::Bypass, | ||
| 40 | }); | ||
| 41 | config.rcc.pll_src = PllSource::HSE; | ||
| 42 | config.rcc.pll = Some(Pll { | ||
| 43 | prediv: PllPreDiv::DIV4, | ||
| 44 | mul: PllMul::MUL180, | ||
| 45 | divp: Some(Pllp::DIV2), // 8mhz / 4 * 180 / 2 = 180Mhz. | ||
| 46 | divq: None, | ||
| 47 | divr: None, | ||
| 48 | }); | ||
| 49 | config.rcc.ahb_pre = AHBPrescaler::DIV1; | ||
| 50 | config.rcc.apb1_pre = APBPrescaler::DIV4; | ||
| 51 | config.rcc.apb2_pre = APBPrescaler::DIV2; | ||
| 52 | config.rcc.sys = Sysclk::PLL1_P; | ||
| 53 | } | ||
| 36 | let p = embassy_stm32::init(config); | 54 | let p = embassy_stm32::init(config); |
| 37 | 55 | ||
| 38 | info!("Hello World!"); | 56 | info!("Hello World!"); |
diff --git a/examples/stm32f4/src/bin/hello.rs b/examples/stm32f4/src/bin/hello.rs index 27ee83aa5..a2a287110 100644 --- a/examples/stm32f4/src/bin/hello.rs +++ b/examples/stm32f4/src/bin/hello.rs | |||
| @@ -4,15 +4,13 @@ | |||
| 4 | 4 | ||
| 5 | use defmt::info; | 5 | use defmt::info; |
| 6 | use embassy_executor::Spawner; | 6 | use embassy_executor::Spawner; |
| 7 | use embassy_stm32::time::Hertz; | ||
| 8 | use embassy_stm32::Config; | 7 | use embassy_stm32::Config; |
| 9 | use embassy_time::Timer; | 8 | use embassy_time::Timer; |
| 10 | use {defmt_rtt as _, panic_probe as _}; | 9 | use {defmt_rtt as _, panic_probe as _}; |
| 11 | 10 | ||
| 12 | #[embassy_executor::main] | 11 | #[embassy_executor::main] |
| 13 | async fn main(_spawner: Spawner) -> ! { | 12 | async fn main(_spawner: Spawner) -> ! { |
| 14 | let mut config = Config::default(); | 13 | let config = Config::default(); |
| 15 | config.rcc.sys_ck = Some(Hertz(84_000_000)); | ||
| 16 | let _p = embassy_stm32::init(config); | 14 | let _p = embassy_stm32::init(config); |
| 17 | 15 | ||
| 18 | loop { | 16 | loop { |
diff --git a/examples/stm32f4/src/bin/sdmmc.rs b/examples/stm32f4/src/bin/sdmmc.rs index 6ec7d0fec..37e42384b 100644 --- a/examples/stm32f4/src/bin/sdmmc.rs +++ b/examples/stm32f4/src/bin/sdmmc.rs | |||
| @@ -5,7 +5,7 @@ | |||
| 5 | use defmt::*; | 5 | use defmt::*; |
| 6 | use embassy_executor::Spawner; | 6 | use embassy_executor::Spawner; |
| 7 | use embassy_stm32::sdmmc::{DataBlock, Sdmmc}; | 7 | use embassy_stm32::sdmmc::{DataBlock, Sdmmc}; |
| 8 | use embassy_stm32::time::mhz; | 8 | use embassy_stm32::time::{mhz, Hertz}; |
| 9 | use embassy_stm32::{bind_interrupts, peripherals, sdmmc, Config}; | 9 | use embassy_stm32::{bind_interrupts, peripherals, sdmmc, Config}; |
| 10 | use {defmt_rtt as _, panic_probe as _}; | 10 | use {defmt_rtt as _, panic_probe as _}; |
| 11 | 11 | ||
| @@ -20,8 +20,25 @@ bind_interrupts!(struct Irqs { | |||
| 20 | #[embassy_executor::main] | 20 | #[embassy_executor::main] |
| 21 | async fn main(_spawner: Spawner) { | 21 | async fn main(_spawner: Spawner) { |
| 22 | let mut config = Config::default(); | 22 | let mut config = Config::default(); |
| 23 | config.rcc.sys_ck = Some(mhz(48)); | 23 | { |
| 24 | config.rcc.pll48 = true; | 24 | use embassy_stm32::rcc::*; |
| 25 | config.rcc.hse = Some(Hse { | ||
| 26 | freq: Hertz(8_000_000), | ||
| 27 | mode: HseMode::Bypass, | ||
| 28 | }); | ||
| 29 | config.rcc.pll_src = PllSource::HSE; | ||
| 30 | config.rcc.pll = Some(Pll { | ||
| 31 | prediv: PllPreDiv::DIV4, | ||
| 32 | mul: PllMul::MUL168, | ||
| 33 | divp: Some(Pllp::DIV2), // 8mhz / 4 * 168 / 2 = 168Mhz. | ||
| 34 | divq: Some(Pllq::DIV7), // 8mhz / 4 * 168 / 7 = 48Mhz. | ||
| 35 | divr: None, | ||
| 36 | }); | ||
| 37 | config.rcc.ahb_pre = AHBPrescaler::DIV1; | ||
| 38 | config.rcc.apb1_pre = APBPrescaler::DIV4; | ||
| 39 | config.rcc.apb2_pre = APBPrescaler::DIV2; | ||
| 40 | config.rcc.sys = Sysclk::PLL1_P; | ||
| 41 | } | ||
| 25 | let p = embassy_stm32::init(config); | 42 | let p = embassy_stm32::init(config); |
| 26 | info!("Hello World!"); | 43 | info!("Hello World!"); |
| 27 | 44 | ||
diff --git a/examples/stm32f4/src/bin/usb_ethernet.rs b/examples/stm32f4/src/bin/usb_ethernet.rs index 763e3a9e7..7c0644aeb 100644 --- a/examples/stm32f4/src/bin/usb_ethernet.rs +++ b/examples/stm32f4/src/bin/usb_ethernet.rs | |||
| @@ -7,7 +7,7 @@ use embassy_executor::Spawner; | |||
| 7 | use embassy_net::tcp::TcpSocket; | 7 | use embassy_net::tcp::TcpSocket; |
| 8 | use embassy_net::{Stack, StackResources}; | 8 | use embassy_net::{Stack, StackResources}; |
| 9 | use embassy_stm32::rng::{self, Rng}; | 9 | use embassy_stm32::rng::{self, Rng}; |
| 10 | use embassy_stm32::time::mhz; | 10 | use embassy_stm32::time::Hertz; |
| 11 | use embassy_stm32::usb_otg::Driver; | 11 | use embassy_stm32::usb_otg::Driver; |
| 12 | use embassy_stm32::{bind_interrupts, peripherals, usb_otg, Config}; | 12 | use embassy_stm32::{bind_interrupts, peripherals, usb_otg, Config}; |
| 13 | use embassy_usb::class::cdc_ncm::embassy_net::{Device, Runner, State as NetState}; | 13 | use embassy_usb::class::cdc_ncm::embassy_net::{Device, Runner, State as NetState}; |
| @@ -46,9 +46,25 @@ async fn main(spawner: Spawner) { | |||
| 46 | info!("Hello World!"); | 46 | info!("Hello World!"); |
| 47 | 47 | ||
| 48 | let mut config = Config::default(); | 48 | let mut config = Config::default(); |
| 49 | config.rcc.pll48 = true; | 49 | { |
| 50 | config.rcc.sys_ck = Some(mhz(48)); | 50 | use embassy_stm32::rcc::*; |
| 51 | 51 | config.rcc.hse = Some(Hse { | |
| 52 | freq: Hertz(8_000_000), | ||
| 53 | mode: HseMode::Bypass, | ||
| 54 | }); | ||
| 55 | config.rcc.pll_src = PllSource::HSE; | ||
| 56 | config.rcc.pll = Some(Pll { | ||
| 57 | prediv: PllPreDiv::DIV4, | ||
| 58 | mul: PllMul::MUL168, | ||
| 59 | divp: Some(Pllp::DIV2), // 8mhz / 4 * 168 / 2 = 168Mhz. | ||
| 60 | divq: Some(Pllq::DIV7), // 8mhz / 4 * 168 / 7 = 48Mhz. | ||
| 61 | divr: None, | ||
| 62 | }); | ||
| 63 | config.rcc.ahb_pre = AHBPrescaler::DIV1; | ||
| 64 | config.rcc.apb1_pre = APBPrescaler::DIV4; | ||
| 65 | config.rcc.apb2_pre = APBPrescaler::DIV2; | ||
| 66 | config.rcc.sys = Sysclk::PLL1_P; | ||
| 67 | } | ||
| 52 | let p = embassy_stm32::init(config); | 68 | let p = embassy_stm32::init(config); |
| 53 | 69 | ||
| 54 | // Create the driver, from the HAL. | 70 | // Create the driver, from the HAL. |
diff --git a/examples/stm32f4/src/bin/usb_serial.rs b/examples/stm32f4/src/bin/usb_serial.rs index 4ff6452ef..004ff038d 100644 --- a/examples/stm32f4/src/bin/usb_serial.rs +++ b/examples/stm32f4/src/bin/usb_serial.rs | |||
| @@ -4,7 +4,7 @@ | |||
| 4 | 4 | ||
| 5 | use defmt::{panic, *}; | 5 | use defmt::{panic, *}; |
| 6 | use embassy_executor::Spawner; | 6 | use embassy_executor::Spawner; |
| 7 | use embassy_stm32::time::mhz; | 7 | use embassy_stm32::time::Hertz; |
| 8 | use embassy_stm32::usb_otg::{Driver, Instance}; | 8 | use embassy_stm32::usb_otg::{Driver, Instance}; |
| 9 | use embassy_stm32::{bind_interrupts, peripherals, usb_otg, Config}; | 9 | use embassy_stm32::{bind_interrupts, peripherals, usb_otg, Config}; |
| 10 | use embassy_usb::class::cdc_acm::{CdcAcmClass, State}; | 10 | use embassy_usb::class::cdc_acm::{CdcAcmClass, State}; |
| @@ -22,9 +22,25 @@ async fn main(_spawner: Spawner) { | |||
| 22 | info!("Hello World!"); | 22 | info!("Hello World!"); |
| 23 | 23 | ||
| 24 | let mut config = Config::default(); | 24 | let mut config = Config::default(); |
| 25 | config.rcc.pll48 = true; | 25 | { |
| 26 | config.rcc.sys_ck = Some(mhz(48)); | 26 | use embassy_stm32::rcc::*; |
| 27 | 27 | config.rcc.hse = Some(Hse { | |
| 28 | freq: Hertz(8_000_000), | ||
| 29 | mode: HseMode::Bypass, | ||
| 30 | }); | ||
| 31 | config.rcc.pll_src = PllSource::HSE; | ||
| 32 | config.rcc.pll = Some(Pll { | ||
| 33 | prediv: PllPreDiv::DIV4, | ||
| 34 | mul: PllMul::MUL168, | ||
| 35 | divp: Some(Pllp::DIV2), // 8mhz / 4 * 168 / 2 = 168Mhz. | ||
| 36 | divq: Some(Pllq::DIV7), // 8mhz / 4 * 168 / 7 = 48Mhz. | ||
| 37 | divr: None, | ||
| 38 | }); | ||
| 39 | config.rcc.ahb_pre = AHBPrescaler::DIV1; | ||
| 40 | config.rcc.apb1_pre = APBPrescaler::DIV4; | ||
| 41 | config.rcc.apb2_pre = APBPrescaler::DIV2; | ||
| 42 | config.rcc.sys = Sysclk::PLL1_P; | ||
| 43 | } | ||
| 28 | let p = embassy_stm32::init(config); | 44 | let p = embassy_stm32::init(config); |
| 29 | 45 | ||
| 30 | // Create the driver, from the HAL. | 46 | // Create the driver, from the HAL. |
