aboutsummaryrefslogtreecommitdiff
path: root/tests
diff options
context:
space:
mode:
Diffstat (limited to 'tests')
-rw-r--r--tests/stm32/Cargo.toml2
-rw-r--r--tests/stm32/src/bin/eth.rs2
-rw-r--r--tests/stm32/src/bin/gpio.rs5
-rw-r--r--tests/stm32/src/bin/rng.rs8
-rw-r--r--tests/stm32/src/common.rs45
5 files changed, 56 insertions, 6 deletions
diff --git a/tests/stm32/Cargo.toml b/tests/stm32/Cargo.toml
index b1b2f55c3..48598ec2d 100644
--- a/tests/stm32/Cargo.toml
+++ b/tests/stm32/Cargo.toml
@@ -12,6 +12,8 @@ stm32g071rb = ["embassy-stm32/stm32g071rb", "not-gpdma", "dac-adc-pin"]
12stm32c031c6 = ["embassy-stm32/stm32c031c6", "not-gpdma"] 12stm32c031c6 = ["embassy-stm32/stm32c031c6", "not-gpdma"]
13stm32g491re = ["embassy-stm32/stm32g491re", "chrono", "not-gpdma", "rng"] 13stm32g491re = ["embassy-stm32/stm32g491re", "chrono", "not-gpdma", "rng"]
14stm32h755zi = ["embassy-stm32/stm32h755zi-cm7", "chrono", "not-gpdma", "eth", "dac-adc-pin", "rng"] 14stm32h755zi = ["embassy-stm32/stm32h755zi-cm7", "chrono", "not-gpdma", "eth", "dac-adc-pin", "rng"]
15stm32h753zi = ["embassy-stm32/stm32h753zi", "chrono", "not-gpdma", "eth", "rng"]
16stm32h7a3zi = ["embassy-stm32/stm32h7a3zi", "not-gpdma", "rng"]
15stm32wb55rg = ["embassy-stm32/stm32wb55rg", "chrono", "not-gpdma", "ble", "mac" , "rng"] 17stm32wb55rg = ["embassy-stm32/stm32wb55rg", "chrono", "not-gpdma", "ble", "mac" , "rng"]
16stm32h563zi = ["embassy-stm32/stm32h563zi", "chrono", "eth", "rng"] 18stm32h563zi = ["embassy-stm32/stm32h563zi", "chrono", "eth", "rng"]
17stm32u585ai = ["embassy-stm32/stm32u585ai", "chrono", "rng"] 19stm32u585ai = ["embassy-stm32/stm32u585ai", "chrono", "rng"]
diff --git a/tests/stm32/src/bin/eth.rs b/tests/stm32/src/bin/eth.rs
index 6d5e05cd6..754354944 100644
--- a/tests/stm32/src/bin/eth.rs
+++ b/tests/stm32/src/bin/eth.rs
@@ -60,6 +60,8 @@ async fn main(spawner: Spawner) {
60 let n = 4; 60 let n = 4;
61 #[cfg(feature = "stm32f207zg")] 61 #[cfg(feature = "stm32f207zg")]
62 let n = 5; 62 let n = 5;
63 #[cfg(feature = "stm32h753zi")]
64 let n = 6;
63 65
64 let mac_addr = [0x00, n, 0xDE, 0xAD, 0xBE, 0xEF]; 66 let mac_addr = [0x00, n, 0xDE, 0xAD, 0xBE, 0xEF];
65 67
diff --git a/tests/stm32/src/bin/gpio.rs b/tests/stm32/src/bin/gpio.rs
index 49d9a60f7..83c96ce95 100644
--- a/tests/stm32/src/bin/gpio.rs
+++ b/tests/stm32/src/bin/gpio.rs
@@ -217,8 +217,7 @@ async fn main(_spawner: Spawner) {
217} 217}
218 218
219fn delay() { 219fn delay() {
220 #[cfg(feature = "stm32h755zi")] 220 #[cfg(any(feature = "stm32h755zi", feature = "stm32h753zi", feature = "stm32h7a3zi"))]
221 cortex_m::asm::delay(10000); 221 cortex_m::asm::delay(9000);
222 #[cfg(not(feature = "stm32h755zi"))]
223 cortex_m::asm::delay(1000); 222 cortex_m::asm::delay(1000);
224} 223}
diff --git a/tests/stm32/src/bin/rng.rs b/tests/stm32/src/bin/rng.rs
index 65da737d0..b7f361372 100644
--- a/tests/stm32/src/bin/rng.rs
+++ b/tests/stm32/src/bin/rng.rs
@@ -11,7 +11,12 @@ use embassy_stm32::rng::Rng;
11use embassy_stm32::{bind_interrupts, peripherals, rng}; 11use embassy_stm32::{bind_interrupts, peripherals, rng};
12use {defmt_rtt as _, panic_probe as _}; 12use {defmt_rtt as _, panic_probe as _};
13 13
14#[cfg(any(feature = "stm32l4a6zg", feature = "stm32h755zi", feature = "stm32f429zi"))] 14#[cfg(any(
15 feature = "stm32l4a6zg",
16 feature = "stm32h755zi",
17 feature = "stm32h753zi",
18 feature = "stm32f429zi"
19))]
15bind_interrupts!(struct Irqs { 20bind_interrupts!(struct Irqs {
16 HASH_RNG => rng::InterruptHandler<peripherals::RNG>; 21 HASH_RNG => rng::InterruptHandler<peripherals::RNG>;
17}); 22});
@@ -23,6 +28,7 @@ bind_interrupts!(struct Irqs {
23 feature = "stm32l4a6zg", 28 feature = "stm32l4a6zg",
24 feature = "stm32l073rz", 29 feature = "stm32l073rz",
25 feature = "stm32h755zi", 30 feature = "stm32h755zi",
31 feature = "stm32h753zi",
26 feature = "stm32f429zi" 32 feature = "stm32f429zi"
27)))] 33)))]
28bind_interrupts!(struct Irqs { 34bind_interrupts!(struct Irqs {
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::*;