I just bought an ILI9325 TFT in 8 bit interface and an Arduino Pro Mini. The LCD data pins is 8 pins from D0 to D7. I followed many articles on how to wiring them up and pushing codes to the tiny board but every attempt comes up with a blank - white display. But why? I'm currently thinking about the following reasons:
8/16 bit TFT LCD is not somewhat designed to work with Arduino Pro Mini (maybe it has too few pinouts?) because what I found when searching for "Arduino Pro Mini" together with "TFT LCD" resulting SPI LCDs, not parallel LCDs like this one. But I thought UNO also has Atmega328 and if it can handle 8 bit LCD, there's no reason why my Pro mini can't.
Logic levels. I'm using Silabs cp2102 USB to UART converter to program it in 5V. I've choosen 3V3 - 8Mhz in the Arduino software when pushing code to it and then plug it to my good old PSU which provides 3V3 line to both the board and the LCD. (I've tested Blink and it runs perfectly on all pinouts on 3V3 after pushed code with 5V CP2102).
This give me a headache over weeks and I can't figure out why. This is the second display I bought and it doesn't seem to work either (the old one I think I've burned it down when connecting it to 5V line). I've also had a Mega 2560 and logic levels converter but it still didn't work.
Another thing related to the problem: When I follow the guide to wiring the pinouts for UNO to Pro Mini and compile the code (referring UTFT requirements document), I can't probe out any signals on DB0 to DB7 (pin 7 through pin 15 on Arduino Pro Mini), so obiviously I'll had a blank screen. But there's something on the TXO and RXI pin that I suspected It was the data lines.
EDIT: OK after some probing I found out the data lines on Pro Mini using UTFT was from pin 0 to pin 7 exactly. But the display still don't have anything but a white screen of death. And I think I've bought some fake display.
(More details coming up and sorry if this is a stupid question!)
thevncore:
But there's something on the TXO and RXI pin that I suspected It was the data lines.
Not quite sure what you are up to there, but you cannot use TX0 or RX1 in a sketch unless you really know what you are doing, so do not try to connect anything to them. I don't know what "pin 7 through pin 15 on Arduino Pro Mini" means.
The Pro Mini is functionally identical to a UNO, merely has a separate USB interface.
thevncore:
I've choosen 3V3 - 8Mhz in the Arduino software when pushing code to it and then plug it to my good old PSU which provides 3V3 line to both the board and the LCD. (I've tested Blink and it runs perfectly on all pinouts on 3V3 after pushed code with 5V CP2102).
I do hope you are actually using a 3.3V Pro Mini with the actual 8 MHz crystal, or all bets are off using it at 3.3V.
damian_golda:
And connect pins (through level converter):
@damian_golda, thanks for the diagram I'll try it. But my display is ILI9325, is it a typo if it's ILI9327??
Um, the logic levels converter is for use with the Mega only since there's no Mega on 3V3.
The TXO pin and RXI pin is somehow "being used" as data lines from internal UTFT library (Ports?). They use bit shifter to push commands and data over ports. I personally avoid those messy pins too because they cause a lot of problems when when programming with USB-UART bridges.
Paul__B:
I do hope you are actually using a 3.3V Pro Mini with the actual 8 MHz crystal, or all bets are off using it at 3.3V.
As a newbie can I ask if a 5V Pro Mini works properly on 3V3 with the Blink example on all pins then will it still works properly with utft's LCD example??
Edit: I don't have any UNO, but this Pro Mini and a Mega 2560. The Mega 2560 fails to hook up the display but I've read somewhere it (and the Due) is said to be troublesome when coming with TFTs
thevncore:
As a newbie can I ask if a 5V Pro Mini works properly on 3V3 with the Blink example on all pins then will it still works properly with utft's LCD example??
Configure the library example to use the correct driver and the correct signal pins
Program is correctly for the CPU frequency
Re. 1: The 5V 16MHz mini pro CPU will be overclocked by 17% if run at 3.3V compared to the manufacturers "safe" operating frequency for that voltage (see attached tables I created some time ago). The probability that the CPU can be overclocked and still operate reliably is high however, this is due to data sheet margins ( to cope with manufacturing tolerances) and the fact that you are unlikely to be running the CPU at 85 deg.C where clock speed limits will be lower due to propagation delay increases inside the chip...
Re. 2: damian_golda pins are correct but your display may number the 8 data pins D0-D7 instead of D8-D15
Re. 3: again try the setup suggested by damian_golda at least you should get something different on the display
Re. 4: if the CPU clock is 16MHz then program with the 16MHz profile, otherwise the millis() counter and baud rates will be twice what you expect. So the LED blink will run twice as fast...
Configure the library example to use the correct driver and the correct signal pins
Program is correctly for the CPU frequency
@Rowboteer, thanks for your suggestions!
Yes, the LCD is 3V3, that's why I supply the pro mini at 3V3 to get the logic levels right without logic levels converter (now I feel I've done a bit silly works here)
The display is a 16-bit one at first, but there's an option for user to switch it to 8-bit mode by desoldering resistor R1 and solder connect the pads for resistor R2 (I also noticed there's a '8' digit near R2 pads). My last attempt, I tried wiring to both D0-D7 and D8-D15 without follow the original wiring diagram (I havent tried damian's diagram yet. I'm currently far away from home), to ensure there is data signal on the pro mini pins routed to the data pins on the LCD. But the result is still a blank screen.
Yes, it's ILI9325. I'm not sure if it's ILI9325C or ILI9325D_8, but that's just a matter to try
The ATMega isn't hot, I feel it's just a bit warm (maybe 40C, not that hot as my graphics card or the bridge in my PC Motherboard). The reason why I do this is because the board doesn't have the characteristics. There are silkscreen text printed: 5V 3V3 8Mhz 10Mhz 16Mhz but nothing is ticked. But I think I'll try to read the crystal.
This thread does not make too much sense. There is talk of ILI9325 and ILI9327 with a Pro Mini.
Which controller, what Arduino, what voltage?
How do you want to wire the display?
If you have a 3.3V 8MHz Pro Mini:
You can connect all the pins directly to the Arduino because it has 3.3V logic.
If you follow the pin scheme with LCD_RD to A0, you can use any of the mcufriend-style libraries.
If you have a 5V 16MHz Pro Mini:
Connect all 13 data and control pins via 13 3.3V level converters.
If you follow the pin scheme with LCD_RD to A0, you can use any of the mcufriend-style libraries.
Since you are probably using ISP to upload your sketches, you could put DB8 on D0, DB9 on D1 and lose the Serial comms.
You will need to modify the data bus for mcufriend libraries.
Very few 8-bit controllers are supported by UTFT. If your one is, the scheme in message #8 will only work if there is a UTFT 8-bit bus driver. You can change the control lines in the UTFT constructor.
I have Arduino Mini Pro 16Mhz and 5V, so I need to use level shifter from 5V->3,3V. I have bought them, but waiting them to arrive. For screen I ordered ILI9325.