MC9S08JS8 にGUIアプリケーションを書く (1) [USB]
ハードウェアが出来た。 In-Circuit Program も出来た。 次は、 USB アプリケーションに挑戦です。
STEP0 : 簡単にアプリケーションを作る方法を見つけた
以前、 freescale のサンプルアプリケーションを使おうとしたり、 WinUSB に手を出してみたり、 Jan Axelson さんのサンプルアプリケーションを改造してみたり、 いろいろとやってきましたが、どうも簡単にアプリケーションを使うための方法が見つかりませんでした。
時はすぎて、 MC9S08JS8 のための資料を集めていたときに、ふと、こんなタイトルが目に付きました。
How to make a graphical user interface (GUI) for USB communication
「USB通信のためのGUIの作り方」
これだよ、私が追い求めていたのは。 FTF2008 で使用されたトレーニングをまとめた資料のようです。 しかも、ステップ・バイ・ステップの動画付き。 さっそく、追いかけてみました。
STEP1.1 : ファームウェアの作成
この資料は、GUIアプリケーションを作成することを目的として作られています。 そのため、USBデバイスを作成する部分は、仕様を中心に簡単に説明されているにすぎません。
そこで、今回の実験でも DEMOJM に搭載された MC9S08JM60 向けに作成されたファームウェアを私が作成した MC9S08JS8 基板で動作するため最低限の改造をしました。 改造のポイントは、以下の通り。
- typedef.hの改定
typedef.hというファイルがありまして、このプロジェクトで使用されているデータ型を宣言しています。 中には、byteなどの標準で宣言されているような型も含まれているので、ファイル名も含めて改定しました。 ファイル名は、Usb_Type.hになっています。 ただ、本当に必要な部分がどこなのか、区別が付かなかったので、まだ余計な部分が残っていると思います。 いつか、使わなくてもいいようにしてやろう。
- FslTypes_File.hの廃業
もうひとつ、FslTypes_File.hという型宣言ヘッダファイルがありました。 こちらは、UINT8形式の型宣言を行っています。 プログラム本体の記述をbyte形式に統一して、このヘッダ・ファイルは、廃業しました。
- ADCモジュールの削除
MC9S08JM60には、A/D変換モジュールが内蔵されていて、Bulk型エンドポイントからデータを送り出すことが出来ます。 MC9S08JS8には、A/D変換モジュールが内蔵されていないので、A/D変換に関連する部分はすべて削除しました。 ただし、エンドポイントは残してあります。
- GPIOおよびKBIの割り当て変更
このプログラムでは、KBIを使ったキー入力4本とGPIOを使ったLED出力8本が定義されています。 MC9S08JS8には、MC9S08JM60ほど多くのポートが装備されていないので、それぞれの接続先を変更しています。
機能 端子 備考 SWITCH0 PTA4/KBIP4 KBI付きGPIO入力 SWITCH1 PTA5/KBIP5 KBI付きGPIO入力 SWITCH2 PTA6/KBIP6 KBI付きGPIO入力 SWITCH3 PTA7/KBIP7 KBI付きGPIO入力 LED0 PTA0 GPIO出力 LED1 PTA1 GPIO出力 LED2 PTA2 GPIO出力 LED3 PTA3 GPIO出力 LED4 PTB0/IRQ* GPIO出力 LED5 PTB1/RESET* GPIO出力 LED6 PTB2/BKGD/MS GPIO出力 出力専用 LED7 PTB3/BLMS* GPIO出力 出力専用 ポート数に限りがあるので、LED4-LED7のあたりの割り当てがかなり厳しくなっています。 現状の評価ボードでは、LED0しか実装されていませんので、必要になったら拡張していきます。
このリンクを "JS06.zip" という名前で保存すると、プロジェクト・アーカイブを再現することができます。
STEP1.2 : ファームウェアの書き込み
トレーニング資料では、 DEMOJM 評価ボードを使用しているので、評価ボード上の MULTILINK を使用することができます。 私の基板も MULTILINK を接続することを前提としてBDMコネクタを装備しましたが、今回は使用しません。 なぜなら、MC9S08JS8 をUSBにつないだで書いたように、内蔵 bootloader プログラムがあるからです。 もちろん、デバッグはできませんが、今回も bootloader を利用してプログラムを書き込みます。
bootloader GUIプログラムなどの詳細は、前回の記事を参照してください。 先のプロジェクト・アーカイブには、コンパイル済みS19ファイルが含まれていません。 書き込みだけ行いたい方は、このリンクを"JS06.s19"という名前で保存するとコンパイル済みコードが再現できますのでお使いください。
つづく
参考サイト
- USBJM_TRAINING: How to make a graphical user interface (GUI) for USB communication
- 今回の記事は、ここで見つけたお話を基にしています。
参考文献
USBハード&ソフト開発のすべて―USBコントローラの使い方からWindows/Linuxドライバの作成まで (TECHI―Bus Interface)
- 作者: インターフェース編集部
- 出版社/メーカー: CQ出版
- 発売日: 2006/07
- メディア: 単行本
USBターゲット機器開発のすべて―各種USBコントローラの使い方と基本ソフトウェアの作成法 (TECHI―Bus Interface)
- 作者:
- 出版社/メーカー: CQ出版
- 発売日: 2005/08
- メディア: 単行本
Usb Complete: Everything You Need To Develop Custom Usb Peripherals (Complete Guides Series)
- 作者: Jan Axelson
- 出版社/メーカー: Lakeview Research
- 発売日: 2005/06/15
- メディア: ペーパーバック
コメント 0