SBC8080ルーズキット+TK-80サブボードの製作(SBC8080製作編)

2019/01/10

 ①SBC8080 CPUボードの改造・製作


・8224のREADYから8080のREADYの配線を箔カットして、8080のREADYを中央ピンにして、8080のWAIT、8224のREADYの3Pヘッダーを追加する

・TK-80サブボードのため、8224の-STSTB、8080のD5、8080のINTEをピンフレームで出力する

・CPUクロックの水晶は、18.432MHzに変更する


その他は特に変更なくはんだ付けし、12Vの電圧確認、8224差し込み後の発振確認、-5Vの電圧確認まで行いました。


②SBC8080 SUBボードの改造・製作


・8251割り込み出力(RxRDY)とINTの配線を箔カットし、2Pピンヘッダーを追加する

・74HC4060および、水晶・CRの代わりにPIC12F1822を使用する

・74HC4060の2ピンから5ピンと12ピンから15ピン合計8ピンにDIP8ソケットを差し込むと箔カットは不要になる

・PIC12F1822の1ピンに5V、8ピンにGND、7ピンから1K抵抗を経由して8251のRXD(3ピン)、2ピンから8251の-RXC(25ピン)にジャンパを追加する



・ROM切替機能のため、下記のように、箔カットとジャンパ・ヘッダー・プルアップ抵抗(47K)を追加する


③PIC12F1822のファームウェア


SBC6809用のPIC12F1822との違いは、ピン番号の違いのみです。下記がソースプログラムの差分です。


< #define RXD RA4             // PIN3 RA4 RXD sensing Digital Input
---
> #define RXD RA0 // PIN7 RA0 RXD sensing Digital Input

< CCP1SEL = 0; // PIN5 CCP1 on RA2
---
> CCP1SEL = 1; // PIN2 CCP1 on RA5

< TRISA = 0b11111011; // PIN3 RA4 Digital Input
< // PIN5 CCP1 on RA2 Digital Output
< WPUA4 = 1; // PIN3 RA4 Pull-up enabled
---
> TRISA = 0b11011111; // PIN7 RA0 Digital Input
> // PIN2 CCP1 on RA5 Digital Output
> WPUA0 = 1; // PIN7 RA0 Pull-up enabled


下記はSBC8080 SUBボード用のファームウェアです。自己責任で自由に使用ください。


:020000001428C2
:100008007E14803120007F08F0000B1D102801307D
:10001800F9070030FA3D0B117008FF007E10090047
:100028001528F501F601F701F8017E1020001C28BB
:10003800F0302100990022001D1423008C01DF30CC
:1000480021008C0024000C140730210095002000AA
:100058009913980197019601F901FA01910192010A
:10006800E0308B00FC309C050C3025009300F1013A
:100078003330F120F901FA0100307A02F430031923
:10008800790203184B2820000C1C3E284028F9014F
:10009800FA01FF30F7007F30F800F501F601003073
:1000A800C1200030C1200230C1200330780219304D
:1000B80003197702031C6B28033076026B3003198F
:1000C800750203186B28F1013330F120C028013084
:1000D80078028D3003197702031C7D2801307602DF
:1000E800B6300319750203187D28F1011930F12083
:1000F800C02800307802C73003197702031C8F2804
:1001080000307602DB300319750203188F28F101DD
:100118000C30F120C02800307802853003197702AE
:10012800031CA428003076029430031975020318C2
:10013800A4281F30F4007408F1000830F120C0280A
:1001480000307802433003197702031CB9280030C5
:1001580076024930031975020318B9282030F400D3
:100168007408F1000330F120C0280E307A024F30B5
:1001780003197902031C3E28C028F10020000C1C3A
:10018800C2281810970196010C18C82818140C1CBE
:10019800CB2818101708F3001608F200710AD628A1
:1001A800F336F20C890BD42878087302031DDE2875
:1001B800770872020318E4287308F8007208F70039
:1001C80073087602031DEA287208750203180800EE
:1001D8007308F6007208F5000800F20071082100A3
:1001E8009800720820009B007236250091002000BC
:0401F8001C150800CA
:020000040001F9
:04000E00E4FFFFFF0D
:00000001FF

せっかくですので、SBC6809用のファームウェアも公開します。自己責任で自由に使用ください。


:020000001428C2
:100008007E14803120007F08F0000B1D102801307D
:10001800F9070030FA3D0B117008FF007E10090047
:100028001528F501F601F701F8017E1020001C28BB
:10003800F0302100990022001D1023008C01FB30B4
:1000480021008C0024000C160730210095002000A8
:100058009913980197019601F901FA01910192010A
:10006800E0308B00FC309C050C3025009300F1013A
:100078003330F120F901FA0100307A02F430031923
:10008800790203184B2820000C1E3E284028F9014D
:10009800FA01FF30F7007F30F800F501F601003073
:1000A800C1200030C1200230C1200330780219304D
:1000B80003197702031C6B28033076026B3003198F
:1000C800750203186B28F1013330F120C028013084
:1000D80078028D3003197702031C7D2801307602DF
:1000E800B6300319750203187D28F1011930F12083
:1000F800C02800307802C73003197702031C8F2804
:1001080000307602DB300319750203188F28F101DD
:100118000C30F120C02800307802853003197702AE
:10012800031CA428003076029430031975020318C2
:10013800A4281F30F4007408F1000830F120C0280A
:1001480000307802433003197702031CB9280030C5
:1001580076024930031975020318B9282030F400D3
:100168007408F1000330F120C0280E307A024F30B5
:1001780003197902031C3E28C028F10020000C1E38
:10018800C2281810970196010C1AC82818140C1EBA
:10019800CB2818101708F3001608F200710AD628A1
:1001A800F336F20C890BD42878087302031DDE2875
:1001B800770872020318E4287308F8007208F70039
:1001C80073087602031DEA287208750203180800EE
:1001D8007308F6007208F5000800F20071082100A3
:1001E8009800720820009B007236250091002000BC
:0401F8001C150800CA
:020000040001F9
:04000E00E4FFFFFF0D
:00000001FF

④SBC8080の動作確認


SBC8080 CPUボードのREADYヘッダーをオリジナル接続、SBC8080 SUBボードのINTヘッダーも同様にします。

PTBEXSA.HEXをHN58C256APに書き込み、SBC8080 SUBボードのROM設定ヘッダーを32KB EEPROMに設定後、USBシリアルインタフェース経由でTeraTermの画面に立上りメッセージが出ればOKです。出ない場合は、PIC12F1822の2ピンからクロックが出ていることなど、はんだ付け状態を確認します。


下記は、組み立て済みのSBC8080 CPUボードです。




下記は、組み立て済みのSBC8080 SUBボードです。




(再クロール更新:2022/12/22)

SBC8080ルーズキット+TK-80サブボードの製作(設計編)

2019/01/09

 SBC8080ルーズキットが紹介された時は、それだけではそれほど興味を引きませんでした。

ところが、たまたま懐かしいTK-80の記事を目にし、少し調べてみると、ZK-80やND8080など互換機が見つかりました。ZK-80は、安価ですが8080を使用していません。ND8080は、復刻版キットになっていますが、価格が高い難点があります。

そこで、SBC8080とのコラボでTK-80を実現できないかと考えました。


「復活!TK-80」など、資料を収集し、SBC8080回路図と比較をしました。TK-80のアドレス割り付け、システムタイミングの互換性を保つため、下記の改造が必要なことがわかりました。


・TK-80の8255アドレスをTK‐80マニュアルの記述から、F8-FBに割り当てるため、SBC8080の

 8251アドレスデコーダを流用する

・WAITタイミングは、TK-80と同じ接続ができるように切替ジャンパを追加する

・TK-80では、INTをSTEP動作に使用するので、SBC8080の8251(RxRDY)割り込み出力を切断で

 きるジャンパを追加する

・CPUクロックの水晶を18.432MHzに変更する


さらに、SBC6809ルーズキット製作時の改造項目も実施することにしました。


・EEPROM使用で、EPROM消去不要にできる

・ROMアドレスの分割で、機械語モード付きタイニーBASICやその他BASICを同時書き込みができる

・シリアルポートを115kbpsまで自動切替できる


さて、SBC8080を活用できることがわかったので、TK-80サブボードの回路設計に入りました。設計に当たっては、TK-80がTTLベースでしたが、HCMOSを前提に簡略化を行いました。


・LEDディスプレイのDMAアドレスは、83F8が競合する場合を考慮してFFF8に切り替えられるように

 する

・TK-80では、RESET信号がアクティブ時にLED表示が一桁のみ表示する問題を回避するために

 -MEMRを補正しているが、8255のPC7をHCMOSでプルダウン入力化によって、補正回路を

 不要にし、簡略化する

・LEDの桁ドライブとセグメントドライブのタイミング差による残像表示を解消するため、ブランキング

 期間を追加する

・ゲート数を少なくできる部分は、論理極性を最適化し、簡略化する

・CR部品の種類を少なくしたり、マニュアル通りのタイミングにならないCR定数を見直す


これが回路図(PDF)です。


LED表示関連で特記すべき部品は、基板の幅に合わせ幅40mmの4桁LEDと、ドライブ能力が高い74ACT573(データーバスがTTLの8228でドライブされているが、I<sub>OH</sub>が少なくて済むので74AC573でも可)です。


TK-80サブボードの製作には、蛇の目基板に手配線で行うことにしました。(基板製作もしたいのではありますが)

まず、使用する部品を大まか並べると、SBC8080ボードの大きさに収まらないことがわかりました。次にボード間の接続を考える必要があります。SBC-IOを利用することも考えましたが、デザイン的にしっくりこなかったため、何か良い方法が無いか検討しました。その結果、秋月電子の「ピンソケット 2×20(40P) ラズパイ用スタッキングコネクタ」を見つけました。これなら、用途に応じてスタッキング順序を自由に変えられるため、TK-80サブボードが少し大きくても収まり・デザインが良いとともに、信号確認が容易になります。


下記がイメージ図です。

(再クロール更新:2022/12/22)


SBC6809ルーズキットの製作(中華HD63C09Pその後編)

2018/06/10

 前回eBayで購入したHD63C09P誤マーキング品の代替品が届きました。前回は中身がHD63C09EPでしたが、今回はどうかとドキドキしながらテストしたところ、仕入先を変えたとのことでHD63C09Pとして問題なく動作しました。

誤マーキング品のロットは、「4F1」でしたが、今回は、「4H1」でした。

別途、若松通商から正規品ロット「8B3」を入手しておきましたので、どこに差があるか調べると、

①外観

 中華HD63C09Pは、表面を削ったのち、レーザーマーキングでしたが、若松通商HD63C09Pは、印刷でした。

②電気的性能

 HD63B09PをHD63C09Pにリマーキングしているのではないかと、HD63B09PとHD63C09Pのスペックで差が出ているData Delay Time(t<sub>DDW</sub>)について、確認してみました。スペック上、HD63B09Pは、max110nS、HD63C09Pは、max70nSでしたが、常温で実測すると両者ともに15nSでした。中華HD63C09PのD0は、わずかになまりぎみですが、t<sub>DDW</sub>の有意差がないことから両者ともにHD63C09Pとみなせると思います。


このことから、リマーキングの目的は、入手元(横流元?)をわからなくさせるためにしたのではないかと推測できます。



若松通商HD63C09P(CH1:Q、CH2:D0、CH3:-WE)、Q立ち上がりからD0の立ち上がりがt<sub>DDW</sub>です。



中華HD63C09P(CH1:Q、CH2:D0、CH3:-WE)、Q立ち上がりからD0の立ち上がりがt<sub>DDW</sub>です。


最近は、他の製品もリマーキング品が横行しています。電気的性能が劣るものもあり得るかと思いますので、注意深く確認するしかないと思います。

(再クロール更新:2022/12/22)