2006/07/29(土)TMS9918 VDP ビデオボード
TMS9918
既に1年以上経っているが心の隅につっかえている
TMS9918を使ってみたいという想いだが、これを扱うには2つの大きな課題がある。
1つ目は、TMS9918は16KのD-RAM 4116を8本も必要なのだが、このチップは3電源(-5V +5V +12V)も必要なのである。家にある1982年のメモリIC規格表にはピンコンパチで単一電源の4816という物が載っているが現在はとうにディスコンで入手は諦めていたが、
最近になってやっとHM4816AP-4というチップを8本入手できた(1本350円で8本で2800円もしました)
2つめは、8本ものDRAMをハンダ付けするのがイヤでたまらない。昔はサンハヤトからICB-015というD-RAM増設基板があったらしいのだが、これも既にディスコン。方々に探し回っていたが、こればっかりは見つからず、夏休みに全精力を投入してUEW配線を行うか、はたまた片面基板でバス配線だけでもしてしまおうかと悩んでいたが、サトー電気さんに在庫があるという知らせで、ギリギリ入手が出来た(現在は無いそうです)
さて、全ての問題がクリアしたので早速製作に取り掛かるとしよう。でも、直ぐに思い立った事があってそれは、実は昔からマイコンに携わってはいるがD-RAMを扱ったことは一度もないのである。
[Z80]DRAMテスター
このZ80ボードのI/Oポート経由でDRAMテスターを作ってみようと思い立ち、16PINのソケットをハンダ付け。そして8255のポートへとUEW線で接続して簡単なバラックを起こした。
最初に全ビットを0にして読み出しテストをするとOK。しかし、全ビットを1にして読み出しテストをすると最初のアドレスで既にNG。データシート片手に何度かRAS・CAS・WR信号のタイミングを変えてみるもやはり1が書き込めない。
そこで、各アドレスに0や1を書いては読み出しテストをすると全アドレスがOKとなる事が判った。これはREFRESHのタイミングが間に合わないのでは無いかという考察に(やっと)たどり着く。DRAMはREFRESHしなくても連続して読み出し・書き込みをすればREFRESHは不要なハズである。ではREFRESHに必要なサイクルとはどの位なのかと計算してみる。必要な時間は2msの間に128アドレスについて操作しなければならず、1アドレス当り15.6usである。え゛?この時間だと例えば2.5MHzのZ80ではIN/OUT命令だけでも4.4us掛かる訳でRAS・CAS・WRのタイミングで夫々OUT命令が必要でそれらをLOWにしてHIGHにするので最低でもOUT命令だけで6つは必要。これだけで26.4usとなる。当然間に合っていない訳です。
AVRとかではどうなんでしょうか。20MHzで1サイクルとすると1命令は50nsという計算で312命令が使える訳です。再びAVRを取り出すべきだろうか。