Go Down

Topic: SOLVED-BIG 7 inch TFT Looks great- 1 issue. (Read 5 times) previous topic - next topic

997_1

Jan 09, 2013, 04:52 pm Last Edit: Jan 10, 2013, 09:26 pm by 997_1 Reason: 1
In my quest to go bigger and better on TFTs I occasionally run into an issue, I have found a new issue and need some education from the TFT experts out there.


Hardware: Mega, Screen http://dx.com/p/i082510-800-x-480-7-tft-touch-screen-module-153336

Docs: SSD 1963 http://www.techtoys.com.hk/Components/SSD1963QL9/SSD1963_1.1.pdf  
       Board http://seller.tradeglobals.com:8089/SRMImages/ProductRequirement/20121030/7%e5%af%b8%e5%bd%a9%e5%b1%8f%e6%a8%a1%e5%9d%97%e5%8e%9f%e7%90%86%e5%9b%be.pdf

And of course the UTFT.
       
When I first received the TFT I noticed it has to be the best built TFT I have received (comparing elecfreaks, itead, sainsmart, misc ebay) I am sure there are only a few manufacturers but the group that made this one really put some quality assurance into it.
A few details: received the screen, noted it is a 5v operating board (no shield..nice!) Plugged directly to mega using the pins specified by the UFTF library documents (this is not a supported display- I figured I would use this as a learning experience). On the Mega I am using pins 22-41 and 3.3V, 5V, both gnds. On the screen 3.3, 5v, both gnds, D0-D15, RS, CS, WR, RST, and left RD disconnected as I do not need to read back from the screen.
Plugged in BAM came on but mirrored, I expected this based on another post. Jumped on the web found a modification to the UTFT.cpp file
"Change rotation to: LCD_Write_COM(0x36);      //rotation"
                            LCD_Write_DATA(0x03);
WOW looks great running the UTFT example for the SSD1963_800, it is actually faster than I expected! Running a bit of my code, I will admit refresh is as I expected - slow; for my applications this is fine.
Now the part I need help with - I have no blue. No pixel will display blue. Also the color scheme is in (B, G, R), as opposed to (R, G, B). I attempted to modify the .h file to change the order but to no avail.

So I am confessing my ignorance to the forum courts: I do not know enough to make successful changes in the UTFT.cpp file to accomplish my goals.
Hopeful someone might have a suggestion on how to educate myself on understanding this issue.



bobthebanana

I don't know much about TFT's nor the SSD1963 so this is really a shot in the dark, but if it's anything like the SSD1289 then you might be initializing it incorrectly. Take a look at page 71 in the SSD1289 datasheet (http://www.kosmodrom.com.ua/el/STM32-TFT/SSD1289.pdf). It shows that you can use 262k and 65k color in 16-bit mode. Perhaps you're initializing it in one of the 262k color modes? That way the display would receive what it thinks is the red and green data, then presumably you would send a command to move to the next pixel and the blue data would never be received. Seeing as the library already had other errors (the rotation) this could be a likely possibility. I'm not sure about the whole B,G,R vs. R,G,B though.

997_1

bob,
Thanks, that's a great idea I will look into that. I believe it is something such as this holding me up.
Oh just as a side note, no error in the library I'm using a tft it is not designed for.

997_1

Well, found something odd but do not fully understand what I doing :smiley-roll-sweat:.

In the UTFT.cpp:
LCD_Write_COM(0xF0);      //pixel data interface
LCD_Write_DATA(0x03);

In the SSD1963 doc:
"9.74 set_pixel_data_interface
Command 0xF0
Parameters 1
                D/C D7 D6 D5  D4 D3 D2  D1  D0    Hex
Command    0    1   1   1   1   0   0    0    0      F0
Parameter1  1   0     0   0   0   A2   A1   A0      xx
Description
Set the pixel data format to 8-bit / 9-bit / 12-bit / 16-bit / 16-bit(565) / 18-bit / 24-bit in the parallel host processor
interface. This command is used for display data only, the command format is always 8 bit.
A[2:0] : Pixel Data Interface Format (POR = 101)
000 8-bit
001 12-bit
010 16-bit packed
011 16-bit (565 format)
100 18-bit
101 24-bit
110 9-bit
Others Reserved
* Note : The un-used data bus will be driven to ground by SSD1963, so don't connect the un-used data bus to
MCU."

So I tried .._DATA(0x02) this ,I think, should equate to 16 bit packed. Blue shows up but with an odd shadow and green disappears.So it does not appear that is the issue.

Oh, how I wish I could view whats in this file-  http://m2.img.dxcdn.com/CDDriver/153336.docx

997_1

SOLVED!!!!!!!!!
Had to switch the LCD Spec
LCD_Write_COM(0 x B0);
LCD_Write_DATA(0x24); to (0x04); oddly enough switching it to 18 bit.

AHHH now for a cold one and to bask in the glory.

Thanks Bob for getting me strated in the right direction!

Go Up