S6A0072 is a dot matrix LCD driver & controller IC which is fabricated by low power CMOS technology. It is
capable of displaying1-line 16 characters or 2-line 8 characters with 5 × 8 dots format.
FUNCTIONS
Character type dot matrix LCD driver & controller
• Easy interface with 4-bit or 8-bit MPU.
• Internal driver: 16 common and 40 segment signal output.
• Display character pattern: 5 × 8 dots format (240 kinds)
• Direct programming of the special character patterns by character generator RAM
• Mask option for programming customer character patterns
• Various instruction functions
• Automatic power on reset
FEATURES
• Internal Memory
- Character Generator ROM (CGROM): 9600 bits (240 characters × 5 × 8 dot)
S1 - S40 Output Segment output Segment signal output for LCD driving LCD
C1 - C16 Input Common output Common signal output for LCD driving LCD
EXTCLK Input External clock
EXT_INT Input External/internal
RS Input Register select Used as register selection input.
R/W Input
E Input Read/write
DB0-DB3 Input/Output Data bus 0 - 7 When 8-bit bus mode, used as low order
DB4-DB7
RESETB Input Reset If it is necessary to initialize the system by
TEST Output Test pin Internal oscillator test pin. Open this pin. Open
Input/Output
0V (GND) Bias voltage level for LCD driving
When 8-bit bus mode, used as high order bi-
Name Description Interface
for logical circuit (+3V, +5V) Power supply
LCD bias pin
When using external clock, used as clock
Input
oscillator clock
select
Read/write Used as read/write selection input.
enable
input pin. When using internal oscillator,
connect to VDD or VSS.
When EXT_INT = "High", external clock is
used. When "Low", internal oscillator is used.
When RS = "High", Data register is selected.
When RS = "Low", Instruction register is
selected.
When R/W = "High", read operation.
When R/W = "Low", write operation.
Used as read/write enable signal.
bi-directional data bus.
During 4-bit bus mode open these pins.
directional data bus. In case of 4-bit bus
mode, used as both high and low order.
DB7 is used for busy flag output during read
instruction operation.
hardware, force "Low", level signal to this
terminal about 1.2ms.
This chip consists of two kinds of interface type with MPU: 4-bit bus and 8-bit bus. 4-bit bus and 8-bit bus is
selected by DL bit of function set in the instruction register. During read or write operation, two 8-bit registers are
used. One is the data register (DR), the other is the instruction register (IR). The data register (DR) is used as a
temporary data storage place for being written into or read from DDRAM/CGRAM, target RAM is selected by
RAM address setting instruction. Each internal operation, reading from or writing into RAM, is done automatically.
Thus, after MPU reads DR data, the data in the next DDRAM/CGRAM address is transferred into DR
automatically. Also after MPU writes data to DR, the data in DR is transferred into DDRAM/CGRAM
automatically. The Instruction register (IR) is used only to store instruction code transferred from MPU. MPU
cannot read data from instruction register. The register selection depends on RS input pin setting in both 4-bit bus
mode.
Table 1. Various Kinds Of Operations According to RS and R/W Bits
RS R/W Operation
0 0 Instruction write operation (MPU writes Instruction code into IR)
0 1 Read busy flag (DB7) and address counter (DB0 - DB6)
1 0 Data write operation (MPU writes data into DR)
1 1 Data read operation (MPU reads data from DR)
BUSY FLAG (BF)
BF = "High" indicates that the internal operation is being processed. So during this time the next instruction
cannot be accepted. BF can be read, when RS = Low and R/W = High (Read instruction Operation), through DB7
port.
Before executing the next instruction, be sure that BF is not High.
ADDRESS COUNTER (AC)
Address Counter (AC) stores the address of DDRAM/CGRAM that are transferred from IR. After writing into
(reading from) DDRAM/CGRAM data, AC is increased (decreased) by 1 automatically. When RS = "Low", and
R/W = "High", AC value can be read through DB0 - DB6 ports.
DDRAM stores 8bits character code in CGROM/CGRAM and its maximum number is 16 (16 Characters).
DDRAM address is set by the address counter (AC) as hexadecimal number.
MSBLSB
AC6AC5 AC4AC3AC2 AC1AC0
HEXHEX
The relations of DDRAM address and display position is as follows.
1) DDRAM Addressing Mode 0 (A = 0)-
In this addressing mode, the address range of DDRAM is 00H - 0FH.
After Shift Left:
After Shift Right:
12345
00 01 02 03 04
COM1 - COM8COM9 - COM16
COM1
COM8
COM1
COM8
12345
01 02 03 04
12345
0F 00
6789 10 11 12 13 14 15
05 06 0708 09 0A0E 0F
6789 10 11 12 13 14 15
05 06 07 0809 0A0E 0F1600
6789 10 11 12 13 14 15
01 02 03 04
05 0607 08 09 0A0E
0B 0C 0D
0B 0C 0D
16
0B 0C 0D
2) DDRAM Addressing Mode 1 (A = 1)
In this addressing mode, the address range of DDRAM is 00H - 07H and 40H - 47H.
CGRAM is used for user defined character pattern. The format of the character pattern is 5 × 7 dots except for
the cursor position and has a maximum of 4 characters. To use the character pattern in CGRAM write the
character code into DDRAM as shown in table 2.
Table 2. Relationship Between Character Code (DDRAM) and Character Pattern (CGRAM)
Character Code (DDRAM data)CGRAM AddressCGRAM Data
CGROM generates 5 × 8 character pattern from character generate code in DDRAM. CGROM has 5 × 8-dot 240
character pattern including cursor position. If the data in cursor position bit are high, the data are included to the
character pattern. So, the selected positions are always "ON" regardless to cursor position. The relationship
between character code and character pattern can be referred to table 5.
TIMING GENERATION CIRCUIT
Timing generation circuit generates clock signals for the internal operations.
LCD DRIVER CIRCUIT
LCD driver circuit has 16 common and 40 segment output signals for LCD driving. Data from CGRAM/CGROM is
transferred to 40-bit segment shift register serially, then it is stored to 40-bit segment output latch. When each
com is selected by a 16-bit common register, the segment data also outputs through segment driver from 40-bit
segment output latch.
CURSOR/BLINK CONTROL CIRCUIT
It controls cursor/blink ON/OFF at the cursor position.
To overcome the speed difference between the internal clock of S6A0072 and the MPU clock, the S6A0072
performs an internal operation by storing control information to IR or DR. The internal operation is determined
according to the signal from MPU, composed of read/write and data bus.
Instruction can be divided into four types:
• S6A0072 function set instructions (set display methods, set data length, etc.)
• Address set instructions to internal RAM
• Data transfer instructions with internal RAM
• Others.
The address of internal RAM is automatically increased or decreased by 1.
NOTE: During an internal operation, the busy flag (DB7) is high. Busy flag check must precede the next instruction.
When an MPU program with busy flag (DB7) checking is made, 1/2Fosc is necessary for executing the next
instruction by the falling edge of the "E" signal after the busy flag (DB7) goes to "Low".
After setting the DL bit to 4-bit data interface mode (DL = 0), writing this code twice makes the system go to test
mode. And when 8-bit interface mode (DL = 1) is set, normal function mode is returned. System is unaffected if
this code is set in 8-bit interface, other than consuming some time. (37µs at fosc = 270kHz)
Clear Display
RS R/W DB7 DB6 DB5 DB4 DB3 DB2 DB1 DB0
0 0 0 0 0 0 0 0 0 1
Clear all the display data by writing "20H" (space code of CGROM) to all DDRAM address, and set DDRAM
address to "00H" into AC (Address Counter). For this instruction, the CGROM address "20H" has to be set to
space code. Shifting of the display position returns it to the original position. Namely, when display data is shifted
and cursor or blinking is displayed, bring the cursor to the left edge on first line of the display. It makes entry
mode to increment (I/D = 1)
Return Home
RS R/W DB7 DB6 DB5 DB4 DB3 DB2 DB1 DB0
0 0 0 0 0 0 0 0 1 *
Set DDRAM address to "00H" into the address counter. Shifting of the display position returns it to the original
position. When cursor or blinking is displayed, bring the cursor to the left edge on first line of the display. The
data in DDRAM does not change.
Entry Mode Set
RS R/W DB7 DB6 DB5 DB4 DB3 DB2 DB1 DB0
0 0 0 0 0 0 0 1 I/D S
Set the moving direction of cursor and display.
I/D: Increment/decrement of DDRAM/CGRAM address (cursor or blink)
When I/D = "High", cursor/blink moves to right and DDRAM address is increased by 1.
When I/D = "Low", cursor/blink moves to left and DDRAM address is decreased by 1.
S: Shift of entire display
When DDRAM read (CGRAM read/write)operation or S = "Low", entire display is not shift.
If S = "High", and DDRAM write operation, entire display is shifted according to I/D value
(I/D = "1": shift left, I/D = "0": shift right).
Control display/cursor/blink ON/OFF 1 bit register.
D: Display ON/OFF control bit
When D = "High", entire display is turned on.
When D = "Low", entire display is turned off, but display data is remains in DDRAM.
C: Cursor ON/OFF control bit
When C = "High", cursor is turned on.
When C = "Low", cursor is disappeared in current display, but I/D register preserves its data.
B: Cursor Blink ON/OFF control bit
When B = "High", cursor blink is on, performs alternately between all high data (black pattern) and
display character at the cursor position.
When B = "Low", blink is off.
Cursor or Display Shift
RS R/W DB7 DB6 DB5 DB4 DB3 DB2 DB1 DB0
0 0 0 0 0 1 S/C R/L * *
Without writing or reading of display data, shift right/left the cursor position or display. This instruction is used to
correct or search display data. (Refer to Table 4) during 2-line mode display, cursor moves to the 2nd line after
8th digit of 1st line. Note that display shift is performed simultaneously in all the line. When displayed data is
shifted repeatedly, each line is shifted individually. When display shift is performed, the contents of address
counter are not changed.
Table 4. Shift patterns according to S/C and R/L bits
R/C R/L Operation
0 0 Shift cursor to the left, AC is decreased by 1
0 1 Shift cursor to the right, AC is increased by 1
1 0 Shift all the display to the left, cursor moves according to the display
1 1 Shift all the display to the right, cursor moves according to the display
DL: Interface data length control bit
When DL = "High" 8-bit bus mode with MPU.
When DL = "Low", 4-bit bus mode with MPU. Thus, DL is a signal to select 8-bit or 4-bit bus mode.
In 4-bit bus mode, the 4-bit data is transferred twice.
A: Set the display data addressing mode
When A = "Low", DDRAM addressing mode 0.
When A = "High", DDRAM addressing mode 1.
MO: Set COM/SEG output rotation
When M0 = "Low", COM/SEG output rotation mode A.
When M0 = "High", COM/SEG output rotation mode B.
M1: Set display line and character mode
When M1 = "Low", 1 line 16 character display mode.
When M1 = "High", 2line 8 character display mode. (refer to application information)
Set CGRAM Address
RS R/W DB7 DB6 DB5 DB4 DB3 DB2 DB1 DB0
0 0 0 1 * AC4 AC3 AC2 AC1 AC0
MSB LSB
Set CGRAM address to AC. This instruction allows the MPU to access CGRAM data for user defined character
pattern. Available CGRAM Address is lower 5 bits (DB4 - DB0).
Set DDRAM Address
RS R/W DB7 DB6 DB5 DB4 DB3 DB2 DB1 DB0
0 0 1 AC6 AC5 AC4 AC3 AC2 AC1 AC0
Set DDRAM address to AC. This instruction allows the MPU to access DDRAM data. When DDRAM addressing
mode 1 (A = 0), DDRAM address is from "00H" - "0FH". In DDRAM addressing mode 2 (A = 1), DDRAM address
range of the 1st 8 character is "00H" - "07H", and DDRAM address range of the 2nd 8 character is "40H" - "47H".
This instruction shows whether S6A0072 is in internal operation or not. If the resultant BF is high, The internal
operation is in progress and should wait until BF to be low, which by then the next instruction can be performed.
In the instruction you can read also the value of address counter.
Write Data to RAM
Write binary 8/5 bit data to DDRAM/CGRAM. The selection of RAM from DDRAM/CGRAM is set by the previous
address set instruction (DDRAM address set, CGRAM address set). After writing operation, the address is
automatically increased/decreased by 1, according to the entry mode.
The selection of RAM is set by the previous address set instruction. If the address set instruction of RAM is not
performed before this instruction, data that was read first becomes invalid, as the direction of AC is not
determined. If RAM data is read several times without RAM address set instruction before read operation, the
correct RAM data can be detained from the second, but the first data would be incorrect, as there is no time
margin to transfer the RAM data. In case of DDRAM reading operation, the cursor shift instruction plays the same
role as DDRAM address set instruction also transfers RAM data to output data register. After read operation
address counter is automatically increased/decreased by 1 according to the entry mode. After CGRAM read
operation, the display shift may not be executed correctly.
- In the case of RAM write operation, AC is increased/decreased by 1 like read operation (after this operation).
In this time, AC indicates the next address position, but only the previous data can be read by read instruction.
With 8-bit interfacing data length transfer is performed at a time through 8 ports, from DB0 - DB7. Example of
timing sequence is shown below.
RS
R/W
E
Internal Signal
DB7
DataBusyBusy
Instruction
Internal Operation
Busy Flag
Check
Busy Flag
Check
No
Bus
y
Busy Flag
Check
Data
Instruction
Figure 1. Example of 8-bit Bus Mode Timing Diagram
INTERFACE WITH 4-BIT MPU
When interfacing data length are 4-bit, only 4 ports, from DB4 - DB7, are used as data bus. At first higher 4-bit (in
case of 8-bit bus mode, the contents of DB4-DB7) are transferred, then the lower 4-bit (in case of 8-bit bus mode,
the contents of DB0-DB3) are transferred. So transfer is performed twice. Busy Flag outputs "High" after the
second transfer are ended. Example of timing sequence is shown below.
RS
R/W
E
Internal Signal
DB7
D7Busy
D3AC3D3AC3
InstructionBusy Flag CheckBusy Flag CheckInstruction
Internal Operation
No
Bus
y
D7
Figure 2. Example of 4-bit Bus Mode Timing Diagram
When the power is turned on, S6A0072 is initialized automatically by power on reset circuit. During the
initialization, the following instructions are executed, and BF (Busy Flag) is kept "High" (busy state) up to the end
of initialization.
INITIALIZE FLOW
Display Clear
Write "20H" to all DDRAM
Set Functions
DL = 1: 8-bit bus mode
A = 0: DDRAM addressing mode 0
M0 = 0: COM/SEG output rotation mode A
M1 = 0: 1 line 16 character display mode
Control Display ON/OFF instruction
D = 0: Display OFF
C = 0: Cursor OFF
B = 0: Blink OFF
Set Entry Mode
I/D = 1: Increment by 1
S = 0: No entire display shift
INITIALIZE BY EXTERNAL HARDWARE RESET
If the "Low" signal is forced to reset terminal over a period of 1.2 ms then system will be initialized. And BF (Busy
Flag) is kept "High" (busy state) for 629 us after releasing the initializing sequence.
1-line selection period = 160 clocks
One Frame = 40 x 16 x 3.7µs x 4 = 9.472ms (1 CLOCK = 3.7µs at fosc = 270KHz)
Frame frequency = 1/9.472ms = 105.6Hz
Table 6. AC Characteristics (VDD = 4.5 TO 5.5V, TA = -30 TO +85°C)
Mode Item Symbol
Write mode E cycle time tc, 500 - - ns
Min Typ Max Unit
(refer to Figure 3) E rise/fall time tr, tf - - 20 E pulse width (high, low) tw 230 - - R/W and RS setup time tsu1 40 - - R/W and RS hold time th1 10 - - Data setup time tsu2 80 - - Data hold time th2 10 - -
Read mode E cycle time tc 500 - - ns
(refer to Figure 4) E rise/fall time tr, tf - - 20 E pulse width (high, low) tw 230 - - R/W and RS setup time tsu 40 - - R/W and RS hold time th 10 - - Data output delay time
Data hold time
tD
tDH
- - 120
20 - -
Table 6. AC Characteristics (VDD = 2.7 TO 4.5V, TA = -30 TO +85°C)
Mode Item Symbol
Write mode E cycle time tc, 1000 - - ns
Min Typ Max Unit
(refer to Figure 3) E rise/fall time tr, tf - - 25 E pulse width (high, low) tw 450 - - R/W and RS setup time tsu1 60 - - R/W and RS hold time th1 20 - - Data setup time tsu2 195 - - Data hold time th2 10 - -
Read mode E cycle time tc 1000 - - ns
(refer to Figure 4) E rise/fall time tr, tf - - 25 E Pulse width (high, low) tw 450 - - R/W and RS setup time tsu 60 - - R/W and RS hold time th 20 - - Data output delay time