USB PICの簡単なコマンドによる制御

NO IMAGE

MPLABで挫折しながら、USB PICのプログラミングを勉強している。今まで使っていたSource Boostとは、ちと勝手が違うので閉口している。

で、ネット情報やその筋の本などを参考にするも、ソースファイルのお手本のバージョンが違い、プログラムの内容が一部違っているようなのだ。

おいらの使っているソースは、Microchipで配布しているV2011_06_02版だけれど、そいつを使ってゴニョゴニョやってみたので、備忘録がてらカキコしたいと思う。

Device – CDC – Basic DemoというCDC(Communication Device Class)関連のプログラムがUSB PICの簡単なコマンドによる制御に適しているので、これを使う。
Device – CDC – Basic Demoのプログラムというのは、PCのターミナルソフトからUSB経由でマイコンに向かって文字を送信すると、次のキャラクターコードの文字にして返す(123なら234という文字にする)というもの。
こいつをもじれば、ちょっとした制御ができるってわけ。

main.cというファイルに記述のある、ProcessIO関数の

if(USBUSARTIsTxTrfReady())…

という箇所は、PCから文字が送られてきた際に変数に格納し、次のキャラクターコードの文字にして返す処理を行う所なのだ。

で、コマンド1または0をPCから送った場合にポートDの0ビット目をH/Lするプログラムにしようとすると、下記の太字のようになる。

switch(USB_Out_Buffer[i]){
case 0x0A:
case 0x0D:
USB_In_Buffer[i] = USB_Out_Buffer[i];
break;

case ‘1’:
LATDbits.LATD0 = 1;
USB_In_Buffer[i] = USB_Out_Buffer[i];
break;

case ‘0’:
LATDbits.LATD0 = 0;
USB_In_Buffer[i] = USB_Out_Buffer[i];
break;

default:
USB_In_Buffer[i] = USB_Out_Buffer[i] + 1
break;
}

「案ずるは生むが易し」であった…。

コマンドを文字列にした場合でも、マイコンを制御できるよう現在思案中。おいらの現在の目標はそこまで。そう、おいらは、PCから文字列を送ってマイコンを制御したいのだ。

単にポートをH/Lするだけなら、FTDIのデバイスもあるにはあるが、RS-232Cにおまけが付いたようなものなので、単純な制御しかできない。コマンドを送って、どうこうしようとするならば、USBマイコン以外の選択肢はないのだ。

また、USBマイコンを使えば、PCに接続しなくても、スタンドアローンで動く回路ができてしまう。USBマイコンと言っても元々マイコンなので、色々融通が利くというわけ。

もう少し、がんばるぞ~い!