stdflash − フラッシュROMライター(Flash ROM writer)


stdflash v0.1 - 2004.08.27(更新)

Copyright(C) 2004 Takaharu Konno

シフトレジスタHC164を使った旧タイプ用のフラッシュROMライター



1.ハードウェア回路について

1.1 回路図

 シフトレジスタHC164を3つ使ったフラッシュROMライタの回路図です。 とりわけ目新しい部分はありませんが、しいて特徴をあげるとすれば、CEを手動のタクトスイッチ制御にしたぐらいです。

※1 +5V電源供給は、PS/2マウスポートやUSB等からでもできます。PS/2マウスポートからの電源は便利ですが、ノイズの影響がありますので注意が必要です。
ROMライタボードの製作での電源部分は、パラレル信号のGND信号付近に回路を組むようにしてください。
PC以外の外部電源を使うとより安定すると思います。

※2 CEラインは、手動でできるようにしておりますが、トランジスタDTC114Eを一個使い、シフトレジスタのA19ラインを割り当てて自動コントロールできるようにしてあります。

※3 フラッシュROMの信号A18(1番ピン)は、2MビットROMでは、#RESET 機能を割り当てているものがあります。
読み書き開始アドレス 40000(16進)から始めれば扱うことができまが、ジャンパー切り替えで、はじめからHighに設定した方が分かりやすいと思います。

※4 データD0からD7を2.2Kで接地しています。これは、ノイズ除去とフラッシュROMからのデータ出力を安定するために使いました。
 制御信号 #AUTOFD、#INIT、#STROBE、#SLCTIN は、プルアップしました。とりわけ、制御信号でのプルアップは、しなくとも大丈夫だと思います。

 データ部にHC245などを使う場合は、次のような回路で動作可能です。回路は、GND経路も含めてプリンタからの信号近くに置いてください。

1.2 試作機

試作機の写真

1.3 配線、パターン例。図は、部品面。
 今回は、大き目の基盤をつかって、ゆったりめに部品配置を取っています。
 信号の配線は、基盤の表と裏で交差しますので、スルホール基盤では使えません。安い基盤を使ってください。


1.4 LS245を使った場合。

 信号を安定させるためのバッファーモジュールを作ってみました。
 データ読み取り時にノイズ等がでる場合は、試してみてください。
 LS245と本体を接続しているフラットケーブルは、線を一本ずらして使っています。


2.ソフトウェアについて

2.1 動作環境  ソフトウェア stdflash は、MS−DOSの環境で使います。
 MS−DOS起動のフロッピーディスクを作り、そこにダウンロードしたソフトウェアを解凍して保存します。
 フロッピーディスクでパソコンを起動し、フラッシュROMツールを使ってください。
 Win9xでは、WindowsからのMS−DOS起動でも動作します。
 Win9xのDOS互換ボックス(フルスクリーン)でも、読み書き速度は遅くなりますが動作します。

2.2 内容
 ソフトウェアは、ベースプログラム stdflash.exe と各ROM用に割り当てたバッチファイルになります。
 各バッチファイルは、次のようになります。

STD_ID.BAT     -> 製造元ID、デバイスID
STD_ID2.BAT     -> 製造元ID、デバイスID
STD_DUMP.BAT   -> ROMデータの表示。アドレスは、0 〜 7FFFF で示す。
STD_CHK.BAT    -> 指定アドレスをカウント分、読み出して表示。ボード動作チェック用。
STD_READ.BAT   -> ROMデータを読み出してファイルに保存。
STDERASE.BAT   -> ROMデータの消去(Chip Erase)。
STDWRITE.BAT   -> ファイルデータをROMに書き込む(バイト単位)。
PG_WRITE.BAT   -> ファイルデータをROMに書き込む(ページライト)。
PG2_WRITE.BAT   -> ファイルデータをROMに書き込む(ページライト)。エラーの場合は再度試みる。
               書き込みがノイズ等で中断される場合は、こちらの方を使ってください。
STD_COMP.BAT   -> ファイルデータとROMデータを比較チェック。

 パフォーマンスは、P4−1.4GHzパソコンで、2MビットROMが読み込み時間15秒、ページライト書き込み40秒、バイト単位書き込み時間1分15秒ぐらいです。


3.製作チェックのチュートリアル

 ボードチェックプログラムに TESTSTDF.EXE を用意しました。これは、ボードを製作した後に、正常に配線されているかどうか確認するために使います。

3.1 ボード単体での導通チェック。
 まず、ボード単体でのテスターでの導通チェックをします。各部品と部品の端子をチェックします。
 パワースイッチをON時に、+5VとGNDが導通していないことを確認。

3.2 電源チェック。HC164は無し。ROM無し。
 +5VとGNDを取り付け、パワースイッチON時に、HC164のICソケットVDD(14ピン)x3、A(1ピン)x3、
ROMのICソケットのVDD(32ピン)、CE(22ピン)がHighになっていることをチェック。そして、パワースイッチOFF。

3.3 プリンターポート接続。HC164あり。ボードのパワースイッチはON。
 HC164を取り付けプリンターポートと接続します。そしてボードのパワースイッチをONにします。
TESTSTDF.EXE を実行して各信号のHigh/Low(ON/OFF)をチェックします。

3.4 タクトスイッチテスト。TEST_SW.BAT
 CEを手動で行う場合、CEタクトスイッチのON、OFFに慣れるために一度テストを行ってください。
一応、ROMの読み書きにおいてCEの誤動作チェックを行っていますが、CE制御が適切にできるほうが望ましいです。

3.5 ROMセット。
 パワースイッチOFFで、フラッシュROMをセット。
 パワースイッチONで、フラッシュROMの表面や電池の表面に熱を持たなければOK。熱があれば止める(ROM自身が既に壊れている可能性あり)。
 プログラム STD_ID.BAT を実行し、製造元ID、デバイスIDが表示されればOK。エラーの場合は、もう一度配線、電圧チェックする。

3.6 動作テスト。  メモリのダンプをする。STD_DUMP 0 100
 このときに、ダンプされたデータの中で、00 の値を持つアドレス(addr)を調べる。
 00 のアドレスのみを指定回数、読み取りテストする。STD_CHK xx 10000
 00 の値が画面上にダンプされ続けるので、それを確認。データが化けたら、回路等にノイズの影響があります。
同様に FF のデータがあるアドレスを STD_CHK yy 100000 でチェックしてください。
 データ読み取りテストをする。STD_READ fileA 、xSTD_READ fileB のデータ読み出しを複数行い、FC 等で同じデータであることをチェックする。
さらに STD_COMP fileA を何度か繰り返し、正常に終了することをチェックします。

3.7 あとは、実際のフラッシュROMの読み出し、書き込みテスト。
 ROMのデータをファイルに保存する。 STD_READ filename
 ROMのデータ消去。 STDERASE ALL
 ROMの書き込み。バイト単位の書き込み用は、STDWRITE bios_filename ALL
ページライト機能の書き込みは、PG_WRITE bios_filename ALL
 書き込んだデータの比較。 STD_COMP bios_filename
(ノイズ等が見られる場合は、確認のため STD_READ / STD_COMP は、2度行ってください。)

4.感想

 FWH、LPC用のあんちょこフラッシュROMライタはいい評価を頂いていましたが、結構、旧タイプのフラッシュROMで困っている人がいたので、これを作ってみました。
あまり、あんちょこ系ではありませんが、それなりの無難な回路になっていると思います。
一度、試して見てください。



tkon@ap.wakwak.com
http://park2.wakwak.com/~tkon/
Copyright(C) 2004 Takaharu Konno