[ALFAT]マルツ電波で販売されているファイルシステムを搭載したH8/Tinyマイコンボード(MH8ALFAT05)を使って8チャンネル、表示単位は0.5度、温度範囲0°C~100°C(計測精度は0°C~50°Cが±1度、それを超える範囲では最大±3°C)まで計測及び記録できる温度ロガーを製作しました。現物は16日から開催されるインターネプコンで展示される(様に今頑張っているところ)予定です。Tinyマイコンを使用しており、ファイルシステムにはFATファイルシステム専用のICを使用しています。入出力要素として多数のポートを引き出せるようにし、またボード上にはキャラクタLCDインタフェース、4bitのタクトスイッチ、圧電スピーカー、RS232(EIA574)コネクタを用意してあります。ファイルシステムなのでRTCを必要としますが、電池バックアップ可能なRTCも搭載可能です。デバック用にはE8インタフェースコネクタを装備しています。ソフトウエアには、フリーのμITRON4.0仕様OSのHOSを搭載し、タスク構成=機能分割とする事で基本設計を容易にし、全体的な開発工数の削減を行う事ができました。103AT-2)を使用しています。このサーミスタはNTC、つまり負の温度係数を取る抵抗体で、温度が上がるほど抵抗値が減少します。写真は、今回作成したセンサーケーブルとテスターに接続されたK型熱電対をいっしょにアルミ箔で包んだ状態です。実は部品手配に失敗して、8チャンネル計測できるところ、5チャンネル分のセンサーケーブルしか作製できていません。サーミスタは白金温度センサーやIC温度センサー等と異なり、温度に対する抵抗値の変化が直線とはならず、今回の作品は0°C~100°Cまでを計測範囲としていますが、特に高い方の温度ではH8の内臓している10bitのA/Dコンバーターでは分解精度が不足するので、MH8ALFAT05基板とは別にアナログ入力用の基板を製作し、そちらに12bitのA/Dコンバーターを搭載しています。センサー及びセンサーケーブルは、ケーブルの抵抗値が誤差になる事を防ぐ目的で3線式ケーブルとなっていますので、容易にケーブル長を伸ばす事が可能です。ノイズの多い環境下で使用する時は、2芯シールドケーブルを使用する事でノイズ耐性を高める事が出来ます。※計測温度範囲は0°C~100°Cとしていますが、実際にセンサーケーブルの作製に使用したケーブルや熱収縮チューブは100°Cまで耐えられる物を用意できなかったので、実質的な耐用温度は70°C程度となっています。ちなみにサーミスタの温度/抵抗値の特性をエクセルにグラフを描かせると、こんな事になっています。縦軸が抵抗値で単位はΩ、横軸が温度で単位は°C。50°Cを超える辺りから曲がりがきつくなり、分解能が直線的なA/Dコンバーターでは高い温度での精度が苦しくなる事が容易に想像できます。このロガーには警報表示出力機能を持たせて有ります。基板下部のユニバーサル領域に赤と青のLEDをそれぞれ8個並べておりますが、予め設定された温度を超えると、このLEDは青色から赤色のLEDの点灯に切り替わります。沢山のポートが余っているので、リレーを搭載して、警報のリレー出力とする事も可能ですし、基板上の圧電スピーカーでピー!ピー!ピー!と鳴らす事も可能です。表示メッセージですが、まあ16文字×2行という非常に少ない表示量で行わなければならないので、あまり親切な表示メッセージとは言い難いのですが、左上の"R"は”RUNNING”、つまり計測実行中を表し、その右は記録間隔(P=PERIOD:単位は分)を示しています。ちなみに表示の更新は1秒で行われます。記録間隔の右隣は現在時刻を表しています。下の行が計測温度を表示していて、”チャンネル番号:計測温度”のフォーマットとなっています。画面が小さいので一度に表示できるチャンネルは2個となります。その為別のチャンネルを見るためには、タクトスイッチのUP/DOWNキーで表示チャンネルを切り替えます。一応目標としていた50°Cを超える範囲での最大3°Cの誤差と言うのは、何とか入ったみたいです。これはチャンネル1と2。これはチャンネル3と4。これはチャンネル5と6。チャンネル6はセンサーケーブルが接続されておらず開放状態となっている為、抵抗ブリッジ回路での差分電圧が発生せず、25°C表示となっています。7、8チャンネルも同様になっています。自宅でやっているので、揃えられる設備はこの辺が限界!。熱容量が大きく、蓋をする事で狭い空間内の環境を維持し易いので、外乱を受け難い環境を構築はできます。100°Cに達した時点でホットプレートのスイッチを落としたのですが、ヒーターの余熱でこの後120°Cまで上がってしまいました。ちなみに今回の試験で記録されたデータです。10分置きのデータとなっています。画像をローカルに落としてから開くと、拡大して見る事ができます。ローカルに落としてから見る事ができます。常に温度が変化している状態なので、ややバラツキが見えます。更なる精度を求めるなら、個々のセンサーの特性を取る必要が有るのかもしれません。今回のサーミスタのB定数は3435K。25°Cにおけるゼロ負荷抵抗値は10KΩ。B定数、ゼロ負荷抵抗値共に1%精度です。計算上、今回の計測精度の範囲内ならそれ程影響はしないのですが、より高精度な計測を行うなら、個々のサーミスタのB定数や誤差を実測しておく必要が有るでしょう。今回の製作は参考出品用なのであまり予算をもらえず、時間もコストも掛ける事ができません。時間もコストも仕様の内ですから。ちなみに例によってこんな変換テーブルを作って、マイコンのCPUパワーとかメモリとかのリソース消費を減らしています。[ALFAT]まったく個人的な計画なのだけれど、μALFAT基板ポータブル計画なんてやっていています。絶対にメーカーさんは保証しませんし、私も保証しませんが、H8/Tinyが3.3V程度の電圧でも20MHzで動く事に気を良くして写真の様にニッケル水素電池(1700mA/h)四本直列で動かしています。この状態で音楽の再生なら8時間位再生可能です。※1.2V×4=4.8Vなのですが、実際にはそこそこ電流が流れているので電池の内部抵抗による電圧降下から、回路上の電圧は初期で4V程度となっています。なると液晶の表示が問題となってくるのですが、まあ基本的に横着な私は電源を投入すると勝手に再生をし続ける様にプログラムを組んでいますので、「液晶見れらなくても良いか!」なんて手抜きをしていました。最近発売されているSC1602Bは電源電圧に限り2.7Vまで保証されていますので、改めて表示出力を見直しました。問題となるのはコントラスト電圧と言う事になります。VDDに対して4.5V程度低い電圧を供給する必要がありますのでVDDから負電圧を生成できる電圧コンバータ回路が必要となります。電圧コンバーター専用ですが、「良いのが有りましたよお客さん!」これです。MicrochipのTC7660HCPAって奴ですが、ICLとかリニアテックとかマキシム辺りで出している相当品が500円以上していますが、これはなんと157円です。値段付け間違えたんじゃあないの?。この電圧コンバータICの使い方は簡単で、外付けで10μFのコンデンサを2個用意するだけです。それであっさりVDDを反転した負電圧を生成してくれます。一応コンデンサには低ESR品が指定されていますので、電解コンデンサでは無くタンタルコンデンサを使用しました。容量に関しては10μFを下回らなければ良いみたいで、22μFとか、それ以上の容量でも動くと思われます。※電池で駆動しているのでVDDの変化が気になりますが、ニッケル水素電池は充電直後の初期電圧から1.2V位に落ちた後、そこで根性を出してその電圧を維持し続け、最後の最後にストンと落ちますので、それ程液晶のコントラストの変化を気にしなくても構わないと思います。調整用可変抵抗にはつまみ付きの物を用意すれば安心でしょう。※μALFAT評価基板に実装する時は、可変抵抗を標準の位置に実装せず、基板下部のユニバーサル領域で、負電圧の生成回路と、コントラスト調整用可変抵抗を組み立てると簡単です。[ALFAT]画像をクリックすると販売ページに行きます。うーん、今回はまたえらい発売まで紆余曲折有ったが、なんとかここまで漕ぎ着けた。基本的にSDカード(一応MMCカード)+FATファイルシステム+H8マイコンの組み合わせなので、色々な事に使う事ができます。なんか役に立ちそうなアプリケーションを考えて見ます。トラックバック(0)H8/Tinyって、3.3Vで動いちゃうのね。20MHzを3.3Vで動かしてみました。あーっさり動いています。LCDの表示は駄目ですが。ちなみにH8/Tinyの3.3V時の動作保証は10MHzだっけ?。́ー`)でグリグリ、でも何ら問題なくMP3の再生をやっています。日立、もといルネサスったら、相変わらずスペックを最大の安全サイドで書くんだから。トラックバック(0)おおっと忘れていた。TRADE会場でマルツさんが出展するので、ついでにμALFAT基板を展示してもらいました。スペースは小さいけれど、入り口の直ぐ側と言う事もあり、ひっきり無しにマルツさんのパンフレットが入った紙袋を受け取っています。展示会に入るとまず欲しくなるのが手提げ袋。持たされますので、その辺を十分判ってらっしゃるようです。ちなみにザイリンクスなんか特大紙袋を寄越してきますので、必然的にザイリンクスの紙袋を持ってうろうろする人が多い、宣伝効果を考えています。私は、軽くて丈夫な布製の袋が一番嬉しいな。[ALFAT]年末からこれで大忙し。ネプコンでマルツさんのブースにて展示してもらえるよう、ハードウエア作ったり、アプリケーションデバックしたり、これからドキュメントも作成せねばならない。Ethernet拡張基板なんてハードウエアも作ったけれど、こっちはソフトウエアに関しては、何ら手を付けていない。[ALFAT]※注意!これからこのブログを書きながら最終的なハードウエアデバック、アプリケーションソフトウエアの構築に入ります。写真や文章と実際の製品では異なる部分が出る可能性が有ります。その点をご了承下さい。続き引き続きヒューマンデータさんから提供していただいたμALFATを実装したFAT-005をいじっています。一文字コマンドALFATが二文字のコマンドだったのに対してより短くなっています。ALFATの場合はエラー以外はプロンプトの表示だったのに対して、μALFATでは成功でも、失敗でもリザルトコードが返ります。フレームモードの廃止。使い方の良く判らなかったフレームモードが廃止となり、全てテキストモード?となっています。ファイルの同時オープン数が16から4へ。16は必要無いでしょうからね。QFPになっています。CPUパワーアップ50MHzから最大70MHzとなったのかな。従来はソフトウエアで時計機能を実現していましたが、μALFATではハードウエアでRTCをサポートしています。為、32KHzのクリスタルを外付けできるようになっています。その他細かい所の変更、機能強化が有ったと思いますが、まあこの辺で止めて置きます。実際に動かして見ます。Loaderの扱いです。Loaderにアクセスできません。H8とはI2Cで接続しているのですが、いきなりファームウエアが起動してしまうので、通常の使用では問題無いのですが、ファームウエアの更新をする時にどうするか困っています。→"I"コマンドでSD/MMCカードをマウントします。!00細かい点では、ALFATではコマンドに使える文字は大文字でも小文字でも構わなかったのですが、μALFATの場合は大文字のみです。これはそれ程問題では無いのですが。→成功また、ディレクトリのリストコマンド(ALFATなら"LF")が無くなっていますね。代わりになるのは"@"コマンドと"N"コマンドでしょうか?。→"N"コマンドでファイル名またはディレクトリ名を順次出力します。→ディレクトリリストの最後を示します。新たにディレクトリを作成し、そこに二つのファイルを書き込みモードでオープンし、適当なデータを書き込み、ファイルをクローズ、ディレクトリを取ってファイルが出来ている事を確認、今度は読み出しを行い、ファイルの削除を行う所までをデモしてみます。→書き込みモードでオープン。「VOLTAGE.LOG」は削除されてしまった。LOADERの問題以外は、これは使えるのではないでしょうか。この一文字コマンド体系も、ヒューマンインタフェースではイマイチですが、マイコンからの操作の場合はむしろ容易になると思います。S"コマンドを発行する事で、更新処理に入ります。ALFATのファームウエアの時の様にI2C上でも「W??」と言うメッセージが出ないので、どのタイミングで停止して良いのかさっぱり判りません。2.06!00うーん、困った。[ALFAT]※注意!これからこのブログを書きながら最終的なハードウエアデバック、アプリケーションソフトウエアの構築に入ります。写真や文章と実際の製品では異なる部分が出る可能性が有ります。その点をご了承下さい。ヒューマンデータさんありがとう!編ALFATのキットを作成するにあたって、なにかとヒューマンデータさんには色々(技術的な事とかMSのあれとか)お世話になっているんです。ALFATチップの日本の代理店でもありますし。今回はなんとμALFATチップの評価用にFAT-005とμALFATチップを融通していただきました。時間掛かってしまいましたが、写真の様に評価基板に組み付ける事が出来たので、いよいよμALFATを使ってみたいと思っています。これの結果が良ければ、ALFATからμALFATへの切り替えも検討しています。[ALFAT]※注意!これからこのブログを書きながら最終的なハードウエアデバック、アプリケーションソフトウエアの構築に入ります。写真や文章と実際の製品では異なる部分が出る可能性が有ります。その点をご了承下さい。アプリケーション編2LM35DZの場合、計測範囲が0°C~であり、0°C以下になっても出力は0に張り付いたままになってしまうので、逆にこの温度センサーICを0°C以下に冷やす事で、回路のオフセット電圧を調べる事が出来ます。そこでALFATの基板に5分間だけA/D値の記録を取るプログラムを作成し、冷蔵庫の冷凍室に突っ込んで見ました。結果は2~3のA/D値をサンプリングできましたので、この回路のオフセットは3とします。オフセット調整回路を持たない割りには、なかなか優秀ですね。この回路は前回も紹介した通り0°C~50°Cまでの温度を計測します。オフセットが無ければ0°C~50°Cに変化した時、LM35DZの出力は0mV~500mV変化します。H8のA/Dのダイナミックレンジは0Vから5Vまでなので、LM35DZの出力をそのまま入れたのではA/Dの性能を有効に使っていない事となり、それは勿体無いのでLM35DZとH8の間にオペアンプを入れて増幅をする話でした。50°Cとなった時に、H8に5V入る様に増幅してもいいのですが、上限に若干余裕を持たせて、50°Cの時に約4.5V入る様に増幅率を設定します。オペアンプは非反転増幅回路を構成し、使用するのは1%精度の金属皮膜抵抗です。増幅率を決める二つの抵抗の抵抗値は160KΩと20KΩを予定していましたが、手持ちに162KΩしか無かったので、実際は162KΩと20KΩとなっています。理論上の増幅率は9.1と言う事です。1%精度の抵抗なので、最大1%の誤差がある訳ですが、0°C~50°Cの範囲で小数点以下1位までしか計測しないので、これで十分でしょう。ところでフルスケールですが、H8/3687Fの場合VREF端子を持たないので、VCCがA/Dコンバータの基準電圧となってしまいます。A/Dコンバータのダイナミックレンジは電源電圧に影響されてしまうので、この基板の電源電圧も求めて置きましょう。テスターで計ると5.05V有りました。アナログ入力が5.05Vの時にA/Dの最大値の1023となる訳です。いう事はA/D値を温度に換算するには以下の式を解く事となります。フルスケールこれで読み取ったA/D値を温度に換算してLCDに表示したのが冒頭の写真です。簡単ですが調整が完了したので、早速温度計測&ロガーとして動かしてみましょう。H8/3687のRTCを動かし、1秒周期のタイマーを起動します。そのタイマーの値をメイン関数でモニタし、1秒の変化のタイミングでA/Dコンバータを起動、CH4のA/D値をLCDに表示します。10秒置きにファイルへも書き込みを行います。以下がRTCを起動している処理と、割り込みハンドラです。}ファイルへはCSV形式(カンマ区切りのテキスト形式)で記録されますので、記録されたメディアをパソコンに挿し込んで表計算プログラムで読み込めば以下の様なグラフを表示する事が出来ます。温度が大きく変化しているのはLM35DZを指で摘んで温度変化をさせているからです。[ALFAT]※注意!これからこのブログを書きながら最終的なハードウエアデバック、アプリケーションソフトウエアの構築に入ります。写真や文章と実際の製品では異なる部分が出る可能性が有ります。その点をご了承下さい。アプリケーション編1ちょっと間が開きましたが、動作確認は終了しましたので、今度は簡単なアプリケーションを作成しています。作成するのは「温度(室温)ロガー」です。温度の様な身近な物理現象は、体感し易く、実生活に影響を及ぼすとても日常的な現象で、既に温度計を持っている方も沢山居るでしょう。そんな温度計だからこそ、例えば終日の温度の変化を記録に取って色々役立てる事が出来ます。ペットを飼ってはいるが、日中にペットを残して不在になる人も多いでしょうけれど、残されたペットの健康の為にも家の温度の変化って気になりますよね。このキットはロガー機能だけと言う訳ではないのだから、プログラミングする事で温度の変化に伴ってエアコンを制御したりする事も可能となります。基本的にリモコンを操作できればいい訳ですから。小さい、見難いって!まあまあブログでの話なのでその辺は。温度センサーにはLM35DZを使用しています。回路が簡単になりますからね。LM35シリーズはパッケージによって計測温度範囲が-55°C~+150°Cの物も有りますが、このDパッケージの場合は0°C~100°Cまでとなります。室温を計測するには下の方の温度範囲が狭いのですが、まあとりあえずのアプリケーションですから。この温度センサーICの特徴は、1°Cの変化に対して出力が10mVとなっている点で、例えば温度が100°Cに達した時は出力は1V出ている事となります。今回は100°Cまで計りません。0°C~50°Cの範囲とし、マイコンのA/Dコンバータの入力レンジを有効に使う為に温度センサーICの後ろにオペアンプを追加して増幅しています。ゲインの設定は、固定抵抗を使用して約9倍のゲインとしています。50°Cの時の温度センサーICの出力が500mVなので、マイコンの入力には4.5V入る事となります。今回使用した金属皮膜抵抗には公称値に対して1%の誤差を持っており、またオペアンプ自体にもオフセットエラーが存在するので、温度計測の精度を求めるなら何らかの調整が必要となります。一般家庭で恒温槽を持っている人は居ないでしょうから、室温と冷蔵庫で計測してグラフにプロットし、オフセット及びゲインを実測するとかになりますね。基板のユニバーサル領域にこれら部品を配置していくのですが、事前に基板CAD(この例ではEAGLE)を使って配置を決めておくと、作業が楽になります。EAGLEのAUTOROUTERで描かせて見たのが上の配線です。最近のコメントこんなものでよろしければ。場合..ありがとうございます。Electronicsアットマークエレ不要なデバイスドライバーを削除ダウンロードInterface付属SH2基板のSRAM有り/無しデバックモニタとHOS-V4同梱バージョンHOS本のサンプルをH8/3048Fでデバックする為のデバックモニタH8/3048Fのセクション情報ファイルインポートして使います。