マキシムの環境光センサーに変換終了検出を実装する方法
要約
このアプリケーションノートでは、マキシムの環境光センサーの割込みピンを使って変換終了検出を実装し、測定に対する応答時間を向上させる方法について説明します。
はじめに
マキシムの高性能環境光センサーのMAX44007およびMAX44009は、フォトダイオート、フロントエンドアナログ回路(AFE)、2つの高分解能ADC、デジタル減算/データフォーマット回路、およびI²Cインタフェースブロックを組み合わせています。これらの光センサーは、業界最先端の低動作電流レベル(0.65µA)、低電圧1.8V ICC動作、超低光感度、および小型2mm x 2mm x 0.6mmのパッケージも提供します。
光積分時間が100msの倍数(100/200/400/800msなど)のとき、これらの環境光センサーは優れた50Hz/60Hz除去を提供します。しかし、多くの場合、アプリケーションは高信頼の環境光センサー情報にアクセスする際の不必要な遅延を防ぐため、変換終了信号が必要になります。このアプリケーションノートでは、これらのデバイスの割込みピンを使って変換終了機能を実装する方法について説明し、I²Cレジスタの設定についても詳しく説明します。
レジスタマップ
表1に、これらの光センサーのI²Cレジスタマップを示します。.
Register | Bit | Register Address | Power-On Reset State | R/W | |||||||
7 | 6 | 5 | 4 | 3 | 2 | 1 | 0 | ||||
Status | |||||||||||
Interrupt Status | — | — | — | — | — | — | — | INTS | 0x00 | 0x00 | R |
Interrupt Enable | — | — | — | — | — | — | — | INTE | 0x01 | 0x00 | R/W |
Configuration | |||||||||||
Configuration | CONT | MANUAL | — | — | CDR | TIM[2:0] | 0x02 | 0x03 | R/W | ||
LUX Reading | |||||||||||
LUX High Byte | E3 | E2 | E1 | E0 | M7 | M6 | M5 | M4 | 0x03 | 0x00 | R |
LUX Low Byte | — | — | — | — | M3 | M2 | M1 | M0 | 0x04 | 0x00 | R |
Threshold Set | |||||||||||
Upper Threshold High Byte |
UE3 | UE2 | UE1 | UE0 | UM7 | UM6 | UM5 | UM4 | 0x05 | 0xFF | R/W |
Lower Threshold High Byte |
LE3 | LE2 | LE1 | LE0 | LM7 | LM6 | LM5 | LM4 | 0x06 | 0x00 | R/W |
Threshold Timer | T7 | T6 | T5 | T4 | T3 | T2 | T1 | T0 | 0x07 | 0xFF | R/W |
変換終了検出の実装
実装は、割込み検出ロジックはADCが有効なデータを持った後にのみ、すなわちADC変換の終了時にICの内部でアクティブ化されるという事実に基づきます。進行中のADC変換/積分時間の間、割込み検出ロジックは²Cレジスタ設定の変化を無視します。この部品が(下限スレッショルドを上限スレッショルドより大きい値に設定するなどの方法で)変換の結果に関係なく割込みをトリガするように設定された場合、割込みピンを監視することによって、変換終了信号を取得することができます。
以下に、手順ごとに説明したアルゴリズム例を示します。
手順1:クイックアクセス用に設定します。
1100 0111をConfigurationレジスタ0x02に書き込みます。これによって、部品は次の非デフォルト設定で設定されます。手順2:変換終了時と同時に強制割込みトリガがでるように設定します。CONT = 1 (即時かつ連続変換の場合)
MANUAL = 1 (積分時間の最小マニュアル調整を許可する場合)
TIM = 111 (積分時間を最小可能= 6.25msに設定する場合)
下限スレッショルドハイバイト = 1111 1111を書き込みます。手順3:ユーザーコマンドが有効な変換を開始するまで「待機」状態を維持します。上限スレッショルドハイバイト = 0000 0000を書き込みます。
スレッショルドタイマー = 0000 0000を書き込みます。
この間、部品からの任意の割込みトリガを無視します。手順4:有効な変換の起動を開始します(マスターによるコマンドの後)。
1000 0000をConfigurationレジスタ0x02に書き込みます。これによって、オートレンジと連続変換に設定されます。手順5:手順3に戻ります。設定されている割込みをすべてクリアするためInterrupt Statusレジスタ0x00を読み取ります。アクティブローINTピンがハイに移行します。
アクティブローINTピンを監視することによって、割込みトリガを待ちます(注:手順1のTIM設定によって最大待機時間は6.25msとなります)。
これで、実際の光センサー測定が開始されます。
設定されている割込みをすべてクリアするためInterrupt Statusレジスタ0x00を読み取ります。アクティブローINTピンがハイに移行します。
1100 0111を書き込み、現在の変換期間の終了後に6.25ms積分時間を返すように設定します。
有効な光測定の変換終了を知らせるアクティブローINTピンを監視することによって、割込みトリガを待ちます。