現在地

ROMエミュレータ


テーマ:

デバッグしながらROMを書き直すのが面倒になって作ったROMエミュレータ、ですが製作後ROMを使う機会が少なくなってしまいました。

中央が本体、右の子基板はPCのシリアルと接続するためのRS-232レベルコンバータです。左のクリップはPCからアクセス中にターゲットをリセットするためのもので、アクセス中はROMとしてターゲットから正常なアクセスはできないからです。ちゃんと切り離してはいるのでリセットしなくてもバスが衝突したりはしません。

製作するに当たって目標とした仕様は以下の通りです。

  1. 27256専用
  2. 対象とするROMは27256のみに絞ることにしました。

  3. ROMソケットの面積に収まること
  4. 当然縦型で作ることになります。基板を削るのが面倒で若干超えていますが、普通に設計されたターゲット基板ならまず問題ないでしょう。これで干渉するなら本物のROMでも抜くのに苦労するでしょう。

  5. PCに専用ソフトを必要としないこと
  6. シリアル接続でインテルHEXかモトローラSの形式で流し込めば良いようになっています。またパッチ当てのため、ターミナルから対話的にD(ダンプ)・S(セット)等のコマンドで書き換えることもできます。

  7. ソフトデバッグ専用
  8. タイミング等の電気的特性はもちろん対象外とします。

  9. 表面実装部品を使わない
  10. バッテリバックアップは必要ない

やはりROMの幅でDIP部品というのはかなり無理があるようで、非常に密集した配置になっています。

ROMエミュレータの主役はなんと言ってもRAMでしょう。あとの回路はこのRAMをPCとターゲットで共有するための仕掛けにすぎません。中央のSRM2B256SLCX70がそれですね。70ns品なのでバッファの遅延等もふくめ十分と言えます。
コントローラのマイコンにはATMELのAT90S2313-10PC(右上)を使用しています。20ピンパッケージでI/Oが15本というちょっとした制御には手頃なデバイスで、個人的にもお気に入りなのですが、今回のように外部にSRAMを置くとなるとI/Oピンが圧倒的に足りません。そこでPB0~PB7をマルチプレクスバスのように使用しています。

PB0 D0 / A0 / A8
PB1 D1 / A1 / A9
PB2 D2 / A2 / A10
PB3 D3 / A3 / A11
PB4 D4 / A4 / A12
PB5 D5 / A5 / A13
PB6 D6 / A6 / A14
PB7 D7 / A7
PD0 RxD PCからのシリアル受信
PD1 TxD PCへのシリアル送信
PD2 WE 立ち上がりでRAMへの書き込み
PD3 OE Lの間RAMからの読み出し
PD4 ALEH 立ち上がりでPB0~PB6をA8~A14としてラッチ
PD5 ALEL 立ち上がりでPB0~PB7をA0~A7としてラッチ
PD6 SEL Lの間RAMにアクセス可能、同時にターゲットへRESET出力

左に2つ並んでいるSN74HC574Nはアドレスのラッチ用。
RAMの下のSN74HC541NはターゲットへのD0~D7出力のイネーブル制御、その下の2つの74HC541APはターゲットからのA0~A14のバッファです。右のSN74HC157NはOE,CEをSELによって切り替えるためです。
左上の2ピンのコネクタはターゲットをリセットするためのもの、黄色の線がそうです。青は未使用。
右隣の10ピンのはシリアルポート、レベルコンバータ用の電源も含め使っているのは4ピンのみです。
その右の6ピンコネクタはAT90S2313の書き換えようコネクタになります。
基板下端のコネクタはターゲットへの接続用、適当なコネクタがなかったので長いものを切断して使用しています。


ターゲットのソケットに挿すための変換基板、よく見るとピン数が違います。本来の28ピンのものが行方不明で、これは別な目的で作った32ピンのもの、ピン数以外の構造は一緒です。


これはレベルコンバータ、定番のMAX232CPEを使用しています。232Aではないのでキャパシタは1.0uFが必要なはずですが、0.1uFが付いていますね。MAX232の発売当初は10uF必要とどこかで読んだ記憶もかすかにあるのですが...
D-subコネクタは無理やりハンダ付け、裏側の6~9ピンのところはパターン削り取っています。

2017年2月9日追記:
28ピンの変換基板を発見しました。
ソケット変換基板(28ピン)


コメントを追加

Plain text

  • HTMLタグは利用できません。
  • ウェブページアドレスとメールアドレスは、自動的にハイパーリンクに変換されます。
  • 行と段落は自動的に折り返されます。