■手順4.取り敢えず読み書きしてみる。

右図の配線図のように配線します。簡単な回路なのですぐに作れると思います。私は最初下図のようなブレッドボードでバラックに作り確認しました。電源はプリンターポートから貰います。余ったPB4〜PB7から供給しています。

上記バラックではICが3個並んでいるうち真中がシリアル書きこみ、右がパラレル書きこみ、左はプログラミングしたものの動作確認用に配線したものです。

配線図でICは上面から見たものです。穴明き基板は.1インチピッチでDDKコネクターはピッチが異なるので差し込めません。そこで四角い細長い穴を開けてリード線で配線します。

基板に直接配線する場合は下記の写真のようにいずれパラレルの書き込みもできるようにしたいので余裕のスペースを残すようにして下さい。

左の写真では手前のソケットが今回と同じシリアル、奥がパラレル用になっています。ほとんどがパラレル用の部品です。

さて、上記回路が組みあがったらさっそくテストしてみましょう。その前に再度配線ミスが無いかチェックしてみます。

それでは、パソコンにケーブル、ライターを接いでみます。まだICは挿入しません。シート"IOテスト"の<OutTest><InTest>を使ってTESTしてみましょう。上図でプリンターのPBとICのポートBが同じ略号にしてしまってちょっとややこしいのでIC側はSCKとかMISOと呼びます。

ソケットのMISOとそれぞれのピンの間を接いで<InTest>でちゃんと接がれていることを確認します。

<OutTest>で240(&HF0)を出力します。これはICの電源ONです。VCC-GND間の電圧を測って見て下さい。3V以上であれば大丈夫です。上記がOKならほぼ完成です。

実際にICを乗せて読み書きしてみます。

その前に最初に戻りシリアル書き込みのアルゴリズムを復習しましょう。
@電源ONはそのままです。まず電源(PB4〜PB7)その他を0にしておきICを挿入します。その後&HF0を出力します。これでVCCが供給されました。今回はこの方法では無くRESETをOFFにする方法を採用します。
A次に20ms以上待ってからシリアルプログラム許可命令を送ります。4バイト命令は表のようになっており上位バイトの上位ビットから順に送って行きます。送るタイミングは図および表のようにします。規格はかなり大雑把でも良いようですのでプログラムは簡単です。
BフラッシュROMの書き込みは16ビットのうち上位バイトと下位バイトは別々に読み書きします。読み書きはEEPROMともアドレスとデータを同じ命令で指定します。
C一括消去のチップイレースは命令送りだし後10ms待ってRESETをOFFします。
またMOSIからデータを送っている間1バイト遅れでMISOからエコーバックして来ますのでこれも読み出します。

シート"読み書き"でA3から下方に16進数で1バイトづつセルに書きこんでおいて<RUN>ボタンをクリックするとまず電源ONしてからセルの順に送り出して行きます。同時にB3から下方にエコーバックしたデータを書きこんでくれます。

次に実際にテストしてみましょう。まず<0V>ボタンを押して出力をすべて0にします。それからICを挿入します。

次の手順としては<RUN>ボタンを押すとまずVCCがICに印可されます。次にセルA3の値が送られますが、ここには"RES"と書きこんで下さい。これにより10ms後にRESETからパルスを送りだしさらに20ms後、次のセルの値を順次送り出します。ですからこのページの最初にある4バイト命令の一覧を参照しながらA4からはシリアルの許可の命令 "AC","53","00","00"をA7まで1バイトづつ書きこんで行きます。その後、順にさせたい命令を書きこんで行きます。書きこみ終わったら<RUN>ボタンを押すと実行されます。終わるとピンをすべてLowにしVCCを落とします。また<RUN>時と同時にセルB3から下方へMISOから読み出したしたシリアルデータを書きこんでくれます。

自分でセルに書きこむのが面倒な方はサンプルを示してあります。最初にEEP-ROMを読み出すための命令列をコピーしてA3に張りつけます。(「EEP-ROM読み出し」と書かれた欄をWクリックしてもコピーできます)次に<RUN>ボタンをクリックします。

「EEP-ROM読み出し」はアドレス0から順次読み出して行きます。B列のMISOのグリーンのセルがその値です。おNewのICならこれはすべて"FF"になるはずです。

次は「EEP書込み」をコピーし<RUN>します。ここでは各アドレスにその値をぞろ目にしたデータを入れています。終了後「EEP-ROM読み出し」でちゃんと書き込めているか確認して下さい。

上記テストの結果がおかしい場合はここまでで
@DLL、I/Oの設定は確認済み
A書込み機の配線とI/Oの接続も確認済み
となっているはずですから考えられることは
B1200が壊れている
CプリンターI/Oの波形がなまっている
ぐらいでしょうか?取り敢えず手順4の最初のほうを再度確認して下さい。(DOS/V・PC98のBUSYの設定の差なども)手順4の最初が確認されたらBで別の1200で確認しそれでダメならCがあやしいので短いケーブルを使うか最終的には各ピン間に高速のバッファーを入れて下さい。ただし、私の経験ではBはかなり丈夫?のようでアプリで逆接続のまま1分ほど電源を接ぎかなり熱くなっていましたが、まだ生きているようです。またCは4台ほどいろいろなパソコンで確認しましたがすべて大丈夫でした。@Aを充分疑ってみましょう。

次に「ROM読み出し」「ROM書込み」をテストします。こちらは16ビット幅を8ビットづつに分けて2命令で読み書きしなければなりません。「EEP書込み」ができるならこちらもバッチリなはずです。

最後にチップごと消去します。「チップイレース」してみて下さい。「EEP-ROM読み出し」「ROM読み出し」で消去を確認して下さい。消去するとデータは"00"ではなく"FF"になります。

以上でAT90S1200 ライターは完成です。統合ソフトのAAID.xlsはこれと同じアルゴリズムで書きこみますのでそちらもうまく行くはずです。

なお、今回のテストの結果は必ずAAID.xlsのシートUSER.hへ右記欄のように記入する必要があります。これをしないとAAIDのチップへの読み書きができません。プリンターI/Oのアドレス、Busyの値を&H付きの16進数で半角で記入します。またスピードテストの値も書き込んで下さい。

プリンターI/OからICに接ながっている300Ωはおまじないのようなものです。シリアルの場合書き込み方法にもありますが電源投入後RESETをOFFするのでICが動作を始める可能性があります(RUNしないかも知れませんが・・・)。プログラムによってはプリンターI/Oに接ながっているピンが出力に設定されたら短時間でも衝突する可能性があります。全く新しいICなら問題無いかもしれませんがその保証に300Ωを入れています。もしこれが怖いなら大事なパソコンのプリンターI/Oを壊さないようバッファを間に入れることを強くお推めします。