
DRAM を再利用する
[Dec.24 2006] まえがき
ここではゴミを漁るような話をします。
[Dec.24 2006] SIMM モジュールを入手する
- 趣味で大容量の RAM を使いたいけど、大容量の SRAM は高すぎて手が出せない
- そこで注目したいのが PC 用の SIMM や DIMM モジュール
- これらのメモリは PC 用に量産されているため、容量の割に安く手に入る
- あとはこれを利用できるかどうか
- まずは使いたい DRAM が載っている SIMM モジュールを入手する
- Yahoo Auctions:
- SIMM モジュール にどんなチップが載っているかはまず書かれていない
- このへんは写真や容量、実装されているチップの個数などを見て判断・推測する
- 写真映りがよければ見えるかもしれない
- 若松通商:
- どのチップが載っているかが明記されているものがある

SIMM モジュールに載っている DRAM を再利用する
- ↑の SIMM モジュールは若松通商で購入したもの
- 3.3V 動作の 4M x 8bit DRAM が欲しかったのだけど、みつからなかったので 4M x 16bit 品を購入した
- メモリーチップ → DRAM/SRAM → 「17010144 MT4LC4M16R6-5F リサイクル品」というやつ
- ページのすぐ横に SDRAM と書かれているが、これは EDO-DRAM
- 店のページの写真と価格を見ると、すでに基板から取り外したものを売っているように見える
- しかし実際に購入したところ、↑のように、しっかり SIMM モジュールに実装されたまま届いた
- SIMM 基板に実装されたままとはいえ 4M x 16bit の DRAM が4個実装されて \367 は安い
[Dec.24 2006] DRAM を剥がしてピッチ変換基板に実装する

DRAM を SIMM モジュールから取り外してピッチ変換基板に実装する
- ピンのピッチは 0.8[mm]
- ピッチ変換基板に Sunhayato の SSP-82 を使用した
- SSP-82 は↑の写真のようにピッチ変換後 2.54[mm] 3 列になる
- ところが 2.54[mm] 3 列のピンヘッダやピンフレーム(ソケット)は入手が難しい
- そこで IC の NC 端子を利用し、変換基板上で 2.54[mm] 3 列 → 2.54[mm] 2 列に変換した
- MT4LC4M16R6 のデータシートは次のいずれかのページで検索するとみつかったと思う:

MT4LC4M16R6 の ピン配置(Micron Technology 社データシートより抜粋)
ピッチ変換基板上でのピン配置変換(クリックで別画面表示)
- 9 x 3 列 → 10 x 2 列に変換
- 破線の端と端を接続する
- パスコンを適宜実装する
[Dec.24 2006] 動作を確認する
- Verilog HDL でテストモジュールを作成した → DramCtrlRev3.tar.gz
- メモリの全領域に対して値の書き込みを行なった後、全領域を読み出して検査する
- メモリの全領域で書き込んだ値が帰ってきたら RS-232C に 115200bps で 'O' を送信し、
同じテストを繰り返す
- 1箇所でも値がおかしかったら停止して 'X' を送信し続ける
- その他不明なエラーが発生した場合は停止して '?' を送信し続ける
- main.v の冒頭のタイミング図は実際の動作とはやや異なるので参考程度に
- クロックの動作スピードに応じて RS232C.h の定数を変更する必要がある
- あとクロック周波数が高い場合はクロック分周のためのカウンタがオーバーフローしないように
ビット数を変更する必要がある
- とりあえずこれで DRAM を3つ試したが全てOKだった
- あとはテストモジュール自体にバグがないことを祈りつつ...

DRAM テスト中画面
[Apr.28 2007] Rev.4
- ↑のテストモジュールの動作が怪しかったのと、タイミングを少し変えたので
動作確認 → DramCtrlRev4.tgz
- main.v の冒頭のタイミング図と実際の動作を同じにした(多分)
- コメントに CLK=21.47727[MHz] と書かれているが、実際には 25.1748[MHz] を用いた
(C) 2006-2007 Ki