Needing help with possible KS0108 controller

Thread Starter

coldpenguin

Joined Apr 18, 2010
165
So I obtained some LCD screens, but I don't think they are what they are meant to be, or are what the look like they might be.

Using the screens as per the data sheet, nothing works. (non KS0108 controller)
Plugging the screen into some code which I know works with a KS0108 controller, leaves me with strange results. If I connect one Chip select, that side of the screen works (almost) perfectly. It is dropped down by one Y row.
Plugging in both CS lines, the whole display is corrupted. Unplugging the other CS line, and the other side of the screen is (almost) ok.
So a quick test program:
Rich (BB code):
l=0;
for(k=0;k<8;k++){
   l=1-l;  //from here A
   GLCD_CS1=l;
   GLCD_CS2=1-l;   //from here B

   GLCD_EN=1;
   GLCD_RS=0;
   GLCD_RW=0;
   for(j=0;j<100;j++){   //Delay is listed as 72us, this should be at least 100us 
      _asm NOP _endasm
   }

   GLCD_DATA=0b10111000+k;   //Select X page

   GLCD_EN=0;
   for(j=0;j<100;j++){
      _asm NOP _endasm
   }


   for(i=0;i<64;i++){   //To here  
      GLCD_EN=1; 
      GLCD_RS=1;
      GLCD_RW=0;
      for(j=0;j<100;j++){
         _asm NOP _endasm
      }

      GLCD_DATA=0b11111111;
//GLCD_DATA=0b00000000; This was used for testing, if CS1, and CS2 are both active, this does what is expected

      GLCD_EN=0;
      for(j=0;j<100;j++){
         _asm NOP _endasm
      }
   }
}


 while(1) 
{
_asm    NOP    _endasm
}
This does exactly what is expected.
However, if I take the code from here A-B and place it /to here/, I end up with the left hand screen mostly white, bar some missing pixels on the very left hand edge (random), and the top 1/8th of the right hand screen white.

This occurrs even if I double all of the waits.
I think that the device is somehow bust on the CS side of things. Any suggestions? (apart from don't buy from there any more if they don't know what they are selling). I did try it with an explicit Y select on the first X too, with no difference (and re-tried when I noticed that this code was missing it)
 
Top