High Parformance 8 bit Microcontroller - KL5C8012



In 1994, a high parformance 8 bit microcontroller was shipped from Kawasaki Steel Corp.(LSI division), and it became a subject of conversation. Well first released controller is the KL5C8012, it is cored with Z80 compatible processor, and integrated with 40 bits of PIO, a USART, three TIMER/COUNTER, a MMU and 512 byute of SRAM, packaged with 100pin QFP.

KL5C8012 Features
Core ProcessorKC82 (KC80+MMU)
Z80 instruction compatible
Parallel Ports40 bits
Some of them have alternative function
Serial PortOne channel (8251 compatible)
Timer/Counter5 channels
Intrerupt Controller16 levels (8 internal, 8 external)
Extrenal BUS InterfaceAddress: 19 bits
Data: 8 bits
Internal RAM512 bytes
othersA clock generator, Debugging Interfase
Electrical CharacteristicsOperating frequency: 0-10MHz
Power consumption: 125mW (@5.0V,10MHz)
Package100pin QFP

In addition to KL5C8012, some types are also available, integrated with DMAC, DRAM controller, HDLC interface or separated core processor.

Well, "Low power" and "High Speed" is one of the features of the KL5C80xx series. Surely these features are convincing.

High Speed: The KC80 core processor runs four times faster than Z80 at same clock frequency, so that the KC80 running at 10 MHz has same parformance as Z80-40MHz!!

Low Power: When KL5C8012 operating at maximum frequency, its power consumption is only 125mW (5V,25mA).

Number of execution clock cycles par instruction is depend to instruction byte length, most of clocks are spent to op-code feach and memory op-rands access. And at the final cycle of every instructions, next instruction code is fetched, so that one instruction is executed in one clock cycle minimum. Thus KC80 realizing to run four times faster than Z80 with reducing CPI.

But it is also weak point that to reduce CPI, when one wait state is added, parformance will slow down in half :-(

Techniques for tune up

The KL5C8012 has two different modes to connect external memory, connecting memory device with extrenal address decoder (maximum mode) and connecting memory device directly (normal mode). At the normal mode, timing designing seems easy. But it is very difficult on the timing designing at higher operating frequency. Because the KL5C8012 running at minimum of one clock par instruction, so that the memory access cycle becomes executing in one clock cycle.

Actualy, running at 10 MHz with no wait state, the access time for the ROM is requires TACC < 44ns and TOE < 22ns include decoder delay. In normal mode, it can directly connects the memory IC, so that these timing value apply to the ROM. But fast ROM is difficult to get.

When insert one wait with the programable wait control unit, the timing values become TACC < 144ns and TOE < 122ns. But the KL5C8012 is very low CPI, One wait state makes slow down the operating speed in half.

Secondly, consider to slow down the clock frequency with no wait state. When operating clock frequency slow downs to 6.144MHz, reauired access timings become TACC < 75ns and TOE < 53ns. So normal ROM can be used.

The KL5C8012 has 512 bytes of intrenal RAM without wait state. So locate stack or any variables into the intrenal RAM and running at maximum clock frequency with one wait state may better way. This means to concern memory usage and programing technique, so that necessaly to make sure each case, that depends.

NOTE: KL5C80A16 and KL5C80A20 do not have internal SRAM.


Nowadays 15-20ns class fast SRAM for cache memory is appearing on the market. When use it and copy from ROM to SRAM at the start up, it can runs with no wait state at the high clock frequency. It can also use like a Shadow ROM without any extanal components with remap SRAM into ROM area with a MMU.

Wait State Controller

For the integrated wait controller, it can not particularly configures finely. Phyisical memory area is only separated in half, and there is some limits on configureing for each area. For the memory access, it can configures to 0 wait or 1+n wait. For the I/O access, it can configures to 1 wait or 2+n wait. "n" is added with RDY input. And KL5C8012 dose not has a DRAM reflesh controller, so connecting any DRAM is difficult.

NOTE: KL5C80A16 and KL5C80A20 has a DRAM controller, they can directly connect DRAMs.

Handling for not used pins

KL5C8012 has internal pull-up resister for all I/O pins, so not used pins can be open state, and they will be fixed to "H" level.

NOTE: KL5C80A16 and KL5C80A20 do not have any internal pull-up.

Technical Data

For datails of the KL5C8012 and its families, please refer to the documents as follows.

  1. KL5C8012/KL5C80A12 Hardware Manual, Kawasaki Steel Corp.
  2. KL5C8012 Application Notes, Kawasaki Steel Corp.
  3. KL5C80A16 Hardware Manual, Kawasaki Steel Corp.
  4. KL5C80A20 Hardware Manual, Kawasaki Steel Corp.
  5. Transister Gijutsu Special No.59 "Learning the microcomputer with the latest Z80", CQ publishing

I built a board computer with the KL5C8012, too. And edited as an example of actual use. Please refer to here.