Datasheet
Section 17 Keyboard Buffer Controller
Rev. 4.00 Sep 27, 2006 page 571 of 1130
REJ09B0327-0400
Start
Set KBIOE bit
KCLKI = 0?
Read KBCRH
KCLKI
and KDI bits both
1?
Set I/O inhibit (KCLKO = 0)
KBE = 0
(KBBR reception disabled)
KDO remains at 1
Wait
Set start bit (KDO = 0)
Set I/O inhibit (KCLKO = 1)
KCLKO remains at 0
KDO remains at 0
i = 0
Read KBCRH
Set transmit data
(KDO = D(i))
Read KBCRH
KCLKI = 1?
i = i + 1
i
>
9?
Read KBCRH
KCLKI = 1?
Yes
No
Notes: i = 0 to 7: Transmit data
i = 8: Parity bit
i = 9: Stop bit
No
Yes
Yes
Yes
Yes
No
No
No
1
2
[1] Set the KBE bit to 1 in KBCRH, and the
KBIOE bit to 1 in KBCRL.
[2] Read KBCRH, and if the KCLKI and
KDI bits are both 1, write 0 in the
KCLKO bit (set I/O inhibit).
[3] Write 0 in the KBE bit (disable KBBR
receive operation).
[4] Write 0 in the KDO bit (set start bit).
[5] Write 1 in the KCLKO bit (clear I/O
inhibit).
[6] Read KBCRH, and when KCLKI = 0,
set the transmit data in the KDO bit
(LSB-first). Next, set the parity bit and
stop bit in the KDO bit.
[7] After transmitting the stop bit, read
KBCRL and confirm that KDI = 0
(receive completed notification from the
keyboard).
[8] Read KBCRH. Confirm that the KCLKI
and KDI bits are both 1.
The transmit operation can be continued
by repeating steps [2] to [8].
[1]
[2]
[3]
[4]
[5]
[6]
Figure 17.5 Sample Transmit Processing Flowchart