ENGLISH 简体中文 日本語 한국어  



   
 
キーワードまたは型番を入力    




アプリケーションノート 4011

DS1803/DS1805ディジタルポテンショメータのプッシュボタンコントローラの構築方法

要約:このアプリケーションノートでは、プッシュボタンとマイクロコントローラを使用してDS1803またはDS1805のディジタルポテンショメータの抵抗を変更する簡単な方法について説明します。

はじめに

このアプリケーションノートでは、DS1803またはDS1805ディジタルポテンショメータの抵抗を変更する簡単な方法を説明します。マイクロチップ社のPIC12F509マイクロコントローラを使用して、4つのスイッチをディジタルポテンショメータにインタフェース接続しています。その他に最小限の数の部品が必要です。

ハードウェア

このアプリケーションノートのハードウェア回路図を図1図2に示します。PIC12F509は、6つのI/Oを備えており、これらを使用して、SDA、SCL、および単一のLEDの制御信号を出力し、4つのスイッチからの入力を受け入れることができます。

図1は、PIC12F509を用いた、交換可能または内蔵の制御回路の回路図を示しています。R1、R2、およびR3は、オプションのプルアップ抵抗であり、PIC12F509を使用するときには実装する必要はありません。図2は、評価のためにDS1803を接続する方法を示しています。ジャンパが設けられており、アドレスピンの選択、共有VCC (VDD)の分離、およびSDAとSCLのアイソレーションを行います。

スイッチのうち3つは、モーメンタリタイプ(自動復帰型)のプッシュボタンで、インクリメント(UP)、デクリメント(DWN)、および中間ポテンショメータ値(MID)のプログラミングに使用されます。これらのスイッチを押すと、マイクロコントローラの3つの汎用I/O (GP0、GP1、およびGP3)を強制的にローにします。これらのI/Oを明示的に選択した理由は、内部に(オプションの)プルアップ抵抗を備えており、低電流のSLEEPモードがイネーブルの場合にウェイクアップ割込みを生成することができるからです。残りの入力スイッチは、GP2に割り当てられるDPDTトグルであり、これらを使用してプログラミングのためにPOT0またはPOT1のいずれかを選択することができます。

SDA、SCL、およびLEDの出力信号は、それぞれGP5、GP4、およびGP0に割り当てられます。SDAとSCLは4.7kΩのプルアップ抵抗を備えており、ディジタルポテンショメータの通信ピンに直接接続されます。LEDとMIDのモーメンタリスイッチは、どちらもリソースとしてGP0ピンを使用します。GP0ピンは、ほとんどの期間の間、入力として機能し、MIDプッシュボタンによって生じるローをポーリングで検出します。ただし、他のモーメンタリプッシュボタンの1つまたは両方が押された場合、PICがローを出力し、LEDが駆動されます。このようにして、LEDはMIDボタンが押されると必ず駆動され、もう1つのプッシュボタンスイッチが押されると必ずPICによって駆動されます。

Figure 1. PIC12F508 interface circuitry.
図1. PIC12F508のインタフェース回路

Figure 2. DS1803 digital potentiometer connected to PIC controller.
図2. PICコントローラに接続されたDS1803ディジタルポテンショメータ

ファームウェア

このプロジェクト向けのファームウェアは、MPLAB IDE (バージョン7.31)でコンパイルされるアセンブリ言語で記述されています。このツールは、現在マイクロチップ社から無償で提供されています。このプログラム全体は、プログラム空間(フラッシュ)にある512未満の命令とデータ空間(RAM)にある11のロケーションで構成されます。

この命令は5つのブロック、すなわち初期化、読出し、UP、DWN、およびMIDに分かれています。このPICは、いかなる割込みも機能として備えていないため、ファームウェアは単純なループを実行し、入力ピンを継続的にポーリングします。スイッチデバウンス機能は、プログラム固有の遅延と論理フローによってソフトウェアに自動的に組み込まれています。

初期化ブロックは、PICのパワーアップ時またはウェイクアップ後(SLEEPがイネーブルの場合)に1度だけ実行されます。初期化ブロックの命令が実行された後、動作レジスタ、フラグ、および変数が既知の状態にロードされます。これらの命令が実行された後、残りのブロックがスイッチのポーリング、I²Cインタフェースを通じた新しいポテンショメータ値の読出し、または書込みのための無限ループを連続的に生成します。

ポテンショメータ値のI²Cの読出しは、RD_FLAGが設定されているときにのみ行われます。このフラグは初期化中に1度設定され、その後は、プッシュボタンがポテンショメータレジスタを呼び出して新しい値が書き込まれるたびに設定されます。ポテンショメータ値の変更時と起動時にのみI²Cの読出しを実行することによって、UP、DWN、またはMIDボタンが押されていないときに、余分な通信バーストがバス上で発生することはありません。たとえば、ポテンショメータがすでに電源トリミングパラメータの制御で使用されている場合、プッシュボタンコントローラが接続されて、インサーキットプログラミングを実行します。現在のポテンショメータ値は、ポテンショメータ値のI²Cの書込みが実行される前に読み出されます。I²Cの書込みが完了すれば、RD_FLAGが再び設定され、新しいポテンショメータ値の最終のI²Cの読出しが1つ生成されます。

UP、DWN、およびMIDの各ブロックは、読出しブロックの後で順次実行されます。これらの各ブロック内で、それぞれのピンがポーリングされてロー状態が検出されます。ハイ状態が検出された場合、プログラムはそのブロックを直ちに終了し、いかなるI²C通信も行われません。ローが検出された場合、論理ブロック図に記載したとおりにプログラムが進行します。

このプロジェクトの設計全体の説明については、ファームウェアフローチャート(PDF, English only)およびソースコード(ASM)を参照してください。

機能の説明

このプロジェクトのファームウェアおよびハードウェアは、DS1803/DS1805のポテンショメータ値をプログラミングするときに、いくつかの異なる動作を実行することが可能です。スイッチおよびLEDの機能を以下に示します。

POT0/1 (トグルスイッチの選択) このスイッチは、次のループ繰返しでいずれのポテンショメータを制御するのかを選択します(必要な場合)。このスイッチをPot 0または1に選択して生じる状態変化によって、I²Cの読出しが行われますが、LEDには影響しません。
MID、UP、またはDWNボタンを軽く押す(< 400ms) これらのスイッチの1つを軽く押すことによって、選択したポテンショメータはインクリメントされるか(UP)、デクリメントされるか(DWN)、あるいは0x80の中間位置(MID)が直ちにロードされます。LEDは、I²Cの書込みが行われている間、一時的に点灯します。I²Cの読出しが次のループ繰返しで行われます。
UPまたはDWNボタンを長く押す(> 400ms) UPまたはDWNボタンを長く押すことによって、選択したポテンショメータは高速インクリメントまたは高速デクリメントモードに入ります。このモードでは、ボタンが解放されるか、または最大/最小の位置に到達するまで、ポテンショメータ値は変化し続けます。LEDはI²Cの書込みが実行されるときに点灯します。したがってLEDはボタンが解放されるまで点灯したままになります。ボタンを解放した後、次のループ繰返しでI²Cの読出しが行われます。
UPを長く押した後、DWNボタンを軽く押す UPボタンを長く押すことによって、選択したポテンショメータはインクリメントを開始します。次に(UPボタンを押したまま)、DWNボタンを軽く押すと、選択したポテンショメータに0xFFの最大位置が直ちにロードされます。LEDはスイッチが解放されるまで点灯します。ボタンを解放した後、次のループ繰り返しでI²Cの読出しが行われます。
DWNを長く押した後、UPボタンを軽く押す DWNボタンを長く押すことによって、選択したポテンショメータはデクリメントを開始します。次に(DWNボタンを押したまま)、UPボタンを軽く押すと、選択したポテンショメータに0x00の最小位置が直ちにロードされます。LEDはスイッチが解放されるまで点灯します。ボタンを解放した後、次のループ繰返しでI²Cの読出しが行われます。
LEDが3回点滅する LEDは、パワーアップ時にPICコントローラが初期化されるとき、またはウォッチドッグタイマによってシステムがリセットされるとき(イネーブルの場合)に必ず3回点滅します。
LEDが連続的に高速に点滅する I²Cのエラーが生じると、必ずLEDが高速に点滅します。エラーが修復されると、LEDは正常機能に戻ります。デバイスアドレスが正しいこと、またI²Cバスが接続されていることを確認して問題を解決してください。

結論

このアプリケーションノートでは、不揮発性ディジタルポテンショメータDS1803/DS1805用の簡単で費用対効果の高いコントローラを使用および構築する方法について説明しています。ボタン入力は、I²Cのコマンドに変換され、インクリメント、デクリメント、または中央位置の設定が行われます。この設計にホストコンピュータは不要です。また、このプロジェクトでは、ポテンショメータ制御を実現するために最小限の数の外付け部品が必要です。

このアプリケーションノートに関するご質問/ご意見/ご提案は、までお送りください(英語のみの対応となります)。


関連製品  APP 4011: Jul 17, 2007
DS1803 アドレス可能、デュアルディジタルポテンショメータ フルデータシート
(PDF, 304kB)
無料
サンプル
DS1805 アドレス指定可能なディジタルポテンショメータ フルデータシート
(PDF, 260kB)
無料
サンプル

自動アップデート
お客様が関心のある分野でアプリケーションノートが新規に掲載された際に自動通知Eメールの受信を希望する場合は、EE-Mail™にご登録ください。


We Want Your Feedback!



フィードバックをお寄せください。
内容に満足されましたか、あるいは満足されていませんか?もっと良いページにできると思いますか?あるいは、単なるコメントでも結構です。フィードバックをお待ちしています。—マキシムはお客様からいただく訂正、提案を元に改善していきます。 このページを評価し、フィードバックを送信する。

 

ダウンロード、PDFフォーマットダウンロード、PDFフォーマット(52kB)
 AN4011, AN 4011, APP4011, Appnote4011, Appnote 4011

        •         •         •     プライバシーポリシー     •     法的お知らせ

    Copyright © 2009 by Maxim Integrated Products