PIC18F25K50

  以下では、MPLAB Xの章での作業(ファームウェア等のインストール)が終わっていること、そして、ファームウェアの書き込み方法を理解していることを前提とします。


PIC18F25K50を用いたテスト回路

  回路図と実際の回路を以下に示します。回路は、ユニバーサル基板(Takasu IC-701-72)上で組んでいます。27pFのコンデンサーはチップ型のものを用い(基板裏面に半田づけ),水晶発振子(Xtal)には16MHzのものを用いています。

内部クロックを使用する場合(Active Clock Tuning機能を使用する場合には内部クロックを使用します)、2つの27pFのコンデンサーと水晶発振子は必要ありません。ただ、各プロジェクトの中にあるsystem.cの中のコメント文//#define USE_INTERNAL_OSCのコメントを外して#define USE_INTERNAL_OSCとする必要があります。

水晶発振子(Xtal)に12MHzのものを使う場合には、各プロジェクトの中にあるsystem.cの中のCONFIGURATION Bitsの設定のところで、#pragma config PLLSEL = PLL3X#pragma config PLLSEL = PLL4Xとします。回路図では電源電圧を3.3Vとしていますが、5Vまでの電圧でしたら問題なく動作します。


回路動作確認

  作成した回路がきちんと働いているかどうかを確かめます。プロジェクト名はblinkです。

1.電源を供給したPIC基板とPCをUSBケーブルで接続します。

2.MPLAB Xを立ち上げて、appsフォルダーにあるblinkプロジェクト(pic18f25k50)を読み込み、これをメインプロジェクトにします。

3.プロジェクトを実行します。

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



HIDマウス

  マウスを模倣(emulation)します。具体的にはマウスカーソルがディスプレイ上で四角を描きます。

プロジェクト名はhid_mouseです。このプロジェクトはマイクロチップ社が配布しているMicrochip Libraries for Applications v2018_11_26の中に含まれている\apps\usb\device\hid_mouseプロジェクトをほんの少し手直ししただけのものです。

1.電源を供給したPIC基板とPCをUSBケーブルで接続します。

2.MPLAB Xを立ち上げて、appsフォルダーにあるhid_mouseプロジェクト(pic18f25k50)を読み込み、これをメインプロジェクトにします。

3.プロジェクトを実行します。

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

5.PICの26番ピン(PIC内部でプルアップ済み)をGNDに接触させるたびに、マウスカーソルが止まったり、動いたりします。


HIDキーボード

  キーボードを模倣(emulation)します。

プロジェクト名はhid_keyboardです。このプロジェクトはマイクロチップ社が配布しているMicrochip Libraries for Applications v2018_11_26の中に含まれている\apps\usb\device\hid_keyboardプロジェクトをほんの少し手直ししただけのものです。

1.電源を供給したPIC基板とPCをUSBケーブルで接続します。

2.MPLAB Xを立ち上げて、appsフォルダーにあるhid_keyboardプロジェクト(pic18f25k50)を読み込み、これをメインプロジェクトにします。

4.プロジェクトを実行します。

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

6.PICの26番ピン(PIC内部でプルアップ済み)をGNDに接触させるたびに、a、b、c・・・・・の順にタイプされて行きます。

7.このプロジェクトでは、キーボードについている3つのLED(Num Lock、Caps Lock、Scroll Lock)のうち、Caps Lockに対応しています。パーソナル・コンピュータに接続されているキーボードで、Caps Lockの設定・解除(shiftキーを押しながらCaps Lockを押す)で、PIC基板の3番ピンがHになったり、Lになったりします。


一般的HID

  一般的(Generic)HIDでPICとパーソナル・コンピュータの間でデータを交換します。

プロジェクト名はhid_customです。このプロジェクトはマイクロチップ社が配布しているMicrochip Libraries for Applications v2018_11_26の中に含まれている\apps\usb\device\hid_customプロジェクトをほんの少し手直ししただけのものです。

1.電源を供給したPIC基板とPCをUSBケーブルで接続します。

2.MPLAB Xを立ち上げて、appsフォルダーにあるhid_customプロジェクト(pic18f25k50)を読み込み、これをメインプロジェクトにします。

3.プロジェクトを実行します。

4.パーソナル・コンピュータ用のアプリケーション・ソフトウェアはapps\hid_custom\utilitiesフォルダーの中にあります。VCフォルダーは[Visual C++用]で、CLRフォルダーは[Visual C++/CLI用]で、CSフォルダーは[C#用]です。apps\hid_custom\utilitiesフォルダーの中にある実行ファイル(VC.exeかCLR.exeかCS.exe)を実行すると、2つのエディットボックスと送信ボタンを持つダイアログ(対話)・ウィンドウが現れます。 例えば上のボックスに123と入れて、送信ボタンをクリックすると、下のボックスに223と現れれば、正常に動作しています。送信された文字列のうち、第1番目の文字だけが変わったもの(アスキーコードで1足されたもの)が、下のボックスに現れるはずです。


USB(ベンダークラス)

  USB(vendor specific class)でPICとパーソナル・コンピュータの間でデータを交換します。ベンダークラスは、ベンダー側(供給側)が定義するクラスでHIDより汎用性が有るクラスです。PIC18F2550の章で紹介した2550_WinUSBも参照ください。

プロジェクト名はvendor_basicです。このプロジェクトはマイクロチップ社が配布しているMicrochip Libraries for Applications v2018_11_26の中に含まれている\apps\usb\device\vendor_basicプロジェクトをほんの少し手直ししただけのものです。

1.電源を供給したPIC基板とPCをUSBケーブルで接続します。

2.MPLAB Xを立ち上げて、appsフォルダーにあるvendor_basicプロジェクト(pic18f25k50)を読み込み、これをメインプロジェクトにします。

3.プロジェクトを実行します。

4.デバイストライバーを組み込みます。具体的には、\apps\vendor_basic\utilities\winusb_installerにあるUSBDriverInstaller.exeを実行します。

5.パーソナル・コンピュータ用のアプリケーション・ソフトウェアはapps\vendor_basic\utilitiesフォルダーの中にあります。VCフォルダーは[Visual C++用]で、CLRフォルダーは[Visual C++/CLI用]で、CSフォルダーは[C#用]です。apps\vendor_basic\utilitiesフォルダーの中にある実行ファイル(VC.exeかCLR.exeかCS.exe)を実行すると、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基板を制御できるようになります。

プロジェクト名はcdc_basicです。このプロジェクトはマイクロチップ社が配布しているMicrochip Libraries for Applications v2018_11_26の中に含まれているmicrochip\mla\v2018_11_26\apps\usb\device\cdc_basicプロジェクトをほんの少し手直ししただけのものです。

1.電源を供給したPIC基板とPCをUSBケーブルで接続します。

2.MPLAB Xを立ち上げて、appsフォルダーにあるcdc_basicプロジェクト(pic18f25k50)を読み込み、これをメインプロジェクトにします。

3.プロジェクトを実行します。

4.デバイストライバーを組み込みます。具体的には、\apps\cdc_basic\utilities\cdc_installerにあるUSBDriverInstaller.exeを実行します。

5.デバイストライバーの組み込みに成功すると、下図のようなバルーンがツールバーの近くに現れます。

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

7.キーボードから適当なキーを押下すると、押したキーに対するアスキーコードに1を足したものが、Tera Termの画面に現れるはずです。たとえば、”1”なるキーを押下すると、”2”がTera Termの画面に現れるはずです。アスキーコードに1を足すという発想法は、どこかで見たことが・・・・。

9.PICの26番ピン(PIC内部でプルアップ済み)をGNDに接触させるたびに、"Button pressed."なる文字列がTera Termの画面に現れるはずです。


HID+HID(2インターフェース複合HIDデバイス)

  1つのPICの中に、互いに独立な2つのHIDを実現し、パーソナル・コンピュータとの間でデータを交換します。

プロジェクト名はhid+hidです。このプロジェクトはマイクロチップ社が配布しているMicrochip Libraries for Applications v2018_11_26の中に含まれている\apps\usb\device\hid_customプロジェクトを手直したものです。

1.電源を供給したPIC基板とPCをUSBケーブルで接続します。

2.MPLAB Xを立ち上げて、appsフォルダーにあるhid+hidプロジェクト(pic18f25k50)を読み込み、これをメインプロジェクトにします。

3.プロジェクトを実行します。

4.パーソナル・コンピュータ用のアプリケーション・ソフトウェアはapps\hid+hid\utilitiesフォルダーの中にあります。VCフォルダーは[Visual C++用]で、CLRフォルダーは[Visual C++/CLI用]で、CSフォルダーは[C#用]です。

apps\hid+hid\utilitiesフォルダーの中にある実行ファイル(VC.exeかCLR.exeかCS.exe)を実行すると、2つのエディット・ボックスと2つのボタンを持ったダイアログ・ウィンドウが現れます。上のエディット・ボックスに適当な文字列を入れて、ボタンのどちらかを押すと、下のエディット・ボックスに文字列が現れます。入力した文字列の最初の文字だけが変化します。たとえば、上のエディット・ボックスに“123” と入れて、"INT1"ボタンを押すと、下のエディット・ボックスに“223”が現れます。入力した文字列の最初の文字にアスキーコードで1を足したものが、‘2’ = ‘1’ +1となって、下のエディット・ボックスに現れる文字列の最初の文字となります。文字列の他の部分はそのままPICを経由してPCへと返ってきます。もし、"INT2"ボタンを押すと、下のエディット・ボックスに“323”が現れます。入力した文字列の最初の文字にアスキーコードで2を足したものが、‘3’ = ‘1’ +2となって、下のエディット・ボックスに現れる文字列の最初の文字となります。

なお、もしも、hid_customやhid+マウス・プロジェクトを過去に使用していた時には、使用していたドライバーをUSBDeview(Webで検索してください)で、前もってアンインストールしておく必要があります(同じPIDとVIDを使用しているため)。


HID+マウス(2インターフェース複合HIDデバイス)

  1つのPICの中に、互いに独立なHID1つとHIDマウス1つを実現し、パーソナル・コンピュータとの間でデータを交換します。

プロジェクト名はhid+mouseです。このプロジェクトはマイクロチップ社が配布しているMicrochip Libraries for Applications v2018_11_26の中に含まれている\apps\usb\device\hid_customプロジェクトを手直したものです。

1.電源を供給したPIC基板とPCをUSBケーブルで接続します。

2.MPLAB Xを立ち上げて、appsフォルダーにあるhid+mouseプロジェクト(pic18f25k50)を読み込み、これをメインプロジェクトにします。

3.プロジェクトを実行します。

4.パーソナル・コンピュータ用のアプリケーション・ソフトウェアはapps\hid+mouse\utilitiesフォルダーの中にあります。VCフォルダーは[Visual C++用]で、CLRフォルダーは[Visual C++/CLI用]で、CSフォルダーは[C#用]です。

apps\hid+mouse\utilitiesフォルダーの中にある実行ファイル(VC.exeかCLR.exeかCS.exe)を実行すると、2つのエディット・ボックスと2つのボタンを持ったダイアログ・ウィンドウが現れます。上のエディット・ボックスに“123” と入れて、"INT1"ボタンを押すと(INT2ボタンは意味がありません)、下のエディット・ボックスに“223”が現れます。入力した文字列の最初の文字にアスキーコードで1を足したものが、‘2’ = ‘1’ +1となって、下のエディット・ボックスに現れる文字列の最初の文字となります。 また、上のエディット・ボックスに'y'から始まる文字列を入れ、"INT1"ボタンを押すとマウスカーソルが右に50だけ移動します。

なお、もしも、hid_customやhid+hidプロジェクトを過去に使用していた時には、使用していたドライバーをUSBDeview(Webで検索してください)で、前もってアンインストールしておく必要があります(同じPIDとVIDを使用しているため)。


戻る