先日組み立てた MC908JB8 基板で USB の動作テストをする。元ネタは The USB08 Project Page から拾ってきた。
オリジナルのファームウェアは "USB08 Eval Board" をターゲットとしたもので、デジタル入力(押しボタンスイッチ) x 3、デジタル出力(LED) x 3、アナログ入力(ポテンショメータ) x 3 を使用するようになっているが、今回の MC908JB8 ボードにはオンボードの LED ひとつだけだ。これをデジタル出力とするようにコードを書き換える。
/* 08led.h の一部 */ #define initLED() (DDRD |= 0x20) /* LED out */ /* u08main.c の一部 */ void main() { int n; uchar io_buffer[8]; initUSB(); // init USB Pipe initLED(); // init LED Output cli(); for (;;) { // get data from input pipe n=0; do { io_buffer[n++] = getUSB(); } while(n<8); // process input data if(io_buffer[0]==0) offLED(6); else onLED(6); // send data to output pipe n=0; do { putUSB(io_buffer[n++]); } while(n<8); } }
プロジェクトをビルドしてマイコンに書き込んでからホスト PC につなぐとドライバのインストールを求められるから、usbio_el.exe を展開して出来ている usbio_el.inf(.sys) を指定する。その後で付属の USBIOAPP.exe でデバイスをスキャンすれば "USB Device 0: VendorID: 0x0C70 ProductID 0x0000" のような情報が得られる筈だ。この VendorID は "MCT Elektronikladen" を示すものであるから、私的な実験の際はともかく、製品化するにはきちんと登録した ID を使用しなければならない。[usb.org "Getting a Vendor ID"]
USBIOAPP.exe を終了して今度は usb08_windemoapp.zip を展開した中に含まれている iousb.exe を実行する。Digital Out 1 にチェックを付けると LED が点灯し、外すと消灯する筈だ。Digital Out 1,2,3 のチェックの状態はそのまま Digital Input としてホスト側に送っているからチェックを付けると Digital Input の表示も変わる。Analog Input は関係しない。この USBIOAPP.exe ではチェックの状態等 8 バイトのデータをターゲットデバイスに書き込み、デバイスからは 8 バイト読み出すという動作を 100ms 毎に繰り返している。
元ネタの "USB08 Universal Serial Bus Evaluation Board Using the MC68HC908JB8" については Freescale 社の DRM002 で参照できる。これには JB8 側のファームとホスト側の両方について記載がある。ホスト側のアプリケーションは BCB5 用だが、ライブラリは VC でコンパイルできる。
[追記]
JB16 版は こちら。追加情報あり。
masatoさんのUSB(MC908JB8)動作状況
詳細はmasatoさんWEBページへのリンク先へ。
http://bird.dip.jp/cgi-bin/mt/mt-tb.cgi/1509
このページの解説のとおりに実験して、うまく動きました。ありがとうございます!
「JB08.zip 変更したプロジェクトファイル」 を CW for MCUs V6.1 で開くと、
The following access path in target MON08 Usb08 (FLASH) of project HC08 USB.mcp cannot be found:{Project}Documentation
というメッセージが出ました。気にせず Make すると特にエラーも警告もないので良いのかな、と思いますが、masato さんのところでは出ませんでしたか? (置き場所が違うせいかな?)
CodeWarrior の "Pack and Go" でアーカイブしているのですが、パスの関係でそうなることがあるみたいです。
要するにちょっとしくじってるんですが、見逃してやってください。
[参考 hamayan さんち]
http://hamayan.blog.so-net.ne.jp/2007-11-07-2
noritan さんのコメントを見てください。
了解です。そういうことなら気にしなくて良いですね。ありがとうございます。
Posted by: k_t at 03/01, 2008 11:29 PMおそらく携帯電話等からは投稿できません。日本語文字列を含まないコメントやトラックバック、および当サイトへの言及を含まないトラックバックは御遠慮いただいております。また、90日以上経過した記事へのコメントはできません。