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


[新連載開始]W65C02マイコンボードの製作

〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜
私としてはW65C02をさわるのは全く初めてです。何から何まで未経験です。さてどうなりますでしょうか。
〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜

[第30回]



●W65C02のクロック&メモリR/Wタイミング

今までW65C02のCPUクロックについては書いていませんでした。
W65C02のタイミングチャートにはちょいとなんだかなあというところがあってクロックについては動作テストをしてよく確認をしてから書こうと思っていたからでした。
当記事をお読みになった読者の方からW65C02のメモリ回路には問題があるのでは?というメールもいただきました。
確かに。
私もZ80や8080と違ってW65C02のタイミングチャートについては問題ありだと思います。
こちらがW65C02のタイミングチャートです。

[出典]The WesternDesign Center,Inc.W65C02S 8−bit Microprocesser

こちらがパラメータです。

[出典]The WesternDesign Center,Inc.W65C02S 8−bit Microprocesser

W65C02のメモリREAD/WRITEのタイミングはZ80などに比べて厳しいというのがまず第一に感じる点です。
Z80でもOPコードフェッチのタイミングはデータREAD/WRITEに比べると厳しいですがそれでも1.5クロック程度はあります。
データのREAD/WRITEは2クロック程あります。
それに比べるとW65C02の場合READもWRITEも1クロックです。
OPコードフェッチについてどうなのかそれについての情報は得ていませんがデータREADと同じだとしても厳しいです。
その分プログラムの実行時間もCPUクロックを基準に考えるとZ80の倍はいきそうです。
W65C02の命令ごとのクロック数についての情報もまだ得ていませんが2〜7クロックのようです。
Z80の場合最短の命令でも4クロックですから確かに倍速と言えそうです。
それはそれで嬉しいことですがメモリに対するタイミングの厳しさを考えると手放しで喜ぶわけにはいきません。
上のW65C02の表によりますとVddが5Vの場合動作クロックは14MHzが上限となります。
そのときのサイクルタイムは70nsです。
しかもクロックのHパルス幅、Lパルス幅は最低35nsというのですから14MHzのクロックの場合デューティは50%であることが求められます。
これは厳しいです。
こちらは日立のHM628128のタイミングチャートです。
W65C02に対してはREADよりもWRITEのほうがより問題になるかと思いますのでWRITEのタイミングチャートについて見てみます。

[出典]Hitachi,Ltd.HM628128A Datasheet

こちらがパラメータです。

[出典]Hitachi,Ltd.HM628128A Datasheet

たまたま手元にHM628128ALP−7がありますけれど。
W65C02の14MHzに対してはサイクルタイムは余裕0です。
しかもW65C02のアドレス出力のディレイ(tADS)はMax30nsですからワーストでは70−30=40nsとなって628128のアドレス保持時間(Taw)の60nsに足りません。
70nsのRAMではW65C02を14MHzで動かすのは厳しいでしょう(実際14MHzでは無理でした)。
それならもう少し低いクロックならよいかと言いますと。
そこがW65C02の場合の問題点なのです。
W65C02タイミングチャートを見ますと。
R/Wが一番上のA0−A15などと同じ波形のところにあります。
R/Wについての立ち上がりのタイミングについては書いてありません。
それがtAHと同じだとするとMin10nsです。
一方でWrite Dataはと言いますと。
こちらもtDHW=Min10nsです。
おいおいおい。
もしかするとW_よりも先にデータ出力がOFFになったりして。
そのあたりを考慮すると14MHzは無理だとして一体何MHzまでならいけるのか。
そこがPendingでありました。
ということで。
クロックはとりあえずは4MHzで試してみることとしました。
しかし他の周波数でもテストができるようにクリスタルを実装するところには丸ピンのICソケットをカットしたものを利用して簡易ソケットとしました。

クリスタルの足が意外と細くてちょいと不安定だったのでここはバネ型のICソケットにしたほうがよかったかと思っています。
結局。
4MHzでは特に問題はなく想定した通りの動作をしてくれました。
そこで気を良くしてもっと上の周波数で試してみたところ。
問題が発生しました。
やっぱり。
それ見たことか。

次回に続きます。

W65C02マイコンボードの製作[第30回]
2026.8.1 upload

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