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


[新連載開始]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

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