How to drive a old controllerless lcd? Hitachi LM236XB - Page 1
Forum section: electronics / beginners

author: funder_benz
author_rank: Newbie
timestamp: November 11, 2014, 02:13:19 am
content: Hi there, this is my first post here. I saw some videos on youtube about Dave, and I think that this is the right place for me to find an answer.Well, I'm not an expert at all, I've been messing around and being interested to electronics since when i was a child, now I want to learn something new.My goal is to make an audio spectrum analyzer, so I was thinking about which visual device will be the best choice to display what I want.Some time ago I bought an old Aval Spotlink "The Teleterminal", it was working, but in fact, useless, so I thought to use its lcd for my project as its big enough and reminds me to my gameboy somehow.Actually I've got an arduino, and I've tried to hook up the thing up and figure out how does it work. I've found some info on the net, but really, not very useful to me.I need to study a lot to be able to understand how this device works, probably it's not the best piece of hardware to start with, but anyway, I don't want to give up, absolutely.This thing needs a good refresh rate, which is (I think) impossible to achieve with only an arduino and no "interface" between it and the lcd.But, that Aval Spotlink, made in the 90's did it, so there should be a way to do that.Probably, the best thing it's to hook up a logic analyzer to the Spotlink, power it up and see what happens with a logic analyzer, but it's not working anymore because I've disconnected some parts from the mainboard (DOH). Anyway, I don't have a logic analyzer, only a 20 mhz analog oscilloscope with memory function.I've got a power supply that can provide +12 -12 +5 -5 volts .... maybe is not good enough but using the -12 and -5 v I should get 17v. The lcd power up but the only thing that I was able to visualize were random lines. Probably I need some sort of filters on the data lines, but as I said, I'm not an expert.The lcd is a Hitachi LM236XB ... you can find a datasheet for the SB which must be identical (just some little difference in the view angle and stuff like that).I will buy a STM32F4 discovery board because I'm really interested to learn on that platform, I think its well suited for hi-quality audio applications. Probably it's better to start on simpler devices like arduino, but I don't know ... that thing looks better to meWell, that's the story, I hope someone can give me some information to start with, any kind of help will be really appreciated!Here are some photos of the lcd. Front, back ICs, and some parts of the datasheet...is that enough?THANKS!!

author: funder_benz
author_rank: Newbie
timestamp: November 12, 2014, 01:29:29 am
content: up

author: CodeRed
author_rank: Newbie
timestamp: November 12, 2014, 07:49:43 pm
content: I saw your comment on my blog, I'll leave a link to that article here for everyone else.http://burnt-traces.com/?p=246For my implementation, I created a state machine based solely on the timing diagram for the LCD interface. I used a low end FPGA, while the implementation I referenced was based in a PIC micro with some external memories.http://www.nyx.net/~jpurbric/lcd/You should be able to do it with your STM board, you just have to be able to toggle pins as fast as the fastest signal, which based on the diagram and some quick math, is about 1.2 MHz. I dare say the arduino might be able to do it, but it probably won't be able to do anything else at the same time.Whatever method you choose, I would start with trying to duplicate the timing diagram. You should be able to verify that with your scope, no need for the logic analyzer. I have a post where I probe a more modern LCD interface with my analog scope.http://burnt-traces.com/?p=290

author: janoc
author_rank: Super Contributor
timestamp: November 12, 2014, 08:02:33 pm
content: Quote from: funder_benz on November 12, 2014, 01:29:29 amPlease, don't "up" your own posts like this - it is bad form, it pollutes the forum and it still won't get you an answer any faster. People work, you know, so few get to read the forums more than once in a day or two ...J.

author: Bassman59
author_rank: Super Contributor
timestamp: November 13, 2014, 08:41:25 pm
content: Quote from: funder_benz on November 11, 2014, 02:13:19 amThat LCD's interface is 5V, so make sure your micro can tolerate it.

author: funder_benz
author_rank: Newbie
timestamp: November 13, 2014, 10:06:10 pm
content: Quote from: janoc on November 12, 2014, 08:02:33 pmSorry for that!Quote from: CodeRed on November 12, 2014, 07:49:43 pmThank you for answering, well, I still have to buy the STM board. You're right about the clock signal, it should be 1.4 Mhz (it's written on another datasheet page).I'm really a noob with this sort of things, and reading the timing diagram is not that easy for me! But I'm slowly understanding some mechanism...My main problem is to figure out how to convert my main microcontroller frequency (which is 16mhz for the arduino) to nanoseconds ...Then output this clock, and at the same time push out the various data bits.We need 160 clock cycles to output one line, each driver ic its a 80 bit shifter, so doing some calcs, 80 * 8 = 640 ..ok that's the horizontal screen resolution! ...Now it's all about guessing for me. I've got 4 data lines(Considering only the upper half of the lcd), and I have to send one bit to 8 ICs at the same time, but how if I have only 4 data lines? That's confusing me a bit...probably when i set something HIGH i can talk with the first 4 ics and then switching that line to LOW i can talk with the other 4 ics? Looking at the timing diagram i cannot find something that confirms this theory, so I must be wrong. Another thing is that we have 160 clock pulses for each line, so It's important to understand if a bit it's transferred when the clock goes HIGH and then another bit is transferred when the clock goes low, or if it takes a HIGH LOW cycle to transfer a bit. ARGHHMaybe this is a bit too far for my little knowledge!!Quote from: Bassman59 on November 13, 2014, 08:41:25 pmYes, arduino works with a 5v logic, the stm board should work at 3.3v ...but there are logic converters for that i think!

author: CodeRed
author_rank: Newbie
timestamp: November 14, 2014, 01:15:14 pm
content: QuoteClose, 4 bits go to the upper screen and 4 go to the lower screen. So its 160 * 4 = 640, one transfer per clock. The upper and lower halves work at the same time, so you will only have to do 100 lines to fill all 200.QuoteBased on the timing diagram the datalines change while the clock is high, so it should load on each falling clock edge.QuoteYeah there are converters. I was planning on using a 74ACT244 (http://burnt-traces.com/?p=241) since I was using a 3.3v FPGA, probably not the best way, but you only have to talk to the LCD and not receive signals from it. In fact, I would dig around in the datasheet, its possible that 3.3 may be enough to be a 1. On the panel I had minimum 'on' voltage was around 4, so I didn't try.

author: amyk
author_rank: Super Contributor
timestamp: November 14, 2014, 04:46:40 pm
content: Quote1/16MHz = 62.5ns, and your LCD has a maximum horizontal frequency of 8kHz (125us per line), which means you get 2000 clock cycles of the CPU to generate 160 pixel clocks - or 12.5 clocks/pixel. If you take 13 clocks/pixel instead, 2080 clocks/line, that turns into 130us/line which is still within the specified operating range. In my experience LCDs can tolerate being driven at a slower frequency than the datasheet says, although you might get reduced contrast.And a 1.4MHz pixel clock is nothing compared to this...http://www.linusakesson.net/scene/craft/

author: dherity
author_rank: Newbie
timestamp: May 20, 2019, 04:42:28 pm
content: Isn't google wonderful?I designed the Spotlink video circuit.Is it a Spotlink or a Spotlink II?You seem to have figured out the LCD interface. Well done.Spotlink drives it at about 12MHz, if I remember correctly.Contrast is awful by today's standards and I expect it will be worse if you drive it slower.Best RegardsDominic Herity