最近、PIC32MX250F128B を勉強しようと思って、Hramony の中の USB Host Mouse サンプルを、
ブレッドボードで使用できるように手を加えてみました。
何分、最近Harmony を使い始めて、LEDチカ、USARTの表示が出来て、なんとかテスト環境が作れる所ろまで来ました。
それで、Harmonyのサンプルプログラムを自分の環境に合わせて利用するのはどの様にするのかと、
初めて試してみたので、ちょっと苦労しました。
こちらが、実際のブレッドボードです。
PICKit3 を繋げたところです。右半分のArduino は、関係ありません。
その時の話です。
サンプルは、Harmony V2.04 の中の、
C:\microchip\harmony\v2_04\apps\usb\host\hid_basic_mouse_usart を使います。
直接サンプルをいじるのはやめて、
hid_basic_mouse_usart を、自分のMPLABXProjectsフォルダー下で作業をするので、
C:\Users\xxx\MPLABXProjects\harmony の下にコピーします。
コピーしたら、MPLABX IDE を立ち上げて、
C:\Users\xxx\MPLABXProjects\harmony\hid_basic_mouse_usart\firmware\
hid_basic_mouse_usart.X
プロジェクトを開きます。
1)Harmony のパスが違ってくるので、それを直します。
Tools->Embedded->Harmony Confuigurater (MHC)を開く
多分、Harmonyのパスが違っているので、最初に Harmony のインストール先を聞かれるので、
正しいパスを指定します。
C:\microchip\harmony\v2_04
次に、今回のプロジェクトの mhc ファイルを確認してくるので、今度は、そのままOKにします。
多分、
C:\Users\xxx\MPLABXProjects\harmony\hid_basic_mouse_usart\firmware\src\
system_config\pic32mz_ef_sk_meb2\pic32mz_ef_sk_meb2.mhc
a) 保存
b) コードアイコン の実行
注) この時、コードの取り込み画面が出てきて、右側の作成されるソースの中で、
LEDに関する #define 文を削除する部分出てきたら、それは、そのまま残します。
これは、作成者が意図的に組み込んだ定義と思います。
但し、LEDの使用ポートは、最終的には自分の回路に合わせての変更が必要ですが、
ここでは、いじりません。
これで、殆どのHarmonyへのパスが修正されます。
一部古いパスが、残っているので、それは、
C:\Users\nishi\MPLABXProjects\harmony\hid_basic_mouse_usart\firmware\
hid_basic_mouse_usart.X\nbproject\configurations.xml
を直接テキストエディタで修正すれば、OKです。
c) プロジェクトの、クリアー&ビルド をします。多分エラーは、出ないと思います。
注) もし、 sprintf() でエラーがでたら、
#include <stdio.h>
を app.h にインクルードします。
2) 次に、今回の PIC32MX250F128B 向けの変更をします。
a) プロジェクトのプロパティを開いて、修正して保存。
Device: PIC32MX250F128B
b) MPLABX Harmony Confuigurater (MHC) で変更
Tools->Embedded->Harmony Confuigurater
i) Options タグ -> BSP Configuration の
USE BSP のチェックを外す
注)今回は、ブレッドボードなので、該当するボードが無いので、BSP は使いません。
ii) あとは、ピンクになっている場所を、適当に手直します。
注)Port の使用Pinの範囲をPin1 から Pin28 にします。
Hramony Framwork Configuration -> Sytem Service -> Ports -> Use Port System Service?
-> Port Configuration Settings -> Pin Cofiguration で
Pin1 から Pin28 のみ有効にします。
iii) 保存
iv) コードアイコン の実行
v) プロジェクトのクリーン&ビルド
注)この時エラーが出たら適宜修正します。
多分 LED のポートの定義やそれを使った関数の undefined は、適宜自分でエミュレートする事や、protC 以降は無いのでその関連のエラーは、前述の、Pin1からPin28 の使用のみにする。などの修正が必要です。
以上で、プロジェクトのベースが出来ました。
下が、今回作成する回路図です。これをブレッドボードで作成します。
ここで、注意して欲しいのは、Pin9 と Pin12 をジャンパーでつなぐことです。
これは、PIC32MX250F128B の USB-PLL の 48MHzクロックを 内臓FRC を使って供給する仕掛けです。 これで、外部クロックは不要となります。
ここら辺は、http://minkara.carview.co.jp/userid/1110950/blog/28071764/ を参考にさせてもらいました。
但し、おんちゃんは、これをコード記述しないで、MHC(MPLAB ハーモニー・コンフィグレータ) の、
Clock Diaglam の設定と、REFCLKO の出力を Pin12 へ出す PPSの設定だけでできました。
使用パーツにかんしてですが、
a) USBコネクタDIP化キット (Aメス) : http://akizukidenshi.com/catalog/g/gK-07429/
b)三端子レギュレーター : http://akizukidenshi.com/catalog/g/gI-00538/
注) レギュレータのC3:0.1uF と C1:33uF のコンデンサーは、一緒に付いています。