« STM8Sマイコンを使った最初のアプリケーション (4) | メイン | HC08マイコンの使い方QY4A編 -《71》スタック・ポインタとスタック領域(2) »

78KマイコンでLED温度計 <4>


LED温度計の回路
 さて、このように7セグメントLEDのダイナミック点灯回路が完成したところで、おなじくエレキジャックNo.8に付属したLM73高精度温度センサICを組み合わせて、LED温度計の回路を完成します。

zu9.jpg
図 9 ブレッドボードに製作したLED温度計の回路

 図 9に完成したLED温度計の回路図を示します。

 回路はエレキジャックNo.8付属の78K0/KB2マイコン基板に同じく同誌付属のLM73温度センサ基板をSMBUSインターフェースで接続したものです。SMBUSインターフェースはI2Cインターフェースを基本に拡張されたインターフェース規格です。SMBUSインターフェースには省電力で通信できるようにI2Cインターフェースの物理規格の一部を見直しています。
 78K0/KB2およびLM73はSMBUS規格に対応しているので、短距離配線とクロック周波数100kHz以下を条件に、プルアップ抵抗R1,R2を10kΩと大きくし、消費電流を削減することが可能になります。

 CN1はNECエレクトロニクス社のオンチップ・デバッガMINICUBE2接続端子です。プログラムのデバッグでMINICUBE2を使用しない場合、CN1は不要ですが、R3からR6のプルアップ・プルダウン抵抗はそのままにしてください。

 また、電源コネクタCN2はMINICUBE2から電源供給を受ける場合は不要です。

 エレキジャックNo.8付属のマイコン基板、温度センサ基板、さらに低消費電流タイプのダイナミック点灯専用の複合7セグメントLEDを用いることでシンプルにLED温度計が構成できました。

LED温度計のソフトウェア
 LED温度計のハードウェアが完成したところで、ソフトウェアの開発にかかります。ここでは、開発の順序に沿ってLED温度計に作るにあたって要点になる点を解説していきます。

LED温度計の処理の流れ
 LED温度計には大別して、三つの処理の流れがあります。ひとつは、78K0/KB2マイコンのクロックや割り込みなどのシステム設定I/Oポートやタイマ、通信インターフェースの設定など各種初期設定を行う、初期設定部、初期設定の後、LM73と通信をして温度DATAをLEDの表示DATAに変換する、メイン・ループ部、LEDのダイナミック点灯をするため、タイマ割り込みで一定時間ごとに起動してLEDの点灯シーケンスを行う表示シーケンス部に分かれます。

Applilet2による初期コードの自動生成
 Applilet2とはNECエレクトロニクス社が提供する同社のMCU用デバイス・ドライバを自動生成するツールです。
 起動すると図 10のような画面が現れ、クロック設定、デバッガ、パワーオン・クリアの設定などの「システム」、I/Oポートの各種設定を行う「ポート」、外部割り込み端子の設定を行う「割り込み」、A-Dコンバータ設定の「A-Dコンバータ」、UART、CSI、I2Cインターフェースの設定を行う「シリアル」、各種タイマ・モジュールの設定「タイマ」、ウォッチドッグ・タイマの設定を行う「ウォッチドックタイマ」、低電圧検出回路の設定を行う「低電圧検出回路」の合計八つのボタンが現れます。

 これら設定したい項目をクリックすれば設定画面が現れ、必要項目を設定するだけで、自動的にターゲット・アプリケーションのプロジェクト・ファイルを生成して、必要な初期化コード、呼び出し関数などを生成してくれます。

 したがって、ユーザーは煩わしいMCUのレジスタ設定をApplilet2に任せて、アプリケーションの動作を規定するプログラムのみ記述すればよいことになります。また、Applilet2の各種設定はいつでも変更して、ユーザー記述部分をそのままに変更コードを自動生成します。

 以下にApplilet2によるLED温度計の設定例を見ていきましょう。

zu10.jpg
図 10 デバイス・ドライバ自動生成ツール “Applilet2”

・ システムの設定
 システムの設定はクロック設定と、オンチップ・デバッグ設定の2か所を設定します。

 クロック設定はシステム・クロック源の選択と動作周波数を設定します。LED温度計ではMCUの高速内蔵発振器を使用してCPUクロックを2MHzに設定しています。

 オンチップ・デバッグの設定では、MINICUBE2用にOCD1A,OCD1B端子を使用するよう設定します。

zu11.jpg
図 11 クロックの設定

zu12.jpg
図 12 オンチップ・デバッグの設定

・ ポートの設定
 78K0/KB2マイコンの入出力ポートの設定を行います。

 図 13は例としてポート3(P30-P33)の設定画面示します。画面のP31,P32は、ほかのI/Oデバイス(OCDポート)として使用されているので「!」マークが表示されて、ほかの機能モジュールが同端子を使用していて、その設定ができない旨を表しています。
 LEDのダイナミック点灯に用いるポート(P10-P17 ,P21,P20,P01,P00,P120)はLEDがLowになると点灯する負論理出力です。したがって、初期設定時にポートにHighが出力されていないと、ダイナミック点灯プログラムが実行される前に関係のないLEDが点灯してしまいます。そこで“1”と表示のあるチェック・ボックスにチェックを入れると、初期設定時に出力ポートに“1”が設定され、High出力になります。

 その他、使用していないポート(P22,P23,P30,P33,P121-P122)はシステムの安定動作のために入力ポートのまま放置せず、出力ポートに設定して端子の電位を固定しておきます。

zu13.jpg
図 13 ポートの設定

・ 割り込み A-Dコンバータ
 割り込み(入力端子割り込み) A-DコンバータはLED温度計では使用していません。デフォルトのままで設定の必要はありません。

・ シリアル
 シリアル通信インターフェースは、LM73との通信にIIC0モジュールを使用します。シリアル通信設定画面でIIC0モジュールのTABを選定して転送モードのラジオ・ボタンを“使用する”にチェックを入れます。同時に左下の“詳細”ボタンを押すとIIC0モジュールの詳細設定画面が現れます。LED温度計では詳細設定はデフォルトのままでOKです。設定が初期設定であることを確認しておきます。


zu14.jpg
図 14 シリアル設定

・ タイマ
 LED温度計では周辺タイマとしてTM00、TM50をどちらもインターバル・タイマとして使用します。

 TM00はmain関数内で一定時間ごとに温度計測をしてLED表示DATAを作成する、システム・インターバル・タイマとしてメイン・ループを起動するため200msごとにタイマ割り込みを発生させるために使用します。main関数内ではメイン・ループの始めでTM00からの割り込みを待ちます。設定は図 15のように設定します。

zu15.jpg
図 15 TM00の詳細設定



 もう一つのTM50は、7セグメントLEDのダイナミック点灯ルーチン用の割り込みを発生させます。TM50では1msごとに割り込みを発生させて、その割り込み処理ルーチン内でLED7セグメントLEDのダイナミック点灯処理をしています。設定は図 16のように設定します。

zu16.jpg
図 16 TM50の詳細設定

・ ウォッチドッグ・タイマ
 LED温度計のように長時間動作を続ける可能性のある装置では、何らかの原因でシステムに不具合が生じプログラムが暴走する可能性がないとは限りません。そこで、一定時間内にタイマをクリアしないと、システムをリセットするようウォッチドッグ・タイマをセットします。ウォッチドッグ・タイマはMCUのCPUや周辺I/Oが使用している高速内蔵発振器とは別の低速内蔵発振器で独立して動作していて、高速クロックに不具合が生じた場合でも確実に動作するようになっています。

 ウォッチドッグ・タイマのクリアは200msごとに割り込み信号を発生するシステム・インターバル・タイマを監視して起動する、メイン・ループ内で行われ、設定は図 17のように約546msの間にタイマをクリアしないとリセットがかかるようにします。


zu17.jpg
図 17 ウォッチドッグ・タイマの設定

・ 低電圧検出回路
 LED温度計は、電源電圧4~5Vで動作するよう、設計しています。電源電圧がそれ以下の電圧の場合でも、出力ポートやコモン・ドライブのトランジスタの能力低下と同時にLEDの順電流が低下するので、LED表示が暗くなる以外は問題なく動作します。
 78K0/KB2マイコンは1.8Vから動作することができますが、温度センサのLM73は2.7V以下では動作が保証されていません。そこで電源電圧が2.7V±0.1V以下になった場合、リセットがかかるように78K0/KB2マイコンの低電圧検出回路を設定します。設定は図 17のようにします。

zu18.jpg
図 18 低電圧検出回路の設定

寺尾 大二

カテゴリ:

トラックバック

このエントリーのトラックバックURL:
http://www.eleki-jack.com/mt/mt-tb.cgi/3846

コメントを投稿

(いままで、ここでコメントしたことがないときは、コメントを表示する前にこのブログのオーナーの承認が必要になることがあります。承認されるまではコメントは表示されません。そのときはしばらく待ってください。)

カテゴリ

会社案内
情報セキュリティおよび個人情報の取り扱いについて

コメントとトラックバックは、spamを予防するために、編集担当が公開の作業をするまで非公開になっています。
コメントはそれぞれ投稿した人のものです。

Powered by
Movable Type 4.1