2020-01-13 23:03 — asano
カテゴリー:
CPU判別法(6502編)の最後に書いたW65C02が到着しました。
上が偽物の疑いのあるW65C02S8P-10、10MHz品です。
下はMouserで購入したW65C02S6TPG-14、14MHz品です。MouserはWDCの正規代理店なのでこちらは本物と見て間違いないでしょう。
ことの発端は6502の判別をテストしていた時です。
SY6502A, UM6502, UM6502A, RP65C02Gと取り替えて試していて特に問題は無かったのですが、W65C02S8P-10に変えたとたんモニタすら起動しなくなってしまいました。オープニングメッセージすら表示しないので判別ルーチンに引っかかっているわけではありません。
データシート再確認するとW65C02はピンが一部異なっていました。一つはVSSだった1ピンがなんと出力ピンになっています。出力される信号は不要ですがジャンパで切れるようにしなくてはなりません。もう一つは36ピンのBEで、"H"にしておかないとバスがHi-Zになってしまいます。
他にもクロックのタイミングとか相違点はありますが、とりあえずは致命的なこの2点を改修してみましたが状況は変わりません。
1ピンは出力をGNDに落としていたわけで、W65C02を壊した可能性もあります。念のためもう1つ買ってあった予備に交換してみましたがこれも駄目でした。
このあたりで入手していたW65C02S8P-10に問題があるのではと思い始め、別ルートで調達することにしたのでした。
W65C02S6TPG-14が到着すると早速交換してみたのですが、やはり動作しません。
ただ動作しないとはいっても何かしら実行しているようではあるのです。MN1613のステップ実行(その2)で用意したアドレスバスをモニタするLEDが接続したままで、それらしい表示をしています。
それでBRA
, JMP
命令でループを作って実行させてみたところ、どちらのW65C02でも(アドレスバスをLEDでモニタする限り)正常にループしているようです。
次にゼロページへのストア命令をループに追加したところ変なアドレスに飛んでしまいました。EMILY Boardからメモリを確認するとループのプログラムが壊されています。ここでクロックのタイミングが気になってきました。
従来の6502(Rockwell R65C02なども)は37ピンのφ0を元にφ1, φ2を作ります。メモリアクセスのタイミングは39ピンのφ2基準で規定されています。
一方、WDC W65C02では37ピンのPHI2(クロック入力)基準でメモリアクセスが規定されます。6502のφ1, φ2に相当するPHI1O, PHI2Oも一応出力はされますが...
そこでシステムクロックを37ピンと39ピンを切り替えられるようにしてみましたが、これも効果ありませんでした。
これ以上はちゃんとオシロとか用意しないと難しいかなぁ。
コメント
Vih が確保できていなかったりしません?
WDC の仕様だと最低 3.5V (5V x 0.7) 必要のようです。NCR/Ricoh の CMOS版だと Vih 要求値は 2.4V になっているし、Rockwell だと NMOS も`CMOS も 2.0V だ。
Re: Vih が確保できていなかったりしません?
本当だ!ありがとうございます。
メモリはIDT7134を使っていてCMOSだから大丈夫だと思っていましたが、データシート確認したらVoh 2.4Vしかありませんでした。
ただ対策はちょっと頭痛いです...
コメントを追加