Cyclone IIとNucleoの和音MIDIインタラプタ
※もっと良いの作りました:https://eleken.jp/archives/3123
お久しぶりです。さなたかです。タイトルの通りです。
以前タマゴさんの記事でもありましたが、もうちょっと初心者にも手軽に作れるように市販の評価ボードを使ってつくりました。本当はNucleoだけで作るつもりでしたがFPGAと併用したほうが楽だったので。(手抜き)
回路構成はNucleoでMIDI(シリアル)を受信し、ノートナンバー(パラレル)、発音ステータス、データ書き込み信号をFPGAに送信。FPGA側は音程に対応した128個のオシレータを受信したノートナンバー、発音ステータスに応じて出力に繋いでいます。全鍵盤発振方式のシンセみたいな方式ですね。まぁよくわからんと思うので気になる人はソースコード読んでください。
https://github.com/sanataka/FPGA-Polyphonic-MIDI-Interrupter(アカウント削除に伴い公開終了しました。)
コンパイル済のファイルを落としてきて書き込むだけで使えるはずなので細かいことは省略します。同時発音128音、ノートナンバー128まで対応させていますが、DRSSTCに繋いでやると高確率で焼損すると思うのでご注意ください。チャンネルセレクト、ピッチベンド、ベロシティ、ドラム等は未実装です。要望があれば改良するかもしれないですがあんまり期待しないでください。
かなり消費電力が大きいのである程度強い電源じゃないと動きません。7805使ってたらサーマルプロテクトで落ちました。
出力電圧レベルは、レベルシフタを入れるのがめんどくさかったので3.3Vです。ノイズ対策としてテスラコイル側にフォトカプラを入れてるのでこれで問題ないですが、ロジックIC直結の場合電圧レベルが不足する可能性があるので工夫してください。
Nucleoを5V外部電源で動かす方法についても書いておきます。出荷時の状態だと基板裏面のSB9に0Ω抵抗がついていますが、それを外してください。そうすれば動きます。これはST-Linkからマイコンにリセットをかけるための配線ですが、改造せずに5Vピンから給電するとST-Linkには給電されないので常時リセットボタンが押されているような状態になって起動しません。回路図を見るとわかりますが、これを開放すれば動くようになりますが、書き込み後に自動でリセットがかからなくなります。手動でリセットしてください。