ミニMIDIキーボードその後

ミニMIDIキーボードの件でMIDI回路について調べてみたので報告。
MIDI Outの回路としてよく見られるのは次のモノである。

ところが実はこの回路、TTL時代に作られたものなのでマイコンなどの出力はLで出力されることを考えられているみたいである。今やC-MOS当たり前であるので、負論理で作る必要はなく、5ピンをGNDに落として4ピンを正論理で動作させてもよいはずである。
しかし実際、WebにアップされているMIDI Outの回路はほぼ100%の確率で上記の回路である。私もミニMIDIキーボードを作るにあたり同様の回路になっている。
ここで、ミニMIDIキーボードの投稿でも話題になっているのだが、電源ON時のときの動作についてちょっと気になることがあったので調査してみた。というのも、電源ONになったときマイコンの出力がどうなっているかというものだ。PICでは、電源ONの時は入力モードになっており、このような接続ではH/L不定である。実際MIDIはカレントループなので、入力モードではほとんど電流が流れないため大丈夫だと思ったのだが、試してみることにした。そこで、フォトカプラPC-900VでMIDI In回路のみを作りロジアナでフォトカプラのLEDが点灯しているかどうかしらべてみたところ、点灯している事実は観察されなかった。しかし、私のプログラムでは出力モードに切り替えてから内蔵USARTの設定をしていたので、設定するまでの間パルスが出てしまっていた。これは、マイコンの出力だけを見ていたのではわからなく、トータル的に見ないと気がつかなかった。
つまり、電源ONと同時に4ピンが5Vになり、5ピンは入力モードなのでパルスは出ない、その後PICの初期化時に出力モードに切り替えたとたん、5ピンがLになり、USART初期化でHになるのでこの間がパルスになる。データとしては0x00を1個送ったことになる。最初の1音が出ないのはこれがエラーデータとなるためだと推測される。
プログラムを出力に切り替える前にHにしておけばパルスは発生しないのでエラーデータの出力を止めることができた。
今回はマイコンの出力だったのでプログラムでどうにかなったが、ゲートで組んだ場合は電源ONのタイミングでゲートがHにならないと極小のパルスを発生させてしまうだろう。TTLの出力では抵抗などでHになるのがデフォルトなので電源ON時の出力が安定するまでの過渡期でもHのままのはずでパルスが出ることはなかったのだろう。
そういう意味では、そろそろMIDIの回路も見直しの時期にきているのかもしれない。ただ、パルスが出たとしても0x00かパルスが長くなってもせいぜい0x80で、無効データかNOTE OFFなのでそこまで神経を使う必要があるかについてはわからないが。
その前に、MIDIの必要性もかなり薄くなっているのも事実だけど・・・・。

  1. 書いたあとで気がついたのだが、MIDI Inで4ピンを電源として取っている不届きなモノがあるかもしれない・・・。そういう不届きなモノは正論理でやったら動かないな。

コメントを残す

以下に詳細を記入するか、アイコンをクリックしてログインしてください。

WordPress.com ロゴ

WordPress.com アカウントを使ってコメントしています。 ログアウト / 変更 )

Twitter 画像

Twitter アカウントを使ってコメントしています。 ログアウト / 変更 )

Facebook の写真

Facebook アカウントを使ってコメントしています。 ログアウト / 変更 )

Google+ フォト

Google+ アカウントを使ってコメントしています。 ログアウト / 変更 )

%s と連携中

%d人のブロガーが「いいね」をつけました。