PIC32MX230F064B (HARMONY)

以下のファームウェアは、PIC32MX270F256Bでも働くことを確認しています。なお、PICにファームウェアを書き込んでいる間、UART出力から、おかしなシグナルが出てきます。いまのところPIC自身の問題で、12、14、18番ピンが異常と考えています。PICにファームウェアを書き込んでいる間、12番ピンは約1V、14番ピンは約3V、18番ピンは0-3Vのパルス列が出ています。ピンをアナログ、デジタルIN、デジタルOUTに変えても異常状態は同じです。これらのピンの使用は慎重に。PICにファームウェアを書き込んでしまった後は、正常に稼働します。


PIC32MX230F064Bを用いたテスト回路

  回路図と実際の回路を以下に示します。回路は、ユニバーサル基板(Takasu IC-701-72)上で組んでいます。C2の0.1uFのコンデンサーと、C4、C5の2つの27pFのコンデンサーとにはチップ型のものを用い、基板裏面に半田づけしています。また,水晶発振子(Xtal)には4MHzのものを用いています。PIC内部では40MHzがシステムクロックとなるよう設定しています。


回路動作確認

  PIC用のファームウェアをコンパイルするために MPLAB X IDE v3.00-betaをインストールした後、MPLAB XC32 Compiler v1.34MPLAB XC32 Compiler Part-Support v1.34をインストールしておきます。 さらに、MPLAB Harmony Integrated Software Framework v1.04.02をインストールし、そのあと、MPLAB Harmony Confugulator(MHC)をプラグインとして、MPLAB X IDEに組み込みます。組み込み方法は、MPLAB Harmonyをインストールした時に、最後に表示されます。Webを検索をすれば、日本語での解説もありますので、そちらを参考にしてください。

まず、作成した回路がきちんと働いているかどうかを確かめます。ファームウェアMX230_wait.zipをPICに書き込み、実行します。

1.ピンヘッダJP1にはファームウェア書き込み器(たとえばICD3)を接続します。また、3.3Vの電源も接続します。

2.MX230_wait.zipを解凍して出てくるMX230_waitフォルダーをmicrochip\harmony\v1_04_02\appsフォルダーの中に入れます。

3.MPLAB X を立ち上げ、MX230_waitフォルダーの中にあるプロジェクトを読み込みます(MPLAB XのメニューからFile->Open Project...を選択)。

4.Projectsウィンドウにおいて、MX230_waitと書かれた箇所をマウスで右クリックして、サブメニューを出します。そのサブメニューのSet as Main Projectという項目がありますので、それを選択します。MX230_waitが太文字になったことを確認します。

5.Projectsウィンドウにおいて、MX230_waitと書かれた箇所をマウスで右クリックして、サブメニューを出します。そのサブメニューの一番下にPropertiesという項目がありますので、それを選択します。Project Propertiesウィンドウが現れるので、Hardware Toolとして、お使いの書き込み器(プログラマー)を指定します。私はIDC3を使用しています。OKボタンを押します。

6.ファームウェアを走らせるために、MPLAB X のメニューからRun->Run Main Projectを選択します。ビルド(コンパイルとリンク)を行ったのち、ファームウェアをPICに書き込み、実行するまで自動で行ってくれます。 ファームウェアを走らせると、約1秒周期のパルス( 3.3V, 0V, 3.3V, ...) がPICの14番ピン(RB5ピン)から出力されますので、テスターで、このピンの電圧を測定してください。もし、パルスが出ていなければ回路に問題がありますので、回路を再チェックしてください。 app.cのAPP_Tasks(void)関数の中身をみれば、何をしているのかが簡単に分かると思います。

なお、水晶発振子に4MHzとは異なるものを使用するときには、まず、MPLAB XのメニューからTools->Embedded->MPLAB X Harmony Configurator(プラグインとして組み込まれたものです)を選択します。Open Configurationウィンドウが現れるので、OKボタンを押すと、現在設定されているConfiguratorが表示されます。MPLAB X Harmony Clock Configuratorタブを開いてクロック設定を適当に行います。設定が終わったら、MPLAB X Harmony Configuratorタブを開いて、Generateボタンを押します。設定内容を保存するかどうか聞いてきますので、Saveボタンを押して、現在の設定を保存します。File Generationウィンドウが現れるので、Generateボタンを押します。Harmony Configuratorは良く使いますので、遊び感覚で、いろいろと設定を変えてみると良いと思います。



MHC環境

まず、
フォルダーmicrochip\harmony\v1_04_02\bsp\config
ファイルmicrochip\harmony\v1_04_02\utilities\mhc\config\PIC32MX230F064B.hconfig
ファイルmicrochip\harmony\v1_04_02\utilities\mhc\config\PIC32MX270F256B.hconfig
のバックアップを取っておきます。

  次にconfig.zipを解凍すると、configフォルダーの中に、bspフォルダーとutilitiesフォルダーが出てきますので、これらbspフォルダーとutilitiesフォルダーをmicrochip\harmony\v1_04_02フォルダーの中に上書きします。これで、PIC32MX230F064B(あるいは、PIC32MX270F256B)を用いたテスト回路用のMHC環境が整います。

  ところで、bspは「board support packages」の略です。Microchip社で販売しているPICボードにおいて、3つの発光ダイオードと3個のスイッチをPICのどのピンに割り当てているかを、microchip\harmony\v1_04_02\bspフォルダーの中で決めています。今回は、以下のピン配置としました。なお、SWITCH_1、SWITCH_2、SWITCH_3ともに弱くプルアップするよう、設定しています。

PIC32MX230F064Bを用いたテスト回路用のbsp環境の使い方の1例を説明します。PIC32MX230F064Bを用いる設定で、新しいプロジェクトを作ります。すると、Harmony Configuratorが立ち上がるので、BSP Configurationを展開して、Use BSP?チェックボックッスをチェックします。すると、Select BSP To Use For PIC32MX230F064B Device という名のドロップダウン・ボックスが現れます。そこで、以下の図のように、PIC32MX230F064BなるBSPを選択します。なお、このBSPは、ピン配置が同じであるPIC32MX270F2564Bにも使用できます。

ここで、Harmony Pin Diagramタブを選択してピン配置を確認すると良いと思います。 ところで、以下のファームウェアでは、このようなピン配置をすでに選択していますので、これも確認すると良いと思います。



HIDマウス

  マウスを模倣(emulation)します。具体的にはマウスカーソルがディスプレイ上で円を描きます。 PICに書き込むファームウェアはmouse.zipです。mouse.zipを解凍して出てくるmouseフォルダーをmicrochip\harmony\v1_04_02\appsフォルダーの中に入れます。このファームウェアは、microchip\harmony\v1_04_02\apps\usb\device\hid_mouseを参考にして、Harmony  Configulator で最初から作成したものです。

1.ファームウェアをPICに書き込み、実行します。

2.PIC基板とPCをUSBケーブルで接続すると、パーソナル・コンピュータのディスプレイ上で、マウスカーソルが円を描きます。

3.SWITCH_1(26番ピン)をGNDに落とすたびに、マウスが動いたり、止まったりします。


HIDキーボード

  キーボードを模倣(emulation)します。PICに書き込むファームウェアはkeyboard.zipです。keyboard.zipを解凍して出てくるkeyboardフォルダーをmicrochip\harmony\v1_04_02\appsフォルダーの中に入れます。このファームウェアは、microchip\harmony\v1_04_02\apps\usb\device\hid_keyboardを参考にして、Harmony  Configulator で最初から作成したものです。

1.ファームウェアをPICに書き込みます。

2.適当なエディッターソフトウェア(秀丸、ノートブック、ワードなど)を起動させます。

3.PIC基板とPCをUSBケーブルで接続します。

4.SWITCH_1(26番ピン)をGNDに落とすたびに、b、c・・・・・とタイプされて行きます。

5.このファームウェアでは、キーボードについている3つのLED(Num Lock、Caps Lock、Scroll Lock)のうち、前者2つに対応しています。パーソナル・コンピュータに接続されているキーボードで、Caps Lockの設定・解除で、PIC基板のLED_1ピン(2番ピン)がHになったり、Lになったりします。また、Num Lockの設定・解除で、PIC基板のLED_2ピン(3番ピン)がHになったり、Lになったりします。


一般的HID

  一般的(Generic)HIDでPICとパーソナル・コンピュータの間でデータを交換します。PICに書き込むファームウェアはhid_basic.zipです。hid_basic.zipを解凍して出てくるhid_basicフォルダーをmicrochip\harmony\v1_04_02\appsフォルダーの中に入れます。このファームウェアは、microchip\harmony\v1_04_02\apps\usb\device\hid_basicを参考にして、Harmony  Configulator で最初から作成したものです。特に、app.cの中のAPP_Tasks(void)関数の中のcase APP_STATE_MAIN_TASK:文の中身を変えています。

1.ファームウェアをPICに書き込みます。

2.PIC基板とPCをUSBケーブルで接続します。

3.パーソナル・コンピュータ上で、hid_basic\VC6\Releaseフォルダー内のVC6.exe[Visual C++(Ver. 6)用]、あるいはるhid_basic\VS2005\Release内のGenericHIDSimpleDemo.exe[Visual C++/CLI(2005)用]をダブルクリック(実行)すると、2つのエディットボックスと送信ボタンを持つダイアログ(対話)・ウィンドウが現れます。 例えば上のボックスに123と入れて、送信ボタンをクリックすると、下のボックスに223と現れれば、正常に動作しています。送信された文字列のうち、第1番目の文字だけが変わったもの(アスキーコードで1足されたもの)が、下のボックスに現れるはずです。


USB(CDC)

  PIC基板をCDC(Communication Device Class)機器として、パーソナル・コンピュータと接続し、PIC基板とPCの間でデータのやり取りを行います。PCからCDC機器としたPIC基板を見ると、PCはPIC基板をまるでRS232C機器であると認識します。したがって、PC上でRS232C機器と通信を行うための”Tera Term”なるアプリケーション・ソフトウェア(ウェブで検索ください。フリーソフトです。)を利用するだけで、PCからPIC基板を制御できるようになります。このファームウェアは、microchip\harmony\v1_04_02\apps\usb\device\cdc_com_port_singleを参考にして、Harmony  Configulator で最初から作成したものです。

1.PICに書き込むファームウェアはcdc_com.zipです。cdc_com.zipを解凍して出てくるcdc_comフォルダーをmicrochip\harmony\v1_04_02\appsフォルダーの中に入れます。

2.cdc_comフォルダー中のcdc_installerフォルダーのなかに、CDCのインストーラ「USBDriverInstaller.exe」がありますので、これを実行してCDC用のデバイストライバーをインストールします。

3.ファームウェアをPICに書き込み、実行します(PIC基板がCDC機器になります)。

4.PIC基板とPCをUSBケーブルで接続します。

5.PC上でTera Termを起動して、メニューから”設定->シリアルポート”を選択すると、シリアルポート設定画面が以下の様に現れるので、ボーレートを57600 bps、データビットを8ビット、 パリティはなし, ストップビットを1、フロー・コントロールはなし、と設定してください。 設定が終わったら、シリアルポート設定画面を閉じ、メニューから”設定->設定の保存”を選択して、シリアルポート設定内容をファイルに保存しておくと、次回の接続時には、自動的に保存した設定内容が反映されます。

5.キーボードから適当なキーを押下すると、押したキーに対するアスキーコードに1を足したものが、Tera Termの画面に現れるはずです。たとえば、”a”なるキーを押下すると、”b”がTera Termの画面に現れるはずです。

6.また、SWITCH_1(26番ピン)をGNDに落とすたびに、「PUSH BUTTON PRESSED」とタイプされます。


戻る