kaoaruさんのページ
【プリンタポートにEEPROMをつける】
vcioscmをそのまま利用して、Xicor(ザイコー)の
X25097Pというシリアル接続のEEPROMをつないでみました。
回路図を参照してください。+5Vの電源と
D-Sub25ピンがあればいいだけです。
(もちろんX25097Pは必要です)
ソースはvcioscmの「sample.cpp」を単純に
差し替えるだけでいいはずです。
実際に製作したものは基板写真を
ご覧下さい。
実行結果は写真をご覧下さい。
プリンタポートにアクセスするルーチンは、Xicorのサイトに
ある資料をそのまま利用しました。
オリジナルのほうは、Turbo-Cによるコーディングですが、
ポートの入出力関数が異なるだけなので、単純に置き換え
関数を作成してみました。
おもむろに、今日作って試せたわけですのでお手軽ハードと
いうことになりますが、これだけでずいぶん勉強(?)に
なるのではないかとおもいます。
EEPROMだから何なの?という意見もあるかもしれませんが、
所謂「ドングル」などもこういう手のものですので、
応用はきくと思います。
問題は、この手のシリアル(SPIインターフェースというらしいです)
EEPROMは生産を終息しており入手が困難です。IICタイプが主流のよう
ですが、一般には入手がむずかしいかもしれません。
実際に製作したものを参照していただければわかると思いますが、
+5Vの電源に3端子レギュレータ(東芝TA78005P)を使用しましたが、
間違ってもプリンタポートの+5Vは使用しないように!
(PCがこわれるかも?)
ソース中に記述しておきましたが、フラッシュROMの書き込みと
いうものは制限があり、「ページライト」では一回で書き込める
バイト数がX25097Pの場合は「32バイト」です。
X25097Pは「8kビット」ですので「1kバイト」あるわけで、
すべての領域を一回で書き込むのは不可能です。しかも、書き込みを
おこなってから次の書き込みまでは500mSほど間をあけなければいけません。
その間、EEPROMにアクセスすると書き込みを失敗します。
コンパクトフラッシュやスマートメディアの書き込みが
遅いと思ったことはありませんか?じつは前述したことが理由なのです。
これはハードからくる制約なので対処のしようがないのです。
ソフト概要 | URL |
サンプルソース (vcioscmライブラリ中の sample.cppと置換えると 簡単にテストできます) |
こちらからどうぞ |
回路図 | こちらからどうぞ |
基板写真(表) | こちらからどうぞ |
基板写真(裏) | こちらからどうぞ |
実行画面 | こちらからどうぞ |