■>サンテックのホームページTOPへ       ■>サンおやじの工作室TOPへ
    工作室
       H8/Mini2でデータを蓄積してみよう(データロガー) 

<工作室へ戻る
H8/Mini2でデータを蓄積してみよう


H8/Mini2 (サンテック製)
H8/Mini2にはメモリカードソケットが実装され、専用ライブラリを使用するとSD/MMCカードを使うことができます。専用ライブラリはFAT16、8.3形式(DOS形式)のファイルを読み書きすることができます。
H8/Mini2用のカードアクセスライブラリを使ってデータを蓄積してみましょう。
H8/Mini2のCPUはH8/3028F 25MHz、MODE7(シングルチップアドバンストモード)で、電源電圧は3Vです。
シングルチップアドバンストモードは基本的に外付け回路を必要としないため、H8/Mini2基板にプログラムを書き込み電源を与えるだけで動作させることができます。

H8/3028をMODE7(シングルチップアドバンストモード)で使用するとたくさんのI/Oポートが使用できます。
H8/Mini2のファイルシステムライブラリを使うと、このI/Oポートから読み込んだデータをSD/MMCカードに蓄えていくプログラムを簡単に作る事ができます。
 
 開発環境のインストール      
         
開発環境はKPIT クミンズ インフォシステムズリミテッドから無償でダウンロードできます。
無償のC/C++言語でソフトを作ろう”を参照してインストールして下さい。

■お読みください■

H8/Mini2はKPITクミンズGNUH8v901以前をご使用ください。

KPITクミンズのGNUH8 v60x Windows Tool Chain (ELF)以降でファイルシステムライブラリを使用する場合の注意点があります。H8/Mini2ダウンロードページよりGNUH8 v60X Notes.pdfをお読みください。


KPITクミンズのGNUH8 v802 コンパイラ以降を使用する場合の注意点があります。
H8/Mini2ダウンロードページよりGNUH8 v802 Notes.pdfをお読みください。

H8/Mini2用データロガー(アナログ入力対応)プログラム(Datalog2.zip)または、
H8/Mini2用データロガープログラム(Datalog.zip)
ダウンロード、解凍します。

HEWプロジェクトを作成します。 プロジェクト名はとりあえず“Datalog”、とでもしておきましょう。
新規プロジェクトを作ったら、勝手に作られるファイルを RemoveFiles で全てプロジェクトから切り離して下さい。
次に、新規プロジェクトフォルダ内の *.c , *.h , *.asm を全て削除します。
解凍したプログラムソースを全て新規プロジェクトフォルダにコピーします。
AddFiles でコピーしたファイルを全てプロジェクトに加えます。
次に、プロジェクトの設定をReleaseにします。
[Build(B)] → [Linker...] で“Linker Options”を開き、“Sections”の内容を書き換えます。



書き換えは、 .data のアドレスを0x00FFBF20に、.stack のアドレスを0x00FFFF20に設定します。
ここまでの詳しい手順はこちら→hew_project.pdf
最後に AllBuild して .mot ファイルを作成します。
   
 
 プログラムをH8/Mini2にダウンロードする      
      
H8/Mini2にはPCとの通信に使えるダウンロードキット基板が付属しています。
ダウンロードキット基板を組み立て、シリアルケーブル(ストレート)でPCと接続し、スイッチを"PROG"側に倒して電源(3V)を与えるとダウンロードモードに入ります。

この状態でFDT(Flash Development Toolkit HEWに組み込まれている場合があります)を使って
・・・・\Datalog\Datalog\Rerease\Datalog.mot をH8/Mini2にダウンロードします。

ダウンロードの方法は”CPUへのダウンロード方法”を参照して下さい。
ダウンロード終了後は必ず通信を切断して下さい。(COMポートを自動で開放してくれません)


               ●● H8/Mini2用データロガー → datalog.zip ●●
          ●● H8/Mini2用データロガーアナログ入力対応 → datalog2.zip ●●

著作権について

ダウンロードしたプログラムの著作権は、(有)サンテックが保有します。
ダウンロードしたプログラムは、弊社CPUボードで使用する場合に限り、商用・個人使用を問わず、改造も配布も自由です。
但し、ファイルアクセス専用ライブラリはSDカードのライセンスに抵触しますので、改造をしないでください。
   
 
 データを蓄積する      
         
このプログラムはデータを蓄積するためのものです。

 概略
 プッシュスイッチを押すと、データの蓄積(ロギング)を開始/終了します。
 データを蓄積している間(スイッチが押されてから再度スイッチが押されるまで)、LEDが点灯します。
 CPUのタイマ割り込みを使用して約1秒間隔でファイルにデータを書き込みます。

 A/D入力もできるようになりました。
H8/Mini2単体で各ポートを入力にし、タイマ割り込みで時間間隔を一定にします。

  ● 実際にデータを蓄積している様子 ●
ポート8の0ビットにプッシュスイッチを付けます。
ポート8の1ビットにLEDを付けます。
ポート1、2、3、A、Bがデータ入力です。

※ポート7は予約です。
※ポート4とポート9の一部はシステムで使用しているため使用を禁止します。


サンプル回路図

部品面部品配置図
半田面部品配置図
半田面PCB図
※実際に基板を作成していないので各図は参考程度にしてください。
 
  各データポートはプルアップと入力保護抵抗を入れる事を推奨します。  

   
 
 ファイルの説明      
 
それでは各ファイルの説明をします。
データロガーのプログラムは main.c に書かれています。

start.asm
新規プロジェクトを作成すると勝手に作られるファイルです。
スタックの設定など、最低限の初期設定をし、main()関数を呼び出します。
※このプログラムではタイマー割り込みを使用して一定時間ごとの状態を取得しています。
 このファイルの中で割り込みを許可していますのでこのままお使いください。

hwinit.c
I/Oポート、タイマー、シリアルポートの初期設定を行っています。
start.asmから呼び出されますので、main()以降で呼び出す必要はありません。
ファイルシステムライブラリで使用するポートは、ポート4、SCI0です。
また、16ビットタイマーのチャネル0を割り込みタイマーとして使います。
ポート8はスイッチとLEDを点灯させるために使っています。
ポート1、2、3、A、Bは入力側に設定しています。

vects.c
割り込み時のベクターテーブルです。
電源投入時(RESET時)のアドレスとタイマー割り込みのアドレスが書かれています。

inthandler.c
割り込み処理を記述するファイルです。
※このプログラムではタイマー割り込みを使用して一定時間ごとの状態を取得しています。
 タイマー割り込みの処理を書き換えないようにしてください。


inthandler.h
割り込み処理用の関数プロトタイプが記述されています。
※このプログラムではタイマー割り込みを使用して一定時間ごとの状態を取得しています。
 タイマー割り込みの処理を書き換えないようにしてください。


main.c
データロガーのプログラム本体です。

TimeSys.c
日付、時間を取得する関数が書かれています。
ファイルアクセスのための専用ライブラリから呼び出されます。

ioh83028f.h
H8/3028Fの内蔵I/Oのアドレス定義です。

FileSys.h
ファイルアクセスのための専用ライブラリを使うときに必要な関数プロトタイプ、構造体、エラー定義などが記述されています。

lib\tH82flib7.a(H8/Mini2のみ)
ファイルアクセスのためのH8/Mini2専用ライブラリです。



   
 

<工作室へ戻る