2018.7.27
前へ
次へ
ホームページトップへ戻る


KL5C80A12マイコンボードの製作

〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜
KL5C80A12はZ80互換の高速高性能8ビットマイクロコントローラです。
残念なことに数年前に生産中止になってしまいました。
しかし当社ではKL5C80A12を使った組込みマイコンボードはまだ健在です。
そのKL5C80A12を使ったND80Z3.5上位互換マイコンボードの製作記事です。
〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜

[第25回]


●KL5C80A12のクロック

KL5C80A12の最高動作周波数は10MHzです。
[第23回]ではKL5C80A12のクロックが20MHzだと書いてしまいましたが10MHzの誤りでした。
現在は訂正済みです。
KL5C80A12は水晶発振回路を内蔵しているので、外部に直接20MHz水晶を接続することができます。
KL5C80A12はその20MHzを1/2に分周して得た10MHzをCPUクロックとして使います。
Z80にも10MHzバージョンがありますから、CPUクロックの10MHzはそれほど大したものという印象は受けません。
しかしKL5C80A12の10MHzはとびっきりの大したものです。

下はKL5C80A12のメモリアクセスタイミング図です。

[出典]川崎製鉄 KL5C80A12ハードウェアマニュアル

ノンウェイトの場合のメモリアクセスは上の図にありますように、0.5クロックほどですから、クロック10MHzのとき、およそ50nsです。
通常のメモリ(特にROM)には速すぎますから、メモリアクセスにはソフトウェアで1ウェイトを挿入して使います。
1ウェイトを挿入してもメモリアクセスは150nsほどです。
実は、1ウェイトを挿入してもKL5C80A12はメチャメチャといっていいほど速いのです。
大抵の命令をZ80の半分以下のクロックで実行してしまいます。

「16ビットマイコンボードの製作」[第51回]でAM188版8086BASICにDATE$、TIME$を組み込むための準備として5μsのパルスのテストプログラムを作ってオシロでその波形を確認しました。
KL5C80A12版のZB3V3BASICでもDS1307を使ったDATE$、TIME$を組み込むつもりです。
そのためのテストとして、AM188のときと同じプログラムをKL5C80A12用に直して、実行して確認してみることにしました。
下はそのKL5C80A12用の5μsテストプログラムです。

2018/7/27  10:  kl5cckts.txt
END=8019
              ;;; clock test for kl5c80a12
              ;
                ORG $8000
              ;
8000 3E80       LD A,80
8002 D383       OUT (83),A
8004 AF       LOOP:XOR A;2
8005 D380       OUT (80),A;7  5.2+0.6+0.2+0.7=6.7us
8007 CD1380     CALL T5US;5.2us
800A 3D         DEC A;2
800B D380       OUT (80),A;7  5.2+0.2+0.7=6.1us
800D CD1380     CALL T5US;5.2us
8010 C30480     JP LOOP;6
              ;
              ;5us timer clock 10MHz
8013 0E04     T5US:LD C,04;4
8015 0D       T5US2:DEC C;2
8016 C21580     JP NZ,T5US2;6,,,8*4=32
8019 C9         RET;6  CALL=10,,, 0.4+3.2+1.6=5.2us
              ;
              ;END
LOOP         =8004  T5US         =8013  T5US2        =8015  

命令の後ろにつけた数字はその命令の実行クロック数です。
たとえばDEC AはZ80では4クロックですがKL5C80A12は2クロックで実行してしまいます。
記載した数値はメモリアクセス時に1ウェイトを挿入したときのクロック数です。
JP命令はZ80では10クロックですがKL5C80A12では6クロックですし、CALL命令はZ80では17クロックですがKL5C80A12では10クロックです

現在製作中のKL5C80A12版ND80KL/86システムで上のプログラムを実行しました。


オシロで測定した出力波形の写真です。

AM188のときは命令の実行クロックから計算で求めた出力波形の数値がオシロで観測した数値と合わなかったために、大いに悩んだのですが、KL5C80A12は計算で求めた数値とオシロで観測した数値がぴったり一致しました。
オシロの波形ではHの期間が約6.8μs、Lの期間が6μsに見えます。
テストプログラムに書き込んだ数値ではHが6.7μs、Lが6.1μsです。

以上ちょいと見ていただいただけでも分かりますように、KL5C80A12はなかなかの優れものです。
川崎製鉄も気張ってこんないいCPUを世に送り出したというのに、時代の波には勝てなかったということでしょうか。
いただけないのは生産中止になってから後の始末です。
ホームページのサイトもいつのまにか閉じてしまって、データシートなどの貴重な技術資料も一切ダウンロード出来なくなってしまいました。
それについて言いたいこともありますけれど、言ってもしょうがありませんから、何も言いません。

KL5C80A12マイコンボードの製作[第25回]
2018.7.27upload

前へ
次へ
ホームページトップへ戻る