HT16K23 RAM Mapping 20*4/16*8 LCD Controller Driver with keyscan Feature Applications ●● Logic voltage: 2.4~5.5V ●● Integrated RC oscillator ●● Industrial control indicator ●● Digital clock, thermometer, counter, voltmeter ●● Various display modes ––Max. 20*4 patterns, 20 segments, 4 commons, 1/3 bias, 1/4 duty ––Max. 16*8 patterns, 16 segments, 8 commons, 1/4 bias, 1/8 duty ●● Combo set. ●● VCR set ●● Instrumentation readouts ●● Other consumer application ●● LCD displays ●● I2C-bus interface ●● Key scan function ––Max. 20*1 matrix key scanning in 20*4 display mode ––Max. 16*1 matrix key scanning in 16*8 display mode General Description The HT16K23 is a memory mapping and multifunction LCD controller driver. The Max. display segment numbers in the device are 80 patterns (20 segments and 4 commons) or 128 patterns (16 segments and 8 commons). The Max. key scan circuits are 20*1 matrix or 16*1 matrix. The software configuration feature of the HT16K23 makes it suitable for multiple LCD applications including LCD modules and display subsystems. The HT16K23 supports a hardware interrupt using register setting. ●● 16*8 bits RAM for display data storage ●● Selectable hardware interrupt ●● R/W address auto increment ●● Manufactured in silicon gate COMS process ●● 28-pin SOP package The HT16K23 is compatible with most microcontrollers and communicates via a two-line bidirectional I2C-bus. Rev. 1.10 1 July 01, 2011 HT16K23 Block Diagram LCD bias circuit COM0 VDD VSS COM1 Power_on reset COM2 COM3 Internal RC Oscillator SEG19/COM4/K19/INT SEG18/COM5/K18 SEG17/COM6/K17 SEG16/COM7/K16 Timing generator SDA SCL I2C Controller LCD Driver / Keyscan circuit / Device address selecting circuit SEG15/K15/INT SEG14/K14 SEG13/K13 Display RAM 16*8bits Key data RAM 20*1 bits SEG2/K2 SEG1/K1 SEG0/K0 Pin Assignment Rev. 1.10 2 July 01, 2011 HT16K23 Pad Coordinates unit: μm2 No Pad Name X Y No Pad Name X Y 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 COM3 SEG19/COM4/K19/INT SEG18/COM5/K18 SEG17/COM6/K17 SEG16/COM7/K16 SEG15/K15/INT N.C. SEG14/K14 SEG13/K13 SEG12/K12 SEG11/K11 SEG10/K10 SEG9/K9 SEG8/K8 SEG7/K7 -400.967 -479.400 -479.400 -479.400 -479.400 -479.400 -182.270 -3.500 81.500 166.500 251.500 336.500 421.500 479.400 479.400 924.900 -496.281 -592.981 -677.981 -762.981 -868.000 -392.291 -924.900 -924.900 -924.900 -924.900 -924.900 -924.900 -538.200 -453.200 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 SEG6/K6 SEG5/K5 SEG4/K4 SEG3/K3 SEG2/K2 SEG1/K1 SEG0/K0 SCL SDA VLCD VDD VSS COM0 COM1 COM2 479.400 479.400 479.400 479.400 479.400 479.400 400.967 305.917 220.917 132.317 47.317 -60.967 -145.967 -230.967 -315.967 -368.200 -283.200 -198.200 -113.200 -28.200 56.800 924.900 924.900 924.900 924.900 924.950 924.950 924.900 924.900 924.900 Pad Assignment SCL SEG0/K0 SDA VLCD VDD VSS COM0 COM1 COM2 COM3 1 30 29 28 27 26 25 24 23 22 (0, 0) 21 20 19 18 7 N.C. SEG19/COM4/K19/INT 2 SEG18/COM5/K18 3 4 5 SEG17/COM6/K17 SEG16/COM7/K16 SEG15/K15/INT 17 16 15 14 6 SEG1/K1 SEG2/K2 SEG3/K3 SEG4/K4 SEG5/K5 SEG6/K6 SEG7/K7 SEG8/K8 8 9 10 11 12 13 SEG9/K9 SEG10/K10 SEG11/K11 SEG12/K12 SEG13/K13 SEG14/K14 Chip size: 1167× 2058μm2 The IC substrate should be connected to VSS in the PCB layout artwork. The VLCD and VDD should be bonded together. Rev. 1.10 3 July 01, 2011 HT16K23 Pin Description Pin Name Type Description Serial Data Input/Output for I2C interface. SDA I/O SCL I VDD — Positive power supply for logic circuits. VSS — Negative power supply for logic circuits, ground. COM0 ~ COM3 O LCD Common output. SEG0/K0 ~ SEG14/K14 I/O ●●LCD Segment output. ●●Key data input, internal pull-low during key scan. I/O ●●When the “M” bit of the mode set command is set to “1”, and the “INT/ROW” bit of the mode set command is set to “0”, this pin becomes an LCD Segment output and key data input with internal pull-low during key scan. ●●When the “M” bit of the mode set command is set to “1”, and the “INT/ROW” bit of the mode set command is set to “1”, this pin becomes an INT pin, interrupt signal out. INT is output active-low when the “ACT” bit of mode set command is set to “0”, The INT output is active-high when the “ACT” bit of the mode set command is set to “1” I/O ●●When the “M” bit of the mode set command is set to “0”, this pin becomes an LCD Segment output and a key data input with internal pull-low during a key scan. ●●When the “M” bit of the mode set command is set to “1”, this pin becomes an LCD Common output. I/O ●●When the “M” bit of the mode set command is set to “0”, and the “INT/ROW” bit of the mode set command is set to “0”, this pin becomes a LCD Segment output and a key data input with internal pull-low during key scan. ●●When the “M” bit of the mode set command is set to “0”, and the “INT/ROW” bit of the mode set command is set to “1”, this pin becomes an INT pin, interrupt signal out. The INT output is activelow when the “ACT” bit of the mode set command is set to “0”, The INT output active-high when the “ACT” bit of the mode set command is set to “1” ●●When the “M” bit of the mode set command is set to “1”, this pin becomes an LCD Common output. SEG15/K15/INT SEG16/COM7/K16 ~ SEG18/COM5/K18 SEG19/COM4/K19/INT Rev. 1.10 Serial Clock Input for I2C. 4 July 01, 2011 HT16K23 Approximate Internal Connections SCL, SDA COM0~COM3 SEG0/K0 ~ SEG14/K14 SEG16/COM7/K16~SEG18/COM5/K18 VDD Vselect-on Vselect-on Vselect-off GND Vselect-off SEG15/K15/INT SEG19/COM4/K19/INT Vselect-on Vselect-off Absolute Maximum Ratings Supply Voltage ........................................................................................................................VSS-0.3V to VSS+6.5V Input Voltage .......................................................................................................................... VSS-0.3V to VDD+0.3V Storage Temperature ......................................................................................................................... -55°C to 150°C Operating Temperature ....................................................................................................................... -40°C to 85°C Note: These are stress ratings only. Stresses exceeding the range specified under “Absolute Maximum Ratings” may cause substantial damage to the device. Functional operation of this device at other conditions beyond those listed in the specification is not implied and prolonged exposure to extreme conditions may affect device reliability. Rev. 1.10 5 July 01, 2011 HT16K23 D.C. Characteristics Symbol Parameter VDD Operating Voltage IDD1 Operating Current IDD2 Operating Current VDD =2.4~5.5V; Ta=25°C (Unless otherwise specified) Test condition Min. Typ. Max. Unit — 2.4 — 5.5 V No load, LCD ON , 20*4 display mode — 155 310 μA — 260 420 μA No load, LCD OFF , 20*4 display mode — 8 30 μA — 20 60 μA — 1 3 μA — 2 5 μA VDD Condition — 3V 5V 3V 5V 3V ISTB Standby Current VIL Input Low Voltage — SDA, SCL 0 — 0.3VDD V VIH Input High Voltage — SDA, SCL 0.7VDD — VDD V IIL Input leakage current — VIN = VSS or VDD -1 — 1 μA IOL Low level output current 3 — — mA 5V 3V VOL=0.4V, SDA 6 — — mA LCD Common Sink Current 3V VOL=0.3V 80 160 — μA 5V VOL=0.5V 180 360 — μA LCD Common Source Current 3V VOH=2.7V -80 -120 — μA 5V VOH=4.5V -120 -200 — μA IOL2 LCD Segment Sink Current 3V VOL=0.3V 60 120 — μA 5V VOL=0.5V 120 200 — μA IOH2 LCD Segment Source Current 3V VOH=2.7V -40 -70 — μA 5V VOH=4.5V -70 -140 — μA IOL3 INT Sink Current 3V VOL=0.3V 1 — — mA 5V VOL=0.5V 2 — — mA IOH3 INT Source Current 3V VOH=2.7V -1 — — mA 5V VOH=4.5V -2 — — mA RPL Input pull-low Resistance 3V SEG0/K0~SEG19/K19, during keyscan period 220 400 600 220 400 600 IOL1 IOH1 Rev. 1.10 5V No load, standby mode 5V 6 KΩ July 01, 2011 HT16K23 A.C. Characteristics Symbol Parameter VDD =2.4~5.5V; Ta=25°C (Unless otherwise specified) Test condition VDD 3V Condition Min. Typ. Max. Unit 5V 20*4 display mode 16*8 display mode 58 72 90 Hz VDD OFF Times — VDD drop down to 0V 20 — — Ms VDD Slew Rate — 0.05 — — V/ms fLCD LCD Frame Frequency tOFF tSR — Note: 1. If the Power on Reset timing conditions are not satisfied in the power ON/OFF sequence, the internal Power on Reset circuit will not operate normally. 2. If VDD drops below the minimum voltage of the operating voltage spec. during operating, the Power on Reset timing conditions must also be satisfied. That is, VDD must drop to 0V and remain at 0V for 20ms (min.) before rising to the normal operating voltage. A.C. Characteristics I2C-Bus Symbol Ta=25°C (Unless otherwise specified) Test condition Parameter VDD=2.4V to 5.5V VDD=3.0V to 5.5V Unit Condition Min. Max. Min. Max. — — 100 — 400 kHZ 4.7 — 1.3 — μs 4 — 0.6 — μs fSCL Clock frequency tBUF Bus free time Time in which the bus must be free before a new transmission can start tHD; STA Start condition hold time After this period, the first clock pulse is generated tLOW SCL Low time — 4.7 — 1.3 — μs tHIGH SCL High time — 4 — 0.6 — μs tSU; STA Start condition set-up time Only relevant for repeated START condition. 4.7 — 0.6 — μs tHD; DAT Data hold time — 0 — 0 — μs tSU; DAT Data set-up time — 250 — 100 — ns tr Rise time Note — 1 — 0.3 μs tf Fall time Note — 0.3 — 0.3 μs tSU; STO Stop condition set-up time — 4 — 0.6 — μs tAA Output Valid from Clock — — 3.5 — 0.9 μs tSP Input Filter Time Constant (SDA and SCL Pins) — 100 — 50 ns Noise suppression time Note: These parameters are periodically sampled but not 100% tested. Rev. 1.10 7 July 01, 2011 HT16K23 Timing Diagrams ●● I2C Timing SDA tBUF tSU:DAT tf tLOW tSP tHD:STA tr SCL tHD:SDA S tHD:DAT tHIGH tSU:STA tAA tSU:STO P Sr S SDA OUT ●● Power-on Reset Timing Functional Description Power-on Reset When power is turned on, the IC is initialised by the internal power-on reset circuit. The status of the internal circuit after initialization is as follows: ●● Display mode is 20*4, 20 segments and 4 commons. ●● System oscillator is off. ●● LCD Display is off. ●● Key scan stopped. ●● All common pins are set to VSS. ●● All segment pins are in an input state. ●● SEG19/COM4/INT pin is set to segment driver. ●● The control registers, key data RAM and display data RAM are set to a default value. Data transfers on the I2C-bus should be avoided for 1 ms following power-on to allow completion of the reset procedure. Rev. 1.10 8 July 01, 2011 HT16K23 Standby Mode In the standby mode, the HT16K23 cannot accept any input command or write data to the display RAM except for the system set command. If standby mode is selected with the “S” bit of system set command is set to “0”, the status of the standby mode is as follows: ●● System Oscillator is off. ●● LCD display is off. ●● Key scan stopped. ●● All key data and INT flags are cleared, until the standby mode is cancelled. ●● The key matrix is pushed by any key or if the “S” bit of the system set command is set to “1”, this standby mode will be cancelled and the device will wake-up. ●● All common pins are set to VSS. ●● If the “INT/ROW” bit of mode set command is set to “0”, all segment pins are changed to input pins. ●● If the “INT/ROW” bit of mode set command is set to “1”: all segment pins are changed to input pins except for the INT pin (output). ●● The INT pin output keeps a high level when the “ACT” bit of the mode set command is set to “0”,.The INT pin output keeps to a low level when the “ACT” bit of the mode set command is set to “1”, if the “INT/ROW” bit of mode set command is set to “1”. Wake-up ●● Wake-up is implemented by a key press by any key or if the “S” bit of the system set command is set to “1”. Then a key scan is performed. ●● System Oscillator restarts for normal operation. ●● The previous output will be displayed until updated by each mode command set. ●● The relationship between Wake-up and any key press delay timeless and INT output and INT flag status is as follows: Press Any key Press Release Press Release key Release key 2 frame cycle < 2 frame cycle 2 frame cycle INT flag or INT pin output (When the act bit is set to “1”) Read key data command set from MCU Standby mode command set from MCU Key data are updated Key data are updated When after the key data has been read,Clears the key data RAM. When after the key data has been read,Clears the key data RAM. Wake-up HT16K23 operation status Rev. 1.10 Normal active status Normal active status Standby status 9 July 01, 2011 HT16K23 System Set Command This command is used to set the follow functions. ●● The HT16K23 operates in normal mode or standby mode. Before the standby mode command is sent, it is strongly recommended to read key data first. ●● LCD display on/off Command Name D7 D6 D5 D4 D3 D2 D1 D0 System set 1 0 0 0 0 0 D Option Description S Standby mode selecting ●●{0}: standby mode ●●{1}: normal mode D LCD display on/off ●●{0}: LCD display off ●●{1}: LCD display on S Def. 80H Mode Set Command This command is used to set the follow functions. ●● Display mode selecting, 20*4 display mode or 16*8 display mode. ●● Set the HT16K23 SEG/INT port to be a segment output or an INT output. ●● INT output is active-low or active-high. Name Command D7 D6 D5 D4 D3 D2 D1 D0 Option 1 0 1 0 0 ACT INT/ M ROW Def. LCD display mode selecting ●●{0}: 20*4 display mode ●●{1}:16*8 display mode M Mode set Description INT/ ROW Segment or INT pin selecting ●●{0}: Segment output SEG19/COM4/K19/INT is segment output in 20*4 display mode. SEG15/K15/INT is segment A0H output in 16*8 display mode. ●●{1}: INT output SEG19/COM4/K19/INT is INT output in 20*4 display mode. SEG15/K15/INT is INT output in 16*8 display mode. ACT INT output level selection, ●●{0}: INT output is active-low. ●●{1}: INT output is active-high. System Oscillator The internal logic and the LCD driver signals of the HT16K23 are timed by the integrated RC oscillator. The System Clock frequency (fSYS) determines the LCD frame frequency. A clock signal must always be supplied to the device as removing the clock may freeze the standby mode command is executed. At initial system power on, the System Oscillator is in the stop state. Rev. 1.10 10 July 01, 2011 HT16K23 LCD Bias Generator The full-scale LCD voltage (Vop) is obtained from VDD – VSS. Fractional LCD biasing voltages are obtained from an internal voltage divider of three series resistors connected between VLCD and VSS. The centre resistor can be switched out of the circuit to provide a 1/3 bias voltage level for the 1/4 duty configuration or 1/4 bias voltage level for the 1/8 duty configuration. Segment Driver Outputs The LCD driver section includes segment outputs which should be connected directly to the LCD panel. The segment output signals are generated in accordance with the multiplexed column signals and with the data resident in the display latch. The unused segment outputs should be left open-circuit. Common Driver Outputs The LCD driver section includes column outputs which should be connected directly to the LCD panel. The common output signals are generated in accordance with the selected LCD drive mode. The unused column outputs should be left open-circuit. Display Memory – RAM Structure The display RAM is a static 16 x 8-bit RAM where the LCD data is stored. A logic “1” in the RAM bit-map indicates the “on” state of the corresponding LCD segment; similarly a logic 0 indicates the “off” state. There is a one-to-one correspondence between the RAM addresses and the segment outputs, and between the individual bits of a RAM word and the column outputs. The following tables show the mapping from the RAM to the LCD pattern: Output COM3 COM2 COM1 COM0 Output COM3 COM2 COM1 COM0 address SEG1 — — — — SEG0 — — — — 00H SEG3 — — — — SEG2 — — — — 01H SEG5 — — — — SEG4 — — — — 02H SEG7 — — — — SEG6 — — — — 03H SEG9 — — — — SEG8 — — — — 04H SEG11 — — — — SEG10 — — — — 05H SEG13 — — — — SEG12 — — — — 06H SEG15 — — — — SEG14 — — — — 07H SEG17 — — — — SEG16 — — — — 08H SEG19 — — — — SEG18 — — — — 09H D7 D6 D5 D4 D3 D2 D1 D0 Data RAM mapping of 20*4 display mode Rev. 1.10 11 July 01, 2011 HT16K23 Output COM7 COM6 COM5 COM4 COM3 COM2 COM1 COM0 address SEG0 — — — — — — — — 00H SEG1 — — — — — — — — 01H SEG2 — — — — — — — — 02H SEG3 — — — — — — — — 03H SEG4 — — — — — — — — 04H SEG5 — — — — — — — — 05H SEG6 — — — — — — — — 06H SEG7 — — — — — — — — 07H SEG8 — — — — — — — — 08H SEG9 — — — — — — — — 09H SEG10 — — — — — — — — 0AH SEG11 — — — — — — — — 0BH SEG12 — — — — — — — — 0CH SEG13 — — — — — — — — 0DH SEG14 — — — — — — — — 0EH SEG15 — — — — — — — — 0FH D7 D6 D5 D4 D3 D2 D1 D0 Data RAM mapping of 16*8 display mode MSB D7 Rev. 1.10 LSB D6 D5 D4 D3 12 D2 D1 D0 July 01, 2011 HT16K23 LCD Drive Mode Waveforms ●● 20*4 display mode, 1/4 duty , 1/3 bias 1 frame VDD V1 COM0 V2 VSS VDD V1 COM1 V2 VSS VDD V1 COM2 V2 VSS VDD V1 COM3 V2 VSS VDD SEG0/K0~ SEG19/K19 V1 V2 VSS Display period Rev. 1.10 Key scan period 13 July 01, 2011 HT16K23 ●● 16*8 display mode, 1/8 duty , 1/4 bias 1 frame VDD V1 COM0 V2 V3 VSS VDD V1 COM1 V2 V3 VSS VDD V1 COM2 V2 V3 VSS VDD V1 COM3 V2 V3 VSS VDD V1 COM4 V2 V3 VSS VDD V1 COM5 V2 V3 VSS VDD V1 COM6 V2 V3 VSS VDD V1 COM7 V2 V3 VSS VDD V1 SEG0/K0~ V2 SEG16/K16 V3 VSS Display period Rev. 1.10 Key scan period 14 July 01, 2011 HT16K23 Keyscan ●● The HT16K23 supports a 20*1 matrix key scan in the 20*4 display mode and a 16*1 matrix key scan in the 16*8 display mode. ●● The hardware interrupt function is optional, allowing SEG19/COM4/K19/INT in the 20*4 display mode or SEG15/K15/INT to be used as an INT output or as a segment driver. The interrupt flag can be read (polled) through the serial interface instead. ●● The key scan input pins are shared with segment output pins. ●● The keyscan cycle loops continuously with time, with all keys experiencing a full keyscan debounce of over 20ms. A key press is debounced and an interrupt issued if at least one key that was not pressed in a previous cycle is found pressed during both sampling periods. ●● INT output is active-low when the “act” bit of the mode set command is set to “0”, ●● INT output is active-high when the “act” bit of the mode set command is set to “1” Keyscan and INT Timing ●● The key data is updated and the INT function is changed if the key has been pressed for 2 key-cycles. ●● The INT function is changed when the first key has been pressed. ●● After the key data has been read, the key data registers are cleared to “0” and the INT flag bit is set to “0”. The INT pin goes low when the “ACT” bit of the mode set command is set to “1”. ●● After the key data has been read, the key data registers are cleared to “0” and the INT flag bit is set to “1”, and the INT pin goes low when the “ACT” bit of the mode set command is set to “0”. ●● The INT flag register is shown below. To clear the INT flag status, the key data register must be read from 0x20H~0x22H in one operation. INT flag register Address code R/W INT flag register 0X30H R D6 D5 D4 D3 D2 D1 D0 Def. 0 0 0 0 0 0 0 INT flag 00H Realease key Press first key 1st frame Register Data D7 2nd frame 3rd frame 4th frame Press second key 5th frame Key data updated 6th frame 7th frame Realease key 8th frame 9th frame INT flag INT pin(active low) INT pin(active high) When the interrupt asserted if required : 1. Key data are updated 2. Slave address are updated Rev. 1.10 When after the all key data has been read: 1. Clears the key debounced register. 2. The INT flag bit is set to"0” 3.The INT pin goes to low when "act” bit is set to “1”. 4.The INT pin goes to high when "act” bit is ise to “0”. 15 July 01, 2011 HT16K23 Key Matrix Configuration There is a key scan circuit integral to the HT16K23 which can detect a key press. It includes twenty inputs (K0 to K19, shared with SEG0 to SEG19) in the 20*4 display mode or sixteen inputs (K0 to K15, shared with SEG0 to SEG15) in the 16*8 display mode. The key matrix has a 20*1 matrix in the 20*4 display mode or a 16*1 matrix in the 16*8 display configuration as shown below: VDD VDD SEG0/K0 SEG1/K1 SEG2/K2 SEG3/K3 SEG4/K4 SEG5/K5 SEG6/K6 SEG7/K7 SEG8/K8 SEG9/K9 SEG10/K10 SEG11/K11 SEG12/K12 SEG13/K13 SEG14/K14 SEG15/K15 = SEG0/K0 SEG1/K1 SEG2/K2 SEG3/K3 SEG4/K4 SEG5/K5 SEG6/K6 SEG7/K7 SEG8/K8 SEG9/K9 SEG10/K10 SEG11/K11 SEG12/K12 SEG13/K13 SEG14/K14 SEG15/K15 SEG16/K16 SEG17/K17 SEG18/K18 SEG19/K19 = 20*1 matrix in 20*4 display mode 16*1 matrix in 16*8 display mode Key Data Register After the key data registers have been read, the key data registers are cleared to “0”. To enable future key presses to be identified, if the key data register is not read, the key data accumulates. There is no FIFO register in the HT16K23. Key-press order, or whether a key has been pressed more than once, cannot be determined unless the all of the key data RAM is read after each interrupt and before completion of the next keyscan cycle. After the key data registers have been read, the INT output and INT flag status are cleared. If a key is pressed and held down, the key is reported as being debounced (and an INT is issued) only once. The key must be detected as released by the keyscan circuit before it is debounced again. It is strongly recommended to read the key data registers from the address 0x20H only. The key data registers of addresses from 0X20H to 0X22H should be read continuously and completed in one operation. There is a one-to-one correspondence between the key data register addresses and the key data outputs and between the individual bits of a key data register word and the key data outputs. The following shows the mapping from the RAM to the key data output: The key data registers are read only. The key data register format is shown below: Key data register Key data register address point Rev. 1.10 Address R/W code Register Data D7 D6 D5 D4 D3 D2 D1 D0 Def. K6 K5 K4 K3 0X20H R K7 K2 K1 K0 00H 0X21H R K15 K14 K13 K12 K11 K10 K9 K8 00H 0X22H R 0 0 16 0 0 K19 K18 K17 K16 00H July 01, 2011 HT16K23 Key scan period setting Command ●● HT16K23 can adjust the key scan period through this command. The setting is show as below. ●● The default value of key scan period is 2 clock cycle time in 20*4 display mode, 1 clock cycle time in 16*8 display mode. ●● In generally, user does not need to use this command, when key data can be read correctly. ●● Due to various LCD characteristic, it will have different RC time constant in key scan period. If the equivalent capacitance is larger in the LCD, it can not be charged or discharged fully in key scan period. The key can not be read correctly. To avoid read key error, user can adjust the key scan period through this command. If key scan period is too longer, it may affect the LCD visual quality. Name Command D7 D6 D5 D4 D3 D2 D1 D0 1 1 1 1 1 P2 P1 P0 Key scan period setting Option Description Def. [P2:P0] To adjust key scan period F8H The setting of key scan period [P2:P0] 20*4 display mode 16*8 display mode 000 2 clock cycle time 1 clock cycle time 001 4 clock cycle time 3 clock cycle time 010 6 clock cycle time 5 clock cycle time 011 8 clock cycle time 7 clock cycle time 100 10 clock cycle time 9 clock cycle time 101 12 clock cycle time 11 clock cycle time 110 14 clock cycle time 13 clock cycle time 111 16 clock cycle time 15 clock cycle time The relationship of display period and key scan period 20*4 display mode 16*8 display mode VDD VDD COM0~ COM3 V1 COM0~ COM7 V2 V3 VSS VDD SEG0/K0~ SEG19/K19 VSS T VDD V1 T V1 SEG0/K0~ SEG16/K16 V2 VSS V2 V3 VSS Display period Display period Key scan period T= Display period + Key scan period = 110 clock cycle time (fixed) Rev. 1.10 V1 V2 Key scan period T= Display period + Key scan period = 55 clock cycle time (fixed) 17 July 01, 2011 HT16K23 I2C Serial Interface The device includes a I2C serial interface. The I2C bus is used for bidirectional, two-line communication between different ICs or modules. The two lines are a serial data line (SDA) and a serial clock line (SCL). Both lines are connected to a positive supply via a pull-up resistor. When the bus is free, both lines are high. The output stages of devices connected to the bus must have an open-drain or open-collector output type to implement the required wired and function. Data transfer is initiated only when the bus is not busy. Data Validity The data on the SDA line must be stable during the high period of the clock. The high or low state of the data line can only change when the clock signal on the SCL line is Low (see as below). SDA SCL Data line stable, Data valid Chang of data allowed START and STOP Conditions ●● A high to low transition on the SDA line while SCL is high defines a START condition. ●● A low to high transition on the SDA line while SCL is high defines a STOP condition. ●● START and STOP conditions are always generated by the master. The bus is considered to be busy after the START condition. The bus is considered to be free again a certain time after the STOP condition. ●● The bus stays busy if a repeated START (Sr) is generated instead of a STOP condition. In this respect, the START(S) and repeated START (Sr) conditions are functionally identical. SDA SDA SCL SCL S P START condition STOP condition Byte Format Every byte put on the SDA line must be 8-bits long. The number of bytes that can be transmitted per transfer is unrestricted. Each byte has to be followed by an acknowledge bit. Data is transferred with the most significant bit (MSB) first. P SDA Sr SCL Rev. 1.10 S or Sr 1 2 7 8 9 ACK 18 1 2 3-8 9 ACK P or Sr July 01, 2011 HT16K23 Acknowledge ●● Each byte of eight bits is followed by a single acknowledge bit. This acknowledge bit is a low level which is placed on the bus by the receiver. The master generates an extra acknowledge related clock pulse. ●● A slave receiver which is addressed must generate an acknowledge (ACK) after the reception of each byte. ●● The acknowledging device must pull down the SDA line during the acknowledge clock pulse so that it remains at a stable low level during the high period of this clock pulse. ●● A master receiver must signal an end of data status to the slave by generating a not-acknowledge (NACK) bit on the last byte that has been clocked out of the slave. In this case, the master receiver must leave the data line high during the 9th pulse to not acknowledge. The master will generate a STOP or repeated START condition. DATA OUTPUT BY TRANSMITER not acknowledge DATA OUTPUT BY RECEIVER acknowledge SCL FROM MASTER 1 S 2 7 START condition 8 9 clk pulse for acknowledgement Device Addressing ●● The slave address byte is the first byte received following a START condition form the master device. The first seven bits of the first byte make up the slave address. The eighth bit defines whether a read or write operation is to be performed. When this R/W bit is “1”, then a read operation is selected. A “0” selects a write operation. ●● The HT16K23 address bit format is shown below. When an address byte is sent, the device compares the first seven bits after the START condition. If they match, the device outputs an acknowledge on the SDA line. MSB 1 LSB 1 1 0 0 1 1 R/W Device Address Rev. 1.10 19 July 01, 2011 HT16K23 Write Operation Byte Write Operation A byte write operation requires a START condition, a slave address with an R/W bit, a valid Register Address, Data and a STOP condition. After each of the three bytes have been transmitted, the device responds with an ACK. SLAVE ADDRESS COMMAND CODE P S1 1 1 0 0 1 1 0 WRITE ACK ACK Command Byte Received REGISTER ADDRESS(An) SLAVE ADDRESS DATA(n) P S1 1 1 0 0 1 1 0 WRITE ACK ACK ACK Single Data Byte Received Note: If the byte following slave address is a command code, the byte following the command code will be ignored. Page Write Operation A START condition and a slave address with a R/W bit placed on the bus indicates to the addressed device that a Register Address will follow and is to be written to the address pointer. The data to be written to the memory is next and the internal address pointer will be incremented to the next address location on the reception of an acknowledge clock. After reaching the memory location 0X8Ah in the 20*4 display mode or 0X8Fh in the 16*8 display mode, the pointer will be reset to 0X80h. SLAVE ADDRESS REGISTER ADDRESS(An) DATA(n+1) DATA(n) DATA(n+x) P S1 1 1 0 0 1 1 0 ACK WRITE ACK ACK ACK ACK ACK N Data Bytes Received Rev. 1.10 20 July 01, 2011 HT16K23 Read Operation ●● In this mode, the master reads the HT16K23 data after setting the slave address. Following a R/W bit (=“0”) and an acknowledge bit, the register address (An) is written to the address pointer. Next a START condition and a slave address are repeated followed by a R/W bit (=“1”). The data which was addressed is then transmitted. The address pointer is only incremented on reception of an acknowledge clock. The HT16K23 will place the data at address An+1 on the bus. The master reads and acknowledges the new byte and the address pointer is incremented to “An+2”. If the register address (An) is 0X00H ~ 0X0FH, after reaching the memory location 0X0FH, the pointer will reset to 0X00H. If the register address (An) is 0X20H ~ 0X22H, after reaching the memory location 0X22H, the pointer will reset to 0X20H. ●● This cycle of reading consecutive addresses will continue until the master sends a STOP condition. REGISTER ADDRESS(An) SLAVE ADDRESS P S1 1 1 0 0 1 1 0 WRITE ACK ACK SLAVE ADDRESS DATA(n) DATA(n+1) DATA(n+x) P S1 1 1 0 0 1 1 1 READ Rev. 1.10 ACK ACK 21 ACK ACK NACK July 01, 2011 HT16K23 Command Summary Name Display data Address pointer Command / Address D7 D6 D5 D4 D3 0 0 0 0 A3 A2 A1 A0 [A3:A0] (R/W) It is strongly recommended that the key data registers with addresses from 0x20H to 0x22H should be read {K0~K1} continuously and in one operation. 20H (R) Therefore the key data RAM addresses should be started form 0x20H only. 0 1 0 0 0 K1 K0 INT flag Address pointer 0 0 1 1 0 0 0 0 Mode set command 1 0 0 0 1 0 0 0 0 0 D (R) 1 1 1 1 1 Four bits of immediate data, bits A0 to A4, are transferred to the data pointer 00H to define display RAM addresses. INT flag address for reading INT flag 30H status. S Standby mode selecting ●●{0}: standby mode ●●{1}: normal mode D LCD display on/off ●●{0}: LCD display off ●●{1}: LCD display on M LCD display mode selecting ●●{0}: 20*4 display mode ●●{1}:16*8 display mode S 80H Segment or INT pin selecting ●●{0}: Segment output SEG19/COM4/K19/INT is segment output in 20*4 display mode. SEG15/K15/INT is segment output INT/ ACT M INT/ROW in 16*8 display mode. A0H ROW ●●{1}: INT output SEG19/COM4/K19/INT is INT output in 20*4 display mode. SEG15/K15/INT is INT output in 16*8 display mode. ACT Key scan period setting Def. D0 0 1 Description D1 Key data Address pointer System set command Option D2 P2 P1 P0 [P2:P0] INT output level selection, ●●{0}: INT output is active-low. ●●{1}: INT output is active-high. To adjust key scan period F8H Note: If the programmed command data is not defined, the function will not be affected. Rev. 1.10 22 July 01, 2011 HT16K23 HT16K23 Operation Flow Chart The access procedure is illustrated using the following flowcharts. ●● Initialisation Power On Mode set System set Display ON Power On ●● Display Data Rewrite – Address Setting Start Display data RAM write Address setting Display data Next processing Rev. 1.10 23 July 01, 2011 HT16K23 ●● Key Data Read Start yes no Port Configuration Register set INT / ROW bit=1? no “act” bit is set to “0”=? yes Int pin bit =0 ? yes no Int pin bit =1 ? yes no Int flag bit =1 ? yes Read Key data Read Key data Read Key data INT pin is set to high level INT pin is set to low level Clear int flag Next processing Next processing Next processing Rev. 1.10 24 no July 01, 2011 HT16K23 Application Circuit ●● 20*4 display mode without INT VDD VDD 0.1uF VDD R 4.7KΩ R 4.7KΩ MCU R1x20 SEG0/K0 SEG1/K1 SEG2/K2 VDD SEG3/K3 SEG4/K4 SEG5/K5 SEG6/K6 SEG7/K7 SEG8/K8 SEG9/K9 SEG10/K10 SEG11/K11 SEG12/K12 SEG13/K13 SEG14/K14 SEG15/K15/INT SCL SEG16/COM7/K16 SEG17/COM6/K17 SEG18/COM5/K18 SEG19/COM4/K19/INT SDA HT16K23 LCD panel = COM0 COM1 COM2 COM3 VSS VSS VSS ●● 19*4 display mode with INT VDD VDD 0.1uF VDD R 4.7KΩ MCU R 4.7KΩ R1x19 SEG0/K0 SEG1/K1 SEG2/K2 VDD SEG3/K3 SEG4/K4 SEG5/K5 SEG6/K6 SEG7/K7 SEG8/K8 SEG9/K9 SEG10/K10 SEG11/K11 SEG12/K12 SEG13/K13 SEG14/K14 SEG15/K15/INT SCL SEG16/COM7/K16 SEG17/COM6/K17 SEG18/COM5/K18 SDA HT16K23 LCD panel SEG19/COM4/K19/INT COM0 COM1 COM2 COM3 VSS = VSS VSS Note: R1=180KΩ ~ 220KΩ, adjust R1 to fit the LCD visual quality. Rev. 1.10 25 July 01, 2011 HT16K23 ●● 16*8 display mode without INT VDD VDD VDD 0.1uF VDD R 4.7KΩ R 4.7KΩ SCL MCU R1x16 SEG0/K0 SEG1/K1 SEG2/K2 SEG3/K3 SEG4/K4 SEG5/K5 SEG6/K6 SEG7/K7 SEG8/K8 SEG9/K9 SEG10/K10 SEG11/K11 SEG12/K12 SEG13/K13 SEG14/K14 SEG15/K15/INT SDA HT16K23 LCD panel VSS = COM0 COM1 COM2 COM3 SEG19/COM4/K19/INT SEG18/COM5/K18 SEG17/COM6/K17 SEG16/COM7/K16 VSS VSS ●● 15*8 display mode with INT VDD VDD VDD 0.1uF VDD R 4.7KΩ R 4.7KΩ R1x15 SEG0/K0 SEG1/K1 SEG2/K2 SEG3/K3 SEG4/K4 SEG5/K5 SEG6/K6 SEG7/K7 SEG8/K8 SEG9/K9 SEG10/K10 SEG11/K11 SEG12/K12 SEG13/K13 SEG14/K14 SCL MCU SDA HT16K23 LCD panel SEG15/K15/INT VSS = VSS COM0 COM1 COM2 COM3 SEG19/COM4/K19/INT SEG18/COM5/K18 SEG17/COM6/K17 SEG16/COM7/K16 VSS Note: R1=180KΩ ~ 220KΩ, adjust R1 to fit the LCD visual quality. Rev. 1.10 26 July 01, 2011 HT16K23 Package Information 28-pin SOP (300mil) Outline Dimensions MS-013 Symbol Nom. Max. A 0.393 ― 0.419 B 0.256 ― 0.300 C 0.012 ― 0.020 C’ 0.697 ― 0.713 D ― ― 0.104 E ― 0.050 ― F 0.004 ― 0.012 G 0.016 ― 0.050 H 0.008 ― 0.013 α 0° ― 8° Symbol Rev. 1.10 Dimensions in inch Min. Dimensions in mm Min. Nom. Max. A 9.98 ― 10.64 B 6.50 ― 7.62 C 0.30 ― 0.51 C’ 17.70 ― 18.11 D ― ― 2.64 E ― 1.27 ― F 0.10 ― 0.30 G 0.41 ― 1.27 H 0.20 ― 0.33 α 0° ― 8° 27 July 01, 2011 Package Information HT16K23 Product Tape and Reel Specifications Reel Dimensions Reel Dimensions SOP 28W (300mil) SOP 28W (300mil) Symbol Symbol A A B B C C D T1 D T2 T1 T2 Description Description Reel Outer Diameter Reel Outer Diameter Reel Inner Reel Diameter Inner Diameter Spindle Hole Diameter Spindle Hole Diameter Key Slit Width Key Slit Width Space Between Flange Reel Thickness Space Between Flange Dimensions in mm Dimensions in mm 330.01.0 330.0±1.0 100.01.5 100.0±1.5 +0.5/-0.2 13.0 13.0 +0.5/-0.2 2.0±0.5 +0.3/-0.2 24.82.00.5 30.2±0.2 24.8 +0.3/-0.2 Reel Thickness 30.20.2 2 Rev. 1.10 28 April 1, 2010 July 01, 2011 HT16K23 Package Information Carrier Tape Dimensions Carrier Tape Dimensions SOP28W 28W (300mil) (300mil) SOP Symbol Symbol WW P EP FE D D1F Description Description Carrier Tape Width Carrier Tape Width Cavity Pitch Cavity Pitch Perforation Position Cavity to Perforation Perforation Position(Width Direction) Perforation Diameter Cavity to Perforation Cavity Hole Diameter (Width Direction) P0D P1 D1 A0 B0P0 K0 P1 t CA0 Perforation Pitch Perforation Diameter Cavity to Perforation (Length Direction) Cavity Hole Diameter Cavity Length Cavity Width Pitch Perforation Cavity Depth Cavity to Perforation (Length Direction) Carrier Tape Thickness Cavity Length Cover Tape Width Dimensionsininmm mm Dimensions 24.0±0.3 24.00.3 12.0±0.1 12.00.1 1.75±0.10 11.5±0.1 1.750.10 1.5+0.1/-0.0 +0.25/-0.00 11.50.1 1.50 +0.1/-0.0 4.0±0.1 1.5 2.0±0.1 +0.25/-0.00 1.50 10.85±0.10 18.34±0.10 4.00.1 2.97±0.10 2.00.1 0.35±0.01 21.3±0.1 10.850.10 B0 Cavity Width 18.340.10 K0 Cavity Depth 2.970.10 t Carrier Tape Thickness 0.350.01 C Cover Tape Width 21.30.1 Rev. 1.10 293 July 01,1,2011 April 2010 HT16K23 Holtek Semiconductor Inc. (Headquarters) No.3, Creation Rd. II, Science Park, Hsinchu, Taiwan Tel: 886-3-563-1999 Fax: 886-3-563-1189 http://www.holtek.com.tw Holtek Semiconductor Inc. (Taipei Sales Office) 4F-2, No. 3-2, YuanQu St., Nankang Software Park, Taipei 115, Taiwan Tel: 886-2-2655-7070 Fax: 886-2-2655-7373 Fax: 886-2-2655-7383 (International sales hotline) Holtek Semiconductor Inc. (Shenzhen Sales Office) 5F, Unit A, Productivity Building, No.5 Gaoxin M 2nd Road, Nanshan District, Shenzhen, China 518057 Tel: 86-755-8616-9908, 86-755-8616-9308 Fax: 86-755-8616-9722 Holtek Semiconductor (USA), Inc. (North America Sales Office) 46729 Fremont Blvd., Fremont, CA 94538, USA Tel: 1-510-252-9880 Fax: 1-510-252-9885 http://www.holtek.com Copyright© 2011 by HOLTEK SEMICONDUCTOR INC. The information appearing in this Data Sheet is believed to be accurate at the time of publication. However, Holtek assumes no responsibility arising from the use of the specifications described. The applications mentioned herein are used solely for the purpose of illustration and Holtek makes no warranty or representation that such applications will be suitable without further modification, nor recommends the use of its products for application that may present a risk to human life due to malfunction or otherwise. Holtek's products are not authorized for use as critical components in life support devices or systems. Holtek reserves the right to alter its products without prior notification. For the most up-to-date information, please visit our web site at http://www.holtek.com.tw. Rev. 1.10 30 July 01, 2011