CFAG320240C-FMI-T interface with PIC-type controller


New member
I have the CFAG 320x240 screen and I've been trying to get it to display anything with my BasicMicro AtomPro (similar to PIC, uses a form of basic).

I have the CFAG 240x128 and although the commands are different, the wiring is the same and I have gotten that to work flawlessly.

Here's the trouble with the 320x240 version:

1. When I send it initialization parameters, it makes a "zap" sound. I'm freaked out about this...

2. The screen will seem to initialize but will leave behind either several horizontal bars or large portions of the screen "on". I've run a debug routine that steps though all the commands, and as soon as I get to a command that writes to the LCD screen, ALL the pixels turn on.

I realize it might be software... My routines to send data should be fine, just the data itself needed to be changed. Any chance of a basic code example?

Another thing that bothered me was the setting for TC/R. It depends on a clock frequency but I can't seem to find any documentation on it, nor do I see anything on the board itself. What should this be?

I can submit a sample code if that would help, but I don't know if anyone is familiar with the AtomPro.


Looking for additional LCD resources? Check out our LCD blog for the latest developments in LCD technology.


New member
Ok, I may have solved part of my problem... I switched from an old HD ribbon cable to 24ga wiring just to make sure there was nothing going on with the wires.

Another part of my problem was that the reset pin attached to the PIC based controller was not getting a 5V signal due to some software bugs in the new compiler I have (that's pretty bad). Got that worked out... tested all pins to make sure they're delivering voltages.

Now, I have a screen that's completely white (all pixels on). I checked the pot in back for contrast and it doesn't do anything. Which is kind of wierd because I thought it would at least blacked the screen from not having enough voltage.

I think my code is good because I copied the settings from another user's C code that you gave to him (another thread). My code to drive the parallel interface is good as well. (works on my 240x128 screen) I don't have the wait pin polled, but instead, I set long delays between each command (10 ms) just to make sure it was ready for each new command.

Again, can you provide some sample code just in case I missed something? And what's with that variable resistor in the back that doesn't seem to want to work? What range does it work in? I have the screen powered through the Vee negative voltage pin. The LCD logic power is supplied by an ATX power supply I scavenged from an old computer. (Sparkle - they were the best back when I bought it) There is a fairly large capacitor between 5v and ground also. What else am I missing?

BTW, bump....


New member
thanks for the code... my settings were correct. Something else is wrong. I'm going to wire it to the computer's parallel port to see if my code is bad or if the screen is bad. Hopefully, it's the former.

BTW, shouldn't the pot in the back make the pixels dissappear if I turn it all the way in one direction?? It doesn't do anything actually.