2014年5月31日土曜日

MRAM

本家のRAM PAC2は電池でメモリ内容を保持するが、電池が切れるとメモリ内容が消えてしまうのが欠点。。
そこで、電池切れの心配がない不揮発メモリ、Everspin社のMRAM(MR0A08B)を使う。
容量は1Mbit(128KByte)、アクセスタイムは35ns
シリアルSPIだと、データ読み書きが間に合わないため、パラレルインターフェイスを選ぶ。

製作にとりかかる。
まずは、基板とソケットなどを準備

20pinコネクターを取り付け。

AVRはATmega1284Pを使うので、40pin DIP用のソケットを取り付ける
AVRは、定格最大の20MHzで動かすため、5Vのまま利用。
AVR出力側のピンと20pinコネクターの間に、8bitバスバッファ(541)を挟んでおく。

32-SOICのMRAMは、変換基板に乗せてDIPに
MRAMは3.3V動作のため、レギュレータも用意する。
AVRを取り外しやすいように、40pinソケットの上にZIFソケットを乗せる

アドレスラッチ用の574を2つ用意。(I/Oポート18h用と19h用)
AVRは5V、MRAMは3.3Vなので、5Vトレラントのチップを選択。
こちらも、DIP変換基板にのせる。

20pin用が売ってなかったので、28pin用の前後を削って20pin用にした。

MRAMとATmega1284Pの間に、信号の向きを制御するバス変換(245)と、8bitバスバッファ(541)を取り付け。これらも、5Vトレラントのを使う。
20pinのDIP変換基板を手に入れたので、こちらはそのまま利用。

5VトレラントICと、ATmega1284Pをのせるとこんな感じ。
16pin x 2列のソケットに、DIP変換されたMRAMが乗る

これで基板は一旦完成。

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動作時)なので、結構ギリギリ。。

2014年5月24日土曜日

RAM PAC2を作ろう

PASOPIA/7にはPACスロット1と2のスロットが2つ付いている。
奥の44pinがPACスロット1で、手前の20pinがPACスロット2

PASOPIA700にはPACスロット2のみスロット化されている。

PACスロット2にはRAM PAC2や漢字ROM、ジョイスティックアダプタなどを利用できる。
RAM PAC2はメモリにデータを読み書きでき、電源をOFFしても電池でデータが保持されるため、ディスクのように外部メモリ装置として利用できる

東芝からは、4KB/16KB/32KBと3種類のRAM PAC2が用意された。下の写真は、4KBのパッケージ

カートリッジは、カセットテープのケースと同じくらいのサイズ。

PASOPIA700は横に差し込む
PASOPIA/7だとカートリッジのラベル面が手前だが、PASOPIA700だとラベル面が下面になる(電池蓋がある面が上向き)

どんな信号が出ているのかロジアナで調べるために、信号線を引き出すコネクタを作ってみた

パソピア7に、コネクターを挿してみる

RAM PAC2を挿すと、こんなかんじ

パソピア700は、こんな感じになる。
Bドライブは、挿入できなくなるが。。

コネクタに16KBのRAM PAC2を付けたまま、フォーマットしてみる
これくらいの信号線延長なら、問題なく使えそう