TK80/BSの
シンセシステムを復活/拡張したい〜
その51
SBC8080ボードを使った
TK80BS互換機の拡張I/Fの作製
2020年
4月28日
連休に入りました。フロッピエミュレータはケースに入れることを考えてLEDとスイッチ、LCDパネルをアングルに改造します。LCDは延長ケーブルを作製して取り付け向きを変えます。
拡張I/F用のマザー用ベース板を作製しました。1.2mm厚のアルミ板に穴を開けて裏側からストレンリリーフで固定できるようにします。
4月30日
バッファ+シンセ用の8255ボードの配線を進めます。
5月1日
バッファ+シンセ用8255ボードのアドレスデコーダ部の動作確認を行います。マザーのデータバスバッファのイネーブルと8255をマップしている7C0x番地のアドレスデコーダをテストピンとして外部に出力します。
PSoCの余分な0.1uのコンデンサを外して、丸ピンのオスオスを半田付けしておきます。
テストピンを追加したロジックをPSoC書き込んで、アナログディスカバリのロジアナで動作確認します。アドレスデコーダが間違えているようで、7C0x番地の選択信号が出てきません。
74LS139相当のLUTのテーブルが間違えていました。前段は正論理でした、テーブルを修正します。負論理シンボルが無いのが間違えの元です。
テストピンに選択信号が出力されたので、8255を実装して簡易ICEからライト/リード確認を行います。各ポートに書き込んだ値が読めるようになりました。
PSoCのKitProgは100円ショップのリール式USB延長ケーブルが便利です。ケーブルが細くて柔軟性があるので、取り回しが楽になります。
8255がアクセスができるようになったので、外部コネクタに配線を追加します。とりあえず7C08〜7C0Bにマップしているシンセ用の8255の方だけです。
シンセに接続して動作確認します。まだ、フロッピは動いていなので、簡易ICEからシーケンサプログラムをロードして音出しの確認を行います。問題なく動作しました。
バッファ+シンセ用8255ボードには別の8255(7C0C〜7C0Fにマップ)が実装できます。既存でVotraxのSC−01という音声合成チップの制御プログラムがあり、手持ちの8255を確認したところ、NECの71055(C−MOS)のみでした。新旧のDC特性を確認しておきます。
NECの旧8255(N−MOS)のDC特性です。
新しい71055(C−MOS)のDC特性です。VIHが2Vから2.2Vへ、VOHが2.4Vから3.5Vに変更になっています。バスはHCT245でドライブしているので問題無さそうです。
5月2日
拡
張I/Fのケースには本家のMC80+と同じLED表示する予定です。MC80+はスタテック表示ですが、今回は
パネルへの配線を減らすため、ダイナミック表示する予定です。PSoCのロジックでこれを作成してみました。8チャンネルの音程8ビット+ゲートの合計9バイト(8*8+8=72個)のラッ
チ、その他マルチプレクサ、アドレスデコーダx2、カウンタで読み出してダイナミック点灯します。
動作確認は後回しにして、ロジックの使用量を確認しておきます。約57%で、まだ余裕があります。結構な容量が入ります。ピンの方が残り少ないです。
5月3日
PSoCのポートは0.1uのコンデンサの他にも別のコンデンサが付いていました。特に2200pは早い信号では取り外す必要があります。この日から連日FDCボードの調整と動作確認を行いました。
拡張I/Fのケースに取り付けるLEDを購入しました。赤、緑、黄、青、白の80個入りですが、特に黄と緑は輝度が低くかったです。9分周のダイナミック点灯なので、比較的明るいLEDが必要です。
5月5日
3日から5日にかけてFDCボードの調整と動作確認を行いました。バッファボードのデータバスバッファのイネーブル条件などが間違えていて、修正してフロッピが動きました。本家の拡張I/Fに接続したフロッピでは動作するので、動作を比べれば不具合箇所が分かります。連休中に動いてよかったです。
現状ではフロッピエミュレータ(3.5インチフロッピの信号を使用)専用ですが、今後8インチも接続できるように、ICと50ピンのコネクタのスペースは取ってあります。
Ebayで購入したVDP用のDRAMが来ました。モステックの16KbitのMK4116です。10個購入しました。
5月6日
フ
ロッピエミュレータを2ドライブにします。当初PSoC内に組み込んだ74LS74相当のD−FFが勝手にクリアされてしまい、動作しななったのですが、リ
セット信号にノイズが乗っていることが分かり、対策して2ドライブ構成で動作するようになりました。現状はまだ片面のみ対応です。8インチのフロッピドライブには両面メディアが入っているというステー
タス信号があり、これを判断してサイド1が選択された時に、片面メディアが入っている時はμーDOSでエラー表示させています。フロッピエミュレータにこの
信号は無く、現状ではサイド1を選択すると、必ずエラーになります。
Ebayで購入したVDPのTMS9918はシンガポールで登録された後、全く動きが無いのですが、VDPボードの作製を開始しました。DRAMは3電源のため、バイパスコンデンサも3倍必要です。このボードもアドレスデコーダにPSoCを使う予定です。
下のボードは予備ボードです。ボードに12V入力、+−5V出力の電源ユニットを実装します。DCジャックから12Vを入力して、12Vと+−5Vをマザーへ出力します。空きエリアにはVotraxのSC−01音声合成チップとシンセのMC80+互換のLEDダイナミック表示用PSoCを実装する予定です。この時点でもう予備ボードじゃないですが(笑)。SC−01は色々と探しているのですが、Ebayにも無く入手困難です。アメリカではピンボールマシンに入っているようで、リペアパーツとして取り扱いがあるのですが、現在は在庫無しになっています。
5月9日
輝度の低かった黄色LEDを買い直しました。前回、輝度の高かった青、白と同じくらいの明るさです。
VDPボードの裏側には電源の配線をします。
パーツボックスからN−MOSの8255が2個出てきて、合計で3個になりました。ただ、1つは?が書いてあるので、壊れている可能性もあります。
省電力のために、バッファ+シンセ用8255ボードの8255をC−MOSの71055に交換して動作確認します。
本家のSC−01音声合成ボードを互換機のマザーに挿して7C0C〜7C0Fにマップした8255にケーブルで接続します。新旧のマザーはサイズとピン配置は同じでなので、本家のボードは互換機に接続することができます。すでにフロッピが動いているので、プログラムはファイルを探してロードするだけです。
本家のSC−01ボードが鳴りました。クリックすると約5MバイトのMP4動画ファイルをダウンロードします。
続いて、シンセの音出しも確認しました。動作良好です。2つの8255を71055に変更して動作確認ができました。
本家のVDPボードで動作確認を行います。当初、マザーボードのコネクタの接触不良で動かなかったのですが、ピンを研磨して動作するようになりました。これで拡張I/Fのシンセ、SC−01、VDPの3つが動作しました。後は互換機用に新ボードを作製するだけです。
5月10日
VDPボードの配線を進めます。DRAM周辺の配線はほぼ終了しました。残っているのはマザーとPSoC、VDP間のバス配線です。PSoCボードは全部使ってしまったので、追加で購入しておきます。
TK80BS互換機の本体と拡張I/Fのブロック図を作成しました。グレーの部分は未完成です。
5月16日
マルツ経由で購入したタカチの拡張I/F用のサイズフリーのアルミケースす。サイズは互換機本体と同じ、W240xH140xD300です。高さが140mmだと基板上部のフラットケーブルにストレンリリーフを付けると、ギリギリでカバーが閉まらない計算です。完成してしまえば、アクセスしないので、外観を優先して本体と同じサイズにしました。
QCADでフロントパネルのセンタポンチ位置とレタリングを作成します。フォントは本体と同じWestminsterです。インクジェットで紙に印刷してフロントパネルに合わせてレイアウトを確認します。良いようです。
本
体と合わせてレタリングの図面の確認をして気がついたのですが、本体の綴りが間違えていました(泣)。修正したシールシートを作るのは簡単なのですが、これをフロント
パネルに貼り直すのは難しいです。なぜなら、シートを貼るー>シートに部品用の穴あけるー>部品の取り付けという順番になっているからです。すでにLEDがパネルに固定されている状態でシートを貼ることはできません。パネルに固定されているLEDを取り外す必要があります。簡単には”el”の部分だけを切り取って切り貼りするという手もあります。
こちらは秋月から購入のPSoCとコネクタ、コンデンサなどです。
フロッピエミュレータのLCDをパネルに固定する枠の図面をQCADで作成し、レーザ加工機で2mm厚のアクリルから切り出します。
切り出した固定枠に2mmのタップを立てて、LCDを仮り止めしました。
センタポンチ位置のシートをレーザプリンタで印刷し、フロントパネルに貼って千枚通しでポンチを打ちます。
5月17日
電源予備ボードに8255と接続するコネクタとICソケットを仮り止めしました。ケース内の配線の取り回しの関係で、8255のコネクタは本家の位置から変更し、左側がSC−01用、右側がシンセ用にします。ICソケットは左側がSC−01、右がフロントパネルのLCDドライブ用のPSoCです。フロントパネルへの配線を計算しておきます。9x8のダイナミック点灯で17本、テンポ用の16ステップのアナログシーケンサ互換が16本、テンポクロックが1本で合計34本必要です。
3mm径のLED穴を89個開けた後、上側のフロッピエミュレータ用のパネル加工を行いました。角穴はドリルで周囲に穴あけした後、金ヤスリで仕上げます。フロッピエミュレータを仮り止めして確認します。問題ないです。
続いて下側のフロッピです。ヤスリの角穴加工は力仕事で時間がかかります。こちらも問題ないです。
リアパネルの加工も行います。上からシンセ用の30ピンコネクタ、本体と接続する拡張I/F用の50ピンアンフェノール、テンポ制御用ミニDIN、DCジャックとVDP用RCAコネクタです。QCADで図面を書いてインクジェットで印刷し、両面テープで貼ってポンチを打ちます。角穴はフロントパネルと同じく、ドリルで穴あけした後、金ヤスリで仕上げました。SC−01の音声出力はミニDINで本体へ戻してゲーム音とミックスします。次回、レベル調整用ボリュームを追加します。
5月21日
左は以前作成した、拡張I/FのフロントパネルのMC80+互換部のLEDダイナミック点灯のPSoC回路です。これに右のテンポ制御用の16ステップアナログシーケンサ互換部を追加しました。ADCを使ってボリュームの値を読み、TK80のキースキャン用の8255のPC0/1で設定された16ステップ値から、PSoC内のプロセッサを使ってシンセのテンポクロックを出力します。16ステップのLEDをそのまま外部に出すとPSoCのピンが足らないので、4ビットで出力し、外部の74HC138で16ビットに戻します。本体と同様に拡張I/FのLEDもPWMで輝度調整します。
リソースを確認しておきます。UDBが64%、ピンは48ピンの内42ピンが使用済みです。
ピンを配置します。PSoCはほぼ、自由にピンが配置できるので、配線が短くなるようにします。ただ、今回はSAR−ADCを使うので、コンデンサを1つ接続する必要があり、P02は信号線としては使えません。