2014年5月26日月曜日

RAM PAC2を調べてみる

16KBのRAM PAC2を分解してみる。
ラベル面にはネジが2つ。1つはラベルに隠れているが、ラベルを破いて外した。
ラベルの無い方は、蓋を固定するネジを外す。
蓋は少し横にスライドさせてから持ち上げると取れる

コネクタ側にあるツメを少し押しながら開くと、蓋が外れる

基板を外すとこんな感じ
上がラベル面。
下が電池蓋のある面

基板にピン番号が書いてあるので、配線を追ってみると、ソケットとピンの番号は以下の様子

RAM PAC2の場合、I/Oポートは以下
I/Oポート
アドレス
リード/ライト内容CAD1CAD0
18hライトRAM PAC2 下位アドレス8ビットLowLow
19hライトRAM PAC2 上位アドレス8ビットLowHigh
1AhライトRAM PAC2 ライトデータ8ビットHighLow
1BhライトRAM PAC2 PIOコントロール8ビット
(RAM PAC2 4KBのみ必要)
HighHigh
18h - 1BhリードRAM PAC2 リードデータ8ビット

RAM PAC2のサイズとアドレスの関係は、以下


ロジアナで以下の挙動を計測
OUT 19h, 00h
IN 1Ah

ピンと信号線の関係も含めて、以下のようになった

CSEL2(14pin)がLowになった時点のCAD0(12pin)とCAD1(11pin)で、I/Oポートアドレスを判別できる。
OUT命令の場合はCWR(16pin)がLow、IN命令の場合はCRD(15pin)がLowになる。
パソピア側からみて、CDB0~7の8bitはOUT命令の場合はOutput、IN命令の場合はInputとなる。CAD1/CAD0,/CSEL2/CRD/CWRは、常にOutput。
OUT命令もIN命令も、CSEL2がLowの間隔は約600ns。
IN命令の場合、もう少し早いタイミング(500nsくらい?)でCDB0~7がInputされるので、その前にメモリ内容をパソピアへ返答をしなければならない。
また、OUT命令とIN命令の間隔は2usちょっとなので、OUT命令でアドレスをセットしたあと、IN命令でパソピアへ返答するまで、この間隔以内で処理をしなければならない。

8bitAVRを使う場合、1サイクル50ns(20MHz動作時)なので、結構ギリギリ。。

0 件のコメント:

コメントを投稿