ニシの生活

ギター、DIY、読書日記

PICでUSB-MIDI(サンプル動かす編)

概要

Microchip Libraries for Applications にUSB-MIDIのサンプルプログラムがあるので、試しに動かしてみます。
このサンプルプログラムを改変して、自分好みのMIDIコントローラを自作しよう、という目論見です。

使うデバイスは18F14K50です。
使うサンプルは下記です。
C:\microchip\mla\v2018_11_26\apps\usb\device\audio_midi\firmware\low_pin_count_usb_development_kit_pic18f14k50.x

PIC18で始めるUSBデバイス自作 その1:サンプルプロジェクトを動かす
サンプルプログラムの動かし方はこちらのページを参考にすればできます。
とりあえず書き込んで、評価ボードとPCをUSBケーブルで接続してみると、"MIDI Example"というMIDIバイスとして認識されます。
そして、18F14K50のRA3ピンがHighになっている間はド、レ、ミ、ファ…とNoteを送り続ける動作をするようです。

ハードウェアの準備

ここからはマイコンや基板について少し詳しく見ていきます。
詳しく、と言っても下記の秋月の評価ボードを使えばOKです。
PIC18F14K50使用USB対応超小型マイコンボード

しかし2024/04/06現在、この評価ボードは入荷未定で買えないようなので、私は同様の回路のものをユニバーサル基板で作製しました。

ソフトウェア

ソフトウェアに関して素人なので、サンプルプログラムの内容を把握するのは難しかったです。
下記はC言語について参考にしたページです。

ソースコードを見てて一応わかったこととしては、"APP_DeviceAudioMIDITasks()"という関数がMIDI信号を順次送り続ける動作をする肝の部分のようです。
"BUTTON_DEVICE_AUDIO_MIDI"というボタンが押されたらMIDIを送る。"BUTTON_DEVICE_AUDIO_MIDI"の定義は、"io_mapping.h"や"buttons.c"を見るとどうやらRA3ピンのことのようです。
この辺りをいじって改変していけば動作を変えられそうですね。

本当はDescriptorとかのUSBの部分も見ていきたいのですが、それはまたおいおい。