hvontres 22 Posted January 28, 2013 Share Posted January 28, 2013 This project attempts to control a surplus LCD (http://www.goldmine-elec-products.com/prodinfo.asp?number=G18246) using a MSP430 and the Stellaris Launchpad. Brief Description: This project is designed to run a 320x240 monochrome LCD with minimal CPU overhead. A seprate controller board supplies the VEE for the display, controls the Backlight and has a MSP430G2542 running as a SPI Master. The MSP also controls the clocks for moving the data to the display. The Stellaris side sets up a 1BPP offscreen display for Grlib and also sets up a UDMA job that transfers the display buffer to the SPI port for the MSP to collect. The SPI connection is set up to transfer 16 bits at a time, allowing for 4 pixel updates for each transfer. With the SPI clock running at 8Mhz, the display can update at ~51 Hz. I had the first PCBs made by OSH park and am currently trying to iron out some bugs in the bias voltage section. As soon as that is done, I will be adding schematics and the board layout on github. Code and documentation can be found here: https://github.com/hvontres/LCD-Controller Here is a picture of the current project: Here is the first prototype: a picture of just the controller: controller mounted below launchpad: Here is a video demo showing the different modes of the main application: The video starts with the splash screen, inverts the display, animates the splashscreen using grlib, displays text using grlib functions and finally shows some test images downloaded in 8 pixel chunks from the host. The current code allows for 30 chunks per transfer, so that is why the screen updates are a little slow. I'll try to get some better video soon. Rickta59, chicken, cubeberg and 1 other 4 Quote Link to post Share on other sites
bluehash 1,581 Posted January 28, 2013 Share Posted January 28, 2013 Good work and thanks for sharing! That is a huge display! Quote Link to post Share on other sites
cubeberg 540 Posted January 28, 2013 Share Posted January 28, 2013 Very cool! I like that you included the MSP430 as well. Does the LCD itself have memory - or are the small chips RAM? Quote Link to post Share on other sites
hvontres 22 Posted January 28, 2013 Author Share Posted January 28, 2013 Very cool! I like that you included the MSP430 as well. Does the LCD itself have memory - or are the small chips RAM? Nope, no memory on the LCD, other than the shift registers in the controllers. The chips on the controller are a MSP4302542 to handle the data transfers between the stellaris and the lcd, a 74HCT245 used as a level shifter from 3.3V to 5V, a 4N29 isolator to turn the display on and off and a Max774 to supply the bias voltage. The framebuffer for the lcd is actually in the stellaris. https://github.com/hvontres/LCD-Controller/blob/master/Docs/Controller%20Design.pdf has a more detailed description on how this thing works cubeberg and bluehash 2 Quote Link to post Share on other sites
chicken 630 Posted January 28, 2013 Share Posted January 28, 2013 Interesting and nice big display. Looking at your (great!) documentation, I think you only send updates to the display. So the display has some kind of memory to manage refresh even though you can't read from it. Or did I miss something? Is there any particular reason why you relay the communication via the MSP430 instead of connecting the Stellaris directly to the 74LS245? (other than "because I can", which is very valid too :-) Thanks for sharing. Quote Link to post Share on other sites
hvontres 22 Posted January 28, 2013 Author Share Posted January 28, 2013 Interesting and nice big display. Looking at your (great!) documentation, I think you only send updates to the display. So the display has some kind of memory to manage refresh even though you can't read from it. Or did I miss something? Is there any particular reason why you relay the communication via the MSP430 instead of connecting the Stellaris directly to the 74LS245? (other than "because I can", which is very valid too :-) Thanks for sharing. Actually the display is really dumb. The MSP is in charge of doing the refresh and fetching the data. The Stellaris mostly supplies the memory needed to hold the display data. The Driver chips on the display have enough memory to hold one LINE of data at a time. So the max refresh rate is limited by how fast the MSP can process the data. This display was originaly meant to be driven by something like a SED1335 controller chip. But that would have been too easy By having the MSP handle all of the display timing and refresh, the Stellaris only needs to use ~4% CPU time to manage the display, leaving plenty of CPU time for generating the Data to display. Here is some more info on how to drive this particular display: http://tinyurl.com/8j9jkvv chicken 1 Quote Link to post Share on other sites
chicken 630 Posted January 28, 2013 Share Posted January 28, 2013 Thank you for the clarification. Looks like I totally misread the project by underestimating what a MSP430 at 16MHz can achieve. And it's all there in your great document. Only myself to blame. RTFM Quote Link to post Share on other sites
timotet 44 Posted February 4, 2013 Share Posted February 4, 2013 nice work! Quote Link to post Share on other sites
hvontres 22 Posted June 8, 2013 Author Share Posted June 8, 2013 UPDATE: I just posted the hardware docs on Github (https://github.com/hvontres/LCD-Controller/tree/master/Hardware/LCD%20Driver) The project was done using the latest snapshot of kicad. One modification that is not shown in the current pdf documents was to remove C6. It seemed to be causing a nasty 20 Hz ripple in the -27 Bias supply that would show up as a 20Hz flicker in the display. I also found a couple of drill holes were a bit small on the first prototype. I will try to get a new version of the gerbers out soon. Quote Link to post Share on other sites
Experimentonomen 0 Posted December 7, 2014 Share Posted December 7, 2014 Hello! Would it be possible to modify this to run a 720x400 display ? I have a 720x400 plasma panel from an old toshiba T3200 equivalent that seem to have the same interface as these lcd's, Hsync, Vsync, Pixel clock and a 4bit data bus. Quote Link to post Share on other sites
Recommended Posts
Join the conversation
You can post now and register later. If you have an account, sign in now to post with your account.