FX-890P / Z-1(GR,GRA)のメモリを256KB+32KBにする

FX-890P/Z-1で改造によりメモリを増設する際、よく知られている方法はもともとついている32KBのRAMをはがして、そこに628128(相当品)を実装することです。
これはこれでOKなのですが、問題は+32KB(増設メモリパック分)をどうするかです(あまり出回りませんし)。
もちろん、メモリパック増設エリアに無理やり実装してもいいのですが、ちょっと工夫して元のRAMを使うようにしてみました。

なお、この改造はZ-1/GR/GRAのほうが楽です(最初からパターンが空いているので)。

増設するメモリに628128ではなくて628512(相当品)を使用します。
容量が半分無駄になりますが、そこは気にしないでおきます。

必要な部品
・HM628512(相当品)
アクセスタイムはANDゲートの遅延分を考慮しましょう。
といっても80ns以下だったらいいと思いますが。入手しやすいのは80n、70nあたりですし。

・ANDゲート
74AC08とか。今回はTC7S08を使いました。
(74HC08でもいけるとは思いますが、ためしてません)

・変換基板
TC7S08のときはあったほうが楽ですというよりないと無理です。

回路図ですが、こんな感じです。
画像


まず最初に分解して、CPUボードを取り出します。ここでは割愛します。

※FX-890Pのみ
どちらかの62256(32Kx8)を取り外してください。
どちらでもかまいません。
※FX-890Pのみここまで

もともとついている(FX-890Pのかたは残ったほうの)62256の/CSを切り離します(足を浮かせます)
ピン番号は20番です。

空いているRAM搭載エリア(FX-890Pのかたは外したRAMが載っていたほう)に、628512を実装します。
このとき、CSだけつながないで、足を上に浮かします(22番ピンです)

適当なANDゲートで、RAM#0のCSと、RAM#1のCSを合成します。
別になんでもいいですが、今回はTC7S08を使ってみました。ANDゲートが1回路だけ入っているICです。
なお、74シリーズのANDゲートを使う際は、使わない入力端子はGNDに落としておかないとあっというまに電池が消耗しますので注意です(この処理が面倒だったのでTC7S08を使いました。変換基板が必要なので逆に高くつきますが)。

合成したCSを、628512のCSにつなぎます。

RAM#0CSか、RAM#1CSのどちらかを、628512のA18(1番ピン)につなぎます。
なんでA18なのかというと、ここのパターンはどこにもつながっていないので楽だからです。
(A17は基板上でVccにつながっています)

配線がおわるとこうなります
画像

TC7S08の変換基板は、厚さ1mmの両面テープでとめてます。

わかりにくいので色分けしてみました。
画像

あとANDゲートICの電源配線を忘れずに。

ANDゲートの図も入れるとこんな感じです。
画像


これで256KB部分は完成です。
次に拡張RAMパック部分です。

といっても、残してある62256のCSに、拡張RAMパックのCSをつなぐだけです。
都合のいいことに、CPU実装面に端子があったりします。
画像

これで完成です。

元通りに戻したあと、日ごろの行いを反省して電源をいれましょう。
ALL RESETで「256KB + 32KB」と表示されれば成功です。
画像

あとは、SYSTEM *でRAMチェックを実施して問題ないことを確認しましょう。

この改造と、628128を2個+62256を1個つかって256K+32Kにするのとどっちが楽かという話ですが、この改造ではもともと実装されているRAMをはがさないでいいですので難易度は格段に低くなると思います(FX-890Pでもはがすのは1個だけで済む)。

トラブルシューティング
・電源が入らない!
以下の要因が考えられます
①RAM#0の処理がうまくいっていない
ANDゲート周りを見直しましょう

②A18の配線を忘れている
RAM#0のCS、RAM#1のCSどちらでもいいです。

③628512が壊れている
自分がこれでした(´;ω;`)
(Z-1GRAだったのでRAMはがす必要がなかったというのにはがす羽目に・・・(´;ω;`))

④残念ながら本体がご臨終

RAM#0にRAMが実装されていないと、電源が入らなくなります。


・128KBしか認識されない!
RAM#1の処理がうまくいっていません。
ANDゲート周りを見直しましょう


・拡張RAMパック部分の+32Kが認識されません!
CSの配線が間違ってます。

~おまけ~
・液晶駆動部の電解コンデンサ(FX-890P/Z-1GRA。Z-1/Z-1GRについてはしらべてません)
いやまぁZ-1/FX-890P活用研究があったら済む話なんですが、あいにく持っていません。
CPU基板についてます。
16V 10uFが2個、10V 220uFが1個です。
なお、高さ制限がありますので、交換の際には注意が必要です。
(厚さ5mm以内)
さらにもう2つ角型のがありますが、タンタルなのか電解なのかよくわからず・・・(´・ω・`)

液漏れしている事例はあまり聞きませんが、自分が持ってるFX-890Pは盛大に漏れていましたので、予防の意味をこめて余裕があったら交換しておくほうがいいかもです。


いじったついでにいろいろ実験してみました。
・1RAMあたり128KB以上は認識できるか。
できません。
できなくはないのですが、システムが認識しませんので実質機械語専用エリアです。
どうしても実装する場合は、RAM#1側に628512を接続し、A17とA18(ラッチ回路経由)を繋いで、自分でGCSレジスタを変更する必要があります(どのレジスタかは知りません)。
なお、A17までは本体で生成していますが、A18は存在していないため、別途ラッチ回路をつける必要があります。
ためしにA17をつっこんでみましたが、128KBしか認識しませんでした・・・(256KB認識する予定だった)
たぶん32Kか128K決め打ちでやっているのかと(32Kじゃなかったら128Kって感じで)
もしかしたら4倍毎の認識なのかもしれませんが、以下の拡張RAMパック部分の検証から、たぶん決め打ちと思います。

・拡張RAMパック部分の容量を32KB以上に増やせるか
できません(´;ω;`)
628128を使ってやってみましたが、+32KBしか使えませんでした。
たぶんこのあたりはRP-8かRP-33決め打ちで決めているのかと思います。
ちなみに拡張RAMパックのCSは、80188のGCS1です。

・こんな面倒な配線をしなくても628128のうえに62256を親子亀方式で載せればいいんじゃね?
残念ながらフタが閉まらなくなります(´;ω;`)

補足
似ているメモリに「HM658512(疑似SRAM)」がありますが、あまりお勧めしません。
理由は、条件次第で内容が保持できなくなる可能性があるからです。

疑似SRAMは、記憶保持のためにDRAMと同じくリフレッシュ動作を必要としますが、

「CSがHigh」「OE/RFSHがLow」

という状態になると、オートリフレッシュとしてリフレッシュ動作を行います。この状態は主にROM上でプログラムが動いているときになります。

また、

「CSがHigh」「OE/RFSHがHigh」

という状態が(たしか)8us続くと、セルフリフレッシュ動作を行います。電源OFFしているとかそんな状態です。

ここまではいいのですが、疑似SRAM上で割り込み禁止状態にして、かつ、ROMに戻らないようなショートループ動作等を長時間行うと、リフレッシュサイクルを発生させることができなくなります(リフレッシュ動作発生条件を満たさないため)。
実行しているプログラムが置かれているRowAddressに属するエリアは、アクセス時にリフレッシュ動作も兼ねますので破壊されませんが、その他のエリアの記憶保持に関しては保証されません。
HM658512のブロックダイアグラムをみると、A0~A10がRowAddressになっていますので、この範囲以上のプログラム(2KB以上)でループする際は問題は発生しませんが、A10を使わない(1KB以内)のプログラムで長時間ループさせると、記憶内容の保証ができなくなります。

上記の理由により、あまりお勧めはしません。
まぁ普通に使っている限りでは破壊されることはないんですが(必ずROMルーチンが呼び出されるため)。


ブログ気持玉

クリックして気持ちを伝えよう!

ログインしてクリックすれば、自分のブログへのリンクが付きます。

→ログインへ

なるほど(納得、参考になった、ヘー)
驚いた
面白い
ナイス
ガッツ(がんばれ!)
かわいい

気持玉数 : 0

この記事へのコメント

むーみん
2019年03月12日 07:08
はじめまして。
47uF以下ならセラミックに交換でokですよ。
Z-1系で私はよくやってます。
TAK.NAV
2019年03月12日 20:39
>むーみん様
はじめまして!
セラミックでよかったのですね・・・
アナログ回路には疎いのでこういった情報は助かりますm(_ _)m