Skip to main content
Visitor II
January 30, 2025
Question

FMC gives no output for LCD

  • January 30, 2025
  • 1 reply
  • 573 views

Hello,

Apologies if this is posted in the wrong location. I am trying to control an LCD (ST7789) with my STM32U5G9J-DK2 using FMC. In CubeMX, I configured the NOR Flash/PSRAM/SRAM/ROM/LCD 1 to use NE1 and A0 with 16 bits of data. I also ensured to configure the NOR/PSRAM timing according to the ST7789 datasheet.

To my limited understanding of FMC, I believe that writing to the memory bank I have FMC set up at will cause the STM to automatically handle my control signals (FMC_A0, FMC_NE1, FMC_NWE, FMC_NOE, and data). Because I am using NE1 and A0, I have my memory locations defined as:

 

 

#define FMC_BANK1_REG ((uint32_t *)0x60000000)
#define FMC_BANK1_DATA ((uint32_t *)0x60000002)

 

 

 And I am using the functions below to read and write:

 

 

void write_command(uint8_t data)
{
 *FMC_BANK1_REG = (uint32_t)data;
}

void write_data(uint8_t data)
{
 *FMC_BANK1_DATA = (uint32_t)data;
}

uint16_t read_data() {
	return *FMC_BANK1_DATA;
}

// Example
write_command(0xFF);
write_data(0xFF);
HAL_Delay(1000);
uint16_t d = read_data();

 

 

I am using the CubeMX generated code for initialization. After initialization, I try to write some data, and I then try to read it back. However, the data is always 0 for some reason. Why is this?

    This topic has been closed for replies.

    1 reply

    Technical Moderator
    January 30, 2025

    Hello @user20324-245 ,

    Check the timing parameters in CubeMX and ensure they match the requirements of the ST7789 datasheet. Incorrect timing settings can lead to improper communication with the LCD.