The EM83053A/BH microcontroller is dedicated to a keyboard encoder ,specially designed for IBM PC AT and
all compatible machines. The EM83053A/BH controll all scan codes, three LEDs status, scan timing and
communications between the keyboard and PC. It is easy to implement a high performance, low cost keyboard
with the minimal external components.
FEATURES
• Low cost - eliminate need external components.
• Phantom key detects.
• RC oscillator ( 1.8432MHz ).
• Support scan code set 1 ,2 and 3.
• Support PC AT and PS/2 keyboard .
• Low power CMOS device technology.
• Internal pull-up resistor.
• Tri-state outputs for easy board application.
• Built-in 4K ROM.
• Support WINDOWS
• 104/107 keys with multi-media or other special application keyboard encoder.
• WINDOWS is registered trademarks of Microsoft corperation.
TM
EM83053A/BH
KEYBOARD ENCODER
95, 98, 2000 keys.
APPLICATION
• IBM PC AT or compatible machine keyboard.
• IBM PS/2 model 30,50,60,80 or compatible machine keyboard.
• Japanese keyboard.
• Korean keyboard.
• Brazilian keyboard.
• European keyboard.
PIN ASSIGNMENTS
6
P91
7
P92
8
P93
9
XT
10
P95
11
P50
12
P51
13
P52
14
P53
15
P54
R_OSCI
VDD
VDD
403938
CAPS
37
P90
CLK
543
DATA
OSCO
2
GND
1
EM83053AH
1617181920212223242526
R_OSCI
VDD
393837
CAPS
NUM
36
SCROLL
35
P67
34
33
P66
32
P65
31
P64
30
P63
29
P62
28
P61
27
P60
P90
CLK
DATA
OSCO
GND
543
2
1
NUM
36
SCROLL
35
P67
34
33
P66
32
P65
31
P64
30
P63
29
P62
28
P61
27
P60
P91
P92
P93
P94
P95
P50
P51
P52
P53
P54
6
7
8
9
10
EM83053BH
11
12
13
14
15
1617181920212223242526
P55
P56
P57
P80
P81
P82
P83
P84
P85
P86
P87
* This specification are subject to be changed without notice.
OSCOOCLOCK output
R_OSCIIConnect 51K OHM resistor for 1.8432 MHz oscillation
I+5V Power Supply
EM83053A/BH
* This specification are subject to be changed without notice.
6.9.2000
2
EM83053A/BH
KEYBOARD ENCODER
FUNCTION DESCRIPTIONS
Keyboard buffer
The keyboard will buffer 16 bytes in a first-in-first-out order when the system is able to receive scan codes
from the keyboard. The response codes and repeated codes will not be buffered. If keystrokes generate a
multiple-byte sequence, the entire sequence must fit into the buffer or the keystroke is discarded and a bufferoverrun condition occurs.
Power-on Reset and self test
The duration of the keyboard Power-on-Reset(POR) should be within 150 milliseconds and 2 seconds after
the power is applied to the keyboard.
After executing POR , the keyboard executes a self test. The LEDs are turned on at the beginning and off at
the end of the self test. The self test takes a minimum 300 milliseconds and a maximum 500 milliseconds.
If the self test is successful, a completion code AA hex is sent to the system and the keyboard starts scanning.
If the self test fails, and error code is sent, the keyboard is disabled and waits for a command from the system.
The completion codes are sent between 450 milliseconds and 2.5 seconds after POR, and between 300 and
500 milliseconds after a RESET command is acknowledged.
Keyboard data output
When the keyboard is ready to send data to the system, it first checks clock and data lines. If either one is in
the low state, data is stored in the keyboard buffer. If both are in the high state, keyboard starts clocking data
out. Data will be valid before the trailing edge and after the leading edge of the clock pulse. During the
transmission the keyboard checks the clock line at least every 60 microseconds . If the system lowers the clock
lines before the leading edge of the 10th clock, the keyboard should stop sending, then buffer the data and
return clock and data lines to high state.
Keyboard data input
When the system is ready to send data to the keyboard, it first checks clock line to see if keyboard is sending
data. If keyboard is not sending data or it is sending data but has not reached the 10th clock, the system can
inhibit the interface by forcing the clock line low for more than 60 microseconds and prepares to send data.
The keyboard checks clock line status at least every 5 milliseconds. If a system Request to Send(RTS) is
detected, the keyboard clocks 11 bits in. After the 10th bit, the keyboard checks for a high state in data line
then pulls it low and clocks one more bit to signal the system that data has been received. If data is low after
the 10th bit, it indicates a frame error. The keyboard should continue to count until data line goes high, then
pulls it low and issues a RESEND to the system.
Command from the system
The system can send commands to the keyboard at any time. The keyboard needs to respond within 20
milliseconds, unless the system prevents keyboard output, when doing self test or executing a RESET.
The following are the keyboard input commands and the actions that keyboard needs to take.
Set /Reset Status indicators ( Hex ED )
- Responds ACK.
- Receives option byte.
* This specification are subject to be changed without notice.
6.9.2000
3
- Responds ACK.
- Updates status indicators.
- Returns to previous scanning state.
Echo ( Hex EEH )
- Responds with EE hex.
- Returns to previous scanning state.
Invalid commands ( Hex EF and F1 )
- Returns a RESEND command.
- Returns to previous scanning state.
Select Alternate Scan Codes ( Hex F0 )
- Responds ACK.
- Clears output buffer.
- Sets the default typematic rate/delay.
- Clears last typematic key.
- Receives option byte.
- Responds ACK.
- Option byte =
01 : selects scan code set 1
02 : selects scan code set 2
03 : selects scan code set 3
- Returns to previous scanning rate.
EM83053A/BH
KEYBOARD ENCODER
Read ID (F2)
- Responds with ACK.
- Discontinues scanning.
- Sends two ID bytes. The second byte will be sent within 500 uS after first byte.
- Resumes scanning.
Set Typematic Rate/Delay ( Hex F3 )
- Responds ACK.
- Receives rate/delay value byte
- Responds ACK.
- Set rate/delay (* Note 1)
- Returns to previous scanning state.
* Note 1
1. Repeat period = ( 8+A ) x ( 2B) x 0.00417 seconds
A : binary value of bits 2, 1, and 0.
B : binary value of bits 4 and 3.
2. Delay = ( C +1 ) x 250 milliseconds
C : binary value of bits 6 and 5. Bit 7 is always 0.
* This specification are subject to be changed without notice.
6.9.2000
4
EM83053A/BH
KEYBOARD ENCODER
bit 4~ bit 0typematic rate ± 20%bit 4~ bit 0typematic rate ± 20%
- Sets the default key type ( scan code set 3 only ).
- Set the default typematic rate/delay.
- Clears last typematic key.
- Stops scanning,
Set Default (Hex F6 )
- Responds with ACK.
- Resets all conditions to power-on state.
- Clears output buffer.
- Sets the default key type ( scan code set 3 only ).
- Set the default typematic rate/delay.
- Clears last typematic key.
- Continues scanning,
Set All Keys ( Hex F7,F8,F9,FA )
* This specification are subject to be changed without notice.
6.9.2000
5
- Responds ACK.
- Clears output buffer.
- Sets all key type (affect only scan code set 3 operation).
F7 : Typematic
F8 : Make/Break
F9 : Make
FA : Typematic/Make/Break
- Returns to previous scanning rate.
Set Key Type ( Hex FB,FC,FD )
- Responds ACK.
- Clears output buffer.
- Receives key ID byte
- Responds ACK.
- Sets key ID type (affect only scan code set 3 operation).
FB : Typematic
FC : Make/Break
FD : Make
- Returns to previous scanning rate.
EM83053A/BH
KEYBOARD ENCODER
Resend ( Hex FE )
- Sends the previous output again. If the previous byte is RESEND, the last byte before RESEND shall be sent.
Reset ( Hex FF )
- Responds ACK.
- Checks clock and data lines - Reset in the high state for at least 500 microseconds or receives another command.
- Default to scan code set 2.
Command to the system
The following are the keyboard output commands.
Acknowledge ( Hex FA )
The keyboard sends an acknowledge in response to any valid command from the system except for RESEND
and ECHO.
BAT Completion Code ( Hex AA )
This command is issued after successful completion of keyboard self test.
Echo ( Hex EE )
The keyboard sends this code in response to an ECHO command.
* This specification are subject to be changed without notice.
6.9.2000
6
EM83053A/BH
KEYBOARD ENCODER
Keyboards ID ( Hex 83AB )
The 2 byte ID is issued to respond to READ ID command. The low byte is sent first, followed by the high byte.
Keyboard buffer Overrun ( Hex 00 or FF )
If keyboard buffer overflows, the overrun code will replace the last byte in the buffer. If the keyboard is using
scan code set 1 , the code is hex FF. For sets 2 and 3, the code is hex 00.
Resend ( Hex FE )
When the keyboard receives an invalid input or any input with incorrect parity, the RESEND command is sent.
Keyboard Scan Code Table
The keyboard contains 3 scan code sets. The system defaults to scan code set 2, but can be switched to set 1 or
set 3 . The following tables show the key numbers and three scan code sets in hexadecimal values. All the keys
are typematics except for the pause key. When a key is pressed down, the make scan code is sent to the
system. When the key is released, its break code is sent. If two or more keys are held down, only the last key
pressed repeats at the typematic rate. Typematic operation stops when the last pressed key is released, even if
other keys are being released or some other keys are still held down.
The following table shows three scan code sets used in the keyboard.