15年の間をあけて完成(注:完成してない)
2021.09.19
MSX用SPDIFカートリッジの作成
ってのを15年ほど前に作って放置されてたんだけども、今更になって続き作ってみました。
※にがさんの影響

というわけで、初めて基板外注というのをしてみました。
中華業者なので、送料と輸送時間がネックだけど、それでも2週間程度で送込みで2000円ちょっとで10枚作れる感じ。
結構お安いですので、配線多いものとかはボード作った方がいい時代かなと思いました。
ちなみにエッチング基板とかも実はやったことありませんので、穴あき基板でひたすらジャンパするような基板しか作ったことありません。

出来上がった基板がこちら。値段変わらないので無駄に10枚も作ってしまいました。


組み立てて強引にケースに入れた(といいつつ入ってない)のがこちら。

まあ試作だし見た目は適当で。

15年前と違い、FPGAの容量もかなり余裕があるので、出来上がったものとしては、
・Xilinx XC3S250E搭載(注:15年前からありそう…)
・カートリッジ内でスロット拡張
・1MByteのSRAMを搭載してゴールドキャパシタでバックアップ
・似非SCC-RAM互換のSCC
・OPLLはVM2413使用
・MSX-RS232C HW上位互換のUART(MAX 460Kbps)
・OPLLとRS232C用のBIOS
・メモリーマッパー(MSX1対応)
・FPGAとMSXのI/F(3.3V←→5V)はきちんとレベルシフタIC使用
が乗ったコンボカートリッジになりました。
FPGAはマルツのMFPGA-SPAR3Eというボードをそのまま載せてます。
物理的に無駄にでかいですがロジック的にやりたいことはできてます。
レベルシフタは実は直列抵抗だけでも問題なく動くはずなのですが、「やってみたかった」というだけで実装してます。無駄に高コストです。

本来DOS2はMSX1で動かないんですが(メモリーマッパー規格がそもそもMSX1対応ではない)、セグメントレジスタをHWリセットで初期する構造であればMSX1でも動くので、DOS2の機種ID判定を潰すとMSX1でもDOS2が走ります。

なので、MGSPとかを使うと、MSX1単体でMGSの再生ができて、デジタルオーディオ出力なのでノイズ皆無な再生とかできます。
VM2413の再現度はかなり高いと思いますが、ノートオン時の音が違うような気も・・・。もしかするとXilinx用に特化させたときに何かミスった可能性もありますが。

UARTは、HW的にそこそこ大きな受信バッファを持たせたので、高速でも安定して受信できます。
IOレベルでMSX-RS232C互換で、24倍速モードを持たせてあるので、高速モードにして、ソフト的に19200bpsモードにすると460Kbpsになります。
フックを乗っ取って画面表示をUARTに転送するのと、タイマ割り込みで受信データをキーバッファに詰めておくことで、疑似的にtelnetのようにリモートアクセスができます。
ファイル送信も可能なので、Windows PCでコンパイル→MSXに転送→MSXで実行、が(IO直接アクセスでキースキャンしない限り)MSXに触ることなく可能で、クロスコンパイル開発環境でとても便利です。




15年前から(?)作りたかったものなので、(見た目はともかく)入れたい機能全部入れて動くものができたので満足。

ソースコードの配布ってしていいものなのかよくわかりません。VM2413以外は全部自分で書いたコードですが、VM2413はXilinx用に手を(かなり)入れてるので。うーん。
2021.09.19 00:27 | 固定リンク | MSX | コメント (0)

- CafeNote -