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

Back to Subject List

Old thread has been locked -- no new posts accepted in this thread
???
02/13/05 02:34
Read: times


 
Msg Score: +2
 +2 Good Answer/Helpful
#87237 - GLCD Scrolling
Responding to: ???'s previous message
I would seriously look at the scroll rate that you really need. You probably do not really need updates faster than about 20Hz. That would give you about 200 msec to update the display. Here are some things to consider:

1) I have demonstrated, on stuff I have built, that a 128x64 display can be updated from an in-XRAM buffer in about 8-9 msec with a SiLabs C8051F124 or 'F020 running at 22.1184 MHz.

2) Trying to implement a graphics display using read-modify write to the memory on-board the gLCD is at least 5 times slower to perform than the screen update from memory buffer scheme I have used and shown in the code examples at: http://www.8052.com/users/mkaras/GraphLCD.phtml

3) It is my experience that the access ease and speed to the display memory on gLCD modules with the T6963C controller is slower and a pain in the butt compared to displays with say the Samsung types that have the vertical raster bytes. This is especially true when you try to work out a merging graphics driver using the storage on the display controller.

4) It is very easy to attach a 32K x 8 SRAM on the EMIF (External Memory InterFace) of the SiLabs processors that are in the 100 pin packages. It can be done with NO extra parts and using the 8-port parts you still end up with very good memory bandwidth because you can setup the EMIF for non-multiplexed address bus operation.

5) Lastly there is a common scheme used on "wave form scanning" type displays that may be suitable for you to consider. I have implemented this several times on products and it works surprisingly well. The idea is to sweep the display update point across the display using a sweeping cursor scheme wherein the bulk of the display waveform stays static on the screen and only the most recent column of pixels gets updated. In the screen graphis below I attempt to show how this works.



The sweeping cursor moves left to right and newst data is painted to the left of the cursor and a blank space is kept to the right of the cursor. A cursor could be 3 or 4 pixels wide. At one update time only three columns need to be drawn...the newest data column overlays the left most cursor pixels. A new column of pixels is added to the right of the cursor bar. And one additional column of pixels are blanked on the right side of the leading blank area. When the update columns get to the right side of the screen they simply wrap back to the left side. The blank area is very important and should be about a pixel wider than the cursor bar.

Michael Karas




List of 42 messages in thread
TopicAuthorDate
GLCD Project (low frequency scope)            01/01/70 00:00      
   GLCD Scrolling            01/01/70 00:00      
      Lesson learned            01/01/70 00:00      
         did you check            01/01/70 00:00      
   hi Speed GLCD displays?            01/01/70 00:00      
      Probably            01/01/70 00:00      
      Hardware scroll            01/01/70 00:00      
         PaceSetter            01/01/70 00:00      
      Best Display >> None is perfect            01/01/70 00:00      
         Sweep mode            01/01/70 00:00      
            Scope Squares            01/01/70 00:00      
            8 Bits Update            01/01/70 00:00      
               like rotate it 90°?            01/01/70 00:00      
                  90° Rotation Indeed            01/01/70 00:00      
   One step further            01/01/70 00:00      
      Animation            01/01/70 00:00      
         scan too slow!!            01/01/70 00:00      
            15 seconds? !!!            01/01/70 00:00      
               or....            01/01/70 00:00      
               slightly more            01/01/70 00:00      
               Optimization            01/01/70 00:00      
                  calculation            01/01/70 00:00      
                     Will have a look            01/01/70 00:00      
                        assembler speedup            01/01/70 00:00      
                  if it is really slow            01/01/70 00:00      
                     too smart Man            01/01/70 00:00      
                        another way            01/01/70 00:00      
                  When do you wait?            01/01/70 00:00      
                     first choice            01/01/70 00:00      
               should I use Serial RAM for buffer?            01/01/70 00:00      
                  serial RAM and time            01/01/70 00:00      
                     lcd_not_busy();            01/01/70 00:00      
                        a much faster approach            01/01/70 00:00      
                           I don't have enough XRAM            01/01/70 00:00      
                              magic            01/01/70 00:00      
                              more tweaking            01/01/70 00:00      
                                 Good thinking Jan            01/01/70 00:00      
                                    tweaking II.            01/01/70 00:00      
                                       Magic Tweeking            01/01/70 00:00      
                  Serial RAM is useless            01/01/70 00:00      
   maybe this technique will work here            01/01/70 00:00      
      Multi-microcontrollers            01/01/70 00:00      

Back to Subject List