TCS34725カラーセンサ日訳データシート
※本記事は下記TCS34725データシートを筆者が個人利用のために日訳したものです。翻訳ミス等あるかと思いますが無保証でお願いします。
- 特徴
- 赤外光をフィルタを施し、赤緑青(RGB)と透明光を測定することが出来ます。
- アナログゲインや積分時間を変えることが可能です。
- 3,800,000:1 のダイナミックレンジを持っています。
- 高い感度を有しており、黒っぽいガラス越しでの測定に最適です。
- 測定値の割り込みマスク上限と下限を設定可能です。
- 2.5uAの定電流でスリープが可能。待機時は65uAであり2.4ms~7sまで設定可能です。
- 400kbit/sの高速I2C通信が可能。
- 詳細
TCS34725には3×4のフォトダイオードと4個のアナログコンパレータがあります。フォトダイオードには赤外光を遮断するフィルタが取り付けられています。RGB, C(透明光)は同時に各16bitの値に変換されてレジスタに格納されます。通信はI2C規格を使用しており400kbit/sで通信可能です。I2C以外にも独立した割り込み機能を有しており、ユーザー側で閾値の設定が可能です。閾値を超えると割り込みが有効となり、割り込み信号をクリアするまでは割り込み状態を保持します。閾値は上限/下限を設定できます。割り込みピンはオープンドレインなので他のデバイスとのOR接続可能です。
- 絶対定格
- 供給電圧VDD:3.8V
- 入力電圧:-0.5~3.8V
- 出力電圧:-0.5~3.8V
- 出力電流:-1~20mA
- 保存温度:-40~85℃
- 静電耐性:2000V
- 表中の%は透明光に対する赤緑青の比率を表しています。
- 465 nmの入力放射照度は、次の特性を持つInGaN発光ダイオードによって提供されます。
主波長λD= 465 nm、スペクトル半値幅Δλ½= 22 nm。 - 525 nmの入力放射照度は、次の特性を持つInGaN発光ダイオードによって提供されます。
主波長λD= 525 nm、スペクトル半値幅Δλ½= 35 nm。 - 615 nmの入力放射照度は、以下の特性を持つAlInGaP発光ダイオードによって提供されます。主波長λD= 615 nm、スペクトル半値幅Δλ½= 15 nm。
- 状態遷移図
内部ステートマシンは、RGBCのシステム制御とデバイスの電源管理機能を提供します。
電源投入時に、内部のパワーオンリセットがデバイスを初期化し、低電力のスリープ状態にします。I2Cバスで開始条件が検出されると、デバイスはIdle状態に移行し、Enable Register(0x00)PONビットをチェックします。 PONが無効の場合、デバイスはスリープ状態に戻って電力を節約します。それ以外の場合、デバイスはRGBC機能が有効になる(AEN)までアイドル状態のままです。 有効になると、デバイスは図6に示すように順番に待機およびRGBC状態を実行します。完了してアイドルに戻ると、PONおよびAENが有効のままである限り、デバイスは自動的に新しい待機RGBCサイクルを開始します。
- RGB演算
RGBCエンジンには、RGBCゲインコントロール(AGAIN)と、RGBCフォトダイオード用の4つの統合アナログデジタルコンバーター(ADC)が含まれています。 RGBC積分時間(ATIME)は、RGBC読み取りの分解能と感度の両方に影響します。 4つすべてのチャネルの統合は同時に発生し、完了時に変換サイクルでは、結果はカラーデータレジスタに転送されます。 このデータは、チャネル数とも呼ばれます。転送はダブルバッファリングされており、転送中に無効なデータが読み取られないようにします。 転送後、デバイスは構成されたステートマシンに従って自動的に次の状態に移行します。
注:このドキュメントでは、イタリック体のビットフィールド名に続いてレジスタアドレスとビット番号を使用して、機能を制御するレジスタとビットを簡単に識別できるようにしています。 たとえば、パワーオン(PON)はレジスタ0x00、ビット0にあります。これはPON(r0x00:b0)として表されます。積分と待ち時間をプログラムするためのレジスタは、2の補数値です。 実際の時間は次のように計算できます。
ATIME = 256 − Integration Time / 2.4 ms
逆に、時間はレジスタ値から次のように計算できます。
Integration Time = 2.4 ms × (256 − ATIME)
たとえば、100ミリ秒の積分時間が必要な場合、デバイスは次のようにプログラムする必要があります。
256 − (100 / 2.4) = 256 − 42 = 214 = 0xD6
逆に、プログラムされた0xC0の値は以下に対応します。
(256 − 0xC0) × 2.4 = 64 × 2.4 = 154 ms.
- 割り込み
割り込み機能は、ユーザー定義の範囲外の光強度値についてセンサーをポーリングする必要をなくすことにより、システム効率を簡素化および改善します。割り込み機能は常に有効であり、そのステータスはステータスレジスタ(0x13)で利用可能ですが、割り込み状態の出力は、有効レジスタ(0x00)のRGBC割り込み有効(AIEN)フィールドを使用して有効にできます。2つの16ビットの割り込みしきい値レジスタにより、ユーザーは制限を希望の光レベルの上下に設定できます。クリアデータ(CDATA)がクリア割り込み下限しきい値(AILTx)よりも小さいか、クリア割り込み上限しきい値(AIHTx)よりも大きい場合、割り込みを生成できます。まず、しきい値が順番に評価されることに注意してください。低しきい値、次に高しきい値。その結果、低しきい値が高しきい値より上に設定されている場合、高しきい値は無視され、低しきい値のみが評価されます。割り込みが発生するタイミングをさらに制御するために、デバイスは永続性フィルターを提供します。持続性フィルターにより、ユーザーは、割り込みが生成される前に、連続する範囲外のクリアの発生回数を指定できます。持続性フィルターレジスタ(0x0C)を使用すると、持続性フィルター(APERS)の値を設定できます。持続性フィルター値の詳細については、持続性フィルターレジスターを参照してください。永続化フィルターが割り込みを生成すると、特別な機能の割り込みクリアコマンドが受信されるまで続行されます(コマンドレジスタを参照)。
- システムタイミング
図5に示されているシステムステートマシンは、状態と状態遷移の概要を示しています。
デバイスのシステム制御を提供します。このセクションでは、ステートマシンのサイクルタイムに影響を与えるプログラム可能な機能に焦点を当て、システムレベルのタイミングを決定するための詳細を提供します。
電源管理機能が有効(WEN)の場合、ステートマシンは待機状態に移行します。待機時間は、アサートされると通常の動作を12倍延長するWLONGとWTIMEによって決定されます。待機時間を決定する式は、図9の待機状態に関連するボックスに示されています。
RGBC機能が有効(AEN)の場合、ステートマシンはRGBC InitおよびRGBC ADC状態を遷移します。 RGBC Init状態には2.4 msかかりますが、RGBC ADC時間は積分時間(ATIME)に依存します。 RGBC ADC時間を決定する式は、図9の関連するボックスに示されています。RGBCサイクルの結果として割り込みが生成された場合、RGBC ADCの最後に割り込みがアサートされます。
注:1. PONが有効になっている場合、2.4 msのウォームアップ遅延があります。 PONが有効でない場合、デバイスは図のようにスリープ状態に戻ります。
2. PON、WEN、およびAENは、イネーブルレジスタ(0x00)のフィールドです。
- 電源管理
待機状態はIDD電流の通常65μAしか消費しないため、消費電力は待機状態で管理できます。 電源管理機能の例を以下に示します。 例で提供されている仮定を使用すると、平均IDDは152μAと推定されます。
例と同じプログラム値を維持しながら、表2は、平均IDD電流がWEN、WTIME、およびWLONGによって決定される待機状態時間によってどのように影響を受けるかを示しています。 最悪の場合の電流は、待機状態が有効になっていないときに発生することに注意してください。
- I2Cプロトコル
インターフェースと制御は、I2Cシリアル互換インターフェース(標準または高速モード)を介して、デバイス制御機能と出力データへのアクセスを提供する一連のレジスターに対して実行されます。これらのデバイスは、7ビットI2Cアドレス指定プロトコルをサポートしています。
I2C標準は、3つのタイプのバストランザクションを提供します:読み取り、書き込み、および結合プロトコル(図10)。
書き込み操作中、最初に書き込まれるバイトは、コマンドバイトとそれに続くデータです。複合プロトコルでは、最初に書き込まれるバイトはコマンドバイトで、その後に一連のバイトが読み取られます。読み取りコマンドが発行されると、前のコマンドのレジスタアドレスがデータアクセスに使用されます。同様に、コマンドのMSBが設定されていない場合、デバイスは最後の有効なコマンドに格納されているアドレスに一連のバイトをレジスタアドレスで書き込みます。コマンドバイトには、制御情報または5ビットのレジスタアドレスが含まれます。制御コマンドは、割り込みをクリアするためにも使用できます。
I2CバスプロトコルはPhilips(現在のNXP)によって開発されました。 I2Cプロトコルの詳細については、http://www.i2c-bus.org/references/にあるNXP I2C設計仕様を確認してください。
- レジスタセット
TCS3472は、シリアルインターフェイスを介してアクセスされるデータレジスタとコマンドレジスタによって制御および監視されます。 これらのレジスタはさまざまな制御機能を提供し、ADC変換の結果を決定するために読み取ることができます。 レジスター・セットを表3に要約します。
特定のレジスタにアクセスするメカニズムは、使用される特定のプロトコルによって異なります。 前のページのI2Cプロトコルに関するセクションを参照してください。 一般に、COMMANDレジスタは最初に書き込まれ、後続の読み取り/書き込み操作のために特定の制御ステータスデータレジスタを指定します。
- コマンドレジスタ
コマンドレジスタは、この先の書き込みおよび読み取り操作のためのターゲットレジスタのアドレスを指定します。
FIELD | BIT | DESCRIPTION | |
CMD | 7 | Command Registerを選択します。 COMMANDレジスタをアドレス指定する場合、1として書き込む必要があります。 | |
TYPE | 6~5 | 後続のデータ転送で従う処理内容のタイプを選択します。 | |
FIELD VALUE | INTEGRATION TIME | ||
00 | 繰り返しバイトプロトコル | ||
01 | 自動インクリメントプロトコル | ||
10 | 予約(不使用) | ||
11 | 特別機能(以下参照) | ||
バイトプロトコルは、各データアクセスで同じレジスタを繰り返し読み取ります。 ブロックプロトコルは、連続するバイトを読み取る自動インクリメント機能を提供します。 |
|||
ADDR/SF | 4~0 | アドレスフィールド/特殊機能フィールド。 トランザクションタイプに応じて、上記を参照してください。このフィールドは、特別な機能コマンドを指定するか、後続の読み取りおよび書き込みトランザクション用の特定の制御ステータスデータレジスタを選択します。 以下にリストされているフィールド値は、特別な機能コマンドにのみ適用されます。 | |
FIELD VALUE | READ VALUE | ||
00110 | Clear channel interrupt clear | ||
other | 予約(不使用) | ||
Clear channel interrupt clear特殊機能は、保留中の割り込みをすべてクリアし、セルフクリアします。 |
- Enable Register (0x00)
Enable Resisterは、主にTCS3472デバイスの電源をオン/オフし、表5に示すように機能と割り込みを有効にするために使用されます。
FIELD | BITS | DESCRIPTION |
Reserved | 7~5 | 予約(0を書き込む) |
AIEN | 4 | RGBC割り込み有効。アサートされると、RGBC割り込みの生成を許可します。 |
WEN | 3 | 待機を有効にします。 このビットは待機機能をアクティブにします。 1を書き込むと、待機タイマーがアクティブになります。 0を書き込むと、待機タイマーが無効になります。 |
Reserved | 2 | 予約(0を書き込む) |
AEN | 1 | RGBC有効。 このビットは、2チャネルADCをアクティブにします。 1を書き込むと、RGBCがアクティブになります。 0を書き込むと、RGBCが無効になります。 |
PON1,2 | 0 | 電源オン。 このビットは、内部発振器をアクティブにして、タイマーとADCチャネルが動作できるようにします。 1を書き込むと、発振器がアクティブになります。 0を書き込むと、発振器が無効になります。 |
注:1.詳細については、「電源管理」セクションを参照してください。
2. PONがアサートされてからRGBCを開始できるようになるまでに、2.4 msの最小間隔が経過 する必要があります。
- RGBC Timing Register (0x01)
RGBCタイミングレジスタは、RGBCクリアおよびIRチャネルADCの内部積分時間を2.4ミリ秒単位で制御します。 最大RGBCカウント=(256 − ATIME)×1024最大65535まで。
- Wait Time Register (0x03)
WLONGビットがアサートされない限り、待機時間は2.4 ms刻みで設定されます。この場合、待機時間は12倍長くなります。 WTIMEは2の補数としてプログラムされます。
- RGBC Interrupt Threshold Registers (0x04 − 0x07)
RGBC割り込みしきい値レジスタは、割り込み生成の比較機能の高および低トリガーポイントとして使用される値を提供します。 クリアチャネルによって生成された値が、指定された下限しきい値を下回るか、上限しきい値を超えると、割り込みピンで割り込みがアサートされます。
- Persistence Register (0x0C)
Persistence Registerは、デバイスのフィルタリング割り込み機能を制御します。 構成可能なフィルタリングが提供され、各積分サイクルの後で、または積分が、指定された時間の間、しきい値レジスタによって指定された値の範囲外の結果を生成した場合に、割り込みを生成できます。
- Configuration Register (0x0D)
Configuration Resisterはwati long time(WLONG)を設定します。アサートされると、待機サイクルは、WTIMEレジスタでプログラムされたものから12倍に増加します。
- Control Register (0x0F)
Control Resisterは、8ビットのその他の制御をアナログブロックに提供します。 これらのビットは通常、ゲイン設定やダイオード選択などの機能を制御します。
- ID Register (0x12)
ID Resisterは部品アドレスを提供します。ID resisterは読み取り専用です。
- Status Register (0x13)
Status Registerは、デバイスの内部ステータスを提供します。 このレジスタは読み取り専用です。
- RGBC Channel Data Registers (0x14 − 0x1B)
クリア、赤、緑、青のデータは16ビット値として保存されます。 データが正しく読み取られるようにするには、2バイトの読み取りI2Cトランザクションを、コマンドレジスタの読み取りワードプロトコルビットを設定して使用する必要があります。 この操作により、下位バイトレジスタが読み取られると、上位8ビットがシャドウレジスタに格納され、シャドーレジスタによって読み取られます。上位バイトへの後続の読み取り。 下位レジスタと上位レジスタの読み取りの間に追加のADC積分サイクルが終了しても、上位レジスタは正しい値を読み取ります。
コメント