TK80/BSの

シンセシステムを復活/拡張したい〜

その52

SBC8080ボードを使った
TK80BS互換機の拡張
I/Fの作製
2020年
5月23日
センタポンチ用のシートを剥がして、レタリングのシートを貼ります。部品の穴はカッタで慎重に開けます。本体の上に乗せて雰囲気を確認します。四隅のガードが厚いので、ケース間の隙間は結構あります。


フロッピエミュレータの固定スペーサは手持ちの物から選び、組み合わせて長さを調整します。フロッピエミュレータが固定できました。


リアパネルの折り返し部分はボードエジェクタ干渉するので、エアニブラで切り取りました。


リアにボードガイドレールを取り付けて、マザーの位置を決めます。4枚のボードを仮止めしてみます。良いようです。


フロント側のボードガイドレール下側をアクリルの廃材から作製します。2mmで溝を入れて4個作製しました。


部品入れにあった、鉄製のプレートで上下のガイドレールを連結します。


フロント側のガイドレールはケースの下側からネジで固定します。


フロントパネルにLEDを取り付けました。少しきつめに穴が開いているので、少し圧力をかけてLEDをパネルに挿入し、エポキシ接着剤で固定しました。90個近くあるので、結構大変です。LEDはMC80+互換部が黄色、テンポ制御の16ステップシーケンサ互換部が赤色です。


5月24日
LEDのリードを曲げてダイナミック点灯用に連結しケーブルを接続します。MC80+部、16ステップシーケンサ部をまとめて40ピンのフラットケーブルネクタに配線しました。


VDPボードアドレス線を配線しました。次回はPSoCのロジックのテストが出来ると思います。



5月29日
VDPボードの続きです。不足している配線を追加します。PSoCのみを実装して動作確認の準備をします。


マルツから購入した部品が届きました。74HC138と30ピンのレセプタクルです。予備のPSoCも購入しておきました。


30ピンのレセプタクルで、8255SC−01を接続するケーブルを作成しました。仮止めしてみます。良いようです。


アナログディスカバリのロジアナでVDPのアドレスデコーダの動作確認を行います。VDPをマップしている7C207C21を簡易ICEでアクセスして確認します。アドレスデコーダの動作は良好です。


その後、VDPDRAMを実装して動作確認しましたが、動作しませんでした。動作確認中にVDPの温度が上がってきたので、本家で動作させて温度を測ると、52℃を超えていました。高温になるのは正常のようです。


5月30日
VDPのデータシートを確認すると、バスのビット0MSBでした。このVDPは元々、TIの16ビットのTMS99xxシリーズで、システム全体でビット0がMSBのようです。今回、DRAM周辺の配線はデータシートを見て配線したので問題なく、影響があるのはデータバスのみです。データはPSoCを介して接続しているので、PSoCのピン入れ替えて、動作するようになりました。


VDPボードに空きエリアがあるので、Am9511(APU)を追加で載せようかと考えています。入手経路は忘れてしまいましたが、少なくとも、当時買ったものではないです。当時は高くて買えませんでした。基本的な使い方と同時の価格はここを参照してください。電源は5Vと12Vですが、5Vは100mA必要です。制御プログラムは新規に作成する必要があります。既存のBASIC内で使うのは難しそうです。変数の格納場所を探してフォーマットも変換する必要があります。因みに、Am9511の下に映っている18ピンの金色のチップはインテルの8008です。


VDPのRAM用にEbayで購入した16KビットのDRAMのMK4116ですが、Am9511を探していて、同じ部品入れで見つけました。購入しなくても良かったです(笑)。スピードグレードでデートコードは81xxなのでアクセスタイム200nの81年製と思われます。ちなみにEbayの方はスピードグレートデートコードは14xxなので150nの14年でしょうか?試しに、古い方に交換してみましたが、問題なく動作しました。


VDPが動作したので、電源+LEDドライブ+SC−01ボードの作製を進めます。テンポ制御にADCを使うので、SARバイパスコンデンサC12のみを残して、ポートに接続されている必要無いコンデンサと抵抗を取り外します。


ボード裏で各電源の配線を追加しました。SC−01の電源は12Vです。


VDPボードが動作したので、ブロック図更新しました。



6月6日
電源+LEDドライブ+SC−01ボードの8x9のLEDダイナミック点灯の配線を行います。チャンネルドライブ用トランジスタを9個実装して完了しました。


簡易ICEからシンセ用の8255をアクセスして8x9のLEDを点灯させ、電流制限抵抗を調整して本体のLEDと明るさを合わせます。


ボード上に電流制限抵抗を9個実装しました。


チャンネル1とゲートに55を出力してみます。動作良好です。


6月7日
手動で8255をアクセスする分には問題なかったのですが、実際にプログラムでシンセに音出しすると、各チャンネルが混ざってしまう不具合が発生しました。本家のMC80+は4000や4500シリーズの遅いロジックを使っています。8255からのアドレスのジッタがPSoCの内部では違うアドレス指定になってしまうためと思われます。チャンネルを分別するLUTにクロックを追加して同期化すると改善しました。


もう一つの不具合はテンポ制御用の16ステップのアナログシーケンサの互換部です。PSoCの4ビット基本カウンタで作りましたが、このカウンタのクリアは同期クリアでした。クリア動作させるためにはクロックが必要です。本家で使っているアナログシーケンサは10ビット/16ビットとも非同期クリアです。別のカウンタで使える物がないか確認します。


まだ、PSoC内のシンセ用のテンポクロックが出ないため、アナログディスカバリのパターンジェネレータでクロックを作って確認します。16ステップのアナログシーケンサの互換部の動作が本家と違いますが、それ以外は動作しているようです。


フロントパネルのLEDの配線は問題ないので、ボードガイドレール固定しました。


シンセと接続する30ピンケーブルを作って、リアパネルに固定しました。次回、ADCでボリューム値を読み取り、16ステップのアナログシーケンサと合わせて、テンポクロックを作成予定です。



6月13日
シンセのテンポクロック用のテストプログラムを作成しました。ADCで読んだボリューム値を4倍して、ダウンカウンタに設定します。


プログラムを実行して、フロントパネルのボリュームテンポクロックが可変できることを確認しました。実際には16ステップのシーケンサのステップボリュームの値からテンポクロックを計算して出力します。必要な周波数は20〜500Hzです。


フロントパネルのボリュームが読めるようになったので、フロッピエミュレータをケースに取り付けます。スペーサを挟んでドライブ#1を固定し、LCDパネルをフロントパネルに固定します。


続いて、ドライブ#0です。同様にエミュレータ本体とLCDパネルを固定しました。上からドライブ#0、#1です。SDカードはラッチタイプではないのでパネルからの突き出し長いです。


フロッピエミュレータの動作確認を行います。動作良好です。LCDのバックライトは少し明るすぎかもしれません。定電流ダイオードで電流を決めているようです。


6月14日
本家のSC−01ボードを参考に簡易回路を起こして、電源+LEDドライブ+SC−01ボードにSC−01の回路を追加しました。本家のSC−01は雑誌を参考に作ったと思いますが、回路図が残っていません。SC−01の手持ちは1個しかないので、本家ボードから抜いて、互換機へ挿して使います。Ebayでもチップは見つからず、入手困難です。右は本家ボードとの比較です。動作良好でした。


SC−01とフロントパネルのLEDドライブ動画を作成しました。テンポクロックのロジックにデューティを50%にする2分周回路が入っているの忘れていて、テンポクロックが1/2になっていました。ボリュームを最大にしても、テンポが遅かったです。約21Mバイトの動画をダウンロードします。


テンポ制御の16ステップシーケンサのクリア問題が残っていますが、拡張I/Fの基本機能が動作したので、VDPボードにAm9511(APU)を追加します。とりあえず、データバス制御線を追加しました。PSoCのピンは2本しか余裕がないのですが、必要なのは2MHzクロックとCPUと同期させるためのREADY制御です。クロックのみPSoCで生成してREADY信号は外部で作成する予定です。


電源+LEDドライブ+SC−01ボードにボリューム用コネクタを追加しました。SC−01の音声出力はリアパネルのボリュームに送ってから戻して、本体のスピーカからゲーム音、キー変換ユニットのブザー音とミックスして出力します。


ブロック図を更新しました。













back