Abstract:
A display controller unit for controlling a display on a display panel comprises a first set of registers to hold data to be displayed and a second set of registers loadable from the first set of registers. A set of multiplexers has first data inputs coupled to the first set of registers, second data inputs coupled to the second set of registers, and select inputs. Logic circuitry is coupled to the output of the set of multiplexers and to the control inputs of the multiplexers, the control circuitry providing select information to the set of multiplexers and providing waveforms to the display panel to selectively display data from the first set of registers and the second set of registers in accordance with the select information.

Description:
BACKGROUND OF THE INVENTION 
       [0001]    1. Field of the Invention 
         [0002]    The present invention relates to display controllers architecture generally and especially to twisted nematic LCD controllers embedded in microcontrollers which interface to LCD displays but is not limited to this kind of displays and may address other types of display controllers. 
         [0003]    2. The Prior Art 
         [0004]    Integrated circuit driven display panels, especially passive Twisted Nematic Liquid Crystal Displays (TN LCD) have been well known for 30 years and can be found in many electronic devices, especially in battery powered devices such as watches, games, digital cameras and other devices. 
         [0005]    When powered by batteries, the electronic device must reduce its consumption as much as possible to improve the battery lifetime. Therefore, reduced power modes of operation have been designed. As an example when only a single static image must be displayed, the powered circuitry can be limited to the display panel itself and the minimum logic circuitry to generate the displayed image rather than powering the entire microcontroller logic including the microprocessor. 
         [0006]    When an application (watch, remote control, calculator, digital camera) is in standby/low power some images may still appear on the display to inform user about their mode of operation (standby, advertising). Such images often appear blinking, such as the well known colon in watch displays. More sophisticated displays may replace the blank period of the traditional blinking mode by presenting a different image, thus displaying more info, or impart visual dynamics to the displayed image. 
         [0007]    To provide an attractive display when an electronic appliance is in use, images can be also changed from time to time. To do this, it is not possible to power only the display controller circuitry, but the application must also reload the new images. Therefore it is common practice to wake up the microprocessor and associated logic (PLL, memories, regulators, etc.) so that the software can reload an image into the holding/frame buffer of the display controller. When this task has been completed, the microprocessor and associated logic can be powered off to reduce power consumption. 
         [0008]    Many LCD display controllers also include two buffers containing data to be displayed in order to correctly display an image when it is updated to minimize display flickering. A user buffer is provided to store updated image information. The display buffer is loaded from the user buffer (also known as a holding buffer) at a selected time slot location of the display frame. Even with such capabilities, from the application point of view there is only one frame that can be loaded in the display controller. 
       BRIEF DESCRIPTION 
       [0009]    A display controller unit for controlling a display on a display panel comprises a first set of registers to hold data to be displayed and a second set of registers loadable from the first set of registers. A set of multiplexers has first data inputs coupled to the first set of registers, second data inputs coupled to the second set of registers, and select inputs. Logic circuitry is coupled to the output of the set of multiplexers and to the control inputs of the multiplexers, the control circuitry providing select information to the set of multiplexers and providing waveforms to the display panel to selectively display data from the first set of registers and the second set of registers in accordance with the select information. 
         [0010]    The present invention reduces the overall power consumption of a microcontroller using such a display controller especially when the display controller is the only active logic in the microcontroller for some modes of operation. 
         [0011]    The invention selects among two data buffers located in the display controller, each of them storing a different image to alternately display the images. There is no need for software intervention so the CPU remains in standby mode and minimizes power consumption to the display controller and the display panel. 
         [0012]    The present invention takes advantage of the display data buffers already used in normal operation mode when refreshing the display with new images. The existing circuitry for standard blinking mode is used to drive the select input of additional multiplexers to select data from either the display buffer or the user buffer. 
     
    
     
       BRIEF DESCRIPTION OF THE DRAWING FIGURES 
         [0013]      FIG. 1  is a block diagram of a multi-supply microcontroller with an embedded LCD display controller 
           [0014]      FIG. 2  is a block diagram of a prior-art LCD controller such as may be used in the microcontroller of  FIG. 1 . 
           [0015]      FIG. 3  is a block diagram of a portion of a register formed from a set of D-flip-flops, one for each data bit, and an associated set of multiplexers. 
           [0016]      FIG. 4  is a block diagram of an illustrative LCD controller according to the present invention such as may be used in the microcontroller of  FIG. 1  in place of the microcontroller of  FIG. 2 . 
       
    
    
     DETAILED DESCRIPTION 
       [0017]    Persons of ordinary skill in the art will realize that the following description of the present invention is illustrative only and not in any way limiting. Other embodiments of the invention will readily suggest themselves to such skilled persons. 
         [0018]    One aspect of the invention includes circuitry that creates two (or more) frame buffers from the existing display buffer and user buffer. This arrangement allows the alternate display of two images without any software intervention and therefore limits power consumption by avoiding unnecessary microcontroller (or software) operation. 
         [0019]    Referring first to  FIG. 1 , a block diagram shows a simple microcontroller system  10 , as may be found in the prior art. The microcontroller system  10  includes a microprocessor  12  using address decoder  14  to access on-chip memories  16 , interrupt controller  18 , and peripheral circuits like timers  20 , UART  22  and LCD controller  24  across system bus  26 . The data exchanges are performed by means of the system bus  26  which comprises (not shown) a read data bus carrying data from the peripherals to the microprocessor  12 , a write data bus carrying data from microprocessor  12  to the peripherals, an address bus and control signals to indicate transfer direction on the system bus  26 . 
         [0020]    As will be appreciated by persons of ordinary skill in the art, the system bus  26  is shared by all peripherals and address decoder  14  is needed to decode the value carried on this bus to select one peripheral at a time. Address decoder  14  receives an address and provides select signals on lines  28 ,  30 ,  32 ,  34 , and  36  to the peripheral circuits. On-chip memory  16  is used to store the application software processed by microprocessor  12  as is known in the art. 
         [0021]    Power is supplied to microcontroller system chip  10  by I/O pads  38  and  40 , carrying V DD  and ground, respectively. Power is supplied separately to LCD controller  24  by I/O pads  42  and  44 , carrying VDD and ground, respectively. Separately supplying power to the LCD controller  24  allows low-power operation when the functions performed by microprocessor  12  and the peripherals are not needed, since the power at I/O pads  38  and  40  may be shut down when not needed. 
         [0022]    I/O pads  46  and  48  are used to supply clock and reset signals to the microcontroller system  10 . I/O pads  50  and  52  are used to supply signals to timer  20  as is known in the art. Output line  54  from timer  20  is coupled to interrupt controller  18  as is known in the art. I/O pads  56  and  58  are the RXD and TXD connections to UART  22 . Output line  60  from UART  22  is coupled to interrupt controller  18  as is known in the art. I/O pad  62  is used to separately supply a clock signal to LCD controller  24 . Output line  64  from LCD controller  24  is coupled to interrupt controller  18  as is known in the art. The output from LCD controller  24  is provided on I/O pads  66  and used to drive LCD display panel  68 . 
         [0023]    To display an image, the software located in on-chip memory  16  is fetched by microprocessor  12  by means of read accesses performed on system bus  26  as is known in the art. The on-chip memory  16  is selected (signal  36  is active) as soon as the address value placed on the address bus by address decoder  14  matches the address range allocated to the on-chip memory  16 . The memory  16  drives the data onto system bus  26  which is read by microprocessor  12  and processed accordingly. 
         [0024]    The image to be displayed on twisted Nematic passive (or other) LCD panel can be considered as a bit stream, one bit for each LCD dot. If the number of dots exceeds the data size of the system bus  26 , several accesses will be required to transfer the full image contained in on-chip memory  16  to display controller  24 . Methods to achieve such data transfers are known in the art. 
         [0025]    As will be seen in  FIG. 2 , the display controller  24  must contain an image buffer that can be fully loaded from the system bus when the associated select signal  32  is active. When the microprocessor  12  is instructed to load image into display controller  24 , write accesses are performed on system bus  26 . 
         [0026]    As soon as all write accesses have been performed there is nothing more for the microprocessor  12  to do and therefore it can be powered off, as well as the other modules  14 ,  16 ,  18 ,  20 , and  22 . For example, just after having finished transferring the image, the microprocessor  12  can perform an access into UART module  22  that would be externally connected (not shown) to a companion chip to manage the power of the microprocessor  12  and other modules powered by same supply lines ( 14 ,  16 ,  18 ,  20 , and  22 ). For example the companion chip would receive through RXD/TXD connections  56  and  58  data that would cause the power at I/O pads  46  and  48  to be switched off. For example, the companion chip may drive a control pin of a discrete regulator providing the power-supply voltages to microcontroller system  10 . 
         [0027]    Referring now to  FIG. 2 , a block diagram shows illustrative architectural details of the LCD controller  24 . The display controller  24  is connected to the system bus  26  to receive and provide data to the microprocessor  12 . LCD controller  24  includes a first buffer  70  comprising a series of registers including registers  72 ,  74 ,  76 , and  78  to store the bit stream for the image to be displayed.  FIG. 2  illustrates a configuration including ten registers. Buffer  70  may be referred to as a “user holding buffer.” 
         [0028]    Registers  72  through  78  can be loaded with the data value carried on system bus  26  only if the system bus  26  carries a load-enable signal and if the address bus carries a value identifying the specific register. One address value is assigned to each register. Therefore there is a need for an internal address decoder associated with buffer  70  (not shown but different from one described with reference to  FIG. 1 ). 
         [0029]    The LCD display controller  24  contains a second buffer  80 , which may be referred to as a “frame buffer.” Frame buffer  80  contains a copy of the bit stream which is stored in user holding buffer  70 . Buffer  80  also comprises a series of registers including registers  82 ,  84 ,  86 , and  88  to store the bit stream for the image to be displayed.  FIG. 2  illustrates a configuration including ten registers. Loading the frame buffer  80  with the contents of the user buffer  70  is automatically performed by timing generation circuitry  90  by asserting a signal on line  92 . 
         [0030]    The LCD display controller  24  contains configuration registers  94  that can be accessed at a unique address. The configuration registers  94  specify the operating modes of the LCD display controller  24 , such as (but not limited) to the blinking frequency, the display mode which can allow addressing different types of LCD panels (e.g., ones having one, two, three or four common terminals). 
         [0031]    Considering the blinking mode, the displayed data results in two periods, one with the image where the dots of the LCD panel are energized according to the bit stream located in the display frame buffer  80  and the other with all dots blanked (non-energized). The timing generator  90  provides a toggling signal on line  96  that clears the output of the multiplexer  98  to blank the dots when it is at logical 0 and passes the output of multiplexer  98  when high to produce the image display. A set of AND gates  100  can provide this function as shown in  FIG. 2 . 
         [0032]    The LCD display controller  24  uses a multiplexing technique to provide data to the LCD panel. The multiplexed LCD display panels have two different sets of terminals, usually “common” terminals and “segment” terminals. Therefore both internal buffers  70  and  80  are organized accordingly to address the LCD panel terminal arrangement. 
         [0033]    The multiplexed LCD panel is organized as a matrix. There are several terminals usually called “COMMON”. Each of these common terminals access several other terminals called “SEGMENT” of the LCD panels through a capacitor whose dielectric is comprised of liquid crystal material. 
         [0034]    For example, to drive a LCD panel arranged as 10 COMMONS×64 SEGMENTS, the LCD display controller data buffers will be organized as 10 registers of 64-bit as shown in  FIG. 2 , one 64-bit register for each common terminal. Therefore these registers must be multiplexed because the LCD panel has only 64 SEGMENTS terminals. The multiplexer  98  in the LCD display controller is arranged as a 64×10:1 multiplexer. The select inputs of multiplexer  98  are driven from the timing generator module  90  on signal lines  102 . 
         [0035]    Each of the registers ( 82 ,  84 ,  86 , and  88 ) in the frame buffer is periodically selected. The period of selection for each register is called the “frame period”. The frame period depends on the number of commons addressed on the LCD panel and also on other parameters including the clock frequency divider that divides the frequency of clock signal  104 . The divider circuitry is contained within the timing generator  90 . This clock frequency divider is not mandatory but it is common to use a watch crystal oscillator (32.768 KHz) to drive the display circuitry. The 32.768 KHz clock is used because it is derived from a crystal and therefore it is very accurate and is often used in other parts (not shown) of the microcontroller like for example a real time clock, and periodic interval timer where accuracy is mandatory. This frequency is high compared to the image display frequency 50 to 100 Hz, so there is a need to divide it if a source such as a watch crystal oscillator is used for the clock signal. 
         [0036]    The output of multiplexer  98  carries the data to be provided to SEGMENTS terminals of the LCD display panel but needs to be processed before it can be displayed. This is done by means of waveform generator  106 , which takes into account the type of LCD panel to be addressed. The type of LCD panel to be addressed is configured by a user via signal line  108  (Display Mode) from the configuration register  94 . Waveform generator  106  is a digital module and does not generate the direct waveform but rather provides the command selection inputs of the associated analog multiplexer  110 . Analog multiplexer  110  is an array of analog multiplexers (one for each terminal of the LCD display panel) which select among four voltages provided by a resistor ladder including resistors  112 ,  114 ,  116 , and  118  as is known in the art. The resistor ladder acts as a voltage divider providing all required voltage values, for example ¾ V DD LCD , ½ V DD LCD , and ¼ V DD LCD  for LCD panels having more than three common terminals. Each analog multiplexer includes selection inputs driven by the waveform generator  106  for segment terminals or the similar waveform generator  120  for the common terminals. 
         [0037]    There are a set of analog multiplexers for the common terminals and a set of analog multiplexers for the segment terminals. They are all identical in their intrinsic structure but their select inputs are not driven the same way as will be understood by persons of ordinary skill in the art.  FIG. 2  shows sets of segment terminals (illustrative ones designated by reference numerals  122  and  124 ) and common terminals (illustrative ones designated by reference numerals  126  and  128 ) used to couple the image signals to the matrix of the LCD display. 
         [0038]    Referring now to  FIG. 3 , a block diagram shows that a register may be formed from a set of D-flip-flops (DFF)  130 , one for each data bit, and an associated set of multiplexers  132  to re-circulate and thus store the data. For each register (e.g., 64-bit), the select input of the multiplexers  132  are connected to the same signal line  134  driven by the timing generator module  90  of  FIG. 2 . When asserted this signal allows loading the data carried by the user holding register provided on signal line  136 . The data carried on signal line  136  passes directly to the output of DFF  130 . When de-asserted the data are re-circulated through multiplexer  132 . The DFFs  130  require a clock on signal line  138  which is the same for all the DFFs. This can be for example the same clock signal as the other DFFs of the other modules of the display controller. 
         [0039]    The waveform generators  106  and  120  of  FIG. 2  must drive the select input of the analog multiplexers. DC current is not accepted by the LCD panels. Therefore a LCD driver must maintain a 0 Volt DC potential across each pixel. The resulting voltage across a pixel is the segment voltage minus the common voltage. If the average resulting voltage is below a particular voltage the pixel is said “non-energized” and it will appear non visible whereas if the average voltage across the pixel is greater than the particular voltage it will appear visible. 
         [0040]    Some modes of operation can provide capabilities to make all or a part of the image blink. This is a well known mode of operation in electronic appliances displaying time in which the numerals indicating hours and minutes are constantly displayed and the passage of seconds are indicated by a blinking “:” character. If the entire image is blinking, the prior art architecture described in  FIG. 2  can be used. Depending on the user configuration programmed in configuration register  94 , the blinking frequency information carried on part of the output of configuration register  94  may be different from  0 . In such a case timing generator  90  drives signal line  96  with a square waveform. 
         [0041]    When signal line  96  is cleared, the set of AND gates  100  clear data received from display frame buffer  80  and therefore image is blanked. When not cleared, signal line  96  passes the image data and allows the image to be visible. This is the energized period of the blinking period. 
         [0042]    The logic to perform this kind of blinking is very simple but it does not allow blinking of selected portions of the image or inversion of some part of the image to obtain special display effects like pseudo animated pictures or displaying some kind of scrolling text. 
         [0043]    The present invention enables these sorts of effects and also allows two different images to be stored in the existing buffers. The gate overhead is limited because the present invention employs the frame buffer and the user holding buffer that already exist in prior-art architectures. Therefore with these two buffers, a particular area of the picture can made to appear to blink although, in fact, two different images are stored and can be alternately displayed. Of course, the two images may be displayed individually, resulting in a display capable of presenting more information. 
         [0044]    If the images are text based, the first displayed image can be for example “ATMEL” and the second one “CORP.”, displaying alternatively these images will give more information on display panel without the need to wake the microcontroller to use the software to control the different images, limiting the power consumption of the electronic device in this mode of operation. 
         [0045]    Referring now to  FIG. 4 , a block diagram of an illustrative architecture according to the present invention is shown. The architecture of FIG.  4  is based on the architecture shown and described with reference to  FIG. 2 . For clarity, elements in  FIG. 4  that are also shown in  FIG. 2  are designated using the same reference numerals that are used in  FIG. 2 . 
         [0046]    One modification implemented in the present invention is the provision of a set of 2:1 multiplexers  140  is added between image buffers  70  and  80  and set of the 10:1 multiplexers  98  to select data to supply to waveform generator  106  for driving the LCD display panel (not shown) through analog multiplexers  110 . 
         [0047]    The select inputs of multiplexers  140  are driven by the signal line  92  which is also used to implement the standard prior-art blinking mode in which the entire image is alternatively blanked by means of the set of AND gates  100 . 
         [0048]    To configure this mode of display, one additional configuration register must be added in display mode configuration register  94  to store the bit “BLK 2 ”, therefore its output signal carries 1 more bit “BLK 2 ” which is used to keep the frame buffer  80  from automatically loading the image stored in user holding register  70 . 
         [0049]    In normal mode of operation (no blinking or alternating two-image display) the timing generator  90  periodically asserts its enable output  142 . If output  142  is asserted, BLK 2  being not asserted, the output of AND gate  144  is also asserted. Therefore, the contents of user holding buffer  70  are loaded into frame buffer  80 . 
         [0050]    This normal mode of operation is the beginning of the mode of operation involving the alternating display of two images. To enter this mode, the configuration register  94  is accessed by the application software through system bus  26  and modified accordingly to assert the signal BLK 2 . 
         [0051]    Assuming that an image has been loaded into frame buffer  80 , asserting the signal BLK 2  keeps the frame buffer  80  from automatically loading the image stored in user holding register  70 . If the user holding register  70  is accessed by the application software through system bus  26 , a different image can be loaded. If such a second image is loaded, the display controller contains two images. 
         [0052]    To prevent the signal  92  from being passed directly to AND gates  144  that would clear data coming from the frame buffer, the OR gate  146  forces the AND gates  100  to be transparent when BLK 2  is asserted. 
         [0053]    Displaying two alternate images can be accomplished using the prior art architecture but software is involved each time a new image is displayed, so two times per second the microprocessor is awakened. With the present invention, one can display two alternate images without any software intervention, resulting in less power consumption reduction. 
         [0054]    The present invention applies to any kind of LCD display panels, but also applies especially to dot matrix LCD panels that have higher resolution and are thus more capable of displaying small images compared to simple digit display LCD panels. 
         [0055]    The present invention has advantages not enjoyed by the current solutions. Use of the present invention allows a smarter blinking mode with limited silicon area overhead. This may be interesting especially if the final application is a battery-powered electronic appliance. 
         [0056]    While embodiments and applications of this invention have been shown and described, it would be apparent to those skilled in the art that many more modifications than mentioned above are possible without departing from the inventive concepts herein. The invention, therefore, is not to be restricted except in the spirit of the appended claims.