cancel
Showing results for 
Search instead for 
Did you mean: 

how to run QSPI ?

luisfynn1
Associate II

Post edited by ST moderator to be inline with the community rules for the code sharing. In next time please use </> button to paste your code and a linker script content. Please read this post: How to insert source code.

Hi everyone,

I'm trying to interface an ICNA3306 LCD display using STM32's QSPI peripheral. The LCD uses a custom protocol where commands are sent as:

  • Instruction: 0x02 (8 bits, 1-wire)
  • Address: 0x00, CMD, 0x00 (24 bits, 1-wire)

Expected behavior: 32 clock pulses (8 instruction + 24 address) Actual behavior: Only 8 clock pulses (instruction only - address phase not transmitted)

Here's my code:

HAL_StatusTypeDef ICNA3306_WriteCommand(uint8_t cmd)
{
QSPI_CommandTypeDef sCommand = {0};

sCommand.InstructionMode = QSPI_INSTRUCTION_1_LINE;
sCommand.Instruction = 0x02;

sCommand.AddressMode = QSPI_ADDRESS_1_LINE;
sCommand.AddressSize = QSPI_ADDRESS_24_BITS;
sCommand.Address = (0x00 << 16) | (cmd << ‌‌ | 0x00;

sCommand.AlternateByteMode = QSPI_ALTERNATE_BYTES_NONE;
sCommand.DataMode = QSPI_DATA_NONE;
sCommand.DummyCycles = 0;
sCommand.DdrMode = QSPI_DDR_MODE_DISABLE;
sCommand.SIOOMode = QSPI_SIOO_INST_EVERY_CMD;

return HAL_QSPI_Command(&hqspi, &sCommand, HAL_MAX_DELAY);
}

 

QSPI Configuration:

hqspi.Init.ClockPrescaler = 13;
hqspi.Init.FifoThreshold = 4;
hqspi.Init.SampleShifting = QSPI_SAMPLE_SHIFTING_HALFCYCLE;
hqspi.Init.FlashSize = 23;
hqspi.Init.ChipSelectHighTime = QSPI_CS_HIGH_TIME_6_CYCLE;
hqspi.Init.ClockMode = QSPI_CLOCK_MODE_0;

 

Oscilloscope shows:

luisfynn1_0-1765352949409.png

 

and then right waveform is below:(make QSPI using GPIO)

luisfynn1_1-1765352987189.png

 

3 REPLIES 3
mƎALLEm
ST Employee

Hello,

I don't see any relation between the title and the request. Could you please clarify?

To give better visibility on the answered topics, please click on "Accept as Solution" on the reply which solved your issue or answered your question.
luisfynn1
Associate II

oh I am sorry.

I fixed it.

You need also to provide the MCU product part number you are using.

How to write your question to maximize your chances to find a solution

To give better visibility on the answered topics, please click on "Accept as Solution" on the reply which solved your issue or answered your question.