TOP > MPLAB C18編(PIC18F4550) > USBでパソコンと通信(CDCクラスを使う、そのまま動かす)

USBでパソコンと通信
(CDCクラスを使う、そのまま動かす)

更新日2009.12.27


USBフレームワークのCDCクラスを使ってパソコンとUSB接続する実験を行います。
使用するPICはPIC18F4550です。
今回は、サンプルプログラムをそのまま動かしてみます。

このページの内容
・CDCクラスについて
・回路
・そのまま動かしてみる
 (1) 必要なフォルダのコピー
 (2) プロジェクトを起動してビルド
 (3) PICに書き込む
 (4) PICをUSBでパソコンに接続
 (5) パソコン側のプログラムを起動しPICと通信


CDCクラスについて
CDCクラス(Communication Device Class)を使うと、パソコン側のアプリケーション・プログラムは、通信部をシリアルインタフェースで組めますので比較的容易に開発できます。

CDCクラスを使い、パソコンと通信する場合のイメージは下図のようになります。
水色のアプリケーションが作成する部分で、それ以外はPIC側/PC側とも提供されているドライバやライブラリを利用します。

PIC側
USBフレームワークのCDCクラスを使いアプリケーションを開発します。
PC側
Windows提供のドライバを使いアプリケーションを開発します。
通信はシリアルインタフェースになりますので、ハイパーターミナルをそのまま使うようなこともできます。


回路

使用するPICはPIC18F4550ですが、秋月のUSBボード(PIC18F4550)を使いました。
PICの他に、USBミニBコネクタやレゾネータ,パスコンなどが実装されています。40ピンのDIPパッケージとピン互換があります。

今回の回路図です。点線内がUSBボードです(一部省略しています)。

こちらは、ブレッドボードに組んだ状態です。


そのまま動かしてみる

プログラムの修正は行わずにサンプルプログラムをそのまま動かしてみましょう。

(1) 必要なフォルダのコピー
まず、インストールフォルダにある以下の2つのサブフォルダ(右)を別のフォルダにコピーします。
インストールフォルダはオリジナルとして、変更しないようにするためです。
「Microchip」と「USB Device - CDC - Basic Demo」

この例では、Fドライブに「USB」と言うフォルダを作り、そこにコピーしています。


(2) プロジェクトを起動してビルド

「PICDEM FSUSB」が今回の回路に対応するものです。

プロジェクトファイルを開き、そのままビルドします。
設定変更などは不要です。


(3) PICに書き込む
ビルドして作成したhexファイルをPICに書き込みます。


(4) PICをUSBでパソコンに接続
プログラムを書き込んだPICをUSBでパソコンに接続します。
そうすると自動認識して、新しいハードウェアの検出ウィザードが起動します。

「いいえ」を選択し「次へ」をクリックします。


「一覧または特定の〜」を選択し「次へ」をクリックします。

「参照」ボタンを押します。

コピーしたフォルダ内の「inf」フォルダを選択し「OK」をクリックします。

「次へ」をクリックします。

「続行」をクリックします。

「完了」をクリックしてインストールは終わりです。

右下に以下のバルーンが表示されます。

(5) パソコン側のプログラムを起動しPICと通信

「PC Software Example」フォルダから何階層か下にある以下のプログラムを起動します。
(Csharp Simple CDC Demo.exe)


以下のウィンドウが表示されます。

コンボボックスからCOMポートを選択します。一番下に表示されるCOMポートがPIC用になっていると思います。この例ではCOM9です。

次に「Connect」ボタンを押します。

PICと通信が確立できると以下の画面のようになります。

続いて、PICに文字を送ってみます。
Send Dataボタンの右のテキストボックスに任意の文字列を入力します。この時点ではPICへの送信は行われません。

そして、Send Dataボタンを押します。
すると、文字列がPICに送信され、下のテキストボックスにはPICから送られたデータが表示されます。
PIC側のプログラムは、パソコンから送られた各文字(バイト)に+1した文字を送り返すようになっています。
下の例では、
送信:0123456789
受信:123456789:
のようになっています。


次に、PIC側のRB4のスイッチを押してみて下さい。
以下のように、Button Pressedが表示されます。


今回はサンプルプログラムをそのまま動かして動作を確認してみました。
次のページでは、PIC側のプログラムを変更する方法を載せる予定です。