秋月の8bitのEPROMにしか対応しないライターで16bitのEPROMは書き込めるのか?

私の持っているEPROMライターは、秋月電子で買ったLeaper-3Cなんですが、
これは安いのはいいのですが、新しめのデバイスに対応していないという問題があります。


ところで、秋月電子ででEPROMのICも売っていて、MX27C2048というやつなのですが、これは16bitのEPROMなんです。
Leaper-3Cは、8bitのEPROMしか書き込めないので、MX27C2048は使えないわけです。


MX27C2048は1個100円で、10個買うと1個50円なので激安です。
まあ、窓なしのワンタイムのEPROMではあるのですが、この価格は魅力です。
EPROMってまっとうな値段で買うと凄く高いです。
新品だと1000円以上したりします。


そこで、なんとかして、8bitしか対応しないEPROMライターで、16bitのEPROMを書き込めないか考えました。


UV-EPROMは、イレース直後は全部のビットが1になっていて、書き込むことによって0になるらしいです。
つまり、空っぽのEPROMを読み出すと、全部が0xFFになっているわけです。


昔のZ80とかのマイコン時代では、EPROMにプログラムを書いていたわけですが、ちょっとプログラムを直すたびに
ROMイレイサーで紫外線を当てて10分ぐらい待って、またプログラムを書きこむというサイクルが必要になっていたわけです。
それだと時間がかかって面倒だというわけで、その時代のテクニックがあったそうです。
それは、Z80ではバイナリコードの0x00がNOPなので、プログラムの直したい部分を0x00で上書きすれば、
NOPで埋めたことになってEPROMを消す代わりになったらしいです。新しいプログラムは後ろの空いている部分に入れるわけですね。


ということは、EPROMはビットを1から0にすることは1ビット単位でできるが、逆はできないということです。
じゃあ、16bitのEPROMでも、上位8ビットと下位8ビットにわけて書き込めば、同じことじゃないかと思ったわけです。


MX27C2048のデータシートをみて、ピンの配置を確認しました。
MX27C2048は2MBitなので、その半分の容量の1MBitで8bitのEPROMである27C010のデータシートを探してきます。


EPROMライタにそのまま指すことはできないので、ブレッドボードにEPROMを指してジャンパで繫ぎ買えてEPROMライターに繫ぐことにしました。
その2つのデータシートを見比べて、上位8ビットのデータ入出力ピン(Q8-Q15)は、VCCにつないでプルアップしておき、それ以外は同じ意味の信号線につなぎます。


そして、ライターのソフトを立ち上げて、ブランクチェックしました。
PASSと出たので大丈夫そうです。

下位8ビットのデータから書き込みます。
書き込めました。
読み込んでみたら、ちゃんと書き込めているっぽいです。



そしたら、今度は上位8ビットと下位8ビットの配線を入れ替えて、上位8ビットを書き込みます。
これもうまくいきました。


というわけで、面倒ではありますが、Leaper-3Cでも16bitのEPROMに書き込むことができました。
ブレッドボードの配線のL成分で、プログラミング電圧が定格を超えたりする可能性があるかなと思って、
ちょっと心配ではありますが。
変換基板を作ってしまえば便利かもしれないですね。