2024-03-26 09:51 PM
I am trying to get a 7" LCD to interface with a STM32F407VET6 microcontroller. I am using a display from winstar which the product number is WF70A2TIFGDBT0. The screen is 800x480 pixels and uses 8080 interface. The display uses a SSD1963 driver and I am trying to use FSMC to interact with it. My problem is that the screen is not being initialized properly and I am confused why. I have attached my code so if anyone is willing to look at it and help me out that would be a great help. I am thinking that it is a timing issue but I am not sure the screen is just black throughout all of my testing. I am using FSMC Address 18 for my data/command select and an 8 bit data bus.
2024-03-27 03:03 AM
Hello,
Seems one of the community members succeeded to drive an LCD (SSD1963):
See this old thread.
2024-08-16 05:08 AM
Hello, @Ethan_Daugherty did you finally sort out the issue, I am facing the same challenge, my display is showing blank display even after watching a YouTube video and following what the guy was doing exactly, i still dont know where I'm going wrong, kindly help me
let me attach my full project here for reference in case you find time
2024-08-17 07:56 PM - last edited on 2024-08-27 04:21 AM by Andrew Neil
Hello @PMato.1 , I was able to figure out the problem I was dealing with. My problem was that I was addressing the wrong bits when for the data lines because it functioned differently than the resources I was looking at. I was using an 8-bit data bus with the FSMC to control my screen which is slightly different than a 16-bit data line. I realized that this driver does not really have a standard so I had to adjust some different sources for my initialization code. The main issue was that with an 8-bit data line the bits are shifted over from the 16-bit data line so my code was not initializing the screen properly because it was not receiving the correct data from write data command. Here is a resource that I used to help me https://github.com/hampussandberg/HexConnect/wiki/LCD-ER_TFTM070_5
In the screen shot I attached is the section that helped me figure out my issue. On this it was different for the what to use for commands and data. I am not really sure why it is different but I think the resource might have been wrong or it is just different for an 8-bit bus than for a 16-bit bus. Here is what my write command and data functions looked like:
void Write_Command(uint8_t command)
{
//IC_RD = 1;
//IC_A18 = 0;
//IC_WR = 0;
//IC_CS = 0;
//Send Command to the Data Bus
*(__IO uint8_t *)(0x60000000) = command;
//IC_CS = 1;
//IC_WR = 1;
}
//=================================
void Write_Data(uint8_t data1) //8bit data
{
//IC_RD = 1;
//IC_A18 = 1;
//IC_WR = 0;
//IC_CS = 0;
//Send data to the Data Bus
*(__IO uint8_t *)(0x60040000) = data1;//test
//IC_CS = 1;
//IC_WR = 1;
}
2024-08-22 03:09 AM
I have also been successful to drive the SSD1963 using FSMC
2024-08-22 03:13 AM
Hey @Ethan_Daugherty thank you so much for this detailed explanation, i have managed to figure it out using the 16 bit.
Thank you so much
2024-08-27 04:14 AM
@PMato.1 wrote:I have also been successful to drive the SSD1963 using FSMC
Hi
I am still struggling with SSD1963 and FSMC (works fine with direct GPIO control). could you share your updated and now working project ?
Thanks
2024-08-27 04:20 AM - edited 2024-08-27 06:57 AM
@Ethan_Daugherty You seem to have marked the wrong post as the solution? now unmarked by @SofLit - please mark the actual solution.
I edited your post to format the code - See https://community.st.com/t5/community-guidelines/how-to-write-your-question-to-maximize-your-chances-to-find-a/ta-p/575228
2024-08-27 06:50 AM
Unmarked the "wrongly marked" solution.