mes2 on AKI-H8/3069LAN KIT(20MHz) で Web I/O 【入門編】

→【入門編】
【マイコンI/O編】
【実践編】
2007/08/01
 外出先から事務所内の機器(なんとかサーバー..)をON/OFFして少しでも 電気代を節約しようと思ったまでだ。
 玄箱にWOL機能があれば楽だったんだが、ないのでAKI H8/3069F LANボードで 玄箱のAC100Vの入/切と、前パネルのSWの入/切をさせようと企図した。
 玄箱は15W〜20W程度のようなので、ACアダプタ含めて1W程度の 3069F LANボードで入/切する 価値はいくらかはあろう(笑)。
 仮に電気料金が 28.88円/1kWとして、20W消費するのであればひと月に400円程度の計算となる。 Web I/Oで必要なときに電源入れるようにしたら、1年で5,000円程度は節約できそうだ。 某メーカーの魔法瓶の節約CMのようだ。。

 OSには三岩さんのmes2(mes2.3r15 [2007/06/21版])を使用した。かなり楽ができる。感謝です。 最近、webサイトが 刷新されたようですが、SHボードが主流のようですね。 私にはまだ壁が高すぎる(^^;

1. AKI H8/3069F LANボード

秋月電子通商 H8/3069Fネット対応マイコンLANボードを使用します。

私は「半完成品」を購入したんですが、今は「完成品」3,750円があります。 20MHz→25MHzへのクロックアップできますが、完成品では水晶発振子が面実装なので ちょっと換装が面倒かも。
私は、そのまま20MHzで使用しています。 今のことろ特に処理速度に拘ってはいませんので。
 また、ボード裏には16Mbitの DRAMも実装してくれてあります。 私のボードはOKI製M5117805D (EDO DRAM)が実装されていました。キット説明書に 「ファーストページモードが使えません。」ってあってちょっと冷や冷やしたが、 mes2では、このモードは使用していないので安心した。 (三岩さんよりmes2のソースを頂いてSFRの設定を確認しました。)

http://mes.sourceforge.jp/mes2/からファイル群を一括ダウンロード。 ツール類やドキュメントを一括してダウンロードしておいた。 180MB程度あるが、後の保険でもあるので。 適当なディレクトリで 以下のコマンドを実行。

>    wget -r http://mes.sourceforge.jp/mes2/
すると、カレントに ディレクトリmes.sourceforge.jpを作ってくれて、 その配下に一括ダウンロードしてくれる。 mes2 2.3r15 (2007/06/21版)

2. 開発環境の構築 mes2.3r15 (2007/06/21版)

mes2用の開発ツールをインストールします。上記の一括ダウンロードしたファイルを 使用します。

2-1. gcc23r15.exe をインストール


gcc23r15.exeを実行します。インストーラが起動してツール群一式をインストール してくれます。完了すると、デスクトップに 6つのショートカットができます。

以下の6つのショートカットができます。必要に応じて起動します。

2-2. Disktool を使って、H8/3069F へインストールするmotファイル作成


適当なディレクトリを作成する。
c:\mes2\23r15\disk   ...のような.
上記ディレクトリに、以下の2ファイルをコピーする.

 Disktoolを起動します(デスクトップにあるショートカットでいい)。 ドロップダウンリストは「H8-306xF」を選択しておきます。
[DiskLoad]ボタンを押して、上記2ファイルを置いたディレクトリを選択します。

(私の環境では..)
c:\mes2\23r15\disk
を選択してOKします。 これでmotファイルが生成されます。


一階層上(c:\mes2\23r15)に、disk.mot が生成されています。
このdisk.motファイルを H8/3069Fへ転送することになります。
[Quit]で終了します。
※ [System File]ボタンは使用しません。

2-3. H8/3069Fボードへ、Flush writer を用いて disk.mot を転送


0) ボードの DIPスイッチ(4P)を左写真のように設定します。
  フラッシュ書き込みモードです。

1) ボードに 232Cケーブル(ストレート)接続します。

2) ボードの電源投入。



3) PC側で Flush writer を起動します。
57,600bps で、disk.mot を D&D して、 [Write(W)]ボタンを押すと、 転送が始まります。(20MHzの水晶発振子)
  完了したら、Quitして、ボード電源OFFします。

2-4. H8/3069F LANボード起動

  1. LANケーブルをさしておきましょう。
  2. DIPスイッチの設定

    ボードの DIPスイッチ(4P)を左図のように設定します。
    「モード5」で通常動作させるモードです。
    (まだ電源入れません)

  3. デスクトップの ハイパータミナルのショートカットTerm(57600)を実行します。
  4. ボード電源入れます。
  5. 成功!

    ROM上に転送したOS(mes2)および、その上でshellが動作しています。
    「Micro Embeded System Ver2.3 Rev15」と表示され、入力を促す プロンプトも表示されています。

  6. ネットワークの設定

    例として、私の環境は以下のとおり。

    3069LANボード: 192.168.1.30
    ゲートウェイ:  192.168.1.254
    

    この場合、以下のように入力します。
    (今は、gateway はなくてもOK)。MACアドレスは一応隠しておきます:-)
    MES >ifconfig ne0 192.168.1.30 255.255.255.0
    MES >gateway 192.168.1.254
    
    試しに、母艦マシン(192.168.1.7)へ ping 打ってみる。
    OKだ。

    (*) ちなにみ、現在のディレクトリは /ram0/ となっている。 pwd で確認できる。
    config.sys にて、

    boot dev=/ram0/
    
    と指定しているからだ。

3. クロス開発 〜mes2上のアプリケーション開発〜

 elf形式のファイルを作成して、mes上へコピーする(tftp)と、 その場で実行できます。
いちいちmotファイルを作成してフラッシュROMに転送していたら時間も かかるので、tftpで転送するのが効率的です。

3-1. 開発環境 CBar でサンプルプログラム

 アプリケーションの開発には CBar を使用します。 CBarは 平内健一氏が作成した開発したC/C++プロジェクトのGUI管理ツールです。 フリーソフトウェアでしかもソースも公開されております。
 このCBarを三岩氏が改変したものが gcc23r15.exeインストール時に インストールされております。三岩氏は雑誌Software Designの「Linuxパワーアップ講座」 でもCBarを紹介されております。(何年の何月号かは忘れた..)
  1. CBar起動します。

    メニューの [ファイル(F)]→[プロジェクト新規作成(N)]を選択.

    プロジェクト名:  sample    ... 適当
    
    プロジェクト名を入れて[作成(O)] を押します。
     保存場所を聞いてくるので適当なディレクトリを選びます。 プロジェクトファイル(sample.cba)の保存先を選択するだけなので、 都度ディレクトリを作成しておくとよいと思います。

  2. sample.c を新規作成

    左ペインの sample以下のツリーの「Source」を選択しておきます。 その後、メニューの[ファイル(F)]→[新規作成(C)]を実行します。
    ファイル名の入力ダイアログが出てきますので、適当に"sample.c"と入力します。

    こんな感じで Sourceの配下に sample.c が作成されています。
    ダブルクリックするとエディタが起動します。
    ※ エディタは、メニューの設定(S)→環境設定(G) で設定できます。

  3. sample.c を編集

     簡単なメッセージを出力するプログラムを作成します。

  4. コンパイルする。

     メニューから[実行(E)]→[コンパイル(C)]を実行します。

     コンパイルが成功すると左のようなメッセージが出力されます。
    「*** Compile completed. ***」です。
    これで、sample.elf が生成されているはずです。

  5. sample.elf が生成できたことを確認する

    sample.elf が生成されています!
    このファイルをH8/3069F LANボードへ転送します。。

3-2. elfファイルのtftp転送

  1. ftp用ディレクトリ
     開発マシン上で ftp転送に使用するディレクトリを作成しておきます。
     このディレクトリを TFTP Server に教えてあげる必要があります。 参考までに私の場合、以下のとおり.
    C:\mes2\23r15\ftp
    
    ついでに、先に作成した sample.elf をここにcopyしておきます。

  2. TFTP Server を起動します

    [Browse]ボタンを押して、上記のディレクトリを設定します。

  3. LANボードを起動して、(ハイパーターミナルにて)ネットワークの設定 まで済ませておきます。(もう経験済みです)

  4. 母艦から、sample.elf を LANボードへ転送します。
    ハイパーターミナルより、
    MES >tftp sample.elf 192.168.1.7
    
    と入力します。IPアドレスは母艦を指定します。
    すると転送が始まり、sample.elf が LANボード上へコピーされます。
    MES >dir
    
    で確認できます。

  5. 実行してみよう.
    MES > sample.elf
    mes sample
    
    OKです!
    さて、次はH8/3069F LANボードで汎用ポートの出力を行ってみます。 これが出来ると、この出力を利用して他の機器を操作するための リレーやSWのON/OFFを簡単に制御できるようになります。

2007/08/01

Copyright(C) 2007 masu, All rights reserved.
massun.masumoto@nifty.ne.jp
http://homepage3.nifty.com/~masumoto/