Help working out how to drive this graphical LCD? - Page 1
Forum section: electronics / projects

author: c4757p
author_rank: Super Contributor
timestamp: May 31, 2014, 08:35:38 pm
content: I picked up a few Ocular OG24161 graphic displays (Datasheet) recently - 240x160 and they were only a couple dollars eachNow, I'm not 100% sure how to drive them. I've never usedanygraphic LCD, let alone one without a full controller. I'm going to put together a little board to try them out before building them into something, so I want to make sure I have this all right. Can anyone put up with my LCD newbishness for a while and help me out?1) VEEis supposed to be "min -23V". I'm not sure how to interpret that. I'm assuming it's absolute rather than magnitude (don't go more negative than -23V), but whatshouldthis voltage be?2) "M - Alternate (Invert) Signal for LCD Drive" - From the little I know about LCDs, I gather that this should be a square wave? Frequency? --- But also, the block diagram shows an "M Generator Circuit". So is this pin actually anoutput, carrying the signal that is generated internally?3) I'm not really clear on what the data signals are supposed to be. My quick interpretation of their "Interface Signals" section implies that I'm supposed to shift in all the pixels on DB0..DB3, one row at a time, as a bitmap. From thedatasheet for the onboard driver chipsand the block diagram, I'm getting the impression that I have to handle the multiplexing myself. So do I have to refresh by repeatedly shifting in the entire bitmap? How fast should I aim to do this? Or will it hold an image until the next time I shift one in?

author: Bored@Work
author_rank: Super Contributor
timestamp: May 31, 2014, 09:14:35 pm
content: Oh dear, oh dear, oh dear.Give up all your other hobbies. These simple (i.e. not containing a controller) LCDs with their driver ICs are notoriously bad documented. The datasheets are written for people who already know how to do it and talk cryptic stuff. Your best chance is maybe to find some example code for an LCD with the S6B0086.But first get the datasheet for the S6B0086. And get the datasheet for the RA0086, a S6B0086 clone. Both contain some typical schematic. Your LCD might use a similar circuit.

author: mariush
author_rank: Super Contributor
timestamp: May 31, 2014, 09:34:05 pm
content: Here's the datasheet for the S6B0086X:http://www.vatronix.com/upload/LCD_Controller/ds_s6b0086_r00.pdfIt goes into more details abiout how that LSI chip works and what those pins do.1. The voltage should be between -6v and -23v ... the actual datasheet above says -6v to -28v but if they say -23v then you should use that. -13v is right there in the middle so you can use a trimpot between ground and -23v to adjust contrast.Not sure what that M does, probably best to leave it unconnected.Yeah, you're better off with a display that has something that interfaces with these chips and gives you a set of commands you can use, instead of sending 4 bits at a time in an endless loop.

author: marshallh
author_rank: Unknown
timestamp: May 31, 2014, 10:10:10 pm
content: Quote from: Bored@Work on May 31, 2014, 09:14:35 pmThis. Throw them away and work on something else

author: c4757p
author_rank: Super Contributor
timestamp: May 31, 2014, 11:08:20 pm
content: Bah... I'm going to give it a try anyway. I like these little things, and they're quite cheap, so if I can get a controller set up for them I might just order a few more for various projects.The plan is to use a dedicated ATmega328 (168 would probably suffice), doing almost nothing but blasting data to the LCD. It can receive a simple set of commands over SPI. I'll also use it to drive two DC-DC converters (buck for the backlight, and inverting for VEE) and drive the contrast pin, all of which will be serviced regularly between refreshes to smooth the timing.If I get something good, I'll definitely share the firmware - could be useful to somebody.

author: dannyf
author_rank: Super Contributor
timestamp: May 31, 2014, 11:39:38 pm
content: The display likely utilizes multiple controllers, some for segments and some for coms.M determines if the data goes to segments or coms - they latched into their respective chips.The parallel data will be send to registers, 80 bits per chip. Your chip will need to generate two clock signals, CL1/CL2, to drive those chips. Looks to be fairly challenging for a little chip to send that much information quickly. If I were to pick a chip to do this, I would go with something with DMA.

author: amyk
author_rank: Super Contributor
timestamp: June 01, 2014, 12:24:26 am
content: You should watchMike's video on driving LED matrix displaysto get an idea of the concepts and signal timing. The seg/com drivers are basically shift registers. The S6B0086 can operate in either mode but it's easier to consider them separately.SEG mode: D1~D4 are inputs to the shift register. CL2 clocks the shift register when enabled by ELB/ERB (depending on direction), and CL1 latches the contents and sends them to the output drivers. You can think of CL2 as like a pixel clock, and CL1 as horizontal sync.COM mode: a single bit is shifted through the register to select a row, and CL1 is the shift clock. ELB/ERB are used for chaining multiple drivers together.Because LCD pixels must be driven with an AC waveform, the polarity of the segment/common lines must be inverted periodically - that is what the M input to the driver is for. It determines the polarity of the applied voltage to the LC cell. You can see this on page 26 of the datasheet.There's some more info someone else wrote here:http://www.microchip.com/forums/m21188.aspxFor your module, the important signal connections are as follows:CL2: pixel clock - DB0~DB3 are sampled on thefallingedge. This is the "CP" on page 4 of the LCD datasheet.CL1: horizontal sync - latches the segment driver's outputs and clocks the common driver on the falling edge. This is "LP" on page 4.DB0~DB3: data for 4 pixels at a time, self-explanatory.FLM: vertical sync - clocked in on the falling edge of CL1, high for the first pixel of the first frame.M: frame inversion signal, toggles every n pixel clocks (for a duty cycle of 1/n)More info:http://www.justinreina.com/main/datasheets/misc/lcdprinciples.pdfhttp://elektronika.kvalitne.cz/ATMEL/necoteorie/LCDtesty/PG320240WRM-HNNIS3/PG320240WRM-HNNIS3_eng.htmlhttp://forum.gadgetfactory.net/index.php?/topic/1502-low-res-monochrome-hitachi-lcd-driver/(If you Google "CL1 CL2 FLM M" you'll find a lot more resources on the driving signals required. I guess they're pretty standardised names, and so is their behaviour.)

author: coldframe
author_rank: Regular Contributor
timestamp: January 08, 2016, 10:22:06 am
content: Quote from: c4757p on May 31, 2014, 08:35:38 pmThe M signal should be a square wave with 50% duty rate. And the standard frequency of M signal is 1/2 frequency of frame signal ('FRAME')There are two ways of doing it1. Software2. Hardware (Flip Flop something)For more information, see the below posthttp://kimboricha.blogspot.kr/2016/01/ocular-og16801-controllerless-graphic.htmlcoldframe,