So-net無料ブログ作成

MC9S08JS8 にGUIアプリケーションを書く (1) [USB]このエントリーを含むはてなブックマーク#

2729707

ハードウェアが出来た。 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ほど多くのポートが装備されていないので、それぞれの接続先を変更しています。

    機能端子備考
    SWITCH0PTA4/KBIP4KBI付きGPIO入力
    SWITCH1PTA5/KBIP5KBI付きGPIO入力
    SWITCH2PTA6/KBIP6KBI付きGPIO入力
    SWITCH3PTA7/KBIP7KBI付きGPIO入力
    LED0PTA0GPIO出力
    LED1PTA1GPIO出力
    LED2PTA2GPIO出力
    LED3PTA3GPIO出力
    LED4PTB0/IRQ*GPIO出力
    LED5PTB1/RESET*GPIO出力
    LED6PTB2/BKGD/MSGPIO出力 出力専用
    LED7PTB3/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)

USBハード&ソフト開発のすべて―USBコントローラの使い方からWindows/Linuxドライバの作成まで (TECHI―Bus Interface)

  • 作者: インターフェース編集部
  • 出版社/メーカー: CQ出版
  • 発売日: 2006/07
  • メディア: 単行本
Usb Complete: Everything You Need To Develop Custom Usb Peripherals (Complete Guides Series)

Usb Complete: Everything You Need To Develop Custom Usb Peripherals (Complete Guides Series)

  • 作者: Jan Axelson
  • 出版社/メーカー: Lakeview Research
  • 発売日: 2005/06/15
  • メディア: ペーパーバック

nice!(0)  コメント(0)  トラックバック(0)  このエントリーを含むはてなブックマーク#

nice! 0

コメント 0

コメントを書く

お名前:
URL:
コメント:
画像認証:
下の画像に表示されている文字を入力してください。

トラックバック 0

トラックバックの受付は締め切りました

この広告は前回の更新から一定期間経過したブログに表示されています。更新すると自動で解除されます。