Reputation: 61
I have a Custom display which has SSD1963 Driver Ic, I have tried a lot but couldn,t interface this IC with STM32F407VET6 FSMC peripheral. I'm running the MCU at 168Mhz
My Current Setting From CubeIDE,
hsram1.Instance = FSMC_NORSRAM_DEVICE;
hsram1.Extended = FSMC_NORSRAM_EXTENDED_DEVICE;
/* hsram1.Init */
hsram1.Init.NSBank = FSMC_NORSRAM_BANK1;
hsram1.Init.DataAddressMux = FSMC_DATA_ADDRESS_MUX_DISABLE;
hsram1.Init.MemoryType = FSMC_MEMORY_TYPE_SRAM;
hsram1.Init.MemoryDataWidth = FSMC_NORSRAM_MEM_BUS_WIDTH_16;
hsram1.Init.BurstAccessMode = FSMC_BURST_ACCESS_MODE_DISABLE;
hsram1.Init.WaitSignalPolarity = FSMC_WAIT_SIGNAL_POLARITY_LOW;
hsram1.Init.WrapMode = FSMC_WRAP_MODE_DISABLE;
hsram1.Init.WaitSignalActive = FSMC_WAIT_TIMING_BEFORE_WS;
hsram1.Init.WriteOperation = FSMC_WRITE_OPERATION_ENABLE;
hsram1.Init.WaitSignal = FSMC_WAIT_SIGNAL_DISABLE;
hsram1.Init.ExtendedMode = FSMC_EXTENDED_MODE_DISABLE;
hsram1.Init.AsynchronousWait = FSMC_ASYNCHRONOUS_WAIT_DISABLE;
hsram1.Init.WriteBurst = FSMC_WRITE_BURST_DISABLE;
hsram1.Init.PageSize = FSMC_PAGE_SIZE_NONE;
/* Timing */
Timing.AddressSetupTime = 1;
Timing.AddressHoldTime = 1;
Timing.DataSetupTime = 1;
Timing.BusTurnAroundDuration = 1;
Timing.CLKDivision = 1;
Timing.DataLatency = 0;
Timing.AccessMode = FSMC_ACCESS_MODE_B;
/* ExtTiming */
SSD1963 reference for 8080 Interface
FSMC Application note from stm32
display Init function,
void Lcd_Init(void)
{
HAL_GPIO_WritePin(TFT_RESET_GPIO_Port, TFT_RESET_Pin, GPIO_PIN_SET);
HAL_Delay (100);
HAL_GPIO_WritePin(TFT_RESET_GPIO_Port, TFT_RESET_Pin, GPIO_PIN_RESET);
HAL_Delay (100);
HAL_GPIO_WritePin(TFT_RESET_GPIO_Port, TFT_RESET_Pin, GPIO_PIN_SET);
LCD_Write_COM(0xE2); //PLL multiplier, set PLL clock to 120M
LCD_Write_DATA(0x36); //N=0x36 for 6.5M, 0x23 for 10M crystal
LCD_Write_DATA(0x02);
LCD_Write_DATA(0x04);
LCD_Write_COM(0xE0); // PLL enable
LCD_Write_DATA(0x01);
HAL_Delay(10);
LCD_Write_COM(0xE0);
LCD_Write_DATA(0x03);
HAL_Delay(10);
LCD_Write_COM(0x01); // software reset
HAL_Delay(100);
LCD_Write_COM(0xE6); //PLL setting for PCLK, depends on resolution
LCD_Write_DATA(0x04);
LCD_Write_DATA(0x93);
LCD_Write_DATA(0xE0);
LCD_Write_COM(0xB0); //LCD SPECIFICATION
LCD_Write_DATA(0x00); // 0x24
LCD_Write_DATA(0x00);
LCD_Write_DATA(0x03); //Set HDP 799
LCD_Write_DATA(0x1F);
LCD_Write_DATA(0x01); //Set VDP 479
LCD_Write_DATA(0xDF);
LCD_Write_DATA(0x00);
LCD_Write_COM(0xB4); //HSYNC
LCD_Write_DATA(0x03); //Set HT 928
LCD_Write_DATA(0xA0);
LCD_Write_DATA(0x00); //Set HPS 46
LCD_Write_DATA(0x2E);
LCD_Write_DATA(0x30); //Set HPW 48
LCD_Write_DATA(0x00); //Set LPS 15
LCD_Write_DATA(0x0F);
LCD_Write_DATA(0x00);
LCD_Write_COM(0xB6); //VSYNC
LCD_Write_DATA(0x02); //Set VT 525
LCD_Write_DATA(0x0D);
LCD_Write_DATA(0x00); //Set VPS 16
LCD_Write_DATA(0x10);
LCD_Write_DATA(0x10); //Set VPW 16
LCD_Write_DATA(0x00); //Set FPS 8
LCD_Write_DATA(0x08);
LCD_Write_COM(0xBA);
LCD_Write_DATA(0x05); //GPIO[3:0] out 1
LCD_Write_COM(0xB8);
LCD_Write_DATA(0x07); //GPIO3=input, GPIO[2:0]=output
LCD_Write_DATA(0x01); //GPIO0 normal
//LCD_Write_COM(0x36); //rotation
//LCD_Write_DATA(0x21); // -- Set to 0x22 to rotate 180 degrees 0x21
LCD_Write_COM(0xba); //rotation
LCD_Write_DATA(0x01); // -- Set to 0x22 to rotate 180 degrees 0x21
LCD_Write_COM(0xF0); //pixel data interface
LCD_Write_DATA(0x03);
HAL_Delay(10);
//Lcd_SetArea(0, 0, 799, 479);
//Lcd_Write_Cmd(0x2a); //SET column address
//Lcd_Write_Data(0x00); //SET start column address=0
//Lcd_Write_Data(0x00);
//Lcd_Write_Data(0x03); //SET end column address=799
//Lcd_Write_Data(0x1f);
//
//Lcd_Write_Cmd(0x2b);; //SET page address
//Lcd_Write_Data(0x00);//SET start page address=0
//Lcd_Write_Data(0x00);
//Lcd_Write_Data(0x01);//SET end page address=479
//Lcd_Write_Data(0xdf); //1f
LCD_Write_COM(0x29); //display on
LCD_Write_COM(0xBE); //set PWM for B/L
LCD_Write_DATA(0x06);
LCD_Write_DATA(0xF0);
LCD_Write_DATA(0x01);
LCD_Write_DATA(0xF0);
LCD_Write_DATA(0x00);
LCD_Write_DATA(0x00);
LCD_Write_COM(0xD0);
LCD_Write_DATA(0x0D);
LCD_Write_COM(0x2C);
}
I don't see any response from the LCD. I cant even browse the SRAM memory in SSD1963.If any have correct setting please let me know.
Upvotes: 0
Views: 95