stm32/rcc: refactor and unify f4 into f7.
This commit is contained in:
		| @@ -10,7 +10,7 @@ use embassy_stm32::eth::generic_smi::GenericSMI; | ||||
| use embassy_stm32::eth::{Ethernet, PacketQueue}; | ||||
| use embassy_stm32::peripherals::ETH; | ||||
| use embassy_stm32::rng::Rng; | ||||
| use embassy_stm32::time::mhz; | ||||
| use embassy_stm32::time::Hertz; | ||||
| use embassy_stm32::{bind_interrupts, eth, peripherals, rng, Config}; | ||||
| use embassy_time::Timer; | ||||
| use embedded_io_async::Write; | ||||
| @@ -32,7 +32,25 @@ async fn net_task(stack: &'static Stack<Device>) -> ! { | ||||
| #[embassy_executor::main] | ||||
| async fn main(spawner: Spawner) -> ! { | ||||
|     let mut config = Config::default(); | ||||
|     config.rcc.sys_ck = Some(mhz(200)); | ||||
|     { | ||||
|         use embassy_stm32::rcc::*; | ||||
|         config.rcc.hse = Some(Hse { | ||||
|             freq: Hertz(8_000_000), | ||||
|             mode: HseMode::Bypass, | ||||
|         }); | ||||
|         config.rcc.pll_src = PllSource::HSE; | ||||
|         config.rcc.pll = Some(Pll { | ||||
|             prediv: PllPreDiv::DIV4, | ||||
|             mul: PllMul::MUL180, | ||||
|             divp: Some(Pllp::DIV2), // 8mhz / 4 * 180 / 2 = 180Mhz. | ||||
|             divq: None, | ||||
|             divr: None, | ||||
|         }); | ||||
|         config.rcc.ahb_pre = AHBPrescaler::DIV1; | ||||
|         config.rcc.apb1_pre = APBPrescaler::DIV4; | ||||
|         config.rcc.apb2_pre = APBPrescaler::DIV2; | ||||
|         config.rcc.sys = Sysclk::PLL1_P; | ||||
|     } | ||||
|     let p = embassy_stm32::init(config); | ||||
|  | ||||
|     info!("Hello World!"); | ||||
|   | ||||
| @@ -4,15 +4,13 @@ | ||||
|  | ||||
| use defmt::info; | ||||
| use embassy_executor::Spawner; | ||||
| use embassy_stm32::time::Hertz; | ||||
| use embassy_stm32::Config; | ||||
| use embassy_time::Timer; | ||||
| use {defmt_rtt as _, panic_probe as _}; | ||||
|  | ||||
| #[embassy_executor::main] | ||||
| async fn main(_spawner: Spawner) -> ! { | ||||
|     let mut config = Config::default(); | ||||
|     config.rcc.sys_ck = Some(Hertz(84_000_000)); | ||||
|     let config = Config::default(); | ||||
|     let _p = embassy_stm32::init(config); | ||||
|  | ||||
|     loop { | ||||
|   | ||||
| @@ -5,7 +5,7 @@ | ||||
| use defmt::*; | ||||
| use embassy_executor::Spawner; | ||||
| use embassy_stm32::sdmmc::{DataBlock, Sdmmc}; | ||||
| use embassy_stm32::time::mhz; | ||||
| use embassy_stm32::time::{mhz, Hertz}; | ||||
| use embassy_stm32::{bind_interrupts, peripherals, sdmmc, Config}; | ||||
| use {defmt_rtt as _, panic_probe as _}; | ||||
|  | ||||
| @@ -20,8 +20,25 @@ bind_interrupts!(struct Irqs { | ||||
| #[embassy_executor::main] | ||||
| async fn main(_spawner: Spawner) { | ||||
|     let mut config = Config::default(); | ||||
|     config.rcc.sys_ck = Some(mhz(48)); | ||||
|     config.rcc.pll48 = true; | ||||
|     { | ||||
|         use embassy_stm32::rcc::*; | ||||
|         config.rcc.hse = Some(Hse { | ||||
|             freq: Hertz(8_000_000), | ||||
|             mode: HseMode::Bypass, | ||||
|         }); | ||||
|         config.rcc.pll_src = PllSource::HSE; | ||||
|         config.rcc.pll = Some(Pll { | ||||
|             prediv: PllPreDiv::DIV4, | ||||
|             mul: PllMul::MUL168, | ||||
|             divp: Some(Pllp::DIV2), // 8mhz / 4 * 168 / 2 = 168Mhz. | ||||
|             divq: Some(Pllq::DIV7), // 8mhz / 4 * 168 / 7 = 48Mhz. | ||||
|             divr: None, | ||||
|         }); | ||||
|         config.rcc.ahb_pre = AHBPrescaler::DIV1; | ||||
|         config.rcc.apb1_pre = APBPrescaler::DIV4; | ||||
|         config.rcc.apb2_pre = APBPrescaler::DIV2; | ||||
|         config.rcc.sys = Sysclk::PLL1_P; | ||||
|     } | ||||
|     let p = embassy_stm32::init(config); | ||||
|     info!("Hello World!"); | ||||
|  | ||||
|   | ||||
| @@ -7,7 +7,7 @@ use embassy_executor::Spawner; | ||||
| use embassy_net::tcp::TcpSocket; | ||||
| use embassy_net::{Stack, StackResources}; | ||||
| use embassy_stm32::rng::{self, Rng}; | ||||
| use embassy_stm32::time::mhz; | ||||
| use embassy_stm32::time::Hertz; | ||||
| use embassy_stm32::usb_otg::Driver; | ||||
| use embassy_stm32::{bind_interrupts, peripherals, usb_otg, Config}; | ||||
| use embassy_usb::class::cdc_ncm::embassy_net::{Device, Runner, State as NetState}; | ||||
| @@ -46,9 +46,25 @@ async fn main(spawner: Spawner) { | ||||
|     info!("Hello World!"); | ||||
|  | ||||
|     let mut config = Config::default(); | ||||
|     config.rcc.pll48 = true; | ||||
|     config.rcc.sys_ck = Some(mhz(48)); | ||||
|  | ||||
|     { | ||||
|         use embassy_stm32::rcc::*; | ||||
|         config.rcc.hse = Some(Hse { | ||||
|             freq: Hertz(8_000_000), | ||||
|             mode: HseMode::Bypass, | ||||
|         }); | ||||
|         config.rcc.pll_src = PllSource::HSE; | ||||
|         config.rcc.pll = Some(Pll { | ||||
|             prediv: PllPreDiv::DIV4, | ||||
|             mul: PllMul::MUL168, | ||||
|             divp: Some(Pllp::DIV2), // 8mhz / 4 * 168 / 2 = 168Mhz. | ||||
|             divq: Some(Pllq::DIV7), // 8mhz / 4 * 168 / 7 = 48Mhz. | ||||
|             divr: None, | ||||
|         }); | ||||
|         config.rcc.ahb_pre = AHBPrescaler::DIV1; | ||||
|         config.rcc.apb1_pre = APBPrescaler::DIV4; | ||||
|         config.rcc.apb2_pre = APBPrescaler::DIV2; | ||||
|         config.rcc.sys = Sysclk::PLL1_P; | ||||
|     } | ||||
|     let p = embassy_stm32::init(config); | ||||
|  | ||||
|     // Create the driver, from the HAL. | ||||
|   | ||||
| @@ -4,7 +4,7 @@ | ||||
|  | ||||
| use defmt::{panic, *}; | ||||
| use embassy_executor::Spawner; | ||||
| use embassy_stm32::time::mhz; | ||||
| use embassy_stm32::time::Hertz; | ||||
| use embassy_stm32::usb_otg::{Driver, Instance}; | ||||
| use embassy_stm32::{bind_interrupts, peripherals, usb_otg, Config}; | ||||
| use embassy_usb::class::cdc_acm::{CdcAcmClass, State}; | ||||
| @@ -22,9 +22,25 @@ async fn main(_spawner: Spawner) { | ||||
|     info!("Hello World!"); | ||||
|  | ||||
|     let mut config = Config::default(); | ||||
|     config.rcc.pll48 = true; | ||||
|     config.rcc.sys_ck = Some(mhz(48)); | ||||
|  | ||||
|     { | ||||
|         use embassy_stm32::rcc::*; | ||||
|         config.rcc.hse = Some(Hse { | ||||
|             freq: Hertz(8_000_000), | ||||
|             mode: HseMode::Bypass, | ||||
|         }); | ||||
|         config.rcc.pll_src = PllSource::HSE; | ||||
|         config.rcc.pll = Some(Pll { | ||||
|             prediv: PllPreDiv::DIV4, | ||||
|             mul: PllMul::MUL168, | ||||
|             divp: Some(Pllp::DIV2), // 8mhz / 4 * 168 / 2 = 168Mhz. | ||||
|             divq: Some(Pllq::DIV7), // 8mhz / 4 * 168 / 7 = 48Mhz. | ||||
|             divr: None, | ||||
|         }); | ||||
|         config.rcc.ahb_pre = AHBPrescaler::DIV1; | ||||
|         config.rcc.apb1_pre = APBPrescaler::DIV4; | ||||
|         config.rcc.apb2_pre = APBPrescaler::DIV2; | ||||
|         config.rcc.sys = Sysclk::PLL1_P; | ||||
|     } | ||||
|     let p = embassy_stm32::init(config); | ||||
|  | ||||
|     // Create the driver, from the HAL. | ||||
|   | ||||
		Reference in New Issue
	
	Block a user