I would like to contribute...
Got one of these really cheap 1.8" TFT of eBay. Just like on the picture below. Great value for the price. Got it up and running in no time. Very nice. Right. Just one little problem... flickering streaks.
I did search InterWeb and can't find right answer. So I did my own research and found root cause of what often described as flicker, to me it is more like flickering lines when loading data into display. Actualy, if you have more than one device on SPI - any SPI activity will cause that.
First of all the specs. There is not much available, but the fact is that right out of the box it must be powered by 5V but interface must be 3.3V. Keep that in mind for your next project.
Interface is definitely SPI, not I2C as some suggested because of signal names on the board. SDA is actually MOSI. If you planning to use it together with card reader you can connect both MOSIs and SCKs together right away. Obviously CSs must be on different Arduino's pins, any free DO will suffice, just don't forget to declare it accordingly in the header of your sketch.
What I did, is to insert resistive dividers into each signal from Atmel to TFT. It consists of one in series of 180 Ohm and one 330 Ohm parallel to the inputs to ground, for each input. (you don't need to do anything to MISO, haha like soup)
Some more expensive versions of this display do have onboard level shifters, 5 to 3.3. You may prefer to add one like this.
Convert your Atmel board and display to 3.3V. Many ways to do that for Arduino. On display board you have to put solder blob across JP1.
I did test solution 1 and 3. Crystal clear update. Great!
I'm surprised to not find actual answer before researching it myself. Anyway. Most Arduino's running at 5V. Present display powered internally, including IOs, at 3.3v. Atmel's IOs drive current is pretty high. Display's inputs have clamps to VCC. Most signals idle high. When signals are 5V - current from signals through clamp diodes back feeding VCC and actually raising voltage on 3.3V regulator on display board to ~3.9V. During intense communications this voltage drops a bit and display's analog circuitry thrown a out of wack causing streaks on display.
oh so it will work if I use level shifter and power it with 3.3v? if yes, will it be compatible with adafruit's library? i think it uses sst7735s while adafruit uses sst7735r, are all sst7735's(R,S,B) compatible?
Using high value resistors in series is a hacky way to level shift, and it totally
relies on the receiving chip having protection diodes (have you checked?).
The main problem is that you can't clock very fast with 10k resistors, and 1k
resistors might burn out the protection diodes. Resistive divider of say
470 and 1k would be useful for the SCLK and MOSI lines to get decent
Streaks on the display when uploading on a TFT is totally new to me - which
CoG chip is involved? The CoG normally totally isolates the display update from
the RAM access (the RAM is multi-ported).
(*) CoG = chip on glass, the sliver of silicon that drives gates/sources of the TFTs
and handles the frame buffer.
Equal singals are:
SCK = CLK
SDA = DIN
A0 = DC
RESET = RST
CS = CE
Unfortunately here is mixed I2C and SPI terminology, correct naming is
SCLK (Serial Clock) - equal to SCK or CLK above
MOSI (Master Out Slave In) - equal to SDA above
MISO (Master In Slave Out) - equal to SDO on other TFTs
SS (Slave Select) - equal to CS or CE (Chip Select, Chip Enable)
DC = A0 = RS (I do not know what those abbreviations mean)
SCK/SCLK/C (Serial Clock)
SDA/DATA/D (Serial Data Line)
Also is used in terminology:
OE (Output Enable)
WE (Write Enable)
but I am facing another problem, the built-in sd can seems to be not working, when I compare it to my sd card module, they have same pins except that the lcd does not have Vcc and Gnd, so I have assumed that these pins were connected to the Vcc and Gnd pins of the lcd, I tried to make it work but I could not make it work, I suspect that the gnd and vcc pins of this module are not connected
but their schematic seems that it should have beed connected: