XIAOをMIDIインターフェースにしてみる:その3 MIDI機器からの受信テスト(また頓挫)

Arduino/SAMDMIDI,SAMD21,TLP2366,XIAO,論理反転

前回MIDIケーブルの端子がタヒんでおりましたが、MIDIコネクタ(オス)を何とか用意できましたのでこれを使ってコネクタを作ります。

MIDIケーブルコネクタの交換

XiaoMidiIF_fromKB01

MIDIコネクタについているこのツメっぽい部分。

これを押し込みながら前に抜いてやると外れる様です。

XiaoMidiIF_fromKB02

結構グイっと押し込まないと外れてくれませんでした。

XiaoMidiIF_fromKB03

なんか真ん中からぱかーんと割れるみたいです。

ピンが付いている部分は挟んでいるだけ。

これ上下のハウジングははんだ付けしなくてもいいのかしら・・・

さてケーブルですが、2芯ツイストペアなシールドケーブルも持ってませんので、先日錆で氏んでいたMIDIケーブルをぶった切って使います。

XiaoMidiIF_fromKB04

コネクタのハウジングを抜いてみると、これもパッカーンと割れましたので、上下のハウジングは密着してなくても良さそうですね

XiaoMidiIF_fromKB05

結線を見ると、シールドを含め5本フル結線でした。

配線の方をテスターで導通を確認すると全て1~1.1Ωでしたので、ケーブルの方はまだ大丈夫でしょう。

ひとまず赤ケーブルを参考に、ささっとはんだ付けしてしまいます。

SOP6に足をつける(TLP2366 SOP6)

sop6は足が細いので、錫メッキ線に0.4mmを使いました。

XiaoMidiIF_fromKB06

うん、、無理w

根本と足先の抵抗値を見てみましたが、特に問題無さそうなのでとりあえずショートが無ければこれで・・・

根本から折れそうなのはひとまずキニシナイ

変換基板買えYo・・・

基板に配置

フレキシブル基板は、何かに使った廃棄基板の余りを使います。

ランドが腐食していましたのでガソリン水抜き剤を塗ったメラミンスポンジでコシコシしてやると、ランドの抵抗が1.5Ω→0.8Ωに減少。

部品をささっと配置しまして、、

XiaoMidiIF_fromKB07

余談ですが、XIAOの足つけに中華製の糸はんだを使ってみましたが、、

なんか全然ツヤが出ない。

フラックスが少ないのでしょうか

導通は問題無さそうですが、溶けづらく纏まりづらく

いくらスマートにやろうとしても、すべてイモはんだみたいになるンゴ・・・

もう使わん

100均で売っているはんだの方が全然良い希ガス( ノД`)

さて、ではちょっと動かしてみますか

シンセシア(Synthesia)でテスト(NG)

MIDIキーボードをXIAOを介してPCに接続、シンセシアで動作を確認してみますと、、、

うんなんかちゃんと認識しない。

キーを押しても反応が無し男。

バッシバッシと10回くらい連打するとノートONがたまに反応するも、ノートOFFを受信せず

結線がおかしいのかと思い、導通不良を疑いテスターで見直すも問題なし。

ちょっと色々調べてみると2つの問題点が。

・TLP2366はトーテムポール出力なのでプルアップは不要だった

・TLP2366の出力は正負が逆転するんだった

んもぅ、、、

というわけでとりあえずプルアップ抵抗を除去。

XIAOの論理逆転を調べる

フォトカプラ出力の正負逆転はどうしよう。

プログラム側で簡単に逆転できればいいのだけどもん

ESP32のHardwareSerialにはsetRxInvertというメンバがいて、こいつをtrueにすると簡単に論理の逆転が出来るみたいですが、XIAO、SAMD21G18ではどうだろうと情報を収集するもなかなか見つからず。

なんか出来ないっぽい?

NOTゲートを組むかゲートICでも使わなきゃダメっぽい・・・?

んな大袈裟な・・・

SAMD21のデータシートを見ても、それらしいレジスタ値は見つからず

かつてSAMD51ではデータシートにあったが、今では削除されているとかいないとか

MIDIライブラリの方で対応してないかと思いソースを掘り下げてみるも、、、

SoftwareSerialならInvertオプション有るんじゃがいも

折角のマイコンなのでHardwareSerial使いたいですしおすし

するとライブラリをオーバーライドして・・・?

試しにSerialMIDIをオーバーライドしてreadを反転する様に上書きしてみたらシリアルとしての受信は上手くいった様なので、オッ?と思ったのも束の間

USBのMIDIライブラリのコールバック関数で使っているreadはまた別になっててMIDIライブラリの方だったりしててん。

つまりUSBが解釈する部分は裏返ったまま。

両方やるの・・・?( ノД`)

どこか一点で素直に出来ないか追ってみるも、MIDIライブラリを多段に介している為か深入りが過ぎてコレといった正解を見つけられず

うん。超まんどくさい・・・

頓挫!

やはりフォトカプラの反転出力を適当なトランジスタで更に反転してから入れた方が素直に済むかもしれまい。

そもそもソフトウェアシリアルを使えって話かもしか。

出力が反転しないフォトカプラを使えば部品も増えなくて良いかもしれない。

ちょっと疲れたので、気力が沸いて来たらまた。

どなたかスマートな方法をご存知でしたら教えてくだしあ