TK-80サブボード基板の製作(基板組立編)
2019.03.16
特に基板に大きなバグもなく無事動作させることができました。初めて基板を起こしたにしては上出来です。

では、組み立て・動作確認をご紹介します。

まずは、部品の調達ですが、部品は、例のごとく、秋月・若松・マルツ・千石を利用させてもらいました。74ACT573、74HC30、74HC93は、少しずつ入手し辛いようになってきた感じです。試作時にLEDの表示が結構明るかったので、R12~R19は、100Ωにしてみました。(好みで調整してください)
部品がそろったら、組み立てです。

抵抗・コンデンサ・ダイオード・FETなど小物をはんだ付けしていきます。なお、基板サイズの関係で、縦型実装と1/8W小型抵抗を使用します。ただし、R21は、1/2Wを使用してください。このR21は、バスコネクタの5ピンがSBC8085ではINTA-に割り付けられているため、使用時に実装してください。SBC8080では、12Vに割り付けられているため、意図せずに接続してもロジック入力を保護するための抵抗です。(仮に連続でも約0.2Wの消費電力になり、少し熱くなりますが、12Vラインへの影響もほとんどありません。)SBC8080のみ使用する場合は不要ですが、SBC8085も切替えて使う場合、丸ピンソケットを使うと切替が容易です。

次に、半固定抵抗・集合抵抗・トグルSW・3.5mmオーディオジャックをはんだ付けしていきます。最後は、コネクタ・ヘッダ・ICソケット・バスコネクタです。

40ピンのバスコネクタについては、SBC8080/SBC8085をすでにお持ちの場合は、縦型ボックスヘッダを使用できます。ただし、両端コネクタ付フラットケーブルにコネクタを追加して、3枚の基板を接続する必要があります。これからSBC8080/SBC8085を組み立てる方は、ラズパイ用スタッキングコネクタをお勧めします。

下記は、基板に実装した縦型ボックスヘッダ+フラットケーブルとラズパイ用スタッキングコネクタです。



次に、ステップ動作用のジャンパ配線が必要です。ピンフレームと線材などで配線をします。

①SBC8080の場合、J4の7ピン、9ピン、11ピンからCPUボードへジャンパ配線が必要です。
・J4の7ピン(INTE)からCPU(8080)の16ピン
・J4の9ピン(CPU_D5)からCPU(8080)の4ピン
・J4の11ピン(STBST-)からクロック(8224)の7ピン
・J4の1ピンと3ピンをショートジャンパでショート
・J4の2ピンと4ピンをショートジャンパでショート

②SBC8085の場合、J4の10ピン、12ピンからCPUボードへジャンパ配線が必要です。
・J4の10ピン(S0)からCPU(8085)の29ピン
・J4の12ピン(S1)からCPU(8085)の33ピン
・J4の3ピンと5ピンをショートジャンパでショート
・J4の4ピンと6ピンをショートジャンパでショート
・R21に、1/2W 220Ωを実装(丸ピンソケットを使うとSBC8080切替が便利)
・基板設計編で問題になったHOLDAに47pFのコンデンサ追加をお忘れなく

SBC8080時の動作確認です。

①SBC8080を機械語モード付きタイニーBASICが動作する状態にします。
②TK-80 SUB Boardの半田状態を確認後、電源5VとGNDがショートしていないことを確認します。
③NE555PのみをICソケットに差し込み、TK-80 SUB Boardをバスに接続後、電源をONにし、
 SBC8080のBASICが立ち上がることを確認します。
④U4(74HC30)、U5(74HC10)、U13(74HC00)を空きにして、8255以外のICをICソケットに
 差し込み、TK-80 SUB Boardをバスに接続後、電源をONにし、SBC8080のBASICが
 立ち上がることを確認します。
⑤SBC8080のROMをTK-80用に交換し、シリアルコントローラ8251をICソケットから外します。
 これは、8251が割り込み(INT)を使用しているので、競合を避けるためです。
⑥8255をICソケットに差し込み、TK-80 SUB Boardをバスに接続後、電源をONにし、LEDに
 「0000 0000」が表示されれば、OKです。

SBC8085時の動作確認です。

①SBC8085を機械語モード付きタイニーBASICが動作する状態にします。
②TK-80 SUB Boardの半田状態を確認後、電源5VとGNDがショートしていないことを確認します。
③NE555PのみをICソケットに差し込み、TK-80 SUB Boardをバスに接続後、電源をONにし、
 SBC8085のBASICが立ち上がることを確認します。
④U4(74HC30)、U5(74HC10)、U13(74HC00)を含み、8255以外のICをICソケットに
 差し込み、TK-80 SUB Boardをバスに接続後、電源をONにし、SBC8085のBASICが
 立ち上がることを確認します。
⑤SBC8085のROMをTK-80用に交換し、シリアルコントローラ8251をICソケットから外します。
 これは、8251が割り込み(INT)を使用しているので、競合を避けるためです。
⑥8255をICソケットに差し込み、TK-80 SUB Boardをバスに接続後、電源をONにし、LEDに
 「0000 0000」が表示されれば、OKです。

上記で問題があれば、はんだ付け状態の再確認、部品の数値、ダイオードやICの向きの確認などを行います。あとは、キーボードで、モードSWとRUNキーでステップ動作など、個々に機能確認します。

次にCMTインタフェースについてです。CMTインタフェースは、JP2および、JP3を半田でショートさせると8255と接続されます。(オリジナルでは、オプション)

ただし、オリジナルのTK-80では、クロック周波数が、18.432MHzでWAITが1サイクル入っていますが、BC8080の場合では、18MHz、WAITが入っていませんので、CMT等で使用している遅延サブプログラムの時間が若干短くなってしまいます。SBC8085では、さらに高速化されています。

このため、CPU周波数検出のため、JP4を設けました。検出には誤差が出ますが、1MHz単位程度の検出ができるのではないかと考えています。TK-80 SUB Board用のパッチを作成して、CPUの判別、CPU周波数などを電源投入時に表示し、併せて遅延サブプログラムの自動調整を行いたいと考えています。同時にCMTインタフェースの動作確認をしていきたいと思います。

下記は、SBC8080と組合わせた動作中のようすです。



下記は、SBC8085と組合わせた動作中のようすです。



下記は、SBC8085と組合わせた動作中で、スタックの上段に積んだ場合です。



下記は、SBC8085と組合わせた動作中で、TK-80 SUB Boardの拡大です。



TK-80サブボード基板の製作(基板到着編)
2019.03.05
2/16に基板を発注しましたが、結構早く基板が到着しました。
メールで下記のようなチェックポイントが報告されました。

2/16 スイッチサイエンスにガーバーデータをアップロードし基板を発注
2/17 Seeedの工場への製造依頼
2/17 ガーバーデータ確認開始
2/20 基板の製造開始
3/1  基板を中国から日本に発送
3/4  スイッチサイエンスから基板を発送
3/5  到着

今回10枚の基板を発注しましたが、下記は、その一部の基板たちです。



部品面の様子です。



半田面の様子です。



まず、部品の位置・寸法を確かめました。
①基板の取り付け穴、バスコネクタの位置は、SBC8080とぴったり一致しました
②部品のパターンを作成したトグルSW、3.5mmステレオジャックは、問題なく部品の挿入ができました

初めての基板製作を思い立ち、KiCadを触りだして約1ヶ月、その後基板を発注してわずか17日で手元に届きました。その昔、基板を手作業で設計して製品化していた時代とは隔世の感があります。

ほっと一息ですが、次は、組み立て、基板のデバッグに入ります。バグがなければ良いのですが。。。


TK-80サブボード基板の製作(基板設計編)
2019.02.14
次は基板設計です。今回初めてですが、トランジスタ技術等で紹介されている内容を参考に進めました。まず、CADの選定ですが、①無償であること、②10x12センチメートルの基板設計ができることより、KiCadを採用しました。

初めての基板設計ですので、勝手がわかりにくいところもありましたが、これまで色々な基板を見てきた経験から、それなりの基板ができそうです。

①回路図入力

今回、SBC8080/SBC8085切替対応とするため、下記の対応を行いました。

・SBC8080用のステップ動作割込み信号の生成部をSBC8085と類似した回路に変更する
・SBC8080/SBC8085切替は、ジャンパーヘッダー切替と、ロジックICの追加で行う
・SBC8080の12Vライン誤接続の保護回路を追加する

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

②基板レイアウト

まず、特殊部品(LEDディスプレイとトグルSW)の類似フットプリントをRSコンポーネンツから入手し、編集後、使用しました。

トランジスタ技術の記事(DVD)を参考にしながら、スイッチサイエンスのSeeedプロジェクトに対応した基板設計ルールでレイアウトを行いました。部品がつめこみ気味になったので、配線の引き回しと、ベタアースの配置バランスに手間がかかりました。

下記が、概略の基板レイアウトです。



下記は、基板の3D表示です。



ガーバーデータを抽出し、これから、発注する予定です。
基板到着には、春節の関係で、1ヶ月以上必要なようですので、気長に待ちたいと思います。
ただ、そのまま組み立ててうまく動作するか、寸法のミスや部品同士が当たらないかなど、どきどきです。

TK-80サブボード基板の製作(SBC8085ルーズキット対応編)
2019.02.12
積み残しになっていたTK-80サブボード基板の製作にチャレンジすることにしました。
その前段階として、バス互換のSBC8085ルーズキットに対応してみました。8085を採用したTK-85がありますが、マニュアルが入手できませんでしたので、紹介しているホームページを参考に仕様の確認をしましたが、

・2.4576MHzクロックで8085を使用している
・ROM:2Kバイト、RAM:1Kバイトに拡張されている
・CMTインタフェースが含まれている
・LED表示の「0」が縦長表示になっている
・モニタコマンドが拡張されているようであるが、詳細は不明である

そこで、無理してTK-85を目指すのではなく、SBC8085でTK-80を実現することにしました。

①SBC8085ルーズキットの製作とTK-80サブボードの動作確認

SBC8085がバス互換であるので、大半は、SBC8080対応のTK-80サブボードを流用できそうでしたので、まず、SBC8085の組み立て後、機械語モード付きタイニーBASICを動作させましたが、問題なく動作しました。

次にTK-80サブボードを接続して、TK-80モニタを動作させると、困ったことにLEDの表示が消えたり、キーボードを接続しなくてもキー入力動作になったり、誤動作しているようですが、暴走まではしていないような感じでした。

8255の動作がおかしくなっていると思われるので、オシロで信号波形を確認しましたが、異常な波形やグリッジなどは、発見できませんでした。そこで、LEDが消える瞬間(8255のPC7信号がhighからlow遷移)を確認したところ、-IOW信号の立ち上がりが非常に鈍っていることを見つけました。この現象は、HOLDA信号直前で起こっていましたので、74HCT257の-IOW信号出力がhighになりきらないうちにHOLDA信号で3stateになったようでした。

SBC8080では、8288が何らかの対策をおこなっているかもしれません。8085のスペック上、-WR信号と同時にHOLDA信号が出ているはずですが、74HCT257の遅延との関係でうまくいかない可能性があります。TK-85でどのようにな回路になっているのか定かではありませんが、本来、HOLDA信号は、DMA遷移のため早めに出力されて、DMAコントローラ(例えば8257)で最適な遅延でバス切替を行うように使用するようです。従って、HOLDA信号を適度な遅延をおこなえば、問題を回避できるかもしれません。

そこで、20nS程度遅延させるため、HOLDA信号に47pFを追加してみました。問題なくTK-80サブボードが動き出しました。下記は、HOLDA信号を遅延させ、-IOW信号の問題が回避できた時の波形です。HOLDA信号の遅延によって、-IOW信号(上側)の立ち上がりがHOLDA信号(下側)の立ち上がり開始に対して約16nS遅延していてもしっかり立ち上がっています。




また、8085の-RD信号、-WR信号、M/IO信号は、HOLD期間中に3stateとなるので、今回は74LS257ではなく74HCT257を使用したため、フロート回避のプルアップ抵抗(4.7K)を追加しました。


②SBC8085用ステップ動作割込み信号生成部の試作

SBC8080とSBC8085では、CPUからの信号が異なるため、ステップ動作を行うための割込み信号の生成部を変更する必要があります。

SBC8080の場合、INTE信号がhighになった後、2命令目のフェッチでINT信号をhighにして、INTE信号がlowでリセットしています。SBC8085の場合、INTE信号がありませんので、EI命令のフェッチを検出した後、2命令目のフェッチでINT信号をhighにして、-INTA信号がlowまたは、RES信号がhighでリセットすることにします。これでソフトウェア完全互換性が保てます。

下記がSBC8085用ステップ動作割込み信号の生成部回路です。




下記は、HOLDA問題対応とステップ動作割込み信号のためのS0、S1信号取り出しを行った、SBC8085ボード裏側と表側です。





下記は、TK-80サブボードにステップ動作割込み信号ドーターボードを追加して、SBC8085でステップ動作ができるようにしたようすです。

- CafeNote -