Important changes to repositories hosted on mbed.com
Mbed hosted mercurial repositories are deprecated and are due to be permanently deleted in July 2026.
To keep a copy of this software download the repository Zip archive or clone locally using Mercurial.
It is also possible to export all your personal repositories from the account settings page.
You are viewing an older revision! See the latest version
Homepage
さらに今更、SC-88ProにS/PDIFを付けよう¶
ある日倉庫を掃除していると、古い5インチフロッピが出てきた。NIFTY serveからダウンロードしたものを保管していたものだった。聴き専ではあったが、FMIDIからダウンロードした、とても懐かしいデータであった。 ところがSC-88とSC-55は最近処分したばかり。インターフェースもない。何とかして再び聴いてみたいものである。DOOM musicもmp3じゃなくて実音源で聴いてみたくて仕方がなくなった。
ヤフオクで探すとSC-88proは5漱石くらいから落札できるようだ。ぉッチしながら88proのことを調べていると、デジタル出力改造している方がいらっしゃる。もうすでに前世期から。 古くはToshiba TC9231、近年はTI DIT4192を使用するようだが、いずれも88proネイティブの18bit nativeの扱いは工夫が必要らしい。今からやるなら、 1.TI DIT4192をハードウェアモード、シフトレジスタで24ビットに 2.Asahi KASEI EMD AK4103Aはハードウェアモードで18bitをサポートしている 3.DIT4192をソフトウェアモード、マイコンで動作モード設定
1に関しては2個ほどロジックICが必要であるし、先達と同じことをするのは面白くないので後回し。まずは2をチャレンジすることにした。AK4103Aは秋月や共立などでは販売していない。Digikeyにはもちろんあるのだが送料がネック。ところが、MISUMI-VONAで取り扱いがあることが分かった。個人向け扱いはないようだが、本業にOpen Source Software事業部をでっち上げてオーダーしてみた(ごめんなさい)。驚いたことに1漱石以下なのに送料無料で届いてしまったのである。
さて届いたAK4103 Synchronousモード(ハードウェアコントロール)で秋月の変換基板上に組んでみたのだが、音が出ないことがる。それも5回に4回ぐらい orz 素人なりに色々試したが、88proとの相性の問題と判断した。
次はDIT4192である。これはRS componentsに、我らがOSS事業部に購入依頼した。Amazonにオーダーした中華Arduino Nanoが届くまでに回路をくみ上げ、これもまた秋月の変換基板を利用して組み上げた。DIT4192は安定して動作した。DIT4192が一つ余ったので、みんなと同じく、やっぱり+VとGNDをショートさせて壊してしまったので、それからはがしたATmega328P 32-pin TQFPを再利用、ChaNさんのUEWを使った表面実装を試してみた。これもうまく動いた。
SC-88proのデジタル出力改造については「今更SC-88ProにS/PDIFを付けよう」 http://www7a.biglobe.ne.jp/~naopy/av.html を大変参考にさせていただいた。文章もとっても好みw 復習のつもりでよーく読んでいたら、「出来る人は全てワンチップのマイコンでSPDIFに変換したり」と書いてある。できるかな? 調べると、シンセアンプラグド http://d.hatena.ne.jp/pcm1723 という(stm32で何かしようと調べるといつも引っかかる、とても参考になるサイト)サイトで、PSoC5LPやSTM32F4で作成されているようだ。頑張って読むのだが、高度すぎて、なるほど、わからん。
やるのは、256fsのクロックで32kHz周期でシリアル送信されてくるデータを受信して、SPDIFのデータに変換して、出力するのを繰り返すこと。マイコンのSPIで送受信できそうな気が… 正確さを必要とするSPDIFのクロックはどうしたらよいのか… DIT4192の場合、88proから引き出したBCLKをSCLKとMCLKに繋いだが…
エウレーカ!
・88proに光出力を付ける場合も、88proから引き出したBCLKをSPDIFのクロックに利用すればいい! ・SPIはslave full-duplexモードにする。BCLKに同期して受信と送信を同時に行ってくれる ・SPIはDMAを使う ・SPIの入力側は、1/2フレーム間に128 clkで送信されてくる。(18bit, right justified, MSB first) 。SPIの出力側は、1/2フレーム間に32bit送信すればいい。Biphase Mark Codeで必要ビットは2倍になり64bit。128clkで64bitを送信するためには、ソフトでデータを2倍に引き延ばせばいい。
マイコン工作、MBEDから長らく遠ざかっていたのだが、貧乏人のMBED、Nucleoを引っ張り出してきた。白いから目立たないがほこりをかぶってるw Nucleo F411REならできるはず、いい娘ちゃんだもんね。 ところがだ、Nucleoちゃんはデカい、88proに入らん。小さいNucleoを買おうかと思ったけれども、AmazonでSTM32F103の0.35漱石位のボードが売っていて、中国から送料無料で届くと。そしてNucleo F103RBとしてコンパイルできるらしい。
さらにボンビーぽくていいじゃないか。 やってみるべ。
中華bule pillだし全然MBEDじゃないけど、開発はNucleo F411REで行いました。STMさん、MBEDさん、ありがとう。
SPIDIF出力
上から 配線引き回しに無駄が多いが、いろいろあれこれ作って取り付けて外して繰り返した後なので…
光コネクタへの配線はここから通した
リアパネルにタカチ電機工業 SW型 プラスチックケース 黒, 40 x 30 x 20mm を筐体のビス2本で固定。光コネクタは横向きに
STMF32F103 割り込み処理部分の負荷率(割り込みのlatency除く) 20.8%。F411REだとその半分。違いはなに?
信号引き出しはここから。コネクタからとってもいいが。カスタムICの出力が直接つながっているビア。一応抵抗入れておいた。
祭りの後…
※仕組み上、LRCKとSPIを常にシンクロさせることができません。数時間聴いていても大丈夫そうですが、ヘッドホンからぴーぎゃー聴こえてきてもご勘弁。