Almost lost technologies

ここは昔の CPU を用いた工作記事を書くために用意しました。雑談は https://bsky.app/profile/alpine183.bsky.social で。関連ファイルは https://github.com/alpine183 にあります。

uPD751 SBC制作 (2) 設計_承前

・使用メモリとメモリマップ

一応若松さんに64kx4 (CXK54256) があったのでこれを調達して使うことにしました。ただ、手元に 16kx4 があったので (V61c62)、こちらでも良かったかも。

#なんか部品箱からは 4bit メモリがいろいろ出てきましたが見なかったことに。

メモリマップは、使い勝手のこともあり命令空間とデータ空間を同一マップに展開したので、マッパの空間 4bit のうち 2bit にザクッと IF と SAをマップして、ページとしては1ページ 1KW (4bit) とします。

マッパを無効化した状態で下記のようなマップになります。

0x0000-0x0FFF   データ空間

0x1000-0x1FFF   命令空間の上位4bit

0x2000-0x2FFF   未アサイン

0x3000-0x3FFF   命令空間の下位bit

0x4000-0x4FFF   未アサイン

マッパを有効化すると配置制限はなしです。もちろんデータ空間と命令空間を重ねたりすると何が起こるのかわけがわからないことになります。

次に0ページですが、I/O レジスタを 0x40-0x7f に割り付けて、ここはマッパ変換結果にかかわらず、データ空間アクセス時は I/O レジスタに行くようにしました。命令空間アクセス時はマッパの変換結果通りです。

 

・I/O系

結局UARTは 6850 をつけました。モノの予定は手持ちの関係で MB8863H です。AVAL をそのまま E に繋いだので、幅 400nS で、1.5MHz 以上のものならOKです。8bit アクセス用の読み書き可能なポートを付けました。SPLDのピンの都合で 8bit アクセス後には上位 4bit を先に読むという制限がついてしまいましたが、仕方がない。あとLチカとマッパ制御用のポート1個、という構成です。

ROMなどの制御用のAVRは ATmega16A に変更。秋月のやつだと Atmega1284 が使えます(ファームウェアは直す必要あり)。手持ちの関係です。omniboot でも書いておこうかなぁ。4809だと外部クロック時のピンの並びの関係で QFP になるので、背の高い部品が立ち並ぶ状態だと辛い。

 

・PCB

当然こんなに突っ込んだら 100x100mm には入らないので、いまのところ 100x125mm で基板考え出しています。

D751SBC page1

D751SBC page2