cancel
Showing results for 
Search instead for 
Did you mean: 

Standard library for SSD1963

edgarmedina20
Associate II
Posted on January 14, 2014 at 21:28

Hello everybody.

I am new in the foro and I'm working with stm32f4 discovery also I'm working with a TFT LCD 7'' 800x480pixels SSD1963 controller but I haven't found a standard library for this TFT, someone have an example with the library please?.

#stm32f4-tft-ssd1289 #libraries-ssd1963-discovery #libraries-ssd1963-discovery #logic-analyzer #know-your-tools
10 REPLIES 10
warcatz
Associate II
Posted on January 15, 2014 at 21:03

I attach one of my old project i made with a stm32f407 last year.

LCD.c and LCD.h are the only file you need.

And with ssd1963 nothing is ... standard ... all depend on the screen you are using

for set the good timing on FSMC bus.

It's why i discontinued this project 😉 .. i don't like reinvent the wheel on every different screen i use ... he he ..

For info , the screen was a 480 x 272 pixels , just change the parameters in the init driver and in the #declares.

Cya.

________________

Attachments :

stm1963_-_2013-05-12-2143.zip : https://st--c.eu10.content.force.com/sfc/dist/version/download/?oid=00Db0000000YtG6&ids=0680X000006HzsZ&d=%2Fa%2F0X0000000bQZ%2FO8_Jd2o3E3_PmvfHYwSYJWXWbd8PYd8jabPM_15PwM4&asPdf=false
edgarmedina20
Associate II
Posted on January 15, 2014 at 22:40

thank you very much for your help. one question? is project complete?, because I have a lot of error maybe the linker, I will try to resolve the problem. this is the message:

Rebuild target 'stm1963'

assembling startup_stm32f4xx.s...

compiling misc.c...

compiling stm32f4xx_dbgmcu.c...

compiling stm32f4xx_dma.c...

compiling stm32f4xx_exti.c...

compiling stm32f4xx_flash.c...

stm32f4xx_library\src\stm32f4xx_flash.c(434): warning:  #550-D: variable ''tmp_psize'' was set but never used

compiling stm32f4xx_fsmc.c...

compiling stm32f4xx_gpio.c...

compiling stm32f4xx_rcc.c...

compiling stm32f4xx_rng.c...

compiling stm32f4xx_rtc.c...

compiling stm32f4xx_sdio.c...

compiling stm32f4xx_syscfg.c...

compiling stm32f4xx_tim.c...

compiling fonts.c...

compiling fsmc.c...

user\fsmc.c(9): error:  #20: identifier ''FSMC_NORSRAMInitTypeDef'' is undefined

user\fsmc.c(10): error:  #20: identifier ''FSMC_NORSRAMTimingInitTypeDef'' is undefined

user\fsmc.c(11): error:  #20: identifier ''GPIO_InitTypeDef'' is undefined

user\fsmc.c(12): warning:  #223-D: function ''FSMC_NORSRAMDeInit'' declared implicitly

user\fsmc.c(12): error:  #20: identifier ''FSMC_Bank1_NORSRAM2'' is undefined

user\fsmc.c(15): warning:  #223-D: function ''RCC_AHB1PeriphClockCmd'' declared implicitly

user\fsmc.c(15): error:  #20: identifier ''RCC_AHB1Periph_GPIOD'' is undefined

user\fsmc.c(15): error:  #20: identifier ''RCC_AHB1Periph_GPIOE'' is undefined

user\fsmc.c(15): error:  #20: identifier ''RCC_AHB1Periph_GPIOF'' is undefined

user\fsmc.c(16): error:  #20: identifier ''RCC_AHB1Periph_GPIOG'' is undefined

user\fsmc.c(19): warning:  #223-D: function ''RCC_AHB3PeriphClockCmd'' declared implicitly

user\fsmc.c(19): error:  #20: identifier ''RCC_AHB3Periph_FSMC'' is undefined

user\fsmc.c(50): warning:  #223-D: function ''GPIO_PinAFConfig'' declared implicitly

user\fsmc.c(50): error:  #20: identifier ''GPIO_PinSource0'' is undefined

user\fsmc.c(50): error:  #20: identifier ''GPIO_AF_FSMC'' is undefined

user\fsmc.c(51): error:  #20: identifier ''GPIO_PinSource1'' is undefined

user\fsmc.c(52): error:  #20: identifier ''GPIO_PinSource4'' is undefined

user\fsmc.c(53): error:  #20: identifier ''GPIO_PinSource5'' is undefined

user\fsmc.c(54): error:  #20: identifier ''GPIO_PinSource8'' is undefined

user\fsmc.c(55): error:  #20: identifier ''GPIO_PinSource9'' is undefined

user\fsmc.c(56): error:  #20: identifier ''GPIO_PinSource10'' is undefined

user\fsmc.c(57): error:  #20: identifier ''GPIO_PinSource11'' is undefined

user\fsmc.c(58): error:  #20: identifier ''GPIO_PinSource12'' is undefined

user\fsmc.c(59): error:  #20: identifier ''GPIO_PinSource13'' is undefined

user\fsmc.c(60): error:  #20: identifier ''GPIO_PinSource14'' is undefined

user\fsmc.c(61): error:  #20: identifier ''GPIO_PinSource15'' is undefined

user\fsmc.c(63): error:  #20: identifier ''GPIO_Pin_0'' is undefined

user\fsmc.c(63): error:  #20: identifier ''GPIO_Pin_1'' is undefined

user\fsmc.c(63): error:  #20: identifier ''GPIO_Pin_4'' is undefined

user\fsmc.c(63): error:  #20: identifier ''GPIO_Pin_5'' is undefined

user\fsmc.c(64): error:  #20: identifier ''GPIO_Pin_8'' is undefined

user\fsmc.c(64): error:  #20: identifier ''GPIO_Pin_9'' is undefined

user\fsmc.c(64): error:  #20: identifier ''GPIO_Pin_10'' is undefined

user\fsmc.c(64): error:  #20: identifier ''GPIO_Pin_11'' is undefined

compiling functions.c...

user\functions.c(27): error:  #20: identifier ''GPIO_InitTypeDef'' is undefined

user\functions.c(29): warning:  #223-D: function ''RCC_AHB1PeriphClockCmd'' declared implicitly

user\functions.c(29): error:  #20: identifier ''RCC_AHB1Periph_GPIOF'' is undefined

user\functions.c(31): error:  #20: identifier ''GPIO_Pin_6'' is undefined

user\functions.c(32): error:  #20: identifier ''GPIO_Mode_OUT'' is undefined

user\functions.c(33): error:  #20: identifier ''GPIO_OType_PP'' is undefined

user\functions.c(34): error:  #20: identifier ''GPIO_PuPd_UP'' is undefined

user\functions.c(35): error:  #20: identifier ''GPIO_Speed_50MHz'' is undefined

user\functions.c(36): warning:  #223-D: function ''GPIO_Init'' declared implicitly

compiling Julija.c...

user\Julija.c(99): warning:  #1035-D: single-precision operand implicitly converted to double-precision

user\Julija.c(130): warning:  #1035-D: single-precision operand implicitly converted to double-precision

user\Julija.c(161): warning:  #1035-D: single-precision operand implicitly converted to double-precision

user\Julija.c(192): warning:  #1035-D: single-precision operand implicitly converted to double-precision

user\Julija.c(223): warning:  #1035-D: single-precision operand implicitly converted to double-precision

user\Julija.c(253): warning:  #1035-D: single-precision operand implicitly converted to double-precision

user\Julija.c(283): warning:  #1035-D: single-precision operand implicitly converted to double-precision

user\Julija.c(314): warning:  #1035-D: single-precision operand implicitly converted to double-precision

user\Julija.c(315): warning:  #1035-D: single-precision operand implicitly converted to double-precision

compiling LCD.c...

user\LCD.c(39): warning:  #223-D: function ''GPIO_ResetBits'' declared implicitly

user\LCD.c(39): error:  #20: identifier ''GPIO_Pin_0'' is undefined

user\LCD.c(41): warning:  #223-D: function ''GPIO_SetBits'' declared implicitly

user\LCD.c(45): error:  #20: identifier ''GPIO_Pin_7'' is undefined

user\LCD.c(432): warning:  #186-D: pointless comparison of unsigned integer with zero

user\LCD.c(434): warning:  #186-D: pointless comparison of unsigned integer with zero

user\LCD.c(436): warning:  #186-D: pointless comparison of unsigned integer with zero

user\LCD.c(436): warning:  #186-D: pointless comparison of unsigned integer with zero

user\LCD.c(440): warning:  #186-D: pointless comparison of unsigned integer with zero

user\LCD.c(442): warning:  #186-D: pointless comparison of unsigned integer with zero

user\LCD.c(444): warning:  #186-D: pointless comparison of unsigned integer with zero

user\LCD.c(444): warning:  #186-D: pointless comparison of unsigned integer with zero

compiling main.c...

user\main.c(21): error:  #20: identifier ''TIM_TimeBaseInitTypeDef'' is undefined

user\main.c(22): error:  #20: identifier ''TIM_OCInitTypeDef'' is undefined

user\main.c(505): warning:  #223-D: function ''GPIO_ResetBits'' declared implicitly

user\main.c(505): error:  #20: identifier ''GPIO_Pin_6'' is undefined

user\main.c(508): warning:  #223-D: function ''GPIO_SetBits'' declared implicitly

user\main.c(521): warning:  #223-D: function ''GPIO_ResetBits'' declared implicitly

user\main.c(521): error:  #20: identifier ''GPIO_Pin_6'' is undefined

user\main.c(525): warning:  #223-D: function ''GPIO_SetBits'' declared implicitly

user\main.c(557): warning:  #223-D: function ''GPIO_ResetBits'' declared implicitly

user\main.c(557): error:  #20: identifier ''GPIO_Pin_6'' is undefined

user\main.c(560): warning:  #223-D: function ''GPIO_SetBits'' declared implicitly

compiling sram.c...

compiling stm32f4xx_it.c...

compiling system_stm32f4xx.c...

compiling Timing.c...

user\Timing.c(11): error:  #20: identifier ''RCC_ClocksTypeDef'' is undefined

user\Timing.c(13): warning:  #223-D: function ''RCC_GetClocksFreq'' declared implicitly

Target not created

mmm... maybe I'll Add all standards libraries GPIO, RCC, TIM, etc. I'll try to do it and I'll change the driver 🙂

Best Regard.
warcatz
Associate II
Posted on January 15, 2014 at 23:57

It was working for me 😉

Don't forget to set the path to the different folder or it will never compile.

and try to just use LCD.c and LCD.h in your project , the rest was specific to my extra hardware (External PSRAM etc ... )

void FSMC_LCD_Config(void)

in fsmc.c is to modify for your LCD pins

void LCD_Init(void) is the most important , when the LCD is initialized just look you can use the :

void LCD_SetPoint(uint16_t Xpos,uint16_t Ypos,uint16_t color)

when pixels appear , you can then look the rest.

edgarmedina20
Associate II
Posted on January 16, 2014 at 23:02

Hello. I need help x_x, I have configured the initialization and I have changed the GPIO pins. similar to this page:

https://sites.google.com/site/miguelmoreto/home-eng/projects/stm32f4-adapter-board2

in... LCD connections.

In this page talk about HY32D LCD controller but, my LCD controller is SSD1963 and I have adapted it to mine. I was studying about the ''FSMC'' and others peripherals and I have idea as how it work I used 16bits BUS. So I'm not sure about the timing of FSMC in the TFT, I have left my code based in yours with my configuration of inicialization.

Thank you very much.

Best Regards.

________________

Attachments :

stm1963.rar : https://st--c.eu10.content.force.com/sfc/dist/version/download/?oid=00Db0000000YtG6&ids=0680X000006HzsY&d=%2Fa%2F0X0000000bQa%2FKAuKQKtadTSAwBL3Iae3H_fCeSe4KdaOjdbRw6myinE&asPdf=false
edgarmedina20
Associate II
Posted on March 30, 2014 at 09:10

Hello vader.darth.

I'm continious my last work with the TFT of controller SSD1963, and I probed your source code, but that does not work, and I tried to change the  time or clock and the HCLK for a slow process in the FSMC but I don't have positive results. about your code I don't understand very good :\ because you have a lot of comments and in some cases you use two similar function like as: LCD_CtrlLinesConfig and LCD_CtrlLinesConfig1 or LCD_FSMCConfig1 and LCD_FSMCConfig. is it possible that you explain this stage? I have leart more about the FSMC in this time.

Thanks.

warcatz
Associate II
Posted on March 30, 2014 at 13:35

Hi,

I think you made confusion between my code and the HY32D LCD related to the post from Medina , i don't have this function in my driver 😉

And this project is discontinued since more than one year now and i no more have the material for made further test.

It was because the ssd1963 and allot of sort of different LCD (and parameters) on the market that i no more use it.

On my point it is allot more easy to get a cheap st429 disco , remove the LCD and put a bigger one on the external pins.

So you can use directly the integrated lcd driver without use of any ssd1963 or other thing like that ;).

And for sure it work allot faster and better !!

Cheers.

PS: if you prefer no more use LCD but directly VGA , take a look here :

https://sites.google.com/site/suprabotics/

edgarmedina20
Associate II
Posted on March 30, 2014 at 19:46

Yes, but I need a big TFT for a special project :\ mmm.. yes you have the reason I've used another library blend with yours, I compilated your code and there are many error :\ similar to the last one. I don't know why there are many error if you say that this code compile very good :/..

The pin PG10 <-> FSMC_NE3 | LCD CS isn't visible in the stm32f4 discovery :S the CS is necessary for the configuration :( or is possible change for another pin?

I've using keil uVision 4

Thanks.

Posted on March 30, 2014 at 23:53

I compiled your code and there are many error :\ similar to the last one. I don't know why there are many error if you say that this code compile very good :/..

Yeah, it's because you don't know your tools well enough to actually create a project properly, and consequently you get errors. It's your fault there are errors. Suggest you review the template/example project supplied by ST, and understand how they are internally configured/structured.

Create a shell project that works with your board, and tool configuration, if that is easier, and then merge in the other source. Using other people's projects tend to depend significantly on how they install the tool chain, and where they placed the source and library components. Unzipping files under the Desktop can also cause grief.

Tips, Buy me a coffee, or three.. PayPal Venmo
Up vote any posts that you find helpful, it shows what's working..
edgarmedina20
Associate II
Posted on March 31, 2014 at 00:46

Yes, I understand why of the errors, I copied the file on the desktop and I had not the correct direction of the libraries, well, I have problem with the configuration of the FSMC for configurate the TFT and I changed some GPIO because the stm32f4 discovery have not the GPIO G10 :/. I believe I have to learn to use the LA (logic analyzer) but using the specifict pins of FSMC for look the correct configuration :/. I need to learn more keil and how create a .ini u.u