h8

石垣 [sinnya07atgmail.com]at=@

01/28
docファイルで現状のファイルをUP

H8の応用範囲をもっともっとさがしてみてください。
文章の統合はあとでします。

メモ
PB0はCN1の33ピン(3069f)
3069マザーボード上のLEDのポート P4


マイコン4004開発に携わった偉い人


  • はじめに

昨今、身の回りの機械製品にはマイクロコンピュータが組み込まれ使われている。
マイクロコンピュータ
以下略
応用するためのドキュメントを作成する。


  • マイコンとは
CPU、LSIの説明
マイコンの分野 組み込み
モータなどの高電流を必要とするものへの信号の伝え方


  • 研究で使用した装置
AKI-H8/3069F日立フラッシュマイコンH8/3069F搭載のキット。
3069の写真
AKI-H8/3052F日立フラッシュマイコンH8/3052F搭載のキット。
3052の写真
  • AKI-H8/3069FとAKI-H8/3052の仕様。

3069	3052
CPU H8/3069 16ビット
H8/300H
25MHz H8/3052 16ビット
H8/300H
25MHz
内臓ROM 512KB 512KB
内臓RAM 16KB 8KB
SCI RS-232C RS-232C
ネットワークコントローラ あり なし
I/Oポート 最大79 最大78
A/D 10ビットA/Dコンバータ8ch 10ビットA/Dコンバータ8ch
D/A 8ビットD/Aコンバータ
2ch 8ビットD/Aコンバータ
2ch

本研究で使用したマイコンボードにはRS-232Cドライバ/レシーバが実装されており、パソコンとケーブルでつなぐことにより通信が可能になっている。
ただしAKI-H8/3052Fのほうは接続するためのDサブ9ピンコネクタがないため、回路図通りの接続ができるように回路を事前に作らなければならない。
AKI-H8/3069FはRJ45ソケット、RTL8019ネットワークコントローラが共に搭載されておりLANが使用することが出来る。


3069の転送方法(仮想TFTPサーバ)と実行(ターミナル)
3052の転送方法と実行
マイコンへのプログラム転送や実行は、


  • OSの有無による開発環境の違い?
3069で行ったLEDの点灯
3052で行ったLEDの点灯
その二つの違い。


  • まとめ
プログラムがハードにどのような影響をあたえているか。理解できた(0と1の信号をおくっているだけである)
  • 参考文献
  • 付録
 H8の種類
3069のbrledのプログラム
3069のLEDのプログラム
3052のLEDのプログラム



H8/3069Rグループ 仕様概要



項 目 仕 様
CPU: • H8/300CPUに対してオブジェクトレベルで上位互換

o 汎用レジスタマシン
o
 汎用レジスタ:16ビット×16本(8ビット×16本+16ビット×8本、32ビット×8本としても使用可能)
o 高速動作
o
 最大動作周波数:25MHz
 加減算:80ns
 乗除算:560ns
o アドレス空間16Mバイト
o 特長ある命令
o
 8/16/32ビット転送・演算命令
 符号なし/符号付き乗算命令 (8ビット×8ビット、16ビット×16ビット)
 符号なし/符号付き除算命令 (16ビット÷8ビット、32ビット÷16ビット)
     
 ビットアキュムレータ機能
 レジスタ間接指定によりビット番号を指定可能なビット操作命令
メモリ: • H8/3069RF
o ROM:512Kバイト
o RAM:16Kバイト•  
割り込みコントローラ: • 外部割込み端子7本:NMI、IRQ0~IRQ5
• 内部割込み36要因
• 3レベルの割込み優先順位が設定可能
バスコントローラ: • アドレス空間を8エリアに分割し、エリアごとに独立してバス仕様を設定可能
• エリア0~7に対してそれぞれチップセレクト出力可能
• エリアごとに8ビットアクセス空間/16ビットアクセス空間を設定可能
• エリアごとに2ステートアクセス空間/3ステートアクセス空間を設定可能
• 2種類のウェイトモードを設定可能
• エリアごとにプログラムウェイトのステート数を設定可能
• バーストROMを直接接続可能
• 最大8MバイトのDRAMを直接接続可能(またはインターバルタイマとして使用可能)
• バス権調停機能
DMAコントローラ(DMAC): • ショートアドレスモード

o 最大4チャネルを使用可能
o I/Oモード/アイドルモード/リピートモードの選択可能
o 起動要因:16ビットタイマチャネル0~2のコンペアマッチ/インプットキャプチャA割込み、A/Dコンバータ の変換終了割込み、シリアルインタフェース の送信データエンプティ/受信データフル割込み、外部リクエスト
• フルアドレスモード

o 最大2チャネルを使用可能
o ノーマルモード/ブロック転送モードの選択可能
o 起動要因:16ビットタイマチャネル0~2のコンペアマッチ/インプットキャプチャA割込み、A/Dコンバータ の変換終了割込み、外部リクエスト、オートリクエスト
16ビットタイマ×3チャネル: • 16ビットタイマ3チャネルを内蔵。最大6端子のパルス出力、または最大6種類のパルスの入力処理が可能
• 8ビットタイマカウンタ×1(チャネル0~2)
• アウトプットコンペア出力/インプットキャプチャ入力(兼用端子)×2(チャネル0~2)
• 同期動作可能(チャネル0~2)
• PWMモード設定可能(チャネル0~2)
• 位相計数モード設定可能(チャネル2)
• コンペアマッチ/インプットキャプチャAの割込みによりDMAC起動可能(チャネル0~2)
8ビットタイマ×4チャネル: • 8ビットアップカウンタ(外部イベントカウント可能)
• タイムコンスタントレジスタ×2
• 2チャネルの接続が可能能
プログラマブルタイミングパターンコントローラ(TPC): • 16ビットタイマをタイムベースとした最大16ビットのパルス出力が可能能
• 最大4ビット×4系統のパルス出力が可能(16ビット×1系統、8ビット×2系統などの設定も可能)
• ノンオーバラップモード設定可能
• DMACによる出力データの転送可能
ウォッチドッグタイマ(WDT)×1チャネル: • オーバフローによりリセット信号を発生可能
• リセット信号の外部出力可能(ただしF-ZTAT版は不可)
• インターバルタイマとして使用可能
シリアルインタフェース×3チャネル: • 調歩同期/クロック同期式モードの選択可能
• 送受信同時動作(全二重動作)可能
• 専用のボーレートジェネレータ内蔵
• スマートカードインタフェース拡張機能内蔵
A/Dコンバータ: • 分解能:10ビット
• 8チャネル:単一モード/スキャンモード選択可能
• アナログ変換電圧範囲の設定が可能
• サンプル&ホールド機能付
• 外部トリガまたは8ビットタイマのコンペアマッチによるA/D変換開始可能
• A/D変換終了割込みによるDMAC起動可能
D/Aコンバータ: • 分解能:8ビット
• 2チャネル
• ソフトウェアスタンバイモード時D/A出力保持可能
I/Oポート: • 入出力端子70本
• 入力端子9本
動作モード: • 7種類のMCU動作モード
モード アドレス空間 アドレス端子 バス幅初期値 バス幅最大値
モード1 1Mバイト A19~A0 8 ビット 16 ビット
モード2 1Mバイト A19~A0 16 ビット 16 ビット
モード3 16Mバイト A23~A0 8 ビット 16 ビット
モード4 16Mバイト A23~A0 16 ビット 16 ビット
モード5 16Mバイト A23~A0 8 ビット 16 ビット
モード7 1Mバイト - - -
• モード1~4では内蔵ROMは無効となります。
低消費電力状態: • スリープモード
• ソフトウェアスタンバイモード
• ハードウェアスタンバイモード
• モジュール別スタンバイ機能あり
• システムクロック分周比可変
その他: • クロック発振器内蔵







論文目次候補 改

はじめに

昨今、身の回りの機械製品にはマイクロコンピュータが組み込まれ使われている。
マイクロコンピュータ
以下略
応用するためのドキュメントを作成する。
H8の種類の多さ
 H8の役割


研究で使用した装置
 3069と3052の違い。OSの有無による違い。

まとめ

参考文献
付録




3069 LANによる通信。CGIが使える。WEBサーバ。
CGIを使ったブラウザ上からマザーボード上のLEDの操作。
マザーボード上のDIPスイッチのON/OFFをブラウザ上に表示。

3664/LED電光掲示板
付属のソフトウェアによる文字列の表示。

/*LEDをブラウザから点灯消灯するプログラム*/
<h8/reg3067.h>
<mes2.h>
int main(int argc, char **argv) {
char led[2][4];
cgi_value(*(argv+1), "led0", led[0], 3);
cgi_value(*(argv+1), "led1", led[1], 3);
P4DDR = 0xc0;
P4DR = 0;
if(led[0][0] == 'o') P4DR |= 0x40;
if(led[1][0] == 'o') P4DR |= 0x80;
printf("<html><body>\r\n");
printf("<h1>LEDテストページ</h1><hr>\r\n");
printf("<p>argcは%dです。</p>\r\n",argc);
printf("<p>*argvは%sです。</p>\r\n",*argv);
printf("<p>*(argv+1)は%sです。</p>\r\n",*(argv+1));
printf("<p>赤は%sです</p>\r\n",led[0]);
printf("<p>緑は%sです</p>\r\n",led[1]);
printf("<form action=\"%s\">",*argv);
printf("led1(赤)<input type=\"checkbox\"name=\"led0\" %s>\r\n",(led[0][0]=='o') ? "checked" : "");
printf("led2(緑)<input type=\"checkbox\"name=\"led1\" %s><br>\r\n",(led[1][0]=='o') ? "checked" : "");
printf"<inputtype=\"submit\"value=\"submit\"><br>\r\n");
printf("</form><hr>\r\n");
printf("</body></html>\r\n");
}

このプログラムによるブラウザの表示
添付ファイル参照
led無  LEDのチェックボックスがOFFの状態
led赤  赤のチェックボックスがON 緑のチェックボックスがOFFの状態
led緑  赤のチェックボックスがOFF 緑のチェックボックスがONの状態
led赤緑 赤のチェックボックスがON 緑のチェックボックスがONの状態


組み込みシステム


 携帯電話、洗濯機、炊飯器、テレビ、HDレコーダ、iPod、車などには コンピュータが入っています。これらに入っているコンピュータシステムを、 組込みシステムと呼びます。近年の半導体技術・マイクロプロセッサ技術の 進歩によって、組込みシステムの応用分野は拡大の一途をたどっており、 身の回りの電子機器・電気機器のほとんどに組込みシステムが使われています。 組込みシステムの使われている機器の例を表に挙げます。


組み込みシステムの適用例

AV機器
テレビ, ビデオ, デジタルカメラ, セットトップボックス, オーディオ機器
• 家庭電化製品
電子レンジ, 炊飯器, エアコン, 洗濯機
• 個人用情報機器, 娯楽・教育機器
PDA, 電子手帳, カーナビ, ゲームマシン, 電子楽器
• パソコン周辺機器
プリンタ, スキャナ, ディスクドライブ, CD-ROMドライブ
• OA機器
コピー, FAX, ワープロ
• 通信機器
留守番電話機, ISDN電話機, 携帯電話, PHS, ATMスイッチ, 放送機器・設備, 無線設備, 人工衛星
• 運輸機器
自動車(エンジン制御, ABS, エアバッグ), 列車制御, 航空機制御
• 工業制御, その他
プラント制御, 工業用ロボット, エレベータ, 自動販売機, 医療用機器, 業務用データ端末






• 最終製品が多岐に亘るため、汎用コンピュータに比べて組み込みシステムは非常数と種類が多い。
• ソフトウェアだけでなくハードウェアも専用のものを開発することが多い。また、そのハードウェアに対応したデバイスドライバを作る必要もある。
• 機械の制御を行う場合にはリアルタイム制御が重要になる。
• 大量生産される製品の場合にはコストが非常に重要となるので、必要最低限のメモリと、安価なCPUで動作する必要がある。小規模なシステムでは1チップマイコンを利用することが多い。
• ほとんどの組み込みシステムでは、ユーザがプログラムを入れ替えたり更新したりすることは想定されない。そのため汎用コンピュータよりも自由にオペレーティングシステムやシステム構成を選択できる。
• 組み込みに用いられるOSとしては、日本においてはμITRON仕様OSが採用されることが多い。VxWorks、OS-9、QNXなども広く利用され、また最近では強力なネットワーク機能により本来汎用OSであるNetBSD、OpenBSD、FreeBSDなどのUnix-likeOSにも注目が集まっている。詳しくは、組み込みオペレーティングシステムを参照のこと。
• ただし、現在においても、特に低資源の環境ではOSを採用しないことも多い。
• かつては、ソフトウェアはEPROM(特にUV-EPROMが使われることが多かった)に書き込まれた状態で出荷されたため、出荷後にバグが発見されると、製品回収・交換作業などが必要になり、多大な費用がかかった。近年は主にフラッシュメモリが採用されるようになったので、出荷後の書き換えも可能となったが、大きな影響を及ぼすことには変わりはない。デジタル家電やパソコンの周辺機器などの場合、修正ソフトウェアはネットワークを介して公開されることが多い。
• ソフトウェアはC言語で記述されることが多い。32ビット以上のマイコンなど、比較的ハードウェア資源が豊富な環境ではC++やJavaが使用されることもある一方で、4ビットマイコンなどの資源が貧弱な環境や、逆に他言語では間に合わないような極めて高速な処理を求められる場面では、現在でもアセンブリ言語の使用が必須である。
• (ソフトウェア開発全般の話で)最近では開発にUMLといったオブジェクト指向の手法が取り入れられるようになっている。ただし組み込みシステム開発においては、機能で分類したクラスでプログラムを組み立てるのではなく、信頼性が保証されたモジュールで組み立てるのが普通である。
• デバッグは、ICEと呼ばれる機器を用いてパソコンをCPUに接続してリモートで行う。近年では、ICEを使わずJTAGエミュレータやROMエミュレータなどのエミュレータや、パソコン上でCPUの機能をシミュレートするシミュレータも使用される。
• 近年ではPCベースのハードウェアの低価格化に伴い、PCベースのハードウェアを使用し、OSも組み込み向けにカスタマイズしたWindows CEやLinuxなどが採用されている。Windows Embeddedは航空券のチェックインシステムからコンビニのPOSレジまで幅広く採用されている(組み込み版ではなかったWindowsNT 4.0の頃から組み込みシステムに採用されていた)。
• 携帯電話やデジタル家電、自動車など、必要とする機能が多岐にわたるシステムは、複数のマイコン・複数のOSを組み合わせたものとなり、数百人単位の開発人数・数年規模の開発期間を必要とする。このため、大規模組み込みシステムと呼ばれることがある。
• 専用のハードウェアに専用のソフトウェアが搭載されて製品となるものが多いので、そのテスト工程は、ハードウェア、ソフトウェアの両方にまたがる検証が重要になる。



マイコンはどのようなところで使われているか

 最近の家電製品に多く使われている。パソコンで使うマウス、マウスの移動方向と移動量を数値データに変換してパソコンに出力している。


扇風機では、操作スイッチに応じてモータの回転数を制御して風量を調節したり、快適な清涼感を得るために風量を自然の風の揺らぎに近づけたりしている。マイコン内蔵タイマにより一定時間経過したら停止する「お休みタイマ」なども簡単に実現できる。


自動車のキーレスエントリでは、カギ側ではボタン操作情報とシリアル番号・暗号キーなどから、暗号化したシリアルデータを生成するエンコーダに、車体側では送られてきたシリアルデータに含まれる暗号キーを元に解読し、ボタン操作情報を取り出すデコーダに、それぞれマイコンが使われている。同一車種でも所有者が異なると開閉できなかったり、複数のキーで1台の車の開閉ができるしくみは、カギ側のシリアル番号を車体側のマイコンに登録しておくことで、暗号解読の際にシリアル番号の照合を行い、登録してある相手からの情報であるかどうか判断しているからである。

 また、エアコンもマイコンを使われてるが、エアコンを例にすると以下のようになる。

a.部屋の温度を調べる(入力)
b.部屋の温度と設定温度を比較する(判断)
c.設定温度以上であれば止めて、設定温度以下であれば暖める(出力)
 基本的には上記のa~cを繰り返して部屋の温度を一定にしている。

 ただし、マイコンを使ってプログラムを作るともう少し賢い制御ができる。 例えば25度に温度を設定している場合、上記の処理では25.1度になるとエアコンがOFFして24.9度になるとエアコンがONしてしまい、頻繁にON/OFFを繰り返すことになる。

 上記を解決するために、判断を賢くして設定温度が25度でも26度以上でOFFして24度以下でONするようにプログラムを作ることで頻繁なON/OFFを防ぐことができる。



1/15 冨田

マイコンとは

マイコンとは、CPUやメモリを1つのLSIチップに集積した回路のことである。
マイコンとは元々「マイクロコンピュータ」の略称で、文字通り、超小型のコンピュータを意味するのものだった。「パソコン」の用語が広まる以前は、個人レベルで使用するコンピュータシステムを指してマイコンと呼んでいた。ここから派生して、マイコンに「マイコンピュータ」(my computer)という意味が付け加えられた。
マイコンという言葉は最近の家電製品にも使われており一般的になってきた。 



 CPUは、プログラム(命令)を実行するもの。プログラムでは、ある入力に対して様々な計算や条件判断を行い何らかの出力を行う。
 メモリとは、1または0といったようにBIT単位(2進数)のデジタルデータを記録するための半導体記憶素子である。


マイコンはどのようなところで使われているか

 最近の家電製品に多く使われている。パソコンで使うマウス、マウスの移動方向と移動量を数値データに変換してパソコンに出力している。
扇風機では、操作スイッチに応じてモータの回転数を制御して風量を調節したり、快適な清涼感を得るために風量を自然の風の揺らぎに近づけたりしている。マイコン内蔵タイマにより一定時間経過したら停止する「お休みタイマ」なども簡単に実現できる。
自動車のキーレスエントリでは、カギ側ではボタン操作情報とシリアル番号・暗号キーなどから、暗号化したシリアルデータを生成するエンコーダに、車体側では送られてきたシリアルデータに含まれる暗号キーを元に解読し、ボタン操作情報を取り出すデコーダに、それぞれマイコンが使われている。同一車種でも所有者が異なると開閉できなかったり、複数のキーで1台の車の開閉ができるしくみは、カギ側のシリアル番号を車体側のマイコンに登録しておくことで、暗号解読の際にシリアル番号の照合を行い、登録してある相手からの情報であるかどうか判断しているからである。

 また、エアコンもマイコンを使われてるが、エアコンを例にすると以下のようになる。

a.部屋の温度を調べる(入力)
b.部屋の温度と設定温度を比較する(判断)
c.設定温度以上であれば止めて、設定温度以下であれば暖める(出力)
 基本的には上記のa~cを繰り返して部屋の温度を一定にしている。

 ただし、マイコンを使ってプログラムを作るともう少し賢い制御ができる。 例えば25度に温度を設定している場合、上記の処理では25.1度になるとエアコンがOFFして24.9度になるとエアコンがONしてしまい、頻繁にON/OFFを繰り返すことになる。

 上記を解決するために、判断を賢くして設定温度が25度でも26度以上でOFFして24度以下でONするようにプログラムを作ることで頻繁なON/OFFを防ぐことができる。

 このように、マイコンを使ってプログラムを動かす(実行)ことで細かな制御ができるようになる。


パソコンとマイコンの違い


 パソコンとマイコンの大きな違いとして、CPUとしての処理能力が違う。 パソコンはマイコンに比べて単位時間当たりの命令実行数が多くなる。 ひとことで言うとパソコンのCPUが速いということになる。

 しかし、使用用途を考慮した場合に速いCPUが必ずしも良いとは限らない。 速いCPUの特徴として以下のことがある。

1.消費電力が大きい
消費電力が大きいとは電気をたくさん使うということ。
バッテリーで動作する物を開発する場合に電気を多く使うCPUを使うとバッテリーで動作できる時間が短くなってる。

一概に言えませんが、クロック周波数(パソコンにある何MHzとか何GHzという数字)が高ければ処理能力が高くなるが、同時に消費電力も高くなる。

2.高価である
パソコンで使われているCPUは数千円から数万円の価格で販売されている。
しかし、マイコンになると数百円またはそれ以下という価格でも購入できる。
量産品を作る場合は部品のコストは重要である。





1/8 冨田
前回はやはり回路の配線がしっかり挿してなかった。しっかり挿したらLEDがしっかり光ってくれた。
また、LCDのモジュールの制御のプログラミングを打ったが、コンパイルができない。次回見直して完成したい。


12/26 冨田
昨日_ _dataの所を_dataをにしたが、___dataにした。あと、変換ができなかった理由は、数字のゼロと英語の大文字のオーと間違えて打ったため。
プログラミングはできたのだが、しっかりLEDが思ったとおりに光ってくれない。
次回は回路を見直していく。


12/25 冨田
前回のcrt0.sをアセンブルできなかったが、_ _dataの所を_dataにしたところできた。次にcrt0.oとbasicio.oのリンクするが失敗。原因は先ほどの _ _dataの所を_dataにしたためリンクの
ファイルも_ _dataの所を_dataに直してなかったから。
しかし最後のbasicio.coffをbasicio.motに変換するところでエラーが多数。原因はわからないのでプログラミングの中を少しずつ書き直してみる。

石垣

H8(3069)がウェブサーバ。IP:192.168.10.2 PCをクライアント。IP:192.168.10.1
H8にはウェブサーバプログラム(MESの開発者のサンプル)http.elfを搭載。
そのほか、H8のマザーボード上のLEDをクライアント側の操作で光らせるCGIプログラムbrled.elfも搭載。
サーバとクライアントはクロスLANケーブルで接続。

ターミナルでH8を操作し、http.elfを実行。
クライアントのブラウザでサーバ内のプログラムbrled.elf(http://192.168.10.2:8088/brled.elf)を実行。
クライアントのブラウザにindex.htmlが表示。
ブラウザ上のチェックボックスのデータを送信ボタンを押したときにサーバに送信。
  送信するとき、http://192.168.10.2:8088/brled.elf  (この部分にフィールド名=値1&フィールド名=値2…とエンコードされて、サーバに渡される。)
  サーバは渡された値によってマザーボード上のLEDを点灯/消灯させる。  


12/20 冨田
テスト用の書き込み失敗の原因を判明。プログラミングを書き込むときにMD2端子をGNDに接続し、FWE端子を
5Vに接続をしてなかったから。
今はポートの入出力のプログラミングを作っているが、どうしてもスタートアップルーチンがうまく起動しな
い。原因はプログラミングの.dataセクションの内容だと思われるが、どこがだめなのか分からない…

石垣
ブラウザからマザーボード上のLEDを点灯させることに成功。(プログラムは参考にしているHPより)
IEの設定で3069と通信ができなかった。(pingは通っていた。)
RS232Cじゃなくてブラウザからなにかできるようにしようかなぁと思案中。


12/18 石垣
COMポートの不調はドライバのインストール後、再起動しなかったから?の模様。あの後直った。
ブラウザからマザーボード上のLEDを点灯させるつもり。
だが、うまく繋がってない。WEBサーバのプログラム(公式のとこから拾ってきたの)がちょっと違う?
要確認

12/17 石垣
3069へtftpによってLAN経由で自作プログラムをのせて実行することはできた。
が、USBシリアルポート変換ケーブルをつかってみたら今まで使っていたCOMポートまで動作不調に。
(COMポートは開いているが、H8(3069、3664ともに)通信できない)
自分の使っているPCが駄目みたい。
変換ケーブルか?変換ケーブルのせいか?

12/14 石垣
OS(以下MES)を乗せ変えたのはいいが、自作プログラムをRAMに転送させる方法がわかんない。
仮想サーバ立ち上げて、LAN経由で3069側から落とさせるらしい。
そのための設定に手間取り中。
でも、電光掲示板につかっている3664のほうもMESを使っているような感じが・・・
なので、これで通信ができれば結構簡単にいけるかも?

3069とPCはLAN(クロス)ケーブルで、直接つなぐつもり。
ルータって使っちゃいけないんですよね?

調べたところ、RS232Cケーブルをつかってもいけそう??

12/13 石垣
3069のOSは参考にしているHPと同じものに。
ただし、プログラムを乗せるときにLAN経由らしいのでクロスケーブルを購入予定(探したけど、研究室内にはなさそう)
これで、RS232Cでターミナルでのコマンドによる操作でなく、自作プログラムで操作ができれば
通信プログラムは間違っていないことになる。

12/12 石垣
3069でSCIをユーザープログラムで動作させる場合は、JP1から線を引き出してDサブ9ピンとつなげなければならない。

え?また工作するん?
3052に使っているものを拝借するか・・・というか、それが一番はやそう。
参考にしているところが新しいOSのため、3069につんでいるOSを最新のものに書き換えたほうがよさそう。

これで通信ができればwin側のプログラムは間違っていないことになる。
そうすると問題点は、
送るデータが間違っている。(形式どおりにどうコマンドを送るか?)
送信データバイト数の設定が間違っている。
に、絞ることができると思われる。

12/11 石垣
3069にデータを送りつけたとき、どこにはいるのか?
3069側のプログラムは?

3052は今後、入出力とできればLCD

12/10 石垣
winから通信ソフトを使わずに、プログラムから電光掲示板を操作する。
けど、できない。
送信データバイトの設定がおかしい?
ファームウェアへのコマンドが届いてない?

3664(電光掲示板セット)の前に3069で通信のテストをする。
これができれば、通信はできていると思われる。
そうすると問題は、3664のファームウェアに送るコマンドデータが
おかしいとわかるはず。


毎日いて、この進み具合はマズイ

12/6 冨田
テスト用のプログラムをCPUに書き込み。
だが失敗。色々試したが原因は不明。あとはハンダゴテでつけた所の接触不良の可能性があるから、
次回はそこの所をチェックする。


12/5 石垣
Cで直接3664と通信することにする。
コマンドと数値だけで直接操作できる?(ターミナルが内部で変換しているのかいないのか)
通信プログラムはみつけたので、それを解読。自分で使えるようアレンジ。


12/3 石垣
ハイパーターミナルをつかってコマンドによる希望座標のLEDを光らせることができる。
図形LEDで表示させる。
毎回、座標を計算してコマンドで送るのは大変なのでC言語で自動化しようとおもう。
そのためのプログラムを考える。
問題は、3664への通信。
ターミナルにコマンドと座標をおくってターミナル経由でシリアル通信する?

11/28 冨田

h8のテストプログラムを作成。


11/28 石垣

3664と電光掲示板は壊れてなかった。
電光掲示板のほうは一緒に入っていたソフトで動作確認済み。
このソフトなしで自分でC言語で組んで表示させるようにする。したい。できればいいなぁ・・・
LCDも新たに買ってきたのでこっちの表示もさせてみる。

Cで組むために、ファームウェアのコマンド解析。etc

11/22

h8-3664と電光掲示板の動作確認

動作テストしたあとに、3664がショート・・・

11/08
/*h8マイコンテストプログラム*/
/*ポート3を入力に設定 押しボタンスイッチ*/
/*ポートBを出力に設定 LED*/
/*押しボタンスイッチが押されている間LED点滅*/
/*離したらLED消灯*/

<h8/reg3067.h> /*h8/3069fで使用するI/Oポートを定義*/
<h8/syscall.h> /*h8/OSを使う場合に必ず指定をする*/

int main() {
int sw;
PBDDR = 0xff;/*PB全8ビットのポートを出力に設定する*/
P3DDR = 0x00;/*P3を全ビット入力に設定*/
		
while(1) {
	sw = P3DR & 0x01; 	/*スイッチ入力*/
	if(sw == 0){	/*スイッチがONならば*/
	PBDR = 0x0f;	/*LED出力*/
	sleep(5);		/*0.5秒待機*/
	PBDR = 0;		/*LED消灯*/
	sleep(5);		/*0.5秒待機*/
}
else	/*スイッチがOFFならばLED消灯*/
	PBDR = 0;
}
}
sleepの場所をwaitでの待機にしようとしたがコンパイル時にできなかった。
/usr/h8300-hms/lib/h8300h/int32/libc.a(syswait.o): In function `wait':
syswait.c:12: undefined reference to `_wait'
collect2: ld returned 1 exit status

sw = P3DR & 0x01; /*スイッチ入力*/の部分
ビット0の状態を調べるために1とANDしている。
すると、ビット0以外のビットは必ず0にクリアされるため結果的にビット0だけが残る。
それを変数swにいれているのでビット0の値で処理ができる。

作成したスイッチ入力回路はスイッチがONの時に0(LOW)となるので変数swが0の時、
IF文の中の処理に向かう。

11/6
入力テスト終了
P3と接続したスイッチを押すとPBに接続されたLEDが消灯

10/29

h8/3664と電光掲示板との接続リード線の”準備”

プレゼンの準備

10/18

LCD死亡?
LCDは配線がどこか繋がっていなかっただけで使えた模様。
おいらの一日を返して!orz
LCD探してくる。
次回CPUボードの入力を考える。

10/11

LCDのテストをしたところ表示がされなかったので、マザーボードから取り外し確認してみることに。
しかし、取り外せない、まいった。
LCDはなかったことにするか??思案中
マザーボードのLEDも点灯することを確認。

10/04

Bポートを使い、四つのLEDを(0101)(1010)の交互に点灯させることに成功。次はスイッチを追加して、スイッチが押されたときに点灯させるようにする。
また、他のポート(つかっていい場所)でも試してみる。



10/03

h8/3069を通してLEDを点灯することに成功。ひゃっほーい
ただし、LEDと抵抗だけの回路なので元のものとは違う?


今までできなかったのはLEDが死んでいたのと、プログラムミス。
回路もまちがっていたかもしれない。要確認。



09/27

動作確認用のLED回路作成。
電子回路を誰か確認していただけるとありがたい。
完成した後、3069マザーボードにLEDがついているのを発見。これ使ってもいけそう。

h8/3069にのせるLED点灯用のプログラムは完成した。

ただし、include<h8/3067.h>(h8/3069のI/Oポート定義)がないといわれる。
なので、defineでポートごとに定義。
h8/OSのh8/syscall.hはあるのにおかしい。同ファイルにreg3067.hがあるのにもかかわらず認識されず。
10/2
include<h8/reg3067.h>で解決しました。
ソースが読みにいってるファイルになかっただけでした。


しかし、h8/3069のRAMに書き込まれた、アドレス「fff600」にアクセスできず。
やり方がおかしい?
要確認。

壊れたh8/3069よりDCジャックとDサブ9ピン(メス)を分離。
h8/3052の方で再利用予定。

LED点灯は来週末までには!!

3052のRS232C用のコードは作成完了。でも、Dサブ取れたんだからこれ使ったほうが早そう。


/*led P4*/
/*#include <h8/3067.h> h8/3069fで使用するI/Oポートを定義*/
<h8/syscall.h> /*h8/OSを使う場合に必ず指定をする*/
#define
P4DDR (*(volatile unsigned char*)0xfffc8) /*ポート4の定義*/
#define
P4DR (*(volatile unsigned char*)0xfffca)
int main() {
   P4DDR = 0x01;	  /*P4のポートを出力に設定する*/
while(1) {
  P4DR = 0x00;	/*P4をLにする*/
  sleep(10);	/*1秒の時間待ち*/
  P4DR = 0x01;	/*P4をHにする*/
  sleep(10);	/*1秒の時間待ち*/
 }
}


C:\Documents and Settings\烏野\h8program>h8300-hms-gcc -O -mh -mint32 -T ram3067
.x -o led.coff -nostartfiles ramcrt0.s led.c -lc

C:\Documents and Settings\烏野\h8program>h8300-hms-objcopy -O srec led.coff led.
mot

C:\Documents and Settings\烏野\h8program>put led.mot
fff600 10 5E FF F6 06 54 70 01 00 6D F6 0F F6 01 00 6D F4
fff610 10 7A 03 00 0F FF C8 FA 01 68 BA 7A 04 00 0F FF CA
fff620 10 18 AA 68 CA 01 00 6B 22 00 00 01 3C 1A 80 88 0A
fff630 10 5D 20 FA 01 68 CA 01 00 6B 22 00 00 01 3C 1A 80
fff640 6 88 0A 5D 20 40 DA



09/11
サンプルプログラムの動作
ハイパータミナルからexecコマンドでサンプルプログラムを動作さ せようとすると止まる。
原因不明。
たまに、dumpでもとまる。(反応がなくなる)
CPUボード側でリセットスイッチを押すと再び反応する。

通信時に光るはずのLEDが発光せず。
不良品?



09/04
マザーボード作成完了
CPUボードの動作確認未



07/16
H8/3069F(CPUボード完成 要動作確認)
マザーボードはCPUボード動作確認後作成予定
KARAAGEに開発環境セッティング

RS232C9ピン:入手済
h8/3069FCPUボードにOSインストール 8/9:インストール完了

電源は+5V安定化電源



h8マイコンボードの制作目的
終了
   CPUの動作確認最優先
  なんらかの形で動作確認をする。
  候補:LEDと接続し点灯

予定
  入力と出力のテスト
  スイッチによる入力とLEDによる出力


(未)LEDとの接続
LEDと接続し動作確認を行ったら、マザーボードの作成
のちLCDによる文字表示など
(要)目的は?
h8/3069FはLANボードなので通信を使ってなんらかの成果を出したい。LCDがマザーボードについているので、外部からの入力に反応してなんらかの出力をする?






自宅PCでコンパイルしたいなどと聞いたので
C言語用コンパイラ&エディタなど
ここを参考に
http://www.ooyashima.net/db/prog.htm#vc
BCC Developerは使えるようにしたので、インストールのサポートはできます。
ちなみに、BCC Developerは統合開発環境です。
BCC Developerのreadme.txtを読めばインストは出来るはずです。
コンパイラ本体はユーザー登録の必要あり

今まで自分の使っているものが配布終了していたので、どれがいいかは分からなくなりました。
なげっぱなしもあれなんで。
連絡用においておきますね。っ[sinnya07atgmail.com]at=@
最終更新:2008年02月06日 21:31
ツールボックス

下から選んでください:

新しいページを作成する
ヘルプ / FAQ もご覧ください。