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日で手元に届きました。その昔、基板を手作業で設計して製品化していた時代とは隔世の感があります。


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

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

TK-80サブボード基板の製作(基板設計編)

2019/02/14

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


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


①回路図入力


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


・SBC8080用のステップ動作割込み信号の生成部をSBC8085と類似した回路に変更する

・SBC8080/SBC8085切替は、ジャンパーヘッダー切替と、ロジックICの追加で行う

・SBC8080の12Vライン誤接続の保護回路を追加する


これが<a href="/jr2xzy/doc/TK-80-SUB_pcb_sch.pdf" target="_blank">回路図(PDF)</a>です。


②基板レイアウト


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


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


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



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



ガーバーデータを抽出し、これから、発注する予定です。

基板到着には、春節の関係で、1ヶ月以上必要なようですので、気長に待ちたいと思います。

ただ、そのまま組み立ててうまく動作するか、寸法のミスや部品同士が当たらないかなど、どきどきです。

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

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でステップ動作ができるようにしたようすです。


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