You are here

EMILY Board


テーマ:

メモリ基板、確かにメモリではあるのですがそれだけでもないので「EMILY Board」と名付けました。

Environment for Microprocessor Introduction ... の略というのはもちろん後からのこじつけで、二式大型飛行艇の連合国側コードネームからの命名です。

二式大型飛行艇
写真は鹿児島の鹿屋航空基地資料館に展示されている二式大型飛行艇、唯一の現存する機体のはずです。

これだけではなんなのでこれまで書かなかった資料編をお送りします。

コネクタ ピン配置

まずは基板上部のCPUボードへのコネクタです。

ピン 信号 備考 ピン 信号 備考
1 VCC EMILY Boardから+5Vを供給 2 VCC EMILY Boardから+5Vを供給
3 RESET EMILY Boardが駆動(Open-Drain) 4
5 RD 6
7 WR 8
9 A0 10
11 A1 12
13 A2 14
15 A3 16
17 A4 18
19 A5 20
21 A6 22
23 A7 24
25 A8 26
27 A9 28
29 A10 30
31 A11 32
33 GND 34 GND
ピン 信号 備考 ピン 信号 備考
1 CS0 D0D7のセレクト 2 CS1 予約:D8D15のセレクト
3 D0 4 D8 予約
5 D1 6 D9 予約
7 D2 8 D10 予約
9 D3 10 D11 予約
11 D4 12 D12 予約
13 D5 14 D13 予約
15 D6 16 D14 予約
17 D7 18 D15 予約
19 GND 20 GND

6502ボードのようにCPUボード側でアドレスデコードする場合はCS0, CS1を使うことが多いと思いますが、RD, WRを使うこともできます。

将来の16ビットバスへの拡張も考慮していて、その場合はIDT7134ののったボードをもう1枚追加してこの2つのコネクタは並列に接続します(ATmega164から追加したIDT7134へのアクセスのコネクタは別途追加)。バイト書き込みにはCS0, CS1を使用します。

さらに32ビットバスへの拡張には34ピンは共通に使用し、20ピンのコネクタをD16D31用に追加を考えています。

続いてターミナル接続用のコネクタ(基板右下)です。TTL-232R-5Vを2本接続できます。

ピン 信号 備考 ピン 信号 備考
1 GND 2 GND
3 N.C 4 N.C
5 N.C 6 N.C
7 RxD1 8 RxD0
9 TxD1 10 TxD0
11 N.C 12 N.C

基板に近い下側のRxD0, TxD0はこのEMILY Board自体をコントロールするためのポートです。Universal Monitor同様Dump, Set, Punch, Loadの各コマンドでメモリ内容を参照・変更することができます。その他、共有メモリのアドレス変更、RESETを使用してターゲットCPUの停止・リセットができます。

上側のRxD1, TxD1は共有メモリ経由でターゲットCPUから使えるポートです。

共有メモリ

ターゲットCPUからEMILY Boardに要求を出すための共有メモリのフォーマットです。4k×8bitのメモリ空間のうち任意の16バイト境界に置くことができます。

Offset Name Remarks
+0x00 Signature 必ず0xA5
+0x01 Handshake ターゲットCPUは0xCC、EMILY Boardは0x33を書く
+0x02 Command ターゲットCPUからEMILY Boardへのコマンド
+0x03 Status EMILY BoardからターゲットCPUへのステータス
+0x04 Data[0]
+0x05 Data[1] 現時点では未使用
... ... ...
+0x0F Data[11] 現時点では未使用

ターゲットCPUはHandshakeが0x33であることを確認し、Command, Dataを書いてからHandshakeに0xCCを書きます。

EMILY BoardはHandshakeが0xCCになるのを待ってCommand, Dataを取り出して要求を処理します。処理が終わったらStatus, Dataを書いてからHandshakeに0x33を書きます。

ターゲットCPUはHandshakeが0x33になるのをまってからStatus, Dataを取り出します。

現在定義されているコマンドは以下の4つのみです。

Command Name Description
0x00 INIT 現状特に何もしません。
0x01 CONOUT Data[0]の内容をTxD1に出力します。
0x02 CONIN RxD1の入力を待ってData[0]に入れます。
0x03 CONST RxD1に入力があれば0x01、無ければ0x00をData[0]に入れます。

上記のどのコマンドも異常終了は無いのでStatusは0x00となります。未定義のCommandの場合はStatusは0xFFになります。

ATmega164 ポート割り当て

コントローラのATmega164のポート割り当ては以下のようになっています。

Port Bit Name Description
A DB[7:0] IDT7134のデータバス
ALEH, ALELでラッチしIDT7134のアドレス指定にも使用
B 0 CS0 IDT7134のCELD0D7
1 CS1 IDT7134のCELD8D15) (予約)
2 CS2 IDT7134のCELD16D23) (予約)
3 CS3 IDT7134のCELD24D31) (予約)
4 RESET ターゲットへのRESET
5 未使用
6 未使用
7 未使用
C 0 SCL (予約)
1 SDA (予約)
2 未使用
3 未使用
4 未使用
5 未使用
6 未使用
7 未使用
D 0 RxD0
1 TxD0
2 RxD1
3 TxD1
4 ALEH DB[3:0]をIDT7134のA[11:8]としてラッチ
5 ALEL DB[7:0]をIDT7134のA[7:0]としてラッチ
6 RD IDT7134のOEL
7 WR IDT7134のWEL

Add new comment

Plain text

  • No HTML tags allowed.
  • Web page addresses and e-mail addresses turn into links automatically.
  • Lines and paragraphs break automatically.
※ コメントは原則公開です。個別のご相談などは「ご意見・ご要望」からお願いします。