[新連載開始]W65C02マイコンボードの製作
〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜
私としてはW65C02をさわるのは全く初めてです。何から何まで未経験です。さてどうなりますでしょうか。
〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜
[第75回]
●82C55が動きました!(6)
前回は82C55−2のデータシートを確認した結果W65C02に82C55を接続する場合にはCPUクロックを4MHzまで落としてもWR信号の最低パルス幅に満たないことがわかりました。
それでも作成したテストプログラムは誤動作することなく一応は安定して動作しました。
メーカーとしてはおそらく規格値よりはある程度余裕を持ったものとして製造すると推測されそのために多少規格外の値であっても許容してくれるのだろうと勝手に都合よく解釈しています。
ということだと勝手に解釈しますとそれならば一体どの位のクロックまで動作してくれるのだろうかとこれまた勝手に期待が膨らんでしまいます。
そういうことになりますとそこはやっぱり試してみないわけにはいきませんでしょう。
で。
倍の8MHzで試してみましたら。
おお。
動くじゃありませんか。
それならばということで3倍の12MHzにしてみましたら。
なんと。
それでも連続して安定して動作したではありませんか。
さすがに14MHzでは駄目でした。
ま。
それは欲というものです。
下は前回と同じプログラム(65C02TEST49.BIN)をCPUクロック12MHzで実行したときの82C55のポート出力波形です。

1回のパルス出力幅は約26msほどです。
前回と同じようにCPUクロック12MHzでのビット出力パルス幅をざっと計算してみました。
0000 ;w65c02test49 26/9/11 26/9/16 0000 ; 0000 ;DMA test 0000 ; 8000 org $8000 8000 ; 8000 A980 lda #$80 8002 8D8302 sta $0283 8005 loop: 8005 8D8002 sta $0280;4 8008 8D8102 sta $0281;4 800B 8D8202 sta $0282;4 800E A200 ldx #$00;2 8010 loop1: 8010 A000 ldy #$00;2 8012 loop2: 8012 88 dey;2 8013 D0FD bne loop2;3 5*256=1280 8015 CA dex;2 8016 D0F8 bne loop1;3 1285*256=328960 /12=27413(us) 8018 6A ror;2 8019 80EA bra loop;2 801B ;end |
オシロの波形と概ね同じ計算結果が得られました。
下はWR信号の波形です。

WRパルスはPHI2OとのNANDを通して出力されます。
CPUクロックが12MHzのときPHI2OはCPUクロックの1周期の1/2ですから1000/24≒41nsです。
この波形は下のプログラムを実行したときのものです。
WRパルスが出力される間隔は500nsです。
下のプログラムリストの中に計算で求めた値を書き込みました。
計算でもちょうど500nsになりました。
0000 ;w65c02test51 26/9/15 0000 ; 0000 ;I/O test 0000 ; 8000 org $8000 8000 ; 8000 A980 lda #$80 8002 8D8302 sta $0283 8005 loop: 8005 A955 lda #$55;2 8007 8D8002 sta $0280;4 6/12=0.5us 800A A9AA lda #$aa;2 800C 8D8102 sta $0281;4 800F A9A5 lda #$a5;2 8011 8D8202 sta $0282;4 8014 80EF bra loop;3 8016 ;end |
絶対に動くという保証はありませんがアマチュア規格としてW65C02に82C55−2を接続してCPUクロック12MHzでの安定動作が確認できました。
ところで。
下は14MHzでのWRパルスの画像です。

WRパルスの間隔は計算では6/14≒0.43μsになるはずですがなんと12MHzよりも長い600nsほどになっています。
高速アクセスRAMを搭載して実験したのですがそれでも14MHzではどうやらRAMのアクセスでミスが発生しているように思われます。
82C55のアクセスは別にしても通常のプログラム動作でもCPUクロックを14MHzにするのは少し厳しいようです。
安全のためには12MHzまでにしておいたほうがよいようです。
下はWRパルス幅の画像です。

CPUクロックが14MHzの場合WRパルス幅は1/28≒35nsです。
こちらは大体そのくらいの値になっているようです。
W65C02マイコンボードの製作[第75回]
2026.9.17 upload
前へ
次へ
ホームページトップへ戻る