Special
» 2014年01月24日 00時00分 UPDATE

宮崎 仁のマイコン基礎の基礎:第16回 MSP430™ LaunchPadの入出力機能を拡張する、スイッチのプルアップとチャタリング防止回路

[PR/EDN Japan]
PR

 前回に引き続き、テキサス・インスツルメンツ社(TI)のMSP430™ LaunchPadバリュー・ライン開発キットを用いて、実際のマイコンのハードウェア、ソフトウェアの開発方法を体験しながら学びます。今回は、スイッチ入力で注意が必要なプルアップとチャタリング対策について説明します。

スイッチ入力回路の構成と内蔵抵抗

 第14回(前々回)と第15回(前回)では、MSP430 LaunchPadのターゲット回路に搭載されたスイッチS2を使って、プログラムによるスイッチ入力(第14回)と、スイッチ割り込み(第15回)を利用してみました。回路図で見ると、このスイッチS2はMSP430のP1.3に直接接続されています(図1)。

mm140124_ti_micon16a_fig1.jpg 図1 MSP430 LaunchPadターゲット回路のスイッチとLED

 S2の片側はGNDに接続されているので、S2を押すとP1.3入力は"L"になります。一方、S2を放したときにP1.3入力を"H"側に引っぱり上げるために、P1.3入力とDVCCの間にプルアップ抵抗を付ける必要があります。

 図1にはプルアップ抵抗が書いてありませんが、MSP430の汎用I/Oポート(ポート1、ポート2)は、このプルアップ抵抗を内蔵しています。また、"L"側に引っぱり下げるためのプルダウン抵抗にもなります。PxRENレジスタとPxOUTレジスタを使用して、プルアップ/プルダウンなし、プルアップ使用、プルダウン使用、の3つの動作モードを設定可能です(図2)。

 なお、図2にはP1.3だけ書いてありますが、ポート1、ポート2の全ビットが同じようにプルアップ/プルダウン抵抗を内蔵しています。抵抗の大きさは、標準で35kΩ(最小20kΩ、最大50kΩ)です。

mm140124_ti_micon16a_fig2.jpg 図2 MSP430の内蔵プルアップ/プルダウン抵抗

 抵抗値が約35kΩなので、DVCC=3.3Vで動作させたとき、ポートの入力電圧を"L"にすると約100μAの電流が流れます。この電流値はわずかですが、省電力のためにMSP430をスリープさせたときにも流れるので、注意が必要です。S2のような押しボタン・スイッチでは長時間押し続ける("L"になり続ける)ことはないと思いますが、外部信号をポートに入力するような使い方では注意が必要です。

チャタリングとその対策

 スイッチ入力でもう1つ注意が必要なのは、チャタリング対策です。第14回でも説明しましたが、スイッチ接点をオフ→オン、オン→オフに変化させたとき、ごく短時間(一般に数ms程度)ですがスイッチ出力が振動的になり、複数のパルスが発生することをチャタリングと呼びます(図3)。

mm140124_ti_micon16a_fig3.jpg 図3 スイッチのチャタリングとソフトウェアによる除去

 最近の基板用小型スイッチはチャタリングが起きにくくなっていますが、スイッチを押した回数をカウントする用途では問題になります。チャタリング対策はいくつかありますが、代表的なのはソフトウェアによる除去と、CR回路による除去です。

 図3は、チャタリングの様子と、それをソフトウェアで除去する方法を示しています。スイッチを押した直後に数msのチャタリング、スイッチを放した直後にも数msのチャタリングがあります。スイッチ入力を読み込むプログラムでは、チャタリングの持続時間より少し長い周期(例えば10ms程度)で繰り返し読み込みを行い、2回続けて同じ値が得られたとき"L"になった、あるいは"H"になったと判定します。

 第14回で作成したプログラム例では、ソフトウェアでチャタリング除去を行っています。

チャタリング防止回路の追加

 ソフトウェアによるチャタリング除去は、ハードウェアの変更を必要としない利点がありますが、そのかわりソフトウェアの作り方が制限されます。第15回で作成したプログラムでは、1回のスイッチ割り込みで入力値を判定しており、ソフトウェアによるチャタリング除去を行っていません。

 そのような場合には、スイッチ入力回路にコンデンサを追加することで、簡単にチャタリングを除去する方法もあります(図4)。この場合、内蔵プルアップ抵抗だと電源投入時などに切り離されてしまうので、プルアップ抵抗も外付けを使用します。

 コンデンサとプルアップ抵抗がCR積分回路を構成し、"L"⇒"H"の電圧変化のスピードが遅くなるため、スイッチ接点が高速に振動してもポートの入力電圧の変化は小さくなります。CR回路の時定数は、チャタリング時間の1/100〜1/10程度に選べばよいでしょう。図4で10nF(0.01μF)のコンデンサを追加した場合、時定数CR=0.01μF×47kΩ=0.47msとなります。

mm140124_ti_micon16a_fig4.jpg 図4 CR回路によるチャタリング除去

 なお、MSP430 LaunchPadの基板には、追加のコンデンサ(C24)とプルアップ抵抗(R34)を搭載するためのパターンが用意されています(図5)。

mm140124_ti_micon16a_fig5.jpg 図5 CR回路搭載用に用意されたパターン

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

TIのマイコン製品の詳細はこちら


Copyright© 2017 ITmedia, Inc. All Rights Reserved.


提供:日本テキサス・インスツルメンツ株式会社
アイティメディア営業企画/制作:EDN Japan 編集部/掲載内容有効期限:2014年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.