SparkFun Forums 

Where electronics enthusiasts find answers.

Have questions about a SparkFun product or board? This is the place to be.
By mikeselectricstuff
#55309
I've now got it looking at the RGB data
Image
and have mapped out which registers appear to do 'something'.
Need to tidy up the sync timings and start throwing some more meaningful data at it now to look at exactly 'what' they all do...

Minimum Initialisation to get it to notice the data :
Reset
76 00 8e (reg 0000=008e)
74 00 01
76 02 80 (reg 0001=0280)
The register mapping info I've found so far is Here.
By Random
#55312
great progress! I should be getting mine hooked up sometime next week and can start playing.
By mikeselectricstuff
#55318
One thing I just realised, while playing with syncs, is that the size is 240 wide by 320 high - obvious when you look at it but a little counter-intuitive to the normal way of thinking...
By davemacd
#55333
I'm sorry for cluttering an otherwise informed discourse. I've recently gotten into electronics via Arduino. I'd like to use one of these little LCDs to make a low-res LCD projector for a table top display (like the coffee table that's on the Sparkfun home page right now) to show a version of Conway's Game of Life, and maybe some other simple things like that.

Am I reading correctly that I'm getting the LCD and driver IC for $1? Either way, is there anything else I'll need to make this happen? I've got some books, smarter friends, and the internet, but right now I'm just trying to get materials together. Any help you can give would be greatly appreciated. Feel free to PM or email me responses so as not to further clutter this thread. Thanks.
By mikeselectricstuff
#55342
This LCD would not be a particularly good choice for an 'easy' hookup to Arduino etc. as it has no on-board display RAM, and so needs to be continuously refreshed with a datastream and syncs, rather like a conventional monitor.
If you're looking for a simple solution, the Nokia type LCDs sold by Sparkfun would be a lot easier to use, and there are aready plenty of code samples available. However as these are STN rather than TFT, contrast would probably not be sufficient for any sort of projection application.

If you need something bigger/better, you probably should look for a device with a controller that has on-board RAM.

It would be possible to drive these displays to some extent from a microcontroller, either by adding external RAM and some extra logic for address generation, or in a crude soiftware-driven manner to generate very simple shapes via timed signals to the RGB inoputs ( e.g. using PWM peripherals), but neither of these would be beginner projects by any means and not a particularly good way to do it.

For your project, I'd suggest picking up a cheap LCD or DLP projector from ebay & hacking that.
By davemacd
#55354
Excuse me if this is a silly question, but how much extra RAM are we talking here? I'm actually planning to use an Arduino-compatible Sanguino (http://sanguino.cc/differencesfromarduino) that has 4 times the RAM of Arduino. Also, I don't really need a refresh rate better than 4-8Hz. Would this suit my "needs"? Thanks.
By mikeselectricstuff
#55355
No it would not be suitable - For fullscreen you need 320x240x2=150kbytes, and you have no choice but to refresh around 60Hz, i.e. you need to feed it data at about 10MBytes/second - lower will be flickery.
You need to use a LCD with onboard RAM.
By Random
#55356
A 320x240 LCD using 18 bits for RGB requires 320*240*18 bits of RAM to hold the entire display in memory, which works out to 1382400 bits or 172800 bytes, 169kB of RAM. The Sanguino has 4kB of RAM.
It certainly has a lot more than the Arduino, but it's still in an entirely different level of capability. It couldn't even hold the entire display as one bit per pixel in RAM, as that would take 9kB.

Edit: mike beat me to it, but you get the idea - I'd really advise a serial display where you can draw primitives and text by sending serial commands! They are an awful lot easier to integrate into an Arduino, although they will update slower and cost a lot more. On the other hand, Game of Life doesn't really need fast updating!
By mikeselectricstuff
#55358
Some sync timings and more initialisation now on my page.
Can now show RGB data anywhere on screen, but contrast is currently below what I'd expect from a TFT. Voltages and/or gamma values probably need more setup. Setting Red b0 inverts red - odd, but looking at other datasheets, RGB values drive a mux to select drive voltage so this not being set up could do weird stuff like this.
Still possible issues with timing setup as some fiddling with HS timing often needed at startup.
Red pattern being done with PWM peripheral, Green line by int on hsync & that blue should be a linear greyscale but isn't very yet...
struggling to find register settings that don't make contrast worse....
Image
By mikeselectricstuff
#55364
Last update of the weekend - One bit in register 80 and we now have decent contrast & no funnies with RGB bits. :D
Apart from the Hsync period issue which appears to be consistently work-roundable, I think we can now declare this display useable.
Greyscale is better but still needs some gamma tweaks to get better linearity.
See my page for video timings and suggested init sequence to get you started.

Even without using external RAM, I think there are some cool things that could be done with this - All my tests have been using the PWM and timer peripherals on an LPC2136, but even with something like an AVR, the PWM and timer hardware, plus some careful interrupt code would let you plot a few moving blobs or shapes by generating the data on-the-fly in real time. Something like Pong ought to be pretty doable.
And another approach would be to bitmap it but at a low resolution to overcome the RAM limitations.

Off you go people.....

Image
By JamesK
#55365
Hi Mike,

You're doing an awesome job, and many thanks for putting the details on your website.

I wonder whether there is any chance that there is on-board RAM on this device. I found very minimal literature to suggest that it doesn't have RAM, but it seems odd that it has an identical pin-out to the smaller display which apparently does have RAM. The '782 also seems to share the 18bit single bus design with the '790. All very intriguing. Oh for a datasheet!!

Regards,
James.
By mikeselectricstuff
#55366
The only Renesas info I found on this part is a page in a product catalogue that stated it was RAMless. Search HD66790 at www.datasheetarchive.com which brings up the catalogue - Goto Page 184
By Narkaleptic
#55389
Another week to wait for responses from a few companies on the datasheet...

Here is the only printed mention of it:

Image

Does anyone know of a good RAM chip for this? The only manageable option otherwise is an ATxmega chip.
By mikeselectricstuff
#55390
A while ago I looked at ways to drive ramless displays cheaply from LPC2xx ARM chips - I came to the conclusion that a CPLD plus 16 bit wide parallel SRAM chip is probably going to be the lowest cost general-purpose solution, as low-end CPLDs and SRAM chips are cheap. You might just squeeze it into something like a Xilinx XC9536 with some assistance from the firmware (higher order address generation, PWMs for timing etc.) A 9572 should be no problem and reduce the load on the CPU.
A smaller MCU with external RAM wil generally be a similar parts cost than a bigger MCU with enough onboard RAM.
For a software-only solution there would be some tricks possible with compromises in resolution and/or colour depth, e.g. for a monochrome text display, SPI peripherals can be useful for shifting dot data out quickly. PWM or toggle-on-compare timers are good for generating pixel clocks, and PWM can be used for HSync.
By mikeselectricstuff
#55392
Here is another snippet of info - translated from Japanese so a few odd phrases...Image
Image
  • 1
  • 2
  • 3
  • 4
  • 5
  • 7