Special
» 2014年05月26日 00時00分 UPDATE

宮崎 仁のマイコン基礎の基礎:第20回 MSP430™ LaunchPadでキッチンタイマを作ろう 〜ダイナミック点灯編〜

[PR/EDN Japan]
PR

 前回に引き続いて、最大99分50秒の時間を設定できるキッチンタイマを設計・製作します。マイコンボードは、テキサス・インスツルメンツ(TI)のMSP430™ LaunchPadバリュー・ライン開発キットを使用します。

ダイナミック点灯のハードウェア

mm140526_ti1.jpg 図1 4桁7セグメントLED(ダイナミック点灯用、アノードコモン)

 このシステムでは、設定時間や残り時間を4桁(xx分yy秒)で表示するために、ダイナミック点灯用の4桁7セグメントLED表示器を使用します。ダイナミック点灯は、連載の第14回と第15回で紹介したスタティック点灯とはハードウェアもソフトウェアもかなり異なります。今回は、このダイナミック点灯の部分を作って動かしてみましょう。

 ダイナミック点灯用の7セグメントLEDを図1に示します。a〜g、DPの8本のセグメント信号は、内部でそれぞれ4個のLEDに接続されています。4桁を同時に点灯しようとすると、すべて同じ表示になってしまいます。しかし、各桁のLEDはそれぞれ独立のコモン信号D3〜D0をもっているので、1桁ずつ選択して点灯できます。例えばD3のセグメントデータを出力して、同時にD3のコモン信号だけを有効にすれば、D3のLEDだけを点灯させることができます。

 これをD3⇒D2⇒D1⇒D0⇒D3⇒……と繰り返すことによって、左から右へ1桁ずつ順次数字を表示することができます。この繰り返しの速度を速くしていくと、ちらつきながら4桁すべてが見えるようになり、ある程度以上の速さにすれば4桁すべてが同時に点灯して見えます。一般に、60Hz以上の周波数で繰り返せばちらつきは生じません。

mm140526_ti2.jpg 図2 ダイナミック点灯回路

 図2に回路図を示します。今回のシステムではDPは表示しないので、セグメントデータ用としてP1.7〜P1.1の7ビットを割り当てています。また、桁選択用としてP2.3〜P2.0の4ビットを割り当てています。アノードコモンのLEDを使用しているので、桁選択信号をHighにして、セグメントデータ信号をLowにすれば該当するLEDが点灯します。

 なお、ダイナミック点灯では駆動電流に注意が必要です。セグメントデータは同時に1個のLEDしか駆動しないので、1個分の駆動電流が流せれば十分です。一方、桁選択は8個分(今回はDPを使用しないので7個分)の駆動電流が流れる可能性があります。

 この回路では、電流制限抵抗を470Ωとしているので、1個のLEDの駆動電流は約3.2mAであり、7個分だと約23mAになります。MSP430の汎用I/Oは最大駆動電流が±6mAなので、外部ドライバで電流を増幅する必要があります。ここでは、pnpトランジスタの2SA1015を4個使って、簡単なドライバ回路を作成しました。

クロックとタイマの検討

 連載の第15回ではタイマ割り込みを使用してLEDを点滅しましたが、システムのクロック周波数やタイマ周期は厳密に決めてはいませんでした。今回のシステムは1秒ごとにカウントダウンするキッチンタイマなので、そのあたりも検討してみましょう。

 まず、MSP430のシステムクロックは、外部発振器を使用することもできますが、一般的には内蔵DCO(デジタル制御発振器)で生成します。DCOは外付け部品不要で、レジスタに値を書き込むことによって発振周波数を設定できます。

 MSP430™ LaunchPadバリュー・ライン開発キットに搭載されているMSP430G2553の場合、16MHz、12MHz、8MHz、1MHzに設定するための値が、工場出荷時に不揮発メモリに書き込まれています。その値を用いて設定すれば、常温(周囲温度30℃)では±3%の発振精度が得られます。時計など、さらに高精度が必要な用途では、市販の水晶発振子やクロックモジュールを外付けすることになります。

 今回は、DCOで生成した16MHzクロックを、システムのマスタクロック(MCLK)およびタイマ用クロック(SMCLK)として使用します。

 次に、ダイナミック点灯用に使用するタイマを検討します。MSP430G2553はTimer0_A3とTimer1_A3の2つの16ビットタイマを搭載しているので、一方(ここではTimer0_A3)をダイナミック点灯用に使用します。1桁分のタイマ割り込み周期を4msとすれば、D3⇒D2⇒D1⇒D0の4桁分を16msで回すことができ、60Hz以上のダイナミック周波数になります。16MHzクロックをプリスケーラで8分周して2MHzクロックを生成し、それを2000カウントすれば、4msの割り込み周期が得られます。

ダイナミック点灯のソフトウェア

mm140526_ti3.jpg 図3 ダイナミック点灯のテストプログラム

 ダイナミック点灯用のソフトウェア例を図3に示します。

 まず、初期設定ではP1.7〜P1.1およびP2.3〜P2.0を出力に設定し、他のポートは使用しません。また、DCO、Timer0_A3の初期設定を行って、タイマ割り込みを許可(イネーブル)します。

 ここでは、表示値を4個のint型の配列data[4]に、現在の選択桁をint型の変数digitにそれぞれ保存します。割り込みサービスルーチンでは、まずdigitを1減らします。配列から表示値data[digit]を読み出し、7セグメントのフォントに変換してP1.7〜P1.1に出力します。また、桁選択パターンP2.3〜P2.0に出力します。


※MSP430はTexas Instruments Incorporatedの商標です。その他すべての商標および登録商標はそれぞれの所有者に帰属します。

MSP430™ LaunchPadバリュー・ライン開発キットはこちらから購入できます。
TIのマイコン製品の詳細はこちら


Copyright© 2017 ITmedia, Inc. All Rights Reserved.


提供:日本テキサス・インスツルメンツ株式会社
アイティメディア営業企画/制作:EDN Japan 編集部/掲載内容有効期限:2015年3月31日

設計に役立つヒント集

宮崎 仁のQ&Aでよく分かるマイコン基礎の基礎:
第24回 割り込みっていろいろあるのですか?どんな種類があるか教えてください。

今回は、外部割り込み、内部割り込み、ソフトウェア割り込みについて詳しく解説しています
全文を読む


電源IC選択のヒント集
電源IC 使用時の注意点をわかりやすく説明しているほか、使用時に発生する可能性のあるさまざまなトラブルとその対処法についても紹介しています。ぜひご利用ください。ダウンロードには myTI アカウントが必要です。
Part 1をダウンロード
Part 2をダウンロード


アナログ回路設計式一覧ポケット・ガイド
日本語版 PDF

英語版で高い評価を受けてきたポケット・ガイドの日本語版が完成しました。基板レベルやシステム・レベルの回路設計でよく使われるアナログ設計式を紹介しています。ダウンロードには myTI アカウントが必要です。
ダウンロード



facebook & twitter

製品情報、セミナーや展示会などのイベント情報をお知らせしています。

RSSフィード

EDN 海外ネットワーク

All material on this site Copyright © 2005 - 2017 ITmedia Inc. All rights reserved.
This site contains articles under license from UBM Electronics, a division of United Business Media LLC.