SLAAEO3 September   2024 MSPM0L2227 , MSPM0L2228

 

  1.   1
  2.   Abstract
  3.   Trademarks
  4. 1Introduction: MSPM0 and LCD End Applications
  5. 2MSPM0 LCD Portfolio
  6. 3Segmented LCD Operation
    1. 3.1 LCD Structure (Simplified)
    2. 3.2 LCD Drive Basics
  7. 4MSPM0 LCD Features
    1. 4.1 Muxing
      1. 4.1.1 Muxing Example
    2. 4.2 Voltage Generation
      1. 4.2.1 Charge Pump
      2. 4.2.2 Contrast Control
    3. 4.3 LCD Clocking
    4. 4.4 LCD Memory and Blinking Mode
      1. 4.4.1 LCD Memory Organization
      2. 4.4.2 Blinking
    5. 4.5 LCD Output Pin Configuration
    6. 4.6 Low Power Mode Feature
  8. 5LCD Layout and Software Considerations
    1. 5.1 LCD Layout Tips
      1. 5.1.1 Hardware-Driven Layout
      2. 5.1.2 Software-Driven Layout
      3. 5.1.3 General Layout Rules
    2. 5.2 LCD Software Tips
      1. 5.2.1 Create a Look-up Table
      2. 5.2.2 Use of #defines
      3. 5.2.3 Efficient Clearing of the LCD Memory
      4. 5.2.4 Double-buffering of the Display Buffer Using Dual Display Memory
  9. 6Additional Resources

Double-buffering of the Display Buffer Using Dual Display Memory

As mentioned in Section 4.4.2, use a blink memory on LCD module as a secondary display memory when no blinking mode is selected. To select which memory (LCD memory or Blink memory) is currently being displayed simply set the LCDMEMCTL.LCDDISP bit to zero or one. The advantage of dual display memory feature performs an instant update of all LCD segments to display a new message or image on the screen. Over time, changes are made to the currently unused display memory without affecting the current display output. Once the full memory is populated with the desired data, change the display all at once by toggling the LCDMEMCTL.LCDDISP bit.

Using this methodology, use a slower MCLK (sometimes required to meet low peak current consumption), or the CPU is busy with other interrupts going on while populating this display buffer without any partial image showing up on the display.

A typical flow is:

  1. Populate the display memory that is not currently being shown with desired data.
  2. Toggle LCDMEMCTL.LCDDISP bit to change which memory is displayed.
  3. Go to step one for next image.

Another feature that dual display memory provides is the ability for hardware to automatically toggle between the two display memories through setting the blinking mode LCDBLKCTL.LCDBLKMODx = 3. In blinking mode, the LCD toggles between the memories at the blinking frequency that are configured. Blinking mode is useful for displaying a long string of text or information that does not fit on the display – part of the string is loaded into each memory, and then blinking mode is set to automatically toggle between the two memories without software intervention.

For example, on a display that displays six alphanumeric characters, the message "Hello World" is displayed by loading the LCD memory registers to display "Hello" and loading the LCD Blink memory registers to display "World," and setting the LCDBLKCTL.LCDBLKMODx = 3, with the blink frequency configured to a slow frequency such as 1Hz to allow time for users to read the message. In this case, without any additional software intervention, the display continually shows "Hello" for 1 second and then "World" for 1 second.