PIC32MX270F256BでUSBキーボードのデモを動かしてみる

今回はPIC32MX270F256Bを使って,Harmonyのサンプルの一つであるhid_keyboardを動作させてみる.

PIC32ファミリ向けのライブラリであるMPLAB Harmonyでは,その機能を使ったサンプルが提供されている.しかし,これらのサンプルのターゲットは市販されている開発ボード向けである.BSP(Board Support Package)と呼ばれるパッケージが開発ボードごとに用意されており,ユーザはそこから自分のボードに合ったBSPを選択することで,手を加えずにサンプルを動かすことができる.つまり,自分の使いたいPICと回路に合わせるためには少し手を加える必要がある.
今回はその手順の備忘録.
 
まず最初に,サンプルについては公式サイトにある『Demo Applications』という資料に概要などが書かれているため,これを読みつつ適したサンプルがあるかどうか探す.今回はキーボードの動作をするhid_keyboardを試してみる.
 
 
今回はPIC32MX270F256Bを用いて,以下のブレッドボード上に組んだ回路を使う.
 


 
 
今回の回路は小規模でありそこまで使う予定もないので面倒な回路図も書かず写真として保存しておく.
この回路はデータシートの最小構成に,USB,LED・スイッチをつけたものとなっている.LED・スイッチは3つずつ用意してある.これは目についたBSPが3つずつ用意してあったため.なお,LED・スイッチの正論理・負論理は適宜読み替えておく.
 
使いたいサンプル,PIC,回路を決めた後の大まかな手順は以下.
1.MPLAB Harmony Configuratorから,機能・クロック・ピンの設定を行う.
2.機能に関わる部分について,ヘッダとソースコードとを移植する.
3.bspを参考にLEDやスイッチに関する記述を移植する.
 
サンプルを開き,新たに作成したプロジェクトと見比べながら移植を行う.サンプルを開きConfiguratorの中から,Optionに色がついている部分に着目する.色が付いている部分はデフォルトから変更された設定であるので,そこをメモしておく.余談だが,Configuratorは同時に複数開けないようなので私はスクショをとってペイントに一時的に置いている.もっとスマートな方法がほしいが,そこまで多用するわけではないので妥協.
次にクロックの設定を行う.クロックについては使う発振子の種類も違うため,ここは自分なりに設定を行う.なお,UPLLENがOFFになっているとUSBモジュールへのクロック供給が正しく行われず,「認識できない」とPC側で表示される.気をつけたい.
クロックが終わればピンの設定となる.これもいつも通りに書く.
この3つが終わればコードの生成を行う.
 
機能に関するコードの移植を行う.メインとなるのはapp,keyboardという名がついたヘッダとソースファイルである.適宜コンパイルを試し,エラーの内容に沿って修正を行う.エラーが出た際はその場所に対応するサンプル側のソースコードを表示し,ctrlを押すことで定義元へ飛び,そこに記述されているものを引っ張ってくる.
 
最後にBSPの部分の移植を行う.ここにはLEDやスイッチのポート番号などが記述されている.自分の回路で使用するポート番号に合わせて移植を行う.
 
以上で移植は完了となる.最後にテスタで導通チェックをした後,PCと接続して動作化確認を行う.今回は正しくキー入力が行われることを確認した.
cdc_com_port_singleも動作確認終わった.たのしー