aboutsummaryrefslogtreecommitdiff
path: root/examples
diff options
context:
space:
mode:
authorDario Nieuwenhuis <[email protected]>2024-02-23 01:22:11 +0100
committerDario Nieuwenhuis <[email protected]>2024-02-23 01:24:05 +0100
commit0665e0d452627b5fe3c0b52981c7f4ef380de83f (patch)
treec29ad9f8e51b8b91c22309b58f965021607cd973 /examples
parent4481c5f3ccf29da071538ef4f1e48fc5372a72a5 (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.rs27
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 @@
4use defmt::{panic, *}; 4use defmt::{panic, *};
5use defmt_rtt as _; // global logger 5use defmt_rtt as _; // global logger
6use embassy_executor::Spawner; 6use embassy_executor::Spawner;
7use embassy_stm32::rcc::*;
8use embassy_stm32::usb_otg::{Driver, Instance}; 7use embassy_stm32::usb_otg::{Driver, Instance};
9use embassy_stm32::{bind_interrupts, peripherals, usb_otg, Config}; 8use embassy_stm32::{bind_interrupts, peripherals, usb_otg, Config};
10use embassy_usb::class::cdc_acm::{CdcAcmClass, State}; 9use 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