TI E2E Community
MSP430 Ultra-Low Power 16-bit Microcontroller Forum
MSP430F5438A Experimenter Board --LCD Interface
It says in the MSP430F5438A Experimenter Board User guide that the LCD used on the board is 138 x 110 Hitachi HD66753. When I checked the code given in UserExperience example, it is using the SPI protocol for the LCD interface. So I googled and found datasheets for HD66753.
Can someone at TI help me in getting the correct LCD data-sheet? I wanted to understand the lcd interface for which the HAL's were written and provided.
Thanks in advance
at some point in time [I think] we used to have that pdf as part of the MSP-EXP430F5438 support package.
Here it is again, attached.
genieAll the data-sheets showed an I2C interface as opposed to an SPI.
The datasheet you have been pointed to just tells 'data connection: serial' whcih can be anything. And hte naming of SDA and SCL indeed seems to indicate I2C, yet there is no sign of a programmable I2C address, only a chip select. And my experience form other LCD datasheets is that most of them implement either parallel, or serialized parallel interface, meanign that the usually used 8 bit parallel bus is optionally replaced by a serial shift (which is mostly SPI compliant) but neither a real SPI (you still need additional signals) nor a full-featured I2C (which will be too slow in most cases anyway).
The timing diagrams for the interface in this datasheet are even more confusing. There are two SDA lines (usually, the serial interface is unidirectional even if the parallel interface would be bidirectional) and there seem to be two clock cycles per data bit. Strange. Since the pin list only shows one SDA, it seems to be a bi-directional data line (which is not SPI compliant) but uses a CS-signal (which isn't I2C compliant).
From this datasheet I wouldn't touch the device with pincers.
But since it is on the experimenters board, there must be some code to address it. Look there and try to understand how the TI engineers did it.
_____________________________________Before posting bug reports or ask for help, do at least quick scan over this article. It applies to any kind of problem reporting. On any forum. And/or look here.If you cannot discuss your problem in the public, feel free to start a private conversation: click on my name and then 'start conversation'. But please do so only if you really cannot do it in a public thread, as I usually read all threads. And I prefer to answer where others can profit from it (or contribute to it) too.
Our nickname for this LCD communication protocol is SPI2C :).
Essentially it is SPI with MISO & MOSI lines muxed together, the '430 MISO & MOSI pins are tied together and the '430 has to handle the switching between input/output.
I believe you are already using/reading the hal_lcd.* files [latest version of the SW package], which we have optimized the communication for the LCD. The LCD datasheet is indeed a bit confusing, but the hal should shed some light on what we did in the code and why we did so.
Thanks a lot Dung!
Dung DangEssentially it is SPI with MISO & MOSI lines muxed together,
Dung DangOur nickname for this LCD communication protocol is SPI2C :)
I wonder why almost none of the LCDs out there (and I checked a LOT datasheets lately) implements an industry standard interface.
They may have an 80xx or 69xx processor interface (for the peripheral bus), alternatively an SPI that requires additional control lines for command/data and are write only. Others do weird things like this 'SPI2C'.
And the datasheet explains on 30 pages what is not to be considered a failty display, but spares only one page or sometimes only one line for the interface.
OLEDs, however, usually come with a real SPI or I2C and simply work.
Hello Dung, I just bought the 5438 experimenter board and would like help programming my own logo. Could you explain why HAL_Lcd code uses 14 columns and not 138? I don't understand the addressing. Could you also explain how you took a bitmap and converted it to 16 bit data in 14 columns? Any help on the LCD is greatly appreciated.
The LCD has 110x138 resolution and it is in 2-bit gray-scale. Essentially each pixel requires 2 bits, and the LCD's on-chip display driver simply groups two consecutive bits in the data byte/word together to store the pixel's value. The pixels are grouped by 8 together horizontally; their values are stored into a single 16-bit word. Hence, instead of having 138 individual single-bit columns, you'd end up with ~17 8-pixel-wide columns.
Graphic processing and manipulation do become a bit tricky, and hopefully the hal_lcd.* APIs alleviate some of that low-level pain. I do realize there are some small gaps in the explanation of how the low-level driver works, but hopefully the documentation will help clarify some of those details. Better yet, we also provide an image converter tool that can convert any image types on PC into a c structure compatible for the LCD data structure. Aforementioned info as well as the image tool can be found in the latest software package for the board. If you'd like, you can digest the LCD-specific data from the LCD datasheet, which is also included in the SW package. All of this info can be found on the MSP-EXP430F5438 Product Folder: http://www.ti.com/tool/msp-exp430f5438
Some of the direct links from the page:
- Latest Software Package: http://ti.com/lit/zip/slac227- Board HW & SW User's Guide: http://www.ti.com/lit/pdf/slau263
Hope that helps!
Thanks, Dung. That was a big help.
Hi Dung Dang,
Is the LCD data sheet the same as http://www.optrex.com/SiteImages/PartList/CONTROLLER/HD66753e.pdf . Is there any documentation other than this?
the official datasheet for the LCD is provided in the board package, the link is available in my previous post. I'd recommend using that as the official document.
I only took a quick glance at the sheet that you have, but it doesn't look the same. For starter the resolution is different.
After unzipping it I don't see any pdf's in there. Has the package changed? I have gone through all the other packages and I am not finding it anywhere. The initialization procedures etc are not explained in the pdf that you have linked. The user guide just mentions it in the references without any link to the datasheet or the userguide. Also in the pdf that you linked there is no instruction list or the device ID for initialization procedure or the register list. Could you please point to that pdf.
you are right, I couldn't find the datasheet either. We will add that back into the package or provide a link. Here's the file attached. 4431.FamilyLCD.pdf and 6428.LCD Module Spec 51933AC.pdf
Isn't the resolution different in this data sheet too (4431.FamilyLCD.pdf)?
you are right. I checked the DS again, and confirmed that this is the DS used for the controller that can support up to the 168x132 resolution. The LCD used in our case, the MSP-EXP430F5438, happens to have the 110x132 resolution. You can use the attached pdf for your reference, along with the LCD driver provided in our software package.
Thanks a lot Dung. :)
All content and materials on this site are provided "as is". TI and its respective suppliers and providers of content make no representations about the suitability of these materials for any purpose and disclaim all warranties and conditions with regard to these materials, including but not limited to all implied warranties and conditions of merchantability, fitness for a particular purpose, title and non-infringement of any third party intellectual property right. TI and its respective suppliers and providers of content make no representations about the suitability of these materials for any purpose and disclaim all warranties and conditions with respect to these materials. No license, either express or implied, by estoppel or otherwise, is granted by TI. Use of the information on this site may require a license from a third party, or a license from TI.
TI is a global semiconductor design and manufacturing company. Innovate with 100,000+ analog ICs andembedded processors, along with software, tools and the industry’s largest sales/support staff.