[新連載開始]W65C02マイコンボードの製作
〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜
私としてはW65C02をさわるのは全く初めてです。何から何まで未経験です。さてどうなりますでしょうか。
〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜
[第35回]
●14MHz完動!M68AF127B55ns
CPUクロック周波数が高くなればそれに合った高速のメモリが必要になってきます。
W65C02のCPUクロックはVdd+5Vのとき最高14MHzです。
メモリアクセスのサイクルタイムは70nsになります。
これは厳しい値です。
たまたま手元にHM628128ALP−7(70ns)があります。
前回はそれで試してみたのですがやはり無理でした。
まあ14MHzにこだわらなければよいのですけれど。
W65C02の命令サイクルは2〜7クロックとのこと(詳しくは未確認)。
それならZ80や8080に比べてサイクル数から見て十分高速ですから入手可能なRAMに合わせて適当なCPUクロックにすればよいわけです。
そうなのですが。
確か何年か前に秋月からサンプル的に購入したSRAM(フラットパッケージ)があったような。
買ってはみたもののサイズがちょっと…。
SOP32pinなのですがサイズの関係でそれをDIP32pinに変換するのが難しいと。
いずれそのうちと思いつつそのままになっていました。
それを思い出しました。
確認したところ秋月ではまだ販売されていました(ただし在庫限り)。
M68AF127B55(55ns)です。
HM628128と同じ128KX8ビットです。
これが使えるかも。
プリント基板への実装方法についてあらためて検討してみました。
考えてみたらムリにDIPサイズのICソケットに合わせようとするから難しくなるのです。
W65C02テスト基板の場合pin配列はDIP32PINに合わせる必要はありますが変換基板のサイズには余裕があります。
それなら楽にハンダ付けできるじゃありませんか。
ということで自前の変換基板を作ってしまいました。

DIP32pinのICソケットに細ピンヘッダーを使って差し込みました。
もう28pinのICソケットは使いませんからRAM部分がそこにはみ出ていても全然OKです。
これなら楽にハンダ付けできます。
RAMのところを拡大しました。

下は14MHzクリスタル部分の拡大写真です。

[第29回]で作った65C02TEST15.BINをロードして実行しました。

おお。
動きました!
完動です!
感動です!
WRITEパルスとCPUクロックの波形です。

上側(CH1)がWRITEパルスで下側(CH2)がCPUクロックです。
オシロスコープの端から端までが1000nsです。
クロックパルスが14ありますから14MHzです。
前のWRITEパルスから次のWRITEパルスまで11クロック(11サイクル)です。
これはアドレス$0200へのREAD/WRITE(I/O回路へのIN/OUT相当)を含むプログラムです。
HM628128を実装した状態ではこのプログラムは14MHzでは実行できませんでした。
水平時間軸をdiv=50nsにしました。

念のためにロジアナで波形を観測してみようと思ったのですが。
その前に。
こちらが実行した65C02TEST15.BINのアセンブルリストです。
0000 ;w65c02test15 26.7.31 0000 ; 0000 ;I/Otest 0000 ; 8000 org $8000 8000 ; 8000 0002 io=$0200 8000 ; 8000 loop: 8000 AD0002 lda io 8003 8D0002 sta io 8006 80F8 bra loop 8008 ; 8008 ;end |
こちらがロジアナで観測した波形です。

信号はデータD0とアドレスA0とCS、WR、CLKのみです。
左側に信号名を、上側にデータバスの値を、下側にアドレスバス下位8ビットの値を書き入れました。
さすがにクロック14MHzでのプログラム実行はアクセスタイム55nsのRAMでも厳しいようです。
データバス、アドレスバスにロジアナのプローブを普通のようにつけるとまともに動作してくれませんでした。
上の状態にまでプローブを減らしていってやっとまともに実行しているところを観測することができました。
こんな状態です。

左上に見えるのがカメレオンロジアナです。

毎日が戦場なのです。
そうでした。
忘れるところでした。
前回アドレス$0200へのREAD/WRITEの代わりにゼロページへのREAD/WRITEに変更したプログラム(65C02TEST17)をHM628128を実装して14MHzで実行したところ本来はWRITEからWRITEまで9クロックサイクルで実行するはずなのに14クロックサイクルになってしまいました。
今回は同じプログラムをM68AF127B55を実装して実行してみました。
今度はまともに実行できました。

WRITEからWRITEまで9クロックです。
RAMをどうしようかとちょいと悩んでいたのですがW65C02キットにはM68AF127Bを使うことで先に進めそうです。
RAMは変換基板に実装して動作テスト済みで提供するようにすればよいかと考えています。
W65C02マイコンボードの製作[第35回]
2026.8.6 upload
前へ
次へ
ホームページトップへ戻る