PIC24FJ64GB002 (サンプル)

目次:(2012年7月16日更新)


PIC24FJ64GB002を用いたテスト回路

使用する回路は、PIC32MX230F064B (HARMONY)の章に書かれてあるものです。


回路動作確認

  PIC用のファームウェアをコンパイルするためには、あらかじめMPLAB IDE をインストールした後、MPLAB C Compiler for PIC24 and dsPIC v3.31 (サインインが必要です)をインストールしておいてください。

なお、MPLAB C Compiler for PIC24 and dsPIC v3.31のライブラリ説明書は、Microchip\mplabc30\v3.30b\docs\periph_lib\Microchip PIC24F Peripheral Library.chmにあります。

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

1. wait.mcpかwait.mcw (GB002_wait フォルダーの中にあります)をダブルクリックします。すると、MPLAB IDEが起動します。

2.ファームウェアをコンパイル、リンクするために、MPLAB IDEのメニューから "Project->Built ALL" を選択します。

3.メニューから "Programmer->Select Programmer" を選択して、お使いの書き込み器(プログラマー)を指定します。私はIDC3を使用しています。.

4.メニューから"Programmer->Program" を選択してPICにファームウェアを書き込みます。

5.ファームウェアを走らせるために "Programmer->Release From Reset "を選択します。

ファームウェアを走らせると、約1秒周期のパルス( 5V - 0 V -5V ...) がPICの26番ピンから出力されますので、LEDがこれに合わせて点灯、消灯します。もし、パルスが出ていなければ回路に問題がありますので、回路を再チェックしてください。 wait.cの中身をみれば、何をしているのかが簡単に分かると思います。.

使用するディレクトリ配置を変えたい場合があります。たとえば、インクルード・ファイルが含まれるディレクトリを変えたい場合などです。その場合、サーチ・パスを変える必要があります。メニューから"Project->Built Options->Project"を選択して、以下のようなダイアログを出します。変更すべきサーチ・パスが5種類ありますので、適切に設定してください。



以下、マイクロチップ社が用意しているライブラリを使用します。ヘルプファイル(\Microchip\mplabc30\v3.30b\docs\periph_lib\Microchip PIC24F Peripheral Library.chm)が参考になります。


タイマー2割り込み

  PIC24FJ64GB002は16ビット・タイマーを5つ持っています。それぞれのタイマーを個別に16ビットタイマーとして使用できます。ここでは タイマー2割り込みを使い、周期1秒のパルスを作ります。LEDが1秒ごとに点滅を繰り返します。ファームウェアはGB002_timer2int.zipです。


タイマー23割り込み

  タイマー2と3、あるいはタイマー4と5を繋げて、32ビットタイマとして使用できます。長い時間のタイマーが必要なときに使用します。ここでは、 タイマー23割り込みを使い、周期10秒のパルスを作ります。LEDが10秒ごとに点滅を繰り返します。ファームウェアはGB002_timer23int.zipです。


INT1割り込み

  外部割り込みINT1を試します。PICの11番ピンをGNDのするたびに、LEDが点灯、消灯を繰り返します。ただし、チャタリング対策をしていませんので、点灯、消灯を交互に繰り返さないこともありあます。ファームウェアはGB002_int1.zipです。


INT0割り込み

  外部割り込みINT0を試します。INT1用のPICのピンは選択できますが、INT0用のピンは16番ピンに固定されています。SW1を押すたびに、LEDが点灯、消灯を繰り返します。ただし、チャタリング対策をしていませんので、点灯、消灯を交互に繰り返さないこともありあます。ファームウェアはGB002_int0.zipです。


Deep sleep

  PIC24FJ64GB002にはdeep sleep機能が備わっています。deep sleep時にはPICの消費電流は20nAと極めて少ないものとなります。例えば、テレビ用のリモコンのように、ボタンを押さない状態が長く続くような場合、ボタンが押されていない時には消費電流をできるだけ押さえたいものです。このような用途のために、PICにはsleep機能がありますが、さらに消費電流を下げる機能としてdeep sleep機能があります。この機能の詳しい解説は略しますが、PICがdeep sleep状態になると、”特別な2つのメモリ”と”プログラム・メモリ”に書き込んだデータだけしか保存されません。deep sleepからの復帰はINT0などを利用しまが、その時にはmain.cの最初からファームウェアは再実行されることになります。

ファームウェアはGB002_timer23sleep.zipです。ファームウェアを実行すると、LEDが1秒周期で点滅して、10秒たったらdeep sleepに入ります(タイマー23割り込みを使い10秒後にGotoDeepSleep()関数を用いてdeep sleep状態にします)。deep sleepから復帰するためにはSW1を押します(INT0を利用)。再び、LEDが1秒周期で点滅して、10秒たったらdeep sleepに入ります。なお、LEDが点滅している間に、SW1を押すと、その時点から10秒後にdeep sleepに入ります。つまり、SW1を押すことを繰り返すと、deep sleep状態になる時刻が先延ばしになります。


戻る