diff options
| author | Dario Nieuwenhuis <[email protected]> | 2024-02-23 01:22:11 +0100 |
|---|---|---|
| committer | Dario Nieuwenhuis <[email protected]> | 2024-02-23 01:24:05 +0100 |
| commit | 0665e0d452627b5fe3c0b52981c7f4ef380de83f (patch) | |
| tree | c29ad9f8e51b8b91c22309b58f965021607cd973 /examples | |
| parent | 4481c5f3ccf29da071538ef4f1e48fc5372a72a5 (diff) | |
stm32/rcc: port U5 to new API, add all PLLs, all HSE modes.
Diffstat (limited to 'examples')
| -rw-r--r-- | examples/stm32u5/src/bin/usb_serial.rs | 27 |
1 files changed, 16 insertions, 11 deletions
diff --git a/examples/stm32u5/src/bin/usb_serial.rs b/examples/stm32u5/src/bin/usb_serial.rs index dca34fd0e..99cdeacc9 100644 --- a/examples/stm32u5/src/bin/usb_serial.rs +++ b/examples/stm32u5/src/bin/usb_serial.rs | |||
| @@ -4,7 +4,6 @@ | |||
| 4 | use defmt::{panic, *}; | 4 | use defmt::{panic, *}; |
| 5 | use defmt_rtt as _; // global logger | 5 | use defmt_rtt as _; // global logger |
| 6 | use embassy_executor::Spawner; | 6 | use embassy_executor::Spawner; |
| 7 | use embassy_stm32::rcc::*; | ||
| 8 | use embassy_stm32::usb_otg::{Driver, Instance}; | 7 | use embassy_stm32::usb_otg::{Driver, Instance}; |
| 9 | use embassy_stm32::{bind_interrupts, peripherals, usb_otg, Config}; | 8 | use embassy_stm32::{bind_interrupts, peripherals, usb_otg, Config}; |
| 10 | use embassy_usb::class::cdc_acm::{CdcAcmClass, State}; | 9 | use embassy_usb::class::cdc_acm::{CdcAcmClass, State}; |
| @@ -22,22 +21,28 @@ async fn main(_spawner: Spawner) { | |||
| 22 | info!("Hello World!"); | 21 | info!("Hello World!"); |
| 23 | 22 | ||
| 24 | let mut config = Config::default(); | 23 | let mut config = Config::default(); |
| 25 | config.rcc.mux = ClockSrc::PLL1_R(PllConfig { | 24 | { |
| 26 | source: PllSource::HSI, | 25 | use embassy_stm32::rcc::*; |
| 27 | m: Pllm::DIV2, | 26 | config.rcc.hsi = true; |
| 28 | n: Plln::MUL10, | 27 | config.rcc.pll1 = Some(Pll { |
| 29 | p: Plldiv::DIV1, | 28 | source: PllSource::HSI, // 16 MHz |
| 30 | q: Plldiv::DIV1, | 29 | prediv: PllPreDiv::DIV1, |
| 31 | r: Plldiv::DIV1, | 30 | mul: PllMul::MUL10, |
| 32 | }); | 31 | divp: None, |
| 33 | config.rcc.hsi48 = Some(Hsi48Config { sync_from_usb: true }); // needed for USB | 32 | divq: None, |
| 33 | divr: Some(PllDiv::DIV1), // 160 MHz | ||
| 34 | }); | ||
| 35 | config.rcc.mux = ClockSrc::PLL1_R; | ||
| 36 | config.rcc.voltage_range = VoltageScale::RANGE1; | ||
| 37 | config.rcc.hsi48 = Some(Hsi48Config { sync_from_usb: true }); // needed for USB | ||
| 38 | } | ||
| 34 | 39 | ||
| 35 | let p = embassy_stm32::init(config); | 40 | let p = embassy_stm32::init(config); |
| 36 | 41 | ||
| 37 | // Create the driver, from the HAL. | 42 | // Create the driver, from the HAL. |
| 38 | let mut ep_out_buffer = [0u8; 256]; | 43 | let mut ep_out_buffer = [0u8; 256]; |
| 39 | let mut config = embassy_stm32::usb_otg::Config::default(); | 44 | let mut config = embassy_stm32::usb_otg::Config::default(); |
| 40 | config.vbus_detection = true; | 45 | config.vbus_detection = false; |
| 41 | let driver = Driver::new_fs(p.USB_OTG_FS, Irqs, p.PA12, p.PA11, &mut ep_out_buffer, config); | 46 | let driver = Driver::new_fs(p.USB_OTG_FS, Irqs, p.PA12, p.PA11, &mut ep_out_buffer, config); |
| 42 | 47 | ||
| 43 | // Create embassy-usb Config | 48 | // Create embassy-usb Config |
