nec 21a display module (skyper)

disclaimer / info:

DISCLAIMER:
THIS IS EXPERIMENTAL SOFTWARE AND HARDWARE. USE AT YOUR OWN RISK. THE MAINTAINER(S) OF THESE PAGES AND THE DEVELOPER(S) OF SOFTWARE AND HARDWARE PRESENTED ON THESE PAGES CAN NOT BE HELD LIABLE UNDER ANY CIRCUMSTANCES FOR DAMAGE TO HARDWARE OR SOFTWARE, LOST DATA, OR OTHER DIRECT OR INDIRECT DAMAGE RESULTING FROM THE USE OF THIS SOFTWARE OR HARDWARE. IF YOU DO NOT AGREE TO THESE CONDITIONS, YOU ARE NOT PERMITTED TO USE OR FURTHER DISTRIBUTE THIS SOFTWARE OR TO USE ANY TEMPLATES FOR BUILDING HARDWARE PRESENTED HERE.

nec 21a display module:

description

nec 21a display modules are controlled using an on-board controller sed1561.
specifications
resolution 132x32
colours monochrome
controller sed1561
backlight yes (EL-foil)
adjustable contrast yes, programmable
dimensions module: 80 x 50 mm, display area: 57 x 19.5 mm (measured, pixel area, w/o symbols)
name in serdisplib NEC21A       (example: serdisp_init(sdcd, "NEC21A", ""); )

image

[nokia 7110 display: assembled]
picture of skyper (edition of nec 21a pager by german 'Telekom')
source picture (author: Denis Apel) taken from Wikipedia / Skyper (Pager)

pinout, assembling

[nec21a display: pinout]
pinout for nec 21a display module
   1     VDD    +3.5V (Chip power supply)
   2     (nc)   not connected
   3     (nc)   not connected
   4     VSS    connect to GND
   5     /RES   low active Reset input
   6     /CS    low active Chip Select
   7     A0     Command (LOW) or display data (HIGH)
   8     ?      unknown
   9     ?      unknown
  10     BUT4   Button 4
  11     BUT3   Button 3
  12     BUT2   Button 2
  13     BUT1   Button 1

  14     D0     Data0 - Data7
  15     D1
  16     D2
  17     D3
  18     D4
  19     D5
  20     D6
  21     D7
  22     /RD    Read enable input (active-low)
  23     /WR    Write enable input (active-low)
  24     ?      unknown
  25     ?      unknown

       

annotations

  • driving of power/message LED is more or less unknown
  • driving of background light is unknown (pager i got had defective RAM and did never enlight background light - so i could not measure out how to drive it)
  • as i couldn't acquire the socket for the display connector, i had to unsolder it from the mainboard of the pager

some images

[nec21a test image] [nokia multidisplay output]
nec 21a display module showing a test image output generated by multidisplay
[nec21a graphlcd output 1] [nec21a graphlcd output 2]
output generated by graphlcd another output generated by graphlcd
top ^

connecting an nec 21a display module to the parallel port:

intro

the wiring is based on an SED133x-wiring called 'PowerLCD'.
as i didn't know of any other projects like this one (connecting an NEC 21a display module to the parallel port) i had to chose a wiring-'standard' for myself.

wiring

signals:

 
                                  top view

                                                         ____ 
                                                        |    \
                                                   VDD  | =   |
                                                        |   = |  Sensor
                                                  (nc)  | =   |
                                                        |   = |  ?
                                                  (nc)  | =   |
                                                        |   = |  /WR
                                                   VSS  | =   |
                                                        |   = |  /RD
                                                  /RES  | =   |
                                                        |   = |  D7
                                                   /CS  | =   |
                                                        |   = |  D6
           --------------                           A0  | =   |
          |              |                              |   = |  D5
          |              |                           ?  | =   |
          |  LCD-        |                              |   = |  D4
          |  Controller  |                           ?  | =   |
          |              |                              |   = |  D3
          |  SED 1561    |                        BUT4  | =   |
          |              |                              |   = |  D2
          |              |                        BUT3  | =   |
          |              |                              |   = |  D1
          |              |                        BUT2  | =   |
          |              |                              |   = |  D0
          |              |                        BUT1  | =   |
          |              |                              |____/   
          |              |                              
           --------------       
                     
                     
   Remarks:                  
    display module is hard-wired to 8080-mode and parallel interface mode
                     
                                        
 
 
   LCD        Description
   ---------------------------------
   D0 - D7    Data0 - Data 7
   /WR        Write enable input (active-low)
   /RD        Read enable input (active-low)
   /RES       Reset (active-low)
   /CS        Chip select input (active-low)
   A0         Command (LOW) or display data (HIGH)
   VDD        3.5V (Chip power supply)
   VSS        0V

    

circuit:

[nec21a: circuit power supply]

power supply for generating V+ needed by the following circuit


[nec21a: circuit]

wiring for nec21a display module

part list:


    Part#   Type                Value                  Annotation
    ---------------------------------------------------------------------------------------
    R1      Resistor            eg. 270 Ohm  
    R2      Resistor            eg. 470 Ohm
    C1, C2  Capacitor           some uF                not mandatory, for smoothing input voltage
    IC1     Var. Voltage Reg.   LM317 (or similar)     Vout should result in 3.5 V

    R3-R14  Resistor            1 kOhm       

    R15     Resistor            10 kOhm
    C3      Capacitor           10 uF 

    

remarks:

R1 and R2 affect Vout of IC1 and are calculated using the following formula:
Vout = 1.25 * (1 + (R2 / R1))
usually (according to the data sheet of LM317) R1 should be 240 Ohm. i chose 270 Ohm.
together with R2 = 470 Ohm i get Vout = 3.425 V.

addressing

annotations

sed1561 supports a max. resolution of 132x65, but nec21a display modules only use 132 x 32.
the last line (#64) is used for displaying symbols (support and explanations will be added in a future version).

pages vs. rows

the display is organised in colums and pages: 8 pixel-rows are combined to a so called page.
as only whole bytes can be transferred to the display, a single pixel cannot be changed without knowing its 7 'neighbour' pixels.
so a display buffer was introduced in the library. pixel changes are all done in this buffer and in a separate step only changed 'page bytes' are transferred (using an optimising algorithm) to the display.
top ^

passing options through serdisp_init():

intro

using the third parameter of serdisp_init(), driver specific options and custom wiring can be set.
common information about passing options and customisable wiring can be found in a separate document.
    examples:
    
      serdisp_init(sdcd, "NEC21A", "ROTATE=90;INVERT=YES");
    

options

identifiershortremarkdefault
ROTATEROTrotate display (1 == 180 degrees)0
INVERTINVinvert display0
DELAY delay after each write/read operation.
  0 .. no delay
  1 .. one call of gettimeofday()
 >1 .. delay at least x nanoseconds
     
0
CONTRAST set display contrast5
BACKLIGHTBGswitch background light on or off0
WIRINGWIREpre-defined or customisable wiring1

ranges, aliases

identifierrangealiases
ROTATE0, 1, 90, 180, 270YES=180, NO=0, TRUE=180, FALSE=0
INVERT0, 1YES=1, NO=0, TRUE=1, FALSE=0
DELAY>= 0NONE=0
CONTRAST[0, 10] 
BACKLIGHT0, 1YES=1, NO=0, TRUE=1, FALSE=0, ON=1, OFF=0

pre-defined wiring definitions

identifiernumeric idprotocoldescription
ParDTSerdisp1PARSerDisp wiring, parallel data transfer

display signals

identifierdescriptionmandatory
D0 - D78 bit wide data bus*
A0data or command*
CSchip select input, active low*
WRwrite signal, active low*
RDread signal, active low*
RESETreset signal, active low; optional if wired to a hardware reset circuit 
BACKLIGHTbacklight, optional 

annotations

top ^

links:

data sheets
sed1561 controller data sheet for SED 1560 series (english) sed1560.pdf
top ^

thanks:

special thanks go to
donating an nec21a pager TEN
top ^

history:

2005-05-08 adapted page for new css
added section 'passing options'
2005-02-26 first inoffical release
top ^

design by wolfgang astleitner, (C) 1998 - 2005