Main Menu

Secondary Menu

Author Options:

I Need Help Connecting a PSP Screen to my Arduino? Answered

I am wondering if anyone knows how to connect a psp screen also known as lQ043T3DX02 LCD Module to my Arduino using any of the Arduino's digital pins and some 74HC238 or similar Decoders. If you google "lQ043T3DX02 LCD filetype:pdf" you can find the data sheet.

Discussions

Interfacing with this device would be difficult using an Arduino. The data lines and its power supply need to be 2.5 volts. The RGB data is 24 pins (if you provide the full color set). The worst part is the clock signal must be around 9 MHz. This is out of the Arduino's capabilities of bit-banging. A Parallax Propeller could probably handle it. Maybe consider having the arduino talk to the Propeller and the Propeller generates the clocking signals to the display. Best Wishes

I don't want to beat a dead horse but let me give you a practical example of why you can't use an Arduino to 'bit bang' the signals to this device.

Lets say we want to use an Arduino digital output pin to drive the signals to the LCD screen and so we look at the waveform diagrams and we see that the fastest signal there is the clock signal which needs around 8 MHz (9 is typical but 8 works better in my example).

This get you a LOT closer to toggling the pin at 8 MHz. I used a 'goto' which is very bad form in order to avoid any overhead added by the LOOP processing (if any, I'm not sure how much overhead this is but I saw this overhead myself while driving my 5x5x5 LED cube).

and repeat this until the arduino memory is nearly filled. Now you have the closest you can achieve to bit banging an 8 MHz clock signal using an Arduino. The Arduino can't do ANYTHING but this and it can't even do this correctly.

So, bit-banging the signals is not the solution So how could we interface the Arduino to this LCD? You would have to create a driver circuit that maybe interfaced to the Arduino as though it were memory. The Arduino would write values into memory addresses providing the color and characters (at its slow pace). The driver would then bang out the signals to the LCD at the 8MHz pace.

As I had hinted to in my earlier message, I'd be willing to bet that a Parallax Propeller could perform this task. The Arduino could communicate to the propeller using a serial interface and the propeller would drive the clock and data signals to the LCD. The propeller probably could do this because it is composed of 8 internal processors operating in parallel. You'd assign one processor to communicate with the Arduino and the other 7 processors could bit-bang the signals to the LCD. Normally you wouldn't use a processor to do this, you'd use a field programmable gate array (FPGA) or an Application Specific Integrated Circuit (ASIC) which are harder for hobbiests to build. The propeller method might be an interesting project... but I got too many projects going myself :-)

This is a dynamic device. It needs to have data clocked in at ~7-10 MHz, and it is not memory mapped - anything you try and do has to be mapped in the Arduino, then clocked out in a very high speed bitstream.

It is a job for at least a 32 bit arm, you would have more chance with an MBED processor.

Not and sustain 9Mhz datarates - especially on a RISC architecture, which takes more instructions to do any given job than a CISC one. Remember, thats sort out your data, get it ready to clock, clock out a chunk, toggle clock line, get next chunk, clock it, toggle clock. You really don't have enough instruction cycles. Somethings are just not possible for a given processor speed.

I must say I was a bit surprised to see that display is dynamic, but that saves hardware in the device, which, considering the price of the unit they're used in isn't really surprising.