aboutsummaryrefslogtreecommitdiff
path: root/tests/stm32/src/common.rs
diff options
context:
space:
mode:
authorDario Nieuwenhuis <[email protected]>2023-10-21 02:53:48 +0200
committerDario Nieuwenhuis <[email protected]>2023-10-21 04:46:45 +0200
commit3d03c18d4fd5c4f410e5e697d56b5152bb910232 (patch)
tree71aac94e5da61fe3049ecfb3ead3f48a7ce4546e /tests/stm32/src/common.rs
parentb1d0947a18ffaa55d9307b2e563f7e3662486eb9 (diff)
stm32/tests: add stm32h753zi, stm32h7a3zi.
Diffstat (limited to 'tests/stm32/src/common.rs')
-rw-r--r--tests/stm32/src/common.rs45
1 files changed, 43 insertions, 2 deletions
diff --git a/tests/stm32/src/common.rs b/tests/stm32/src/common.rs
index 8dde71fb3..cbf9538aa 100644
--- a/tests/stm32/src/common.rs
+++ b/tests/stm32/src/common.rs
@@ -18,6 +18,10 @@ teleprobe_meta::target!(b"nucleo-stm32f429zi");
18teleprobe_meta::target!(b"nucleo-stm32wb55rg"); 18teleprobe_meta::target!(b"nucleo-stm32wb55rg");
19#[cfg(feature = "stm32h755zi")] 19#[cfg(feature = "stm32h755zi")]
20teleprobe_meta::target!(b"nucleo-stm32h755zi"); 20teleprobe_meta::target!(b"nucleo-stm32h755zi");
21#[cfg(feature = "stm32h753zi")]
22teleprobe_meta::target!(b"nucleo-stm32h753zi");
23#[cfg(feature = "stm32h7a3zi")]
24teleprobe_meta::target!(b"nucleo-stm32h7a3zi");
21#[cfg(feature = "stm32u585ai")] 25#[cfg(feature = "stm32u585ai")]
22teleprobe_meta::target!(b"iot-stm32u585ai"); 26teleprobe_meta::target!(b"iot-stm32u585ai");
23#[cfg(feature = "stm32h563zi")] 27#[cfg(feature = "stm32h563zi")]
@@ -105,12 +109,18 @@ define_peris!(
105 SPI = SPI1, SPI_SCK = PA5, SPI_MOSI = PA7, SPI_MISO = PA6, SPI_TX_DMA = DMA1_CH1, SPI_RX_DMA = DMA1_CH2, 109 SPI = SPI1, SPI_SCK = PA5, SPI_MOSI = PA7, SPI_MISO = PA6, SPI_TX_DMA = DMA1_CH1, SPI_RX_DMA = DMA1_CH2,
106 @irq UART = {LPUART1 => embassy_stm32::usart::InterruptHandler<embassy_stm32::peripherals::LPUART1>;}, 110 @irq UART = {LPUART1 => embassy_stm32::usart::InterruptHandler<embassy_stm32::peripherals::LPUART1>;},
107); 111);
108#[cfg(feature = "stm32h755zi")] 112#[cfg(any(feature = "stm32h755zi", feature = "stm32h753zi"))]
109define_peris!( 113define_peris!(
110 UART = USART1, UART_TX = PB6, UART_RX = PB7, UART_TX_DMA = DMA1_CH0, UART_RX_DMA = DMA1_CH1, 114 UART = USART1, UART_TX = PB6, UART_RX = PB7, UART_TX_DMA = DMA1_CH0, UART_RX_DMA = DMA1_CH1,
111 SPI = SPI1, SPI_SCK = PA5, SPI_MOSI = PB5, SPI_MISO = PA6, SPI_TX_DMA = DMA1_CH0, SPI_RX_DMA = DMA1_CH1, 115 SPI = SPI1, SPI_SCK = PA5, SPI_MOSI = PB5, SPI_MISO = PA6, SPI_TX_DMA = DMA1_CH0, SPI_RX_DMA = DMA1_CH1,
112 @irq UART = {USART1 => embassy_stm32::usart::InterruptHandler<embassy_stm32::peripherals::USART1>;}, 116 @irq UART = {USART1 => embassy_stm32::usart::InterruptHandler<embassy_stm32::peripherals::USART1>;},
113); 117);
118#[cfg(feature = "stm32h7a3zi")]
119define_peris!(
120 UART = USART1, UART_TX = PB6, UART_RX = PB7, UART_TX_DMA = DMA1_CH0, UART_RX_DMA = DMA1_CH1,
121 SPI = SPI1, SPI_SCK = PA5, SPI_MOSI = PA7, SPI_MISO = PA6, SPI_TX_DMA = DMA1_CH0, SPI_RX_DMA = DMA1_CH1,
122 @irq UART = {USART1 => embassy_stm32::usart::InterruptHandler<embassy_stm32::peripherals::USART1>;},
123);
114#[cfg(feature = "stm32u585ai")] 124#[cfg(feature = "stm32u585ai")]
115define_peris!( 125define_peris!(
116 UART = USART3, UART_TX = PD8, UART_RX = PD9, UART_TX_DMA = GPDMA1_CH0, UART_RX_DMA = GPDMA1_CH1, 126 UART = USART3, UART_TX = PD8, UART_RX = PD9, UART_TX_DMA = GPDMA1_CH0, UART_RX_DMA = GPDMA1_CH1,
@@ -289,7 +299,7 @@ pub fn config() -> Config {
289 config.rcc.voltage_scale = VoltageScale::Scale0; 299 config.rcc.voltage_scale = VoltageScale::Scale0;
290 } 300 }
291 301
292 #[cfg(feature = "stm32h755zi")] 302 #[cfg(any(feature = "stm32h755zi", feature = "stm32h753zi"))]
293 { 303 {
294 use embassy_stm32::rcc::*; 304 use embassy_stm32::rcc::*;
295 config.rcc.hsi = Some(Hsi::Mhz64); 305 config.rcc.hsi = Some(Hsi::Mhz64);
@@ -320,6 +330,37 @@ pub fn config() -> Config {
320 config.rcc.adc_clock_source = AdcClockSource::PLL2_P; 330 config.rcc.adc_clock_source = AdcClockSource::PLL2_P;
321 } 331 }
322 332
333 #[cfg(any(feature = "stm32h7a3zi"))]
334 {
335 use embassy_stm32::rcc::*;
336 config.rcc.hsi = Some(Hsi::Mhz64);
337 config.rcc.csi = true;
338 config.rcc.hsi48 = true; // needed for RNG
339 config.rcc.pll_src = PllSource::Hsi;
340 config.rcc.pll1 = Some(Pll {
341 prediv: PllPreDiv::DIV4,
342 mul: PllMul::MUL35,
343 divp: Some(PllDiv::DIV2), // 280 Mhz
344 divq: Some(PllDiv::DIV8), // SPI1 cksel defaults to pll1_q
345 divr: None,
346 });
347 config.rcc.pll2 = Some(Pll {
348 prediv: PllPreDiv::DIV4,
349 mul: PllMul::MUL35,
350 divp: Some(PllDiv::DIV8), // 70 Mhz
351 divq: None,
352 divr: None,
353 });
354 config.rcc.sys = Sysclk::Pll1P; // 280 Mhz
355 config.rcc.ahb_pre = AHBPrescaler::DIV1; // 280 Mhz
356 config.rcc.apb1_pre = APBPrescaler::DIV2; // 140 Mhz
357 config.rcc.apb2_pre = APBPrescaler::DIV2; // 140 Mhz
358 config.rcc.apb3_pre = APBPrescaler::DIV2; // 140 Mhz
359 config.rcc.apb4_pre = APBPrescaler::DIV2; // 140 Mhz
360 config.rcc.voltage_scale = VoltageScale::Scale0;
361 config.rcc.adc_clock_source = AdcClockSource::PLL2_P;
362 }
363
323 #[cfg(any(feature = "stm32l496zg", feature = "stm32l4a6zg", feature = "stm32l4r5zi"))] 364 #[cfg(any(feature = "stm32l496zg", feature = "stm32l4a6zg", feature = "stm32l4r5zi"))]
324 { 365 {
325 use embassy_stm32::rcc::*; 366 use embassy_stm32::rcc::*;