This thread has been locked.

If you have a related question, please click the "Ask a related question" button in the top right corner. The newly created question will be automatically linked to this question.

Graphical LDC interface with MSP430F5529

Other Parts Discussed in Thread: MSP430F5529

Hello,

I'm not getting any idea to interface 240*128 graphical lcd with MSP430F5529.

Thank you!

  • Which graphical LCD do you want to use? Have you already chosen one, or are you looking for a recommendation?
  • As Robert already said - the chosen LCD and it's controller determine the "how to interface". In most cases the hardware connection is done by SPI. I²C or parallel interface is possible as well, of course.

    Then you need to know how your controller organizes the lcd - a common way is the following:

    240x128 means there are 240 columns with 128 rows

         0 0 0       2
         0 0 0       3   COLUMNS 000 - 239
         0 1 2       9
         -------------
    000 |0|0|0|     |0|
    001 |1|1|1|     |1|
    002 |2|2|2|     |2|
    003 |3|3|3| ... |3|  PAGE 0
    004 |4|4|4|     |4|
    005 |5|5|5|     |5|
    006 |6|6|6|     |6|
    007 |7|7|7|     |7|
         -------------
    008 |0|0|0|     |0|
    009 |1|1|1|     |1|
    010 |2|2|2|     |2|
    011 |3|3|3| ... |3|  PAGE 1
    012 |4|4|4|     |4|
    013 |5|5|5|     |5|
    014 |6|6|6|     |6|
    015 |7|7|7|     |7|
         -------------
               .
               .
               .
         -------------
    120 |0|0|0|     |0|
    121 |1|1|1|     |1|
    122 |2|2|2|     |2|
    123 |3|3|3| ... |3|  PAGE 15
    124 |4|4|4|     |4|
    125 |5|5|5|     |5|
    126 |6|6|6|     |6|
    127 |7|7|7|     |7|
         -------------
     R
     O
     W
     S 000 - 127

    This is an example - maybe your LCD is different. But for this example you start writing page 0 from left to right. Always one byte after the other. One byte sets the pixels for column 0 in page 0 that means it sets the pixels in row 0 to 7. The next byte sets the pixels for column 1 row 0 to 7. Third byte column 2 row 0 to 7. You have to send 240 bytes to fill the first page having all pixels set / reset for row 0 to 7. Then the same for page 1. First byte sets the pixels for column 0 row 8 to 15 and so on.

    As you can see you have to transmit a lot of data for a whole screen update. It is 240 x (128 / 8) = 3840 bytes. Now it depends on your application if you want/have to update the complete screen or only single elements of it. Single "portions" of the LCD can be updated by jumping to a specific address and write from there. But if you want to display an element like a circle on a displayed text you have to read the currently displayed data back to know what is actually shown, otherwise you would delete bits you do not want to be deleted. For a whole screen update (I would prefer this) you should provide a buffer in RAM that is 3840 bytes large. There you "prepare" your picture and send it completely to your LCD. Two buffers give you the advantage of preparing one while sending the other. But this needs double the RAM space, of course. Depends on your application.

    Using the DMA of the micro is best here when sending such an amount of data since it only generates in interrupt request when finished.

    Dennis

  • Actually I have T6963 controller based glcd. If you know the other then please tell me.

    Thank you.

  • Well, then connect it through the "simple 8-bit parallel interface" and go!

**Attention** This is a public forum