SparkFun Forums 

Where electronics enthusiasts find answers.

Have questions about a SparkFun product or board? This is the place to be.
By martan3d
#191516
Ok, I've got my GLD12864 LCD all hooked up and its more or less working.

Because I've got it wired a bit weird I am not using any of the libraries floating around for it. I've got it hooked up to an Attiny 1634. Since I didn't have the required number of I/O pins available, I'm using two latches to clock the data into them and then use those outputs to present the data to the LCD when I take the Enable Line low.

This works ok, I see all the data and control lines assume their correct states before I clock the E line but I'm having a problem, I don't understand the addressing scheme I don't think. Or perhaps it's the timing of the CSS1 and CSS2 vs the E line?

The screen looks like two identical pages side by side as I write the x,y coordinates to it. I thought it might be that I have to clock the two CSS lines independently to clock the data into one or the other but that doesn't seem to have any effect? I always seem to be writing to both at the same time, or the screen shows that.

Here is a video:
https://youtu.be/P2kcpzoOBBQ

Any help appreciated- Thanks! Martin
By martan3d
#191537
I did figure it out- There are two chips in the display. One handles the left side of the screen 0-63 and the other handles the right side, also 0-63. You must choose, via the CSS1 or CSS2 lines, which one gets the commands and data when you toggle the Enable (E) line low. Also, the docs are less than clear (go figure) so the RS line is the RESET line (or I think) so in the docs at the table of commands, RS needs to be HIGH not low and DI (data/instruction) which is not even mentioned, needs to be set for data and cleared for instructions like LCD on or off or SETX or anything. Also, both chips need to have LCD TURN ON sent to them. Be sure to remember (I didn't) that there really are only 8 'lines' up and down but 128 left to right. You write a byte into a 'cell' (one of the 0-127) on a line. It has 8 bits (up and down) so writing an 0xff into the cell gives you a vertical line of 8 pixels and 0x03 gives you a vertical line of 2 pixels, etc. So if you want a pixelXY(x, y, ON) sort of function you will have to do some gyrations to figure out which bytes need to be altered to get a line or whathaveyou.