I thought I'd post this in the hope of saving some noob like me some unnecessary grief; because I have just brought two 2.2" ili9341 displays that I thought I'd fried back to life.
They were both just displaying a white screen on power-up, after failing while fiddling around with connections. While reading the ili9341 datasheet, i noticed a comment that unstable power on power-up will cause the display to go into sleep mode; also that it can be brought out of sleep mode by bringing the reset pin low for at least 10 microsecs and then high again. In desperation I hacked one of the ili9341 demo progs to do just that at the start - delay(1) was plenty after a digitalwrite(8,low) where 8 was the reset line, another write high, - and voila! a functioning display again!
Now I just have to work out a project utilising 2 spare displays!
this is probably the worst device I worked with, if you plan to purchase it , I strongly recommend not to do so !!
although applying all advices found on the internet, the best I could achieve is to make the adafruit demo work for a while, suddently the screen does not work anymore, then back again, sometimes the data line seemed corrupted craps appearing on the screen
first I thought it was some breadbord contacts, so I hardwired everything with solder on a new euro card, same problem...that thing is just driving me insane
I used resset, and no reset, I added pullup and no pullup, I used miso, and no miso,
as an alternative I achieved to make it work with a raspberry pi, but the touch ic never gave me any correct information via SPI
I agree with David, these are the "best" small screens I have come across.
I suspect the problem is with the level converter, they may be a Chinese copy of the Texas Instruments chip. These level converters generate a lot of power supply noise so need decoupling (bypass) capacitor close to the chip on the power rails. Because of the high dI/dt noise you get ground bounce too if you do not have substantial GND lines between the different parts of the setup, this causes glitches on the digital lines, in particular at the clock signal edges. Also note that these level converter chips need a pull down on the OE line to keep OE low to ensure they power up in the correct state.
My conclusion is that it is the level converter that is causing the problems, not the TFT. Simple resistor dividers work fine with these displays for logic level shifting. I use 1K2 and 1K8 because I have a stack of those values!