趣味

私の趣味はこ〜んな事をすることです


マイコン自作 (^^)

●1号機は・・・・・

  学生のときに作成したZ80のマイコンです。
  スペックは
  ・CPU     Z-80Aを5MHzで動作
  ・RAM     64KB(64KDRAM × 8)
           2KB SRAM × 4
  ・ROM     32KB
  ・CRTコントローラ 日立 HD46505使用
  ・カセットインターフェース FSK/トーンバースト方式
  ・シリアル    RS232C × 2ch(Z−80 SIO使用)
  ・8インチFDC MB8877使用
  ・ROM ライター(2716/2732対応)

 写真には写っていないですがフルキーボード(ディコーダーとケースも もちろん自作)と8インチ倍密度のディスクドライブを付け、最終的に CP/M80を移植しました。

 最初はCPU(アドレス、データバス表示LED付き)+2Kのメモリ (2114を4個使用)+トグルスイッチパネルの必要最小限の物から 出発しました。
 トグルスイッチを操作してDMAでメモリに書き込みDMAを解除して CPUを走らせていました。

 こんなやっとプログラムがなんとか動く状態の物を使って研究室の先輩が リセットスイッチを入力、アドレスバス表示のLEDを出力に使って簡単な ピンポンゲームを作ったではありませんか(驚)

 I/O装置の無い状態でリセットスイッチを入力、バス表示LEDを出力 にゲームを作るなんて(なんという発想の転換!)・・持ち主よりすごーぃ プログラム作るなんて・・・ゆるせなーぃ(笑)

 次に電卓用のキーを300円で買ってきて7セグつけてやっと16進キー でメモリ書き込みができるようになりました (^^)

 でもROMがのってないので立ち上げる時はトグルスイッチをパチパチやって 数十バイト入力してbootモニタいれてからやっと16進キーが使えるように なり、それから16進キーで数百バイト入力でやっと本来のモニタが動くといった めんどくささでした(ROMボードとROMライタ作るまではこれの繰り返し^^;)

 フルキーボードとFDコントローラと8インチフロッピードライブをつけて、 最終的にCP/M80を移植しました (FDフォーマットプログラム等ももちろん自作)。
 CP/M80が動くようになってからは快適快適(^^)

 キャラクタジェネレータ切り替え方式によるグラフィック描画機能も付けました (もちろんグラフィック用描画ルーチンも自作です)

 ROM上では動かない(プログラムでコードを書き換えてる)反則業使ってたり しますが、当時グラフィック描画では高速性を誇っていたFM-7よりも グラフィック描画が早かったよ〜ん(^^) ・・・まぁ単色なので速いということもありますが・・・

1号機の主要な構成パッケージ
CPU
MEM
DRAM
CRTC
KEY
FDC
ROM Writer
SIO


★2020/06/15 追記
 キーボードを発掘しましたので写真を追記します。
 秋葉原のIKEショップでキーユニットを購入し、アルミ板を加工してケースを作成しました。

フロント面 バック面



●2号機は・・・・・

 会社に入ってからはさすがに大規模なものは作れずここで紹介する2号機と次の3号機の二つしか作ってません(どちらもワンボードタイプ)^^;

 でも入社当時、私の1号機は会社の開発環境(System-8)よりもずぅっと快適な開発環境だったよ〜ん (^^)

 2号機の作成のきっかけは会社の先輩からもらった64KDRAMです。 ^^;
 DRAMのRAS/CASタイミングを巧妙(笑)に作ってワンボードに乗せました。

 これにAD/DAを付けて初めて出した特許(音声encode/decode方式・・まあADPCMの変形 ですけど)を実際に作ってみちゃいました (もちろん趣味でですよ(^^))

2号機CPU
2号機CPU裏
AD/DA



●3号機は・・・・・

 これも会社の先輩から256のDRAMチップ2個もらったのがきっかけで久々に ハード作成の虫がうずいて作ってしまいました。(^^)

 Z80ファミリーをふんだんに使ってワンボードに収めました。

 使用したICは


3号機CPU
3号機CPU裏



●4号機はPICを使用した3チップ構成のCP/Mマシン^^ ★2018/06/09追記

 2017年の暮れにebayから20MHz対応のZ80(Z84C0020PEC)を購入したことからCP/Mが動作することを目的としてワンボードマイコンを作成しました。
 ハードは極力簡略化することを開発ポリシーとした結果、Z80(Z84C0020PEC)、メモリ(HM628128ALP-7)、PIC(PIC24FJ64GA004)の3チップ構成でCP/Mの起動に成功しました。
 外部記憶装置としてはSDカード(SDHCタイプ)を使用しています。

 また、プリント基板はCNCで両面のものを作成予定でしたが、Fusion PCBに注文して作ってもらいました(5枚作製で送料込みで千円以下)
 詳細はこの辺を参照してください。

プリント基板



 ケースは側面部を3Dプリンタで作成し、トップとボトムのパネルは百均から購入したスチロール製ディスプレイスタンドから切り出した板を材料にしてCNCを使って加工しました。

ケース入り




●5号機はPICを使用した3チップ構成のCP/M-68Kマシン^^ ★2019/04/14追記

 3チップ構成のCP/M-80マイコンに続いて同じく3チップ構成のCP/M-68Kマイコンを自作しました。
 3チップ構成でCP/M-68Kが動作するワンボードマイコンはネット上を探しても他にはないと思います。

 チップ構成は

 で回路図はここを参照してください。


Pic24CPM68K部品実装写真(top面)

Pic24CPM68K部品実装写真(bottom面)

Pic24CPM68K


 CP/M-68Kの起動画面のサンプルを貼っておきます。

picle compiler CP/M Ver0.09 2018/05/06 by skyriver

... loading

CP/M-68K(tm) Version 1.3  08/05/85
Copyright (c) 1985 Digital Research, Inc.

Pic24CPM68K ver0.02 2018/09/23 by skyriver

A>■




●6号機はPICを使用した5チップ構成のCP/M-86マシン^^ ★2019/10/31追記

 ネット上を探してもCP/M-86マイコンの自作はほとんど見つかりませんでした。
 50%デューティーのクロックでも動くNEC製V20(8088互換)を使いました。86系はデータバスとアドレスバスがマルチプレックスされているため、分離のために74HC573を2個使った関係で5チップ構成になります。
 アドレスとデータが多重化されたことでPIC24の使用ピンに余裕ができたので、RTCC(リアルタイムクロックカレンダ)モジュール用に水晶の実装回路も付けてみました。

 チップ構成は

 回路図はここを参照してください。

V20ワンボード基板(トップ面)

V20ワンボード基板(ボトム面)


 CP/M-86の起動メッセージはこんな感じです。

picle compiler CP/M-86 Ver0.01 2019/07/03 by skyriver

loading ... ok
Pic24V20 ver0.02 CP/M-86 Version 1.1
Segment Address = 0040
    Last Offset = 31FF
  System Generated by skyriver 2019/10/07

A>■


 WordStarも動きました。

Opening screen of WordStar Menu screen of WordStar

★2020/08/30 追記
 ケースを作成したので貼っておきます。

Pic24V20(ケース入り)



●7号機はGALを使用した5チップ構成のZ-80ボード(Z80GAL) ★2021/01/21追記

 Z-80を高速(20MHz)で動作させGALを使ってシリアル通信等の周辺ICの機能をソフトウェアで代替えすることで構成チップ数の少ないワンボードマイコンを作りました。
 詳細は「Z80GALの構想(その10)回路図とパターン設計」のあたりを参照してください。

 次の5チップ構成です。
  1. Z-80
     Z84C002PEG(40PIN)を20MHzで動かしています。
  2. RAM
     UM61512-15(32PIN)を使いました。ピン数が少し多いですが、64K x 8bit のスタティックRAMでアクセスタイムは15nsと高速です。
  3. EEPROM
     W27C512-45(28PIN)でアクセスタイムが45nsでROMではかなり速い方だと思います。Z80のメモリ空間の後半は常にRAMをアクセスできるようにしているので、EEPROMのサイズは64Kx8bitですがZ80のメモリ空間の前半の32KBにマッピングしています。
  4. GAL
     GAL22V10D(24PIN)を使用しました。
  5. クロック発振&タイマー割込み信号生成
     PIC12F683(8PIN)で水晶発振子用バッファとタイマー割込み用のインターバル信号を生成しています。

 プリント基板に部品実装後の写真を貼っておきます。

部品実装後のプリント基板(トップ面)

部品実装後のプリント基板(ボトム面)


 3Dプリンタでケースを作りました。

Z80GALケース


 CP/M-80も動きます。

Z80GALでのCP/M起動画面