CFAG320240 display bug


New member
Ok, I've finally gotten the display work ... as in display text or graphics... using a PIC microcontroller in 6800 mode.

Now the problem I'm running into is that when the screen is in the middle of drawing, all the pixels that have already been lit become very faint. When it has finished drawing everything and the screen is static, the pixels come back to a normal contrast.

I've been using the sample code settings for the screen initialization. I'm not sure if it's a characteristic of this display or if there's something wrong with the circuit I'm using to power the display. I have a capacitor between 5v and ground for powering the logic circuits and I'm using an external pot between the onboard negative voltage generator and Vo (and ground) for setting the contrast of the screen (for some reason, the pot on the back of the LCD doesn't do the job). Is there anything else I should be worried about?

I have CS set to low permanently because it was my understanding that CS is only for disabling any input to the LCD if you have activity through the parallel interface (for other than controlling the LCD). Since I have the LCD wired directly to pins on the PIC microcontroller, I didn't need to worry about this.

Other than that, everything is the same as the sample code I was provided by the mod of this board (aside from tweaking the code to work in 6800 mode rather than 8080). What could be wrong? I'd really like all the pixels to have high contrast at all times because I plan to be updating the screen data constantly. Thanks for any help you can provide!


Here's a sample pic... for those who cared to read this post :) (and this is normal, since the screen is not drawing anything at the moment... sorry about the crappy resolution, it's a camera phone)
Looking for additional LCD resources? Check out our LCD blog for the latest developments in LCD technology.
Last edited:

CF Tech

Basically if you are writing to the memory, the controller cannot read from it to refresh the display, so you need to pace or synchronize the write accesses if you want to update without it affecting the display.

Look on page 59 of the data sheet:
11.2. Microprocessor Synchronization
The S1D13305 series interface operates at full bus speed,completing the execution of each command within the cycle time, tCYC . The controlling microprocessor’s performance is thus not hampered by polling or handshaking when accessing the S1D13305 series.

Display flicker may occur if there is more than one consecutive access that cannot be ignored within a frame. The microprocessor can minimize this either by performing these accesses intermittently, or by continuously checking the status flag (D6) and waiting for it to become HIGH.
and page 63
The S1D13305 series has a single bit status flag.

The D6 status flag is HIGH for the TC/R-C/R cycles at the end of each line where the S1D13305 series is not reading the display memory. The microprocessor may use this period to update display memory without affecting the display, however it is recommended that the display be turned off when refreshing the whole display.


New member
Thanks, i got it figured out using some delays rather than the status checking (more code... i have limited space!).

If anyone wants a driver to run the SED1335 on a BasicMicro AtomPro or a pic using MBasic, PM me and I'll send you what I have.