Email: Password: Remember Me | Create Account (Free)

Back to Subject List

Old thread has been locked -- no new posts accepted in this thread
???
12/06/08 17:47
Read: times


 
#160673 - Read about display interfaces
Responding to: ???'s previous message
Multiplexed display interfaces all seem to work in essentially the same way. Circuitry presents a visual image, at a high rate, many times per second, and the persistence of the human eye's retina makes it look like a complete "picture," whether it is text of graphics.

The basis of this idea whether for a CRT or a display using LED's, or whatever, is that there's a refresh memory, and a display generator (with character displays, this is a character generator), and a "pixelator," if you want to call it that. The character generator translates the characters to be displayed into their pixelated representation. The MCU writes data to the refresh memory. The associated timing logic determines which memory element contains the next item to be displayed, provides its address to the refresh memory, retrieves the associated data, moves it to the character generator, where, row-by-row, or column-by-column, it is converted into the requisite pattern of "pixels." Pixel timing logic converts this to signals that drive the display, one pixel, one character row, or one character column, at a time. This occurs at a rate high enough to "fool" the eye into believing it occurs at one time.

Fortunately, microcontrollers can do all of this internally, given that they have enough internal storage capacity. A Micro-Control-Unit (MCU) can work out when the next element has to be driven to the display hardware, and, while it is being displayed, can, by table lookup or other strategy, determine what the next element is and how, i.e. with what signal pattern, it is to be displayed. This latter item is the character generator function.

For a character display, the process works, more or less, like this:
An external process assigns an element to a position on the display.
The MCU is, constantly in a background process, regularly updating the display, by  
     fetching the current character from the "refresh buffer" 
     finding, e.g. via table lookup, the next value that must be presented to the display
     timing the next display update
     placing the appropriate signals on the display port


As you can see, the "refresh memory" is shared between the display operation firmware and the "external process" that sends characters to be displayed to the display "subsystem".

The display subsystem takes those characters and translates them from the format in which they exist in the refresh memory, which is updated by the "external process" asychronously with the display process, and, in a constantly ongoing and very much synchronous process, feeds the corresponding signals to the display hardware, which, in the case of this 8x8 LED matrix, presumably means converting the element provided by the "external process" into appropriately timed signals to the LED matrix. Whether you scan (multiplex) this array vertically or horizontally is entirely up to you. if you multiplex it column by column, probably the easiest to conceptualize, then you drive, for example, the anodes of the LED's with your MCU port, e.g. P1, assuming it can source sufficient current to drive each LED to the desired brightness, and, using P2, for example, you can drive one of the columns at a time, using a transistor or IC buffer configured as a constant-current buffer, to sink either each LED's cathode individually, or all the cathodes simultaneously. You can drive the anodes with a current source, and then simply sink the "common cathode" with a hefty buffer of some sort, which doesn't have to be a constant-current sink. There are other ways, too, but this is one way.

Obviously, the timing is critical. The apparent brightness of each "pixel" will be dependent on (a) the current flowing in the LED, and (b) the duration of that current flow. The current flowing in each pixel in your array must, then, be carefully controlled (consider Ohm's law, look up "current mirror" and "current source", look up applications of 7445/145 as examples, though they're usually used with 7-segment displays. The strategy is the same.)

This problem is a common homework problem for students, so searching this site will yield quite a bit of information.

RE





List of 23 messages in thread
TopicAuthorDate
8x8 LED Matrix using 8051            01/01/70 00:00      
   What parts?            01/01/70 00:00      
      "sample code" ...            01/01/70 00:00      
   good luck with your product            01/01/70 00:00      
      i`m working on it            01/01/70 00:00      
         some idea about...            01/01/70 00:00      
            a few older posts dealing with the topic            01/01/70 00:00      
               thanx            01/01/70 00:00      
            How big is your display            01/01/70 00:00      
               it's good for a school project            01/01/70 00:00      
   where i get stucked!            01/01/70 00:00      
      multiplexing            01/01/70 00:00      
         But add a short delay while driving a single row            01/01/70 00:00      
            stucked again...            01/01/70 00:00      
               that has nothing to do with timer2            01/01/70 00:00      
                  what?            01/01/70 00:00      
                     It's called a circular buffer and has nothing to do with T2            01/01/70 00:00      
                        could you detail,please?            01/01/70 00:00      
                           Read about display interfaces            01/01/70 00:00      
                              Multiplexing - illustration            01/01/70 00:00      
                                 Speeded up...            01/01/70 00:00      
                                    That is an easy way to do it!            01/01/70 00:00      
      h            01/01/70 00:00      

Back to Subject List