From 6d619be60676262a41c12396ccc12c9605a6b986 Mon Sep 17 00:00:00 2001 From: Yilin Sun Date: Sun, 16 Apr 2023 22:32:06 +0800 Subject: [PATCH] Maximum tested frequency is ~27MHz. --- board/peripherals.c | 2 +- board/pin_mux.c | 8 ++++---- src/main.c | 16 +++++++++------- 3 files changed, 14 insertions(+), 12 deletions(-) diff --git a/board/peripherals.c b/board/peripherals.c index 267d275..b8ba5ca 100644 --- a/board/peripherals.c +++ b/board/peripherals.c @@ -10,7 +10,7 @@ void BOARD_InitBootPeripherals(void) { void BOARD_InitQUADSPI(void) { hqspi.Instance = QUADSPI; - hqspi.Init.ClockPrescaler = 1; + hqspi.Init.ClockPrescaler = 2; hqspi.Init.FifoThreshold = 24; hqspi.Init.SampleShifting = QSPI_SAMPLE_SHIFTING_HALFCYCLE; hqspi.Init.FlashSize = 22; diff --git a/board/pin_mux.c b/board/pin_mux.c index 38b386f..81e849f 100644 --- a/board/pin_mux.c +++ b/board/pin_mux.c @@ -30,28 +30,28 @@ void BOARD_InitBootPins(void) { GPIO_InitStruct.Pin = GPIO_PIN_2; GPIO_InitStruct.Mode = GPIO_MODE_AF_PP; GPIO_InitStruct.Pull = GPIO_NOPULL; - GPIO_InitStruct.Speed = GPIO_SPEED_FREQ_HIGH; + GPIO_InitStruct.Speed = GPIO_SPEED_FREQ_MEDIUM; GPIO_InitStruct.Alternate = GPIO_AF9_QUADSPI; HAL_GPIO_Init(GPIOE, &GPIO_InitStruct); GPIO_InitStruct.Pin = GPIO_PIN_2; GPIO_InitStruct.Mode = GPIO_MODE_AF_PP; GPIO_InitStruct.Pull = GPIO_NOPULL; - GPIO_InitStruct.Speed = GPIO_SPEED_FREQ_HIGH; + GPIO_InitStruct.Speed = GPIO_SPEED_FREQ_MEDIUM; GPIO_InitStruct.Alternate = GPIO_AF9_QUADSPI; HAL_GPIO_Init(GPIOB, &GPIO_InitStruct); GPIO_InitStruct.Pin = GPIO_PIN_11 | GPIO_PIN_12 | GPIO_PIN_13; GPIO_InitStruct.Mode = GPIO_MODE_AF_PP; GPIO_InitStruct.Pull = GPIO_NOPULL; - GPIO_InitStruct.Speed = GPIO_SPEED_FREQ_HIGH; + GPIO_InitStruct.Speed = GPIO_SPEED_FREQ_MEDIUM; GPIO_InitStruct.Alternate = GPIO_AF9_QUADSPI; HAL_GPIO_Init(GPIOD, &GPIO_InitStruct); GPIO_InitStruct.Pin = GPIO_PIN_6; GPIO_InitStruct.Mode = GPIO_MODE_AF_PP; GPIO_InitStruct.Pull = GPIO_NOPULL; - GPIO_InitStruct.Speed = GPIO_SPEED_FREQ_HIGH; + GPIO_InitStruct.Speed = GPIO_SPEED_FREQ_MEDIUM; GPIO_InitStruct.Alternate = GPIO_AF10_QUADSPI; HAL_GPIO_Init(GPIOB, &GPIO_InitStruct); } \ No newline at end of file diff --git a/src/main.c b/src/main.c index 26b4ff0..af9e30c 100644 --- a/src/main.c +++ b/src/main.c @@ -42,13 +42,15 @@ boot_fail_loop: static int app_map_qspi(void) { QSPI_CommandTypeDef cmd = { - .Instruction = 0xEB, /* Fast read quad IO with 4 byte address <1-4-4> */ - .InstructionMode = QSPI_INSTRUCTION_1_LINE, - .AddressMode = QSPI_ADDRESS_4_LINES, - .AddressSize = QSPI_ADDRESS_24_BITS, - .AlternateByteMode = QSPI_ALTERNATE_BYTES_4_LINES, - .DataMode = QSPI_DATA_4_LINES, - .DummyCycles = 4U, + .Instruction = 0xEB, /* Fast read quad IO <1-4-4> */ + .InstructionMode = QSPI_INSTRUCTION_1_LINE, + .AddressMode = QSPI_ADDRESS_4_LINES, + .AddressSize = QSPI_ADDRESS_24_BITS, + .AlternateByteMode = QSPI_ALTERNATE_BYTES_4_LINES, + .AlternateBytesSize = QSPI_ALTERNATE_BYTES_8_BITS, + .AlternateBytes = 0xF0, + .DataMode = QSPI_DATA_4_LINES, + .DummyCycles = 4U, }; QSPI_MemoryMappedTypeDef mmap = {