Project Overview
COSMACの評価ボードであるCDP18S020の主要機能を製作し、その上でRCA UT4 ROMという小さなモニタプログラムを動かすことを最初の目標としました。可能であればCDP18S020の主要機能を再現したいと考えました。
以下のドキュメントを参考にし、現在入手可能なパーツに置き換え、COSMAC評価ボード CDP18S020の主要部分を10cmx10cmの基板上に製作しています。合わせて、外部バスに拡張基板を接続し、評価ボードに実装されているLED表示やGPIO(CDP1852)を付加しました。
その後、UT4の代わりにThe 1802 Membership CardのモニタプログラムMCSMP20を載せることでより強力なシステムとなり、その上でPixie(CDP1861)互換のデバイスを接続することで、COSMAC VIP OSやCHIP-8といったCOSMAC VIPのアプリケーションが動作しています。
Schematics(回路図)
CPU Board
- CPU Board Rev 0.1 (2019/9/23) ←プリント基板化したもの。PCB Errataを参照ください。
- CPU Board Rev 0.2 (2019/11/3) ←完成しました。
- CPU Board Rev 0.3 (2020/2/14) ←完成しました。
- CPU Board Rev 0.4 (2020/5/7) ←完成しました。
Extention Board
- Extention Board Rev 0.1 (2019/10/10) ←プリント基板化したもの。バグ多数。PCB Errataを参照ください。
- Extention Board Rev 0.2 (2019/10/19) ←完成しました。LEDの種類によっては輝度が高い場合があります。
- Extention Board Rev 0.3 (2020/2/2) ←完成しました。
TV Display Board(つくるシリーズ7掲載回路)... Not CDP1861
STG1861 Display/Hexkey Board
STG1861はSpare Time Gizmos' projects.で公開されているCDP1861 Pixie互換の回路です。
HEX KeyboardはCOSMAC VIPのマニュアルに掲載されている回路です。これでCOSMAC VIPの入出力ができるようになりました。
- STG1861 display/Hex keyboard Rev 0.1 (2020/3/31) ←完成しました。
- STG1861 display/Hex keyboard Rev 0.2 (2020/4/30) ←完成しました。
※ジャンパー部分のシルク印刷がまちがっていました。
yanakata様ご指摘ありがとうございました。
誤)JP1 INT, JP2 EF1
正)JP1 EF1, JP2 INT
COSMAC MBC BUS Board
- COSMAC MBC BUS Rev. 0.1 (2020/6/6) ←失敗しました。
- COSMAC MBC BUS Rev. 0.2 (2020/6/21) ←完成しました。
Teensy Pixie Video/HEX Keyboard/Sound Board Rev. 0.1
Teensy Pixie VideoはGaston Williamsさんが開発したCDP1861互換のOLED表示回路です。
BOM(部品表)
- BOM (Google spread sheet) 基板別にシートになっています。
- STG1861 display/Hex keyboard Rev 0.2
- CPU Board Rev 0.4
- Extention Board Rev 0.3
- TV DISPLAY Board Rev 0.2
- Teensy Pixie Video/HEX Keyboard/Sound Rev. 0.1
Memory Map
CPU Board Rev 0.1では以下のようにしました。
- 0000 - 1FFF 6264 RAM (U3) ... USER AREA 8KByte
- 2000 - 7FFF 6264 RAM (U3)のイメージ(使用不可)
- 8000 - 87FF 28C256 EEPROM (U2) ... UT4 MONITOR
- 8800 - 8BFF 28C256 EEPROM (U2)のイメージ(使用不可)
- 8C00 - 8FFF 6264 RAM (U4) ... UT4 REGISTER STORAGE(無くてもUT4は動きます)
- 9000 - FFFF 28C256 EEPROM(U2)と6264 RAM (U4)のイメージ(使用不可)
CPU Board Rev 0.2ではシンプルにしました。UT4 REGISTER STORAGEは省略しました。
- 0000 - 7FFF 62256 RAM (U3 or U5) ... USER AREA 32KByte
- 8000 - 81FF 28C256 EEPROM (U2) ... UT4 MONITOR
- 8200 - FFFF 28C256 EEPROM (U2) ... 未使用。今後アプリケーションを書き込む予定。
CPU Board Rev 0.2以降で、UT4の代わりにMCSMP20モニタとCOSMAC VIP OSをROMに焼いています。
- 0000 - 7FFF 62256 RAM (U3 or U5) ... USER AREA 32KByte
- 8000 - 28C256 EEPROM (U2) ... MCSMP20 MONITOR
- D000 - 28C256 EEPROM (U2) ... COSMAC VIP OS
操作方法
- RESET後にRUN U(Utirity)ボタンを押すと$8000のROMが$0000に一時的に配置され、UT4モニタが起動します。
- RESET後にRUN P(Program)ボタンを押すと$0000に配置されたアプリケーションが実行されます。
- S5をSTEPにして、RESET後にRUN Pを押すことで1ステップ実行されます。
- UT4モニタの使いかたはCDP18S020のマニュアルを参照してください。具体的な操作例はブログにあります。
PCB Gerber view
CPU Board(Rev 0.4)
2020/5/7にRev 0.4基板を発注しました。COVID-19の影響で大幅な配送遅延があり2020/6/23に到着しました。Rev. 0.3との違いは27C256対応です。
※組み立て時にはS2, S3,S4のプッシュスイッチの取り付け向きに注意してください。導通状態になっているピンが1番ピンなので事前にテスターで確認してください。また、今回S5はトグルスイッチにしましたのでご注意ください。
Extention Board(Rev 0.3)
2020/2/2に基板を発注し2020/2/13に納品されました。現時点では機能的には問題ありません。バスコネクタの位置が旧仕様のためBUS基板での接続はできません。
TV DISPLAY Board(Rev 0.2)
2020/1/4に発注し1/9に納品されました。現時点では機能的には問題ありません。バスコネクタの位置が旧仕様のためBUS基板での接続はできません。これは実験的な回路であり、CDP1861互換ではありません。
STG1861 Display/Hexkey Board(Rev 0.2)
2020/4/30に発注しました。2020/5/16に納品されました。
COSMAC MBC BUS Board Rev. 0.2
2020/6/21に発注し、2020/7/8に到着しました。
Teensy Pixie Video/HEX Keyboard/Sound Board Rev. 0.1
2020/8/4に発注し2020/8/13に到着しました。
PCB Gerber data
- COSMAC MBC CPUボード Rev 0.4
cdp18s020_cpu_rev04.zip (2020/05/07) - COSMAC MBC 拡張ボード Rev 0.3
cdp18s020_ex_rev03.zip (2020/02/02) - COSMAC MBC TVディスプレイボード Rev 0.2 (Not CDP1861)
cosmac_tv_rev0_2.zip (2020/1/3) - STG1861 Display/Hexkey Board(Rev 0.2)
Under construction - COSMAC MBC BUS Rev. 0.2
cosmac_mbcbus_rev0_2.zip (2020/06/21) - Teensy Pixie Video/HEX Keyboard/Sound board Rev. 0.1
cosmac_teensy_pixie_rev0_1.zip (2020/08/03)
PCB Errata
プリント基板の修正情報です。
CPU Board
Rev. 0.1
- S4「RUN P」の中点がどこにも繋がっていないパターンミスがありました。GNDに落としてください。(@yanataka様 ご報告ありがとうございました。)
- シリアル入力を反転させる必要があります。余っているゲートで対応するには、U16の14番ピン、15番ピンをソケットに差し込まずに、写真のように浮かしてジャンパー線をはんだ付けしてください。15番ピンをJP2のEF4ピンに、14番ピンをJP2のセンターピンに接続してください。
- バスがプルアップになっていますが、正しくはプルダウンです。次の基板で修正します。(2019/10/21追記)
Rev. 0.2
- 特に問題は見つかっておりませんが、拡張コネクタを横向きに実装する基板スペースがないのではみ出します。はんだ付けの際は真横に取り付けるように注意してください。
- MCSMP20.binの動作報告をいただきました。ただし、MCSMP20ではRXがEF3とのことなので、次版ではRev. 0.1のように、シリアル入力をEF4、EF3から選択できるようにします。(2019/11/24追記)
Rev. 0.3
- 特に問題は見つかっておりません。
Extention Board
Rev. 0.1
- U3のアドレスラッチの入力がDB0-DB7になっていました。正しくはA0-A7です。該当のICピンを浮かせてジャンパー線で修正してください。
- U8のMODEがVccにつながっていました。入力ポートなのでGNDが正しいです。パターンカットとジャンパー線で修正してください。
- U9のS8, S9は使用しません。次回の基板ではJ4のピン数を8Pに修正します。
- CPUボードに接続するIDCコネクタの向きが逆でした。多少接続しずらいですが、次回の基板で修正します。
Rev. 0.2
- LEDの種類によっては輝度が高いことがあります。LEDへの電源を切るためのジャンパーピン(JP1)に、1KΩ程度の抵抗を入れるとLEDの輝度が落とせます。本来であれば各LEDごとに抵抗を入れるべきなのでこれは次回の修正事項とします。
- GPIOの入出力ピンのシルクがずれていて、よく見るとピン数とあっていません。次版でシルクを修正します。(2019/11/24追記)
Rev. 0.3
- CPUバスの配置を左側に変更しましたが、その際に1番ピンの位置が1.27mm上側にずれていました。フラットケーブル接続では支障はありませんが、次回改版する機会があれば修正します。
- LEDの種類によっては1KΩでもまだ明るすぎると感じるかもしれません。事前に輝度を確認の上抵抗値を決定してください。
STG1861 Display/Hexkey board
Rev. 0.1
- TV ON信号とTPB信号のANDをとってSTG1861に接続すべきでしたが、そのゲートを入れ忘れたため、2階建てはんだ付けでNANDゲートの4011を追加しました。(製作記事を参照)
Rev. 0.2
- 特に問題は見つかっておりません。
COSMAC MBC BUS board
Rev. 0.1
- 基板の厚さを考慮しておらず基板取り付けに支障がありました。スロットを飛ばして利用可能です。
Rev. 0.2
- 特に問題は見つかっておりません。
Teensy Pixie Video/HEX Keyboard/Soundボード
Rev. 0.1
- 特に問題は見つかっておりません。
テスト中の基板
2019/10/6現在の実験中のCPUボードです。一部手直しのためジャンパー線をはんだ付けしています。
2019/10/20現在の実験中のCPUボードと拡張ボードRev. 0.1です。
2019/10/27現在の実験中のCPUボードと拡張ボード Rev. 0.2です。
2019/11/16に製作したCOSMAC Microboard Computerです。下側がCPUボード(Rev0.2)と上側が拡張ボード(Rev0.2)です。
動作確認をしたアプリケーション
- 文字列を表示するプログラム
- アセンブラソース sample1.asm
- アセンブルリスト sample1.lst
- TINY BASIC
- MCSMP20
- The 1802 Membership Cardのモニタプログラム
- COSMAC VIP Operating System
- RCA COSMAC VIP CDP18S711 Instruction Manualに掲載されているもの。
- COSMAC VIP CHIP-8 Interpreter
- RCA COSMAC VIP CDP18S711 Instruction Manualに掲載されているもの。
テスターの皆様
3名のかたにテスターとしてご協力いただいています。ありがとうございます。
- @DAI_2040 様
- @Sabotenboy 様
- @yanatoku 様
利用上の注意
- 本サイトに掲載している回路、技術、プログラムなどは無保証です。
- これらの利用によって発生したトラブルには責任を負いかねます。自己責任にてご利用ください。
- KiCADデータおよびガーバーデータはCC BY-SA 4.0 (Copyright (C) 2019 Kazuhiro Ouchi)です。
- 記事中のサンプルプログラムはMITライセンスです。