CFAF320240F-T-TS Interface Help

maxwell

New member
Yeah, I see information coming out of my pins as well, Robert. I agree that it must have something to do with the initialization, but, to be honest, I don't really know what's going on during the initialization stage.

cosmicvoid, so the reset is active low? I don't understand why my PIC would be outputting a low anyway, because there is only one point in my code that sets the reset low and it is right before the reset is set to high again. I don't know what disconnecting the level shifters would accomplish, I can still see the output of my pic, this is just a stage between the LCD and the PIC so that the screen isn't getting more than 3.3V.

I feel like I've really hit a brick wall right now. There isn't really anything left that I can really think of to try out...
Looking for additional LCD resources? Check out our LCD blog for the latest developments in LCD technology.
 
so the reset is active low?
Yes, see attached pic.
I don't know what disconnecting the level shifters would accomplish, I can still see the output of my pic, this is just a stage between the LCD and the PIC so that the screen isn't getting more than 3.3V.
It would just eliminate a possible variable. I dont know which level shifter chips you use. In one of my designs, I used a bidirectional chip, 74LVC245 (so I could do reads as well as writes), and if the direction input is set to the wrong state, the shifter chip would be feeding the port.

Earlier you said A1, A3, and A4 are constant. Is that still true?
 

Attachments

maxwell

New member
Yes, I'm still getting constants from those pins. I tried attaching my reset to 3.3V as mentioned in the picture, but this didn't seem to change anything.

I'm using 3 MC14504BCP's for my level shifters. They are unidirectional.
 
Looks like its time to find a new PIC cpu, as that one seems to be damaged.

As I look as the specs for the MC14504, I notice that its not specified for an output voltage that is lower than the input voltage, even though it may work that way. But the killer spec is the horrendously slow propagation delay and rise/fall times. I think this chip will add to your interface problems.

Edit: my mistake, I used 74LVC4245.
 

maxwell

New member
Yes, I am using DB10 through DB17.

For the level shifters propagation delay, I will not be displaying any pictures or anything, so I don't really mind if it works slowly. I have put 1 us delays between the write_command and write_data functions in the initialization, so it should be initializing correctly. The propagation delays are something like 300 ns so it shouldn't be a huge issue if I just put in a 1 us delay between these.
 

maxwell

New member
So, I created a wait function so that I could step through the data as it was being written out, and everything in the initialization process is sending the correct data. Any ideas why the data wouldn't show up on the screen after the initialization process has been stepped through correctly? Or maybe why the initialization commands aren't taken in correctly to initialize things the way they should be?

-Max
 
I don't have any answers at the moment, but I am expecting to have one of these displays in my hands by Friday afternoon, so maybe I can run your code to see what happens.
 
The only PICs that I have are small ones that I use as slaves in an embedded product; not enough speed or I/O. I will use a Zilog dev board that I have, which has the advantage of running at 3.3 volts. Plus I have a C compiler for the Zilog board, and a hardware debug module.
 

Teej

New member
Unless I've missed something in the code you posted...you need to set the ADCON register to make those pins used as digital.

ADCON1 bits 0-3 control which pins are set for digital.

I'd flip on bits 2&3. That sets them all digital. You're not doing any AD conversion so that should be fine.

This is required, and in addition to TRISing.
 
Last edited:
Top