2024-11-11 02:19 AM
I'm working with the STM32MP131FAE in a bare-metal environment, and I'm experiencing issues with QuadSPI.
I want to use Quad SPI to send 96 bytes of data continuously without any clock interruptions.
However, currently, the data is being sent in chunks, with breaks every 4 bytes.
Is there a way to resolve this issue?
From top to bottom, the signals are CLK, Data1~3.
Below is my QuadSPI configuration:
sCommand.Instruction = 0;
sCommand.InstructionMode = XSPI_INSTRUCTION_NONE;
sCommand.AddressMode = XSPI_ADDRESS_NONE;
sCommand.AddressWidth = XSPI_ADDRESS_24_BITS;
sCommand.Address = 0;
sCommand.AlternateByteMode = XSPI_ALT_BYTES_NONE;
sCommand.DTRMode = XSPI_DTR_MODE_DISABLE;
sCommand.DelayHoldHalfCycle = XSPI_DHHC_ANALOG_DELAY;
sCommand.SIOOMode = XSPI_SIOO_INST_EVERY_CMD;
sCommand.DataMode = XSPI_DATA_4_LINES;
sCommand.DataLength = 96;
sCommand.DummyCycles = 0;
sCommand.IOSelect = HAL_XSPI_SELECT_IO_7_4;
/* Configure the command */
if (HAL_XSPI_Command(&hxspi, &sCommand, HAL_XSPI_TIMEOUT_DEFAULT_VALUE) != HAL_OK) {
return HAL_ERROR;
}
/* Transmission of the data */
if (HAL_XSPI_Transmit(&hxspi, pdata, HAL_XSPI_TIMEOUT_DEFAULT_VALUE) != HAL_OK)
{
return FALSE;
}