PIC32MX270 - はじめて MPLAB Harmony 3 を使って Hello World!
はじめて MPLAB Harmony を使うので、ためしに UART (シリアル通信)で文字を表示するプロジェクトを作ってみました。
文字を表示できるようになれば、あとは文字で状態を表示さて動作を確認しながら実験ができます。
ハードウェア
ハードウェアは簡単に、PIC32MX270F256B に 8MHzの水晶を付けてピンヘッダで PICkit3 と USB-シリアル変換器をつなげただけです。
PIC32MX270F256B は秋月電子で 430円でした。
後でUSBホストの機能を試したいので USBコネクタも付けましたが、今回は使いません。
Hello World! プロジェクトの作成
あらかじめ開発環境のインストールを済ませておきます。
MPLAB X IDE で新規プロジェクトを作成します。
ウイザードが開くので Microchip Embedded - 32-bit MPLAB Harmony 3 Project を選択して [Next]
Framework Selection はそのまま [Next]
Project Settings は、プロジェクトの保存場所を指定して [Next]
Configuration Settings では使用するデバイスを指定します。今回は PIC32MX270F256B を選んで [Finish]
Configuration Database Setup はそのまま [Launch]
これで、MPLAB Harmony Configurator が起動する。
MPLAB Harmony Configurator
MPLAB Harmony Configurator が起動しました。
UARTを使いたいので、Peripherals から UART1 を追加する。UART1 をダブルクリックするか Project Graph にドラッグするとプロジェクトに追加される。
Project Graph の UART1 をクリックすると右側に設定が表示されるので、設定を変更する。
今回は割り込みを使わないので Enable Interrupt ? のチェックを外したのと、ボーレートを 9,800bpsに変更しました。
Tools - Clock Configuration で、クロックの設定を行います。
図が表示されるので簡単に設定できます。データシートを見ながら手動でレジスタをいくつも設定するのは結構面倒なんですよね。
Primary Oscillator に 8MHzのクリスタルを接続したのでそれに合わせて、
- Primary Oscillator = 8,000,000Hz
- POSCMOD = XT
- FNOSC = PRI
に変更しました。
クロックの設定をしたら、UART1 の Clock Frequency も自動的に 8,000,000Hzに変更されました。便利。
続いて、Tools - Pin Configuration でピンの割当を行います。
Pin Diagram タブでピンをクリックして、割り当てたい機能を選ぶだけです。便利。
UART1 の送受信ピン U1TX / U1RX と、クリスタルを接続した OSC1 / OSC2 を割り当てました。
Pin Settings タブで未使用ピンをすべてデジタルの出力に設定するために、
- TRIS = Out
- ANSEL = Digital
に変更しました。
このタブの Function の項目でピンの割当を変更することもできます。
MPLAB Harmony Configurator に戻ります。Pin Settings のウインドウは閉じても閉じなくてもどちらでもよくて、何も操作しなくても設定は反映されます。
設定はこれで完了なので、Generate - Generate Code でコードを生成します。
[Generate] をクリックでコードが生成されて、コードが MPLAB X IDE に追加されます。
メッセージを表示するコードの追加
MPLAB X IDE に MPLAB Harmony Configurator で生成したコードが追加されました。
ペリフェラルライブラリのソースファイルを見てみます。UART のライブラリは短くてすぐに読めます。
メッセージを表示するコードを追加します。
main.c の main() 関数内に
char buff[] = "Hello World!\r\n";
UART1_Write(buff, sizeof(buff));
の、2行を追加しただけです。
UART やクロックの初期化処理は MPLAB Harmony Configurator が生成して、すでに実行されるようになっているので、さわらなくて大丈夫です。
コードはこれだけで完成なので、ツールバーの Build Project ボタンを押してビルドしてみると、エラー無く終了しました。
ツールバーの Run Project ボタンを押してプロジェクトを実行させてみると、自動的にPICkit3 でマイコンに書き込んで実行されて、USB - シリアル変換器経由で接続したターミナルに “Hello World!” と表示されました。成功です。PIC32も Harmonyも使うのが初めてだったのですが、簡単に使えました。
MICROCHIP の MPLAB Harmony ページには文章がたくさんあって、どれから読んだら良いのかさっぱりわからなかったのですが、MPLAB Harmony と一緒にインストールされる
“MPLAB Harmony 3 Quick Documentation Package” (file:///C:/Users/<ユーザー名>/Harmony3/quick_docs/docs/index.html) が比較的まとまっていてわかりやすいので、これから読み始めるのが良さそうに感じました。
webでも読めます https://microchip-mplab-harmony.github.io/quick_docs/
ペリフェラルライブラリの使い方は、Harmonyが追加してくれる plib_uart1.c などのライブラリのソースコードを読めば使い方がわかりました。分量も少なく読みやすかったです。