目次

高精度、インピーダンス、および電気化学フロントエンド AD5940/AD5941

ドキュメント番号: 210129-1646 作成日: 2021/01/29 分類: Translation

概要

AD5940およびAD5941は、電流測定、ボルタンメトリー、インピーダンス測定などの高精度の電気化学ベースの測定技術を必要とするポータブルアプリケーション向けに設計された高精度、低電力のアナログフロントエンド(AFE)です。 AD5940/AD5941は、皮膚インピーダンスおよび身体インピーダンス測定用に設計されており、完全な生体電気または生体電位測定システムでAD8233 AFEと連携します。AD5940/ AD5941は、電気化学的毒性ガス検知用に設計されています。

AD5940 / AD5941は、2つの高精度励起ループと1つの共通測定チャネルで構成されており、テスト対象のセンサーの幅広い測定機能を実現します。最初の励起ループは、超低電力、デュアル出力ストリング、デジタル-アナログコンバーター(DAC)、および低電力、低ノイズのポテンシオスタットで構成されています。 DACの一方の出力はポテンシオスタットの非反転入力を制御し、もう一方の出力はトランスインピーダンスアンプ(TIA)の非反転入力を制御します。この低電力励起ループは、DCから200Hzまでの信号を生成することができます。

2番目の励起ループは、高速DACと呼ばれる12ビットDACで構成されています。 このDACは、最大200kHzの高周波励起信号を生成できます。

AD5940 / AD5941測定チャネルは、16ビット、800 kSPS、入力バッファを備えたマルチチャネル逐次比較レジスタ(SAR)アナログ-デジタルコンバータ(ADC)、内蔵アンチエイリアスフィルタ、およびプログラマブルゲインアンプ(PGA)を備えています。 ADCの前にある入力マルチプレクサ(mux)により、ユーザーは測定用の入力チャネルを選択できます。 これらの入力チャネルには、複数の外部電流入力、外部電圧入力、および内部チャネルが含まれます。 内部チャネルにより、内部電源電圧、ダイ温度、およびリファレンス電圧の診断測定が可能になります。

電流入力には、異なるセンサータイプを測定するためのプログラム可能なゲイン抵抗と負荷抵抗を備えた2つのTIAが含まれています。 低電力TIAと呼ばれる最初のTIAは、低帯域幅の信号を測定します。 高速TIAと呼ばれる2番目のTIAは、最大200kHzの高帯域幅信号を測定します。 超低リークのプログラム可能なスイッチマトリックスは、センサーを内部のアナログ励起および測定ブロックに接続します。 このマトリックスは、外部トランスインピーダンスアンプ抵抗(RTIA)とキャリブレーション抵抗を接続するためのインターフェイスを提供します。 マトリックスは、複数の電子測定デバイスを同じウェアラブル電極に多重化するためにも使用できます。

高精度の1.82Vおよび2.5Vのオンチップリファレンスソースが利用可能です。 内部ADCおよびDAC回路は、このオンチップリファレンスソースを使用して、1.82Vおよび2.5V周辺機器の低ドリフト性能を保証します。 AD5940 / AD5941測定ブロックは、シリアルペリフェラルインターフェイス(SPI)インターフェイスを介した直接レジスタ書き込みを介して、またはAFEチップの自律制御を提供する事前にプログラム可能なシーケンサーを使用して制御できます。 6 kBのスタティックランダムアクセスメモリ(SRAM)は、先入れ先出し(FIFO)およびコマンドFIFOのディープデータ用にパーティション化されています。 測定コマンドはコマンドFIFOに保存され、測定結果はデータFIFOに保存されます。 FIFOがいっぱいになると、FIFO関連の割り込みをいくつか使用できます。

多数の汎用入力/出力(GPIO)が利用可能であり、AFEシーケンサーを使用して制御されます。 AFEシーケンサーにより、複数の外部センサーデバイスをサイクルで正確に制御できます。 AD5940 / AD5941は2.8V〜3.6 Vの電源で動作し、-40°C〜 + 85°Cの温度範囲で仕様が規定されています。 AD5940は、56リード、3.6mm×4.2mmのWLCSPにパッケージされています。 AD5941は、48ピンLFCSPにパッケージ化されています。

動作原理

AD5940/AD5941 メインブロックは次のようになっています。

  • センサーのバイアス電圧と低周波励起を設定するために使用される低電力、デュアル出力、ストリングDAC。 クロノアンペロメトリーおよびボルタンメトリーの電気化学的手法をサポートします。

  • バイアス電圧をセンサーに印加する低電力ポテンシオスタット。

  • 低帯域幅の電流測定を実行する低電力TIA。

  • 最大200kHzのインピーダンス測定用の励起信号を生成するように設計された高速DACおよび増幅器。

  • より広い信号帯域幅測定をサポートする高速TIA。

  • 高性能ADC回路(高性能ADC回路のセクションを参照)。

  • プログラム可能なスイッチマトリックス。 AD5940 / AD5941の入力スイッチングにより、外部センサーの接続を完全に構成できます(「プログラム可能なスイッチマトリックス」セクションを参照)。

  • プログラム可能なシーケンサー(シーケンサーのセクションを参照)。

  • SPIインターフェース。

  • 最大200kHzの正弦波および台形波形を作成するように設計された波形発生器(波形発生器のセクションを参照)。

  • GPIOxピンに出力する割り込みソースは、割り込みイベントが発生したことをホストコントローラーに警告します(割り込みを参照)。

  • デジタル入力/出力(デジタル入力/出力のセクションを参照)。

システムの初期化

AD5940 / AD5941デバイスの適切な動作を保証するには、各デバイスのリセット後に初期化シーケンスを実装する必要があります。 表14に、書き込む必要のあるレジスターと、レジスターに書き込む必要のあるデータを示します。 この初期化シーケンスに正しく従わないと、デバイスは正しく機能しません。

低電力DAC

超低電力DACは、センサーのバイアス電圧を設定するデュアル出力ストリングDACです。 2つの出力解像度フォーマットがあります:12ビット解像度(VBIAS0)と6ビット解像度(VZERO0)。 通常の動作では、12ビット出力はポテンシオスタット回路を介して参照電極と対電極のピンRE0とCE0の電圧を設定します。 この電圧は、SW12スイッチを構成することによってVBIAS0ピンに送信することもできます(図23を参照)。 VBIAS0ピンには外部フィルタリングコンデンサを接続できます。

6ビット出力は、ADCマルチプレクサLPTIA_Pに接続する正の低電力TIA内部ノードに電圧を設定します。 センス電極の電圧はこのピンと同じです。 この電圧はVZERO0と呼ばれ、SW13スイッチを構成することでVZERO0ピンに接続できます(図23を参照)。 診断モードでは、LPDACCON0レジスタのビット5を1に設定することにより、VZERO0出力を高速TIAに接続することもできます。

低電力DACリファレンスソースは、低電力、2.5Vリファレンスです。

低電力DACは、2つの6ビットストリングDACで構成されています。 メインの6ビットストリングDACはVZERO0 DAC出力を提供し、63個の抵抗で構成されています。 各抵抗は同じ値です。 6ビットサブDACを備えたメインの6ビットストリングは、VBIAS0DAC出力を提供します。 12ビットモードでは、MSBはメインストリングDACから抵抗を選択します。 図19に示すように、この抵抗の上端は6ビットサブDACの上端として選択され、選択された抵抗の下端は6ビットサブDACストリングの下端に接続されます。

12ビットと6ビットのDAC間の抵抗マッチングは、64 LSB12(VBIAS0)が1つのLSB6(VZERO0)に等しいことを意味します。 出力電圧範囲はレールツーレールではありません。低電力DACの12ビット出力の範囲は0.2 V〜2.4Vです。 したがって、12ビット出力(12-BIT_ DAC_LSB)のLSB値は次のようになります。

\[12BIT\_DAC\_LSB=\frac{2.2V}{2^{12} -1}=537.2\mu V\]

6ビットの出力範囲は0.2V〜2.366 Vです。抵抗ストリングのR1の両端に電圧降下があるため、この範囲は0.2 V〜2.4 Vではありません(図19を参照)。 6ビット出力(6-BIT_DAC_LSB)のLSB値は次のとおりです。

\[6BIT\_DAC\_LSB=12BIT\_DAC\_LSB \times 64=34.38 mV\]

12ビットDACの出力電圧を設定するには、LPDACDAT0、ビット[11:0]に書き込みます。 6ビットDAC出力電圧を設定するには、LPDACDAT0、ビット[17:12]に書き込みます。

システムクロックが16MHzの場合、LPDACDAT0の更新には10クロックサイクルかかります。 システムクロックが32kHzの場合、LPDACDAT0の更新には1クロックサイクルかかります。 シーケンサーを使用するときは、これらの値を考慮してください。 次のコードは、LPDACDAT0値を正しく設定する方法を示しています。

SEQ_WR(REG_AFE_LPDACDAT0, 0x1234);
SEQ_WAIT(10); // Wait 10 clocks for LPDACDAT0 to update
SEQ_SLP();

オプションで、「波形ジェネレータ」セクションで説明されている波形ジェネレータを、低電力DACのDACコードソースとして使用できます。 低電力DACで波形発生器を使用する場合は、低電力DACの整定時間仕様に違反していないことを確認してください。 システムクロックソースは32kHzオシレータである必要があります。 この機能は、励起信号が約100 Hzで、システムの消費電力を100μA未満にする必要がある皮膚インピーダンス測定など、超低電力、常時オンの低周波測定に提供されます。

低電力DACスイッチオプション

ユーザーがさまざまな動作モード用に低電力DACを構成できるようにする、利用可能なスイッチオプションがいくつかあります。これらのスイッチは、電気化学インピーダンス分光法などのさまざまな使用例を容易にします。図23は、SW0からSW4のラベルが付いた使用可能なスイッチを示しています。これらのスイッチは、LPDACCON0レジスタのビット5を介して自動的に制御されるか、LPDACSW0レジスタを介して個別に制御されます。 LPDACCON0のビット5がクリアされると、スイッチは通常モードに設定されます。 SW2スイッチとSW3スイッチは閉じており、SW0、SW1、およびSW4スイッチは開いています。 LPDACCON0、ビット5が設定されている場合、スイッチは診断モード用に構成されています。 SW0スイッチとSW4スイッチは閉じており、残りのスイッチは開いています。この機能は、通常モードで低電力TIAがセンス電極を測定する連続グルコース測定などの電気化学的使用例向けに設計されています。次に、診断モードで、高速TIAがセンス電極を測定します。 VZERO0電圧出力を低電力TIAから高速TIAに切り替えることにより、センサーの実効バイアスVBIAS0 −VZERO0は影響を受けません。高速TIAを使用すると、インピーダンス、ランプ、サイクリックボルタンメトリーなどの高帯域幅測定が容易になります。

LPDACSW0レジスタを使用して、スイッチを個別に制御します。 LPDACSW0、ビット5は1に設定する必要があります。その後、各スイッチはLPDACSW0、ビット[4:0]を介して個別に制御できます。

12ビット出力と6ビット出力の関係

12ビットと6ビットの出力はほとんど独立しています。 ただし、選択した12ビット値は6ビット出力に負荷の影響を及ぼします。これは、特に12ビット出力レベルが6ビット出力よりも大きい場合に、ユーザーコードで補正する必要があります。

12ビット出力が6ビット出力よりも小さい場合、

\[12Bit DAC Output Voltage = 0.2V + (LPDACDAT0, Bits[11:0] \times 12BIT\_LSB\_DAC)\]
\[6Bit DAC Output Voltage = 0.2V + (LPDACDAT0, Bits[17:12] \times 6BIT\_LSB\_DAC)-12BIT\_LSB\_DAC\]

12ビット出力が6ビット出力と同じか大きい場合、

\[12Bit DAC Output Voltage = 0.2V + (LPDACDAT0, Bits[11:0] \times 12BIT\_LSB\_DAC)\]
\[6Bit DAC Output Voltage = 0.2V + (LPDACDAT0, Bits[17:12] \times 6BIT\_LSB\_DAC)\]

したがって、ユーザーコードでは、以下を追加することをお勧めします。

12BITCODE = LPDACDAT0[11:0];
6BITCODE = LPDACDAT0[17:12];
if (12BITCODE < (6BITCODE * 64))
    LPDACDAT[11:0] = (12BITCODE - 1);

このコードは、LPDACDAT0、ビット[11:0] = 64×LPDACDAT0、ビット[17:12]の場合、12ビットの出力電圧が6ビットの出力電圧と等しくなることを保証します。

低電力DACの使用例

電気化学アンペロメトリック測定

電気化学的測定では、12ビット出力が図20に示すポテンシオスタット回路を介して参照電極ピンの電圧を設定します。CE0ピンとRE0ピンの電圧はVBIAS0と呼ばれます。 6ビット出力はLPTIA_Pノードのバイアス電圧を設定します。 この出力は、センス電極ピンSE0の電圧を設定します。 この電圧はVZERO0と呼ばれます。 センサーのバイアス電圧は、実質的に12ビット出力と6ビット出力の差になります。

  • [ ] 図20を挿入する

電気化学インピーダンス分光法

多くの電気化学アプリケーションでは、診断測定の実行に大きな価値があります。 典型的な診断手法は、センサーのインピーダンス測定を実行することです。 一部のセンサータイプでは、インピーダンス測定中にセンサーのDCバイアスを維持する必要があります。 AD5940 / AD5941は、このDCバイアスを促進します。 この測定を実行するには、LPDACCON0、ビット5 = 1を設定します。VZERO0電圧が高速TIAの入力に設定され、高速DACがAC信号を生成します。 AC信号のレベルは低電力DACのVBIAS0電圧出力を介して設定され、SE0の電圧はVZERO0電圧によって維持されます。 高速DACDCバッファも、AFECONのビット21を設定して有効にする必要があります。

低電力DACによる4線式絶縁インピーダンス測定

身体インピーダンス測定などの4線式絶縁インピーダンス測定では、高周波正弦波が高速DACを介してセンサーに適用されます。 コモンモード電圧は、低電力DAC 6ビット出力電圧VZERO、および低電力TIAを使用してセンサーの両端に設定されます。 この構成は、AIN2とAIN3の間のコモンモード電圧を設定します(図21を参照)。 このコモンモード電圧設定を有効にするには、SWMUXのビット3を1に設定する必要があります。低電力DACのVBIAS0電圧出力は、高速DAC励起バッファのコモンモード電圧も設定します。

低電力ポテンショスタット

AD5940 / AD5941は、電気化学センサーのバイアス電圧を設定および制御する低電力ポテンシォスタットを備えています。 通常、ポテンシォスタットの出力はCE0に接続されます。 図20に示すように、非反転入力はVBIAS0電圧に接続され、反転入力はRE0に接続されます。電気化学セルの場合、ポテンシオスタットは、対極(CE0)に電流を供給またはシンクすることにより、参照電極(RE0)のバイアス電圧を維持します。

ポテンシオスタットの出力は、スイッチマトリックスを介してさまざまなパッケージピンに接続できます(詳細については、「プログラム可能なスイッチマトリックス」セクションを参照してください)。 ポテンシオスタットの周囲には、多数の構成オプションを提供するための構成可能なスイッチオプションがいくつかあります(図23を参照)。 ポテンシオスタットを標準のバッファ出力として使用して、VBIAS0電圧をCE0に出力することもできます。 これを実現するには、図23に示すように、SW10スイッチを閉じることによって反転入力をポテンシオスタットの出力に接続します。

低電力TIA

AD5940/AD5941にはそれぞれ低電力TIAチャネルがあり、ADCによって測定される電圧への小電流入力を増幅します。 負荷抵抗とゲイン抵抗は内部にあり、プログラム可能です。 PGAゲインが1または1.5のときに、ADC入力範囲±900mVを最大化するRTIA値を選択します。 他のPGA設定の最大電圧については、仕様のセクションを参照してください。 必要なゲイン抵抗を計算するには、次の式を使用します。

\[I_{MAX}=\frac{0.9V}{R_{TIA}}\]

ここで、\(I_{MAX}\)は、フルスケール入力電流、\(R_{TIA}\)は、ゲイン抵抗です。

低電力TIA回路の周りには多くのスイッチがあります。 LPTIASW0レジスタは、これらのスイッチを構成します。 図23に、使用可能なスイッチを示します。 LPTIACON0レジスタのTIAGAINビット(ビット[9:5])がセットされると、これらのスイッチは自動的に閉じられます。 これらのスイッチを閉じると、ローパスフィルター抵抗(RLPF)を備えたフォース/センス回路と、抵抗-コンデンサ(RC)遅延回路として機能するコンデンサがAIN4 / LPF0ピンにあります。 LPTIA0_P_LPF0は、低電力TIAローパスフィルターの出力をADCマルチプレクサに接続します。 アナログ・デバイセズは、低電力TIAを使用する場合、ADC入力としてLPTIA0_P_LPF0マルチプレクサオプションを選択することをお勧めします。 低電力TIAを安定させるために、RC0_0ピンとRC0_1ピンの間に100nFのコンデンサを接続することをお勧めします。

低電力TIA保護ダイオード

背中合わせの保護ダイオードがRTIA抵抗と並列に接続されています。 これらのダイオードは、LPTIASW0、ビット0によって制御されるSW0を開閉することによって接続または切断されます。これらのダイオードは、RTIAゲイン設定を切り替えて小電流を増幅し、TIAの飽和を防ぐ場合に使用することを目的としています。 これらのダイオードには、ダイオード両端の電圧に依存するリーク電流仕様があります。 ダイオード間の差動電圧が> 200 mVの場合、リークは> 1nAになる可能性があります。 電圧が> 500 mVの場合、リークは>1μAになる可能性があります。

低電力TIAの電流制限機能とポテンショスタット増幅器

低電力TIAには、保護ダイオードに加えて、電流制限機能も組み込まれています。 低電力TIAから供給またはシンクされた電流が、表1に指定されている過電流制限保護よりも大きい場合、増幅器は電流をこの制限にクランプします。 センサーが起動時に過電流制限を超えてソースまたはシンクを試みた場合、アンプは出力電流をクランプします。 この機能を表1で指定されているよりも頻繁に、または長く使用しないでください。

低電力TIAフォース/センス機能

LPTIACON0[9:5]ビットは、図23でRTIAとラベル付けされた、低電力TIAのさまざまなゲイン抵抗値を選択します。低電力TIAのフィードバックパスに示されるフォース/センスの接続は、スイッチの電圧降下\((\small \mathrm{I \times R})\)を回避するために使用され、内部RTIAに対して異なるRTIA設定を選択します。

外部RTIAの使用

外部RTIA抵抗を使用するには、次の手順を実行します。

  1. RC0_0ピンとRC0_1ピンの間に外部RTIA抵抗を接続します。

  2. LPTIACON0、ビット[9:5] = 0をクリアして、内部RTIA抵抗をTIA出力端子から切断します。

  3. LPTIASW0、ビット9 = 1を設定して、SW9スイッチを閉じます。内部RTIA抵抗を使用する場合は、SW9スイッチを開きます。

  4. ループの安定性を維持するために、外部コンデンサを外部RTIA抵抗と並列に接続します。 この外部コンデンサの推奨値は100nFです。

様々な動作モードでの推奨スイッチ設定

表21に、さまざまな測定タイプの低電力ポテンシオスタットループで推奨されるスイッチ設定を示します。 すべての測定タイプで、スイッチを1に設定するとスイッチが閉じ、スイッチを0に設定するとスイッチが開きます。 LPTIASW0 [13:0]は、図23に示すように、SW13からSW0を制御します。図22は、LPTIAのRLOAD設定とRGAIN設定の関係を示しています。 RLOADは、LPTIACON0 [12:10]を設定することによって構成されます。 RGAINはLPTIACON0 [9:5]によって構成されます。 RLOADが大きい場合、RGAINバンクの抵抗を使用して、RGAINのサイズを縮小します。 詳細については、LPTIACON0ビットフィールド(表22および表24)の説明を参照してください。

高速DAC回路

12ビットの高速DACは、外部センサーのインピーダンスを測定するときにAC励起信号を生成します。 データレジスタに書き込むか、自動波形発生器ブロックを使用して、DAC出力信号を直接制御します。 高速DAC信号は、センサーの通常のDCバイアス電圧に加えてAC信号を結合するように特別に設計された励起増幅器に供給されます。

高速DAC出力信号生成

高速DACの出力電圧を設定する方法は二つあります。

  • DACコードレジスタHSDACDATへの直接書き込み。 このレジスタは、最上位ビット(MSB)が符号ビットである12ビットレジスタです。 0x800を書き込むと、0V出力になります。 0x200を書き込むと、フルスケールが負になり、0xE00を書き込むと、フルスケールが正になります。

  • 自動波形発生器を使用します。 波形発生器は、正弦波、台形波、および方形波信号を含む固定周波数、固定振幅信号を生成するようにプログラムできます。 ユーザーが正弦波を選択した場合、出力信号のオフセットと位相を調整するオプションがあります。

高速DACコアの電力モード

高速DACのリファレンスソースは、内部1.82 Vの高精度リファレンス電圧(VREF_1V82ピン)です。 高速DACには、消費電力と出力速度の間でトレードオフする3つの基本的な動作モードがあります。低電力モード、高電力モード、および休止状態モードです。 高速DACは、非アクティブ時に休止モードにすることもできます。

低電力モード

低電力モードは、高速DAC出力信号周波数が80kHz未満の場合に使用されます。 高速DACを低電力モード用に構成する場合は、次の手順を実行します。

  1. PMBWレジスタをクリアします(ビット0 = 0)。

  2. このモードでは、高速DACおよびADCへのシステムクロックは16MHzです。

  3. CLKSEL、Bits [1:0] = 0であることを確認して、16MHzの内部高周波オシレータクロックソースを選択します。 システムクロックの分周比が1(CLKCON0、ビット[5:0] = 0または1)であることを確認します。

  4. 内部高速発振器がシステムクロックソースとして選択されている場合は、16MHzオプションが選択されていることを確認します。 HSOSCCON、ビット2 = 1に設定します。

高電力モード

ハイパワーモードは、高速DACアンプがサポートする帯域幅を増やします。 高速DAC周波数が80kHzを超える場合は、ハイパワーモードを使用します。 ハイパワーモードに入るには、多数のレジスタ書き込みが必要です。 高速DACを高電力モードに設定するには、次の手順を実行します。

  1. 1.PMBWレジスタをビット0 = 1に設定します。消費電力は増加しますが、出力信号帯域幅は最大200kHzまで増加します。 ハイパワーモードでは、DACおよびADCへのシステムクロックは32MHzです。

  2. CLKSELビット[1:0]が32MHzクロックソースを選択していることを確認します。 たとえば、内部高速発振器を選択するには、CLKSELビット[1:0](SYSCLKSEL)= 00を設定します。システムクロック分周比が1(CLKCON0ビット[5:0] = 0または1)であることを確認します。

  3. 内部高速発振器がシステムクロックソースとして選択されている場合は、32MHzオプションが選択されていることを確認してください。 HSOSCCON、ビット2 = 0をクリアします。

休止モード

AD5940 / AD5941が休止状態モードに入ると、電力を節約するために高速DAC回路へのクロックがクロックゲートされます。 アクティブモードで高速DACを使用していない場合は、クロックを無効にして電力を節約します。

高速DACフィルタオプション

高速DACの出力段は、構成可能な再構成フィルターを備えています。 再構成フィルターの構成は、DACの出力信号周波数に依存します。 PMBWレジスタのビット[3:2]は、再構成フィルタの3dBカットオフ周波数を構成します。 カットオフ周波数が必要なDAC出力周波数よりも高いことを確認してください。

  • DAC更新周波数が50kHz以下の場合に最適なパフォーマンスを実現するためのPMBWビット[3:2] = 01。

  • DAC更新レートが100kHz以下の場合、最適なパフォーマンスを得るためのPMBWビット[3:2] = 10。

  • DAC更新レートが最大250kHzの場合、最適なパフォーマンスを得るためのPMBWビット[3:2] = 11。

高速DAC出力減衰オプション

高速DAC出力には、センサーへの出力信号振幅を変更するためのスケーリングオプションがあります。 12ビットDACストリングの出力は、減衰またはゲインの前に±300mVです。 DAC出力には、1または0.2のゲインステージがあります。 PGAステージでは、2または0.25のゲインオプションがあります。 表29に、使用可能なゲインオプションと対応する出力電圧範囲を示します。

高速DAC励起増幅器

図25は、励起増幅器の動作とスイッチマトリックスへの接続を示しています。 励起増幅器への入力は、DACP、DACN、正(P)、および負(N)の4つです。 高速DACは、正と負の入力が励起増幅器に直接供給される差動出力DACです。

  • [ ] 図25を挿入します。

これら2つの出力間の電圧差により、出力波形のピークツーピーク電圧が設定されます。 PおよびN入力は、センサーからのフィードバックパスを提供することで励起増幅器の安定性を維持し、高速DAC出力のコモンモードを設定します。 通常の状況では、コモンモードはN入力に接続されたVZERO0出力によって設定されます。 図26に示すように、センサーにDCバイアス電圧を印加し、AC信号をこのバイアスに結合するオプションもあります。

  • [ ] 図26を挿入します。

センサーが対電極とセンス電極の間にバイアス電圧を必要とする場合は、オプションを利用できます。 VBIAS0は対極の電圧(高速DACのコモンモード電圧)を設定し、VZERO0はセンス電極の電圧を設定します。 VZERO0は、高速TIA(HSTIACON、ビット[1:0] = 01)の正端子に接続する必要があります。 DACのDCバッファは、AFECON、ビット21を設定することによっても有効にする必要があります。この構成では、図26に示すように、波形を実現できます。センサーのバイアスは、事実上VBIAS0とVZERO0の差です。 高速DAC信号チェーンを低電力TIAと組み合わせて使用してはならないことに注意してください。 高速DACが不安定になり、誤った測定につながる可能性があります。

高速DACから低電力DACによって設定されたDCレベルへのAC信号の結合

AD5940 / AD5941には、電気化学センサーを構成するための低電力ポテンシオスタットチャネルが含まれています。 通常の動作では、RE0電極とSE0電極の間のセンサーのバイアス電圧は、低電力DAC出力VBIAS0とVZERO0によって設定されます。ここで、VBIAS0は、バイアスをポテンシオスタットとCE0ピンの電圧に設定します。 VZERO0は、低電力TIAおよびSE0ピンのバイアス電圧を設定します。 高速DAC回路は使用していません。 ただし、ACインピーダンス測定の場合、励起増幅器の出力をCE0ピンに接続する必要があります。 信号全体が励起増幅器の出力から来るように、ポテンシオスタットを切断する必要があります。 高速TIAはSE0ピンに接続され、低電力TIAは切断されます。 次に、センサーバイアスは高速TIAと励起増幅器によって設定する必要があります。

センサーバイアスを設定するには、次の手順を実行します。

  1. 低電力DACのVZERO0出力は、高速TIA(HSTIACON、ビット[1:0] = 01)の非反転入力に接続する必要があります。これにより、SE0ピンまたは接続されているピンの電圧が設定されます。 スイッチマトリックスを介した高速TIAの反転入力。

  2. DAC DCバッファを有効にする必要があります(AFECON、ビット21 = 1)。 図25は、DCバッファの励起増幅器への接続を示しています。 これらのバッファにより、低電力DAC出力が必要なバイアス電圧を励起増幅器と高速TIAに駆動できるようになります。

  3. DCバイアスは、VBIAS0とVZERO0の差です。

インピーダンス測定中の励起周波数と測定周波数の間のインコヒーレンシーエラーの回避

インピーダンス測定中の励起周波数と測定周波数の間のインコヒーレンシエラーを回避するために、次の設定をお勧めします。

  • ハニングウィンドウは常にオンです(DFTCONビット0 = 1)。

  • 低電力モードでは、高速DAC更新レートは16 MHz÷7(HSDACCONビット[8:1] = 0x1B)です。 高電力モードでは、高速DAC更新レートは32 MHz÷7(HSDACCONビット[8:1] = 0x7)です。

  • 低電力モードでは、ADCのサンプリングレートは800 kSPS(高周波発振器= 16 MHz)です。 高電力モードでは、ADCのサンプリングレートは1.6 MSPS(高周波発振器= 32 MHz)です。

ハニングウィンドウを無効にすると、パフォーマンスが低下する可能性があることに注意してください。

高速DACキャリブレーションオプション

高速DACは、アナログ・デバイセズによる製造テスト中に校正されていません。 このセクションでは、すべてのゲイン設定で、高電力モードと低電力モードの両方で高速DACを校正する手順について説明します。 センサーへの励起信号を生成するためにDACが必要な場合は、高速DACを校正します。 励起信号にオフセットエラーが存在し、電流または電圧出力の測定が必要な場合、励起信号は、選択したTIA、ADC入力バッファ、またはPGA設定のヘッドルームを超える可能性があります。

図28に、高速DACキャリブレーションの回路図を示します。 RCAL0ピンとRCAL1ピンの間に高精度の外部抵抗RCALが必要です。 オフセットを校正するには、RCAL抵抗の両端で測定される差動電圧が0Vである必要があります。 必要なビット設定(HSDACCON、ビット12およびビット0)を使用して高速DACを校正します。 たとえば、DACがHSDACCON、ビット12 = 0およびHSDACCON、ビット0 = 0で校正され、ユーザーがHSDACCON、ビット12を1に変更した場合、オフセットエラーが発生します。 DACOFFSETレジスタまたはDACOFFSETHSレジスタのいずれかを、新しい出力範囲に合わせて再校正する必要があります。

ゲインキャリブレーションはオプションであり、ピークツーピーク電圧振幅を調整します。 または、最大および/または最小のDACコードを変更して、電圧振幅を調整します。

高速DAC伝達関数を図27に示します。図28は、高速TIAの非反転入力によってコモンモード電圧がどのように設定されるかを示しています。 この電圧は、低電力DACVZERO0出力または内部1.11V ADCVBIAS0電圧によって設定する必要があります。

  • [ ] 図27を挿入します。

AD5940 / AD5941ソフトウェア開発キットには、ADCを使用してRCAL抵抗の両端の差動電圧を測定する方法と、差動電圧が約0Vになるまで適切なキャリブレーションレジスタを調整する方法を示すサンプル機能が含まれています。AD5940/ AD5941ソフトウェア開発キット AD5940/AD5941製品ページからダウンロードできます。

高速TIA回路

高速TIAは、最大200kHzの広帯域入力信号を測定します。 高速TIAの出力はメインADCマルチプレクサに接続されており、この出力をADC入力チャネルとしてプログラムできます。 このブロックは、高速DACおよび励起増幅器と組み合わせたインピーダンス測定用に設計されています。

高速 TIA の設定

高速TIAはデフォルトで無効になっており、AFECON [11] = 1に設定するとオンになります。高速TIAには、入力信号の選択、ゲイン抵抗の選択、入力負荷抵抗の選択、およびコモンモード電圧源にプログラム可能な柔軟性が組み込まれています。

入力信号選択

入力信号のオプションは以下の通りです。

  • SE0 入力ピン

  • AIN0, AIN1, AIN2, および AIN3/BUF_VREF1V8 入力ピン

  • 独自のRLOAD / RTIAオプションがあり、ユーザーがプログラム可能なDE0入力ピン。

ゲイン抵抗選択

ゲイン抵抗 (RTIA) オプションは、DE0 入力用の50オームから160kオームと、その他すべての入力ピン用の200オームから160kオームです。

負荷抵抗選択

負荷抵抗 (RLOAD) オプションは、以下の通りです。

  • RLOAD2とRLOAD4は、SE0とAFE3用で100オーム固定です。

  • DE0ピン用のRLOADはプログラム可能です。ユーザは、0, 10, 30, 50, 100オームから選択できます。

コモンモード電圧選択

高速 TIA 増幅器への正入力でのコモンモード電を設定可能です。

  • VBIAS_CAP ピン電圧と同じ、内部 1.11Vリファレンスソース

  • 低電力 DAC 出力 (VZERO0)

図29は、スイッチマトリックスと外部ピンへの高速TIA接続を示しています。 DE0ピンで使用可能な追加の負荷抵抗とゲイン抵抗RLOAD_DE0とRTIA_DE0にそれぞれ注意してください。

外部 RTIA 選択

高速TIAには、内部RTIAゲインオプションの代わりに外部ゲイン抵抗を選択するオプションがあります。 この選択を実行するには、抵抗の一方の端をDE0ピンに接続し、もう一方の端をAIN0、AIN1、AIN2、またはAIN3 / BUF_VREF1V8に接続します。 DE0ピンは、高速 TIA の出力に接続する必要があります。

外部 RTIA 抵抗値のために DE0 ピンを使用するには、次のレジスタ値を設定します。

  • DE0RESCON = 0x97

  • HSRTIACON, Bits[3:0] = 0xF

AIN0、AIN1、AIN2、またはAIN3 / BUF_VREF1V8(抵抗が接続されているピン)は、高速TIAの反転入力に接続する必要があります(プログラム可能なスイッチマトリックスのセクションを参照)。 DE0RESCON = 0x97の場合、RLOAD_DE0およびRTIA_DE0抵抗は短絡しています。これは、外部RTIAが高速TIAの出力に直接接続されていることを意味します。

高性能ADC回路

ADC回路の概要

AD5940 / AD5941は、16ビット、800 kSPS、マルチチャネルSAR ADCを実装しています。 ADCは2.8V〜3.6Vの電源で動作します。 ホストマイクロコントローラーは、シーケンサーを介して、またはSPIインターフェースを介して直接ADCにインターフェースします。 超低リークスイッチマトリックスはセンサー接続に使用され、複数の電子測定デバイスを同じウェアラブル電極に多重化するためにも使用できます。

ADCは、高精度、低ドリフト、工場で校正された1.82Vリファレンスを使用します。 外部リファレンスソースをVREF_1V8ピンに接続することもできます。 ADC変換は、SPIインターフェイスを介してADC制御レジスタに直接書き込むか、シーケンサを介してADC制御レジスタに書き込むことによってトリガーされます。

ADC回路図

図31に、ADCコアアーキテクチャを示します。 図31は、入力バッファリング、ゲインステージ、および出力後処理を除外しています。

ADC回路の特徴

高速マルチチャネル16ビットADCの前に配置された入力マルチプレクサにより、多数の外部チャネルと内部チャネルの測定が可能になります。 これらのチャネルには、次のものが含まれます。

  • 2つの低電力電流測定チャネル。 これらのチャネルは、SE0ピンまたはDE0ピンを介して接続されたセンサーの低電流出力を測定します。 電流チャネルは、プログラム可能な負荷抵抗に供給されます。

  • 1つの低電力TIA。 低電力TIAには、非常に小さな電流をADCで測定できる電圧信号に変換するための独自のプログラム可能なゲイン抵抗があります。 低電力電流チャネルは、ローパスフィルターの有無にかかわらずサンプリングするように構成できます。

  • 最大200kHzのインピーダンス測定を実行するための1つの高速電流入力チャネル。 高速電流チャネルには、プログラム可能なゲイン抵抗を備えた専用の高速TIAがあります。

  • 複数の外部電圧入力。

    • 6つの専用電圧入力チャネル:AIN0、AIN1、AIN2、AIN3 / BUF_VREF1V8、AIN4 / LPF0、およびAIN6(AD5940のみ)。

    • センサー電極ピンSE0、DE0、RE0、およびCE0は、ADC電圧ピンとして測定することもできます。 CE0ピンには2で割るオプションがあります。

  • 内部ADCチャネル。

    • AVDD、DVDD、およびAVDD_REG電源測定チャネル。

    • ADC、高速DAC、および低電力基準電圧源。

    • 内部ダイ温度センサ

    • 2つの低電力DAC出力電圧 VBIAS0 と VZERO0

  • ADC結果後処理機能

    • デジタルフィルター(sinc2およびsinc3)および50 Hz / 60Hz電源除去。 sinc2およびsinc3フィルターには、プログラム可能なオーバーサンプリングレートがあり、ユーザーは変換速度とノイズパフォーマンスをトレードオフできます。

    • 離散フーリエ変換(DFT)。インピーダンス測定で使用され、振幅と位相の値を自動的に計算します。

    • sinc2フィルターとsinc3フィルターを分離するためのADC結果のプログラム可能な平均化。

    • 平均と分散を自動的に計算するためのプログラム可能な統計オプション。

  • 電流、電圧、および温度チャネルのシステム校正をサポートする複数の校正オプション。

ADC入力段は、すべてのチャネルで低入力電流リーク仕様をサポートするための入力バッファを提供します。

電流および電圧ベースの入力範囲の範囲をサポートするために、ADCフロントエンドはPGAおよびTIAを提供します。 PGAは、1、1.5、2、4、および9のゲインをサポートします。低電力TIAは、200Ωから512kΩの範囲のプログラム可能なゲイン抵抗をサポートします。 インピーダンス測定に使用される高速TIAは、200Ωから160kΩの範囲のプログラム可能なゲイン抵抗をサポートします。

デフォルトでは、ADCのリファレンスソースは高精度、低ドリフト、内部1.82Vリファレンスソースです。 オプションで、外部リファレンスをVREF_1.82VピンとAGND_REFピンに接続できます。

ADCは、平均化とデジタルフィルタリングのオプションをサポートしています。 ユーザーは、これらのオプションを使用して、速度と精度をトレードオフできます。 最高のADC更新レートは、デジタルフィルタリングなしで、通常モードで800 kHz、高速モードで1.6MHzです。 ADCフィルタリングオプションには、50 Hz / 60Hzの主電源フィルターも含まれます。 このフィルターを有効にすると、ADCの更新レートは通常900Hzになります。

ADCは、ホストマイクロコントローラーから処理要件を取り除くためのインピーダンス測定を目的としたDFTエンジンなど、多くの後処理機能をサポートしています。 最小値、最大値、および平均値の検出もサポートされています。

ADC回路動作

SAR ADCは、電荷再分配DACに基づいています。 容量性DACは、コンパレータの2つの入力に接続された16個のバイナリ加重コンデンサの2つの同一アレイで構成されています。

ADCブロックは、通常の動作では16 MHzクロックで動作し、800kSPSでサンプリングします。 後処理のsinc3およびsinc2フィルターは、この出力サンプリングレートを低下させます。 sinc3オーバーサンプリングレート4を使用することをお勧めします。これにより、出力データレートは200kSPSになります。

ハイパワーモードの場合、ADCクロックソースとして32MHzオシレータを選択する必要があります。 ADCの最大更新レートは1.6MSPSで、消費電力が高くなります。これは、80kHzを超える範囲のインピーダンス測定にのみ必要です。

ADC転送機能

図33の伝達関数は、y軸のADC出力コードとADCへの差動電圧を示しています。

図33では、ADCの負の入力チャネルは1.11Vの電圧源です。

正の入力チャネルは、TIAまたはPGAおよび/または入力バッファステージの後にADCに入力される電圧です。

次の式を使用して、入力電圧VINを計算します。

PGAゲインが1、2、4、または9の場合、次の式を使用します。

\[\mathrm{V_{IN}=\frac{V_{REF}}{PGA\_G}\times \left(\frac{ADCDAT-0x8000}{2^{15}}\right)+VBIAS\_CAP}\]

PAGゲインが1.5のときは、以下の式を使用します。

\[\mathrm{V_{IN}=\frac{1.835V}{PGA\_G}\times \left(\frac{ADCDAT-0x8000}{2^{15}}\right)+VBIAS\_CAP}\]

ADCCON [12:8] = 0x8の場合、VBIAS_CAPが計算に追加されることに注意してください。

ここで、\(V_{REF}\)はADCリファレンス電圧です(標準1.82V)。

PGA_GはPGAゲインであり、1、1.5、2、4、または9として選択できます。ADCDATは、ADCDATレジスタの生のADCコードです。 VBIAS_CAPは、VBIAS_CAPピンの電圧であり、通常は1.11Vです。

このゲイン設定は工場で校正されているため、PGAゲイン= 1.5の式は異なります。 他のすべてのゲイン設定は、工場で校正されていません。

ADC低電力電流入力チャネル

図34に、低電力TIA入力電流チャネルを示します。 ADCは低電力TIAの出力電圧を測定します。

正の入力は、ADCCON、ビット[5:0]を介して選択できます。 負の入力は、名目上、1.11Vのリファレンスソースとして選択されています。 VBIAS_CAPにADCCON、ビット[12:8] = 01000を設定して、この選択を実行します。

オプションのプログラム可能なゲインステージを選択して、正の電圧入力を増幅することができます。 計装アンプは、AFECONのビット10を介して有効になります。ゲイン設定は、ADCCONのビット[18:16]を介して構成されます。

ゲインステージの出力は、アンチエイリアスフィルターを通過します。 アンチエイリアスフィルターのカットオフ周波数は、PMBW、ビット[3:2]によって設定されます。 入力信号の帯域幅に合わせてカットオフ周波数を設定します。

ADC出力コードは、オフセットおよびゲイン補正係数で校正されています。 このデジタル調整係数は自動的に発生します。 使用されるオフセットおよびゲイン補正レジスタは、選択したADC入力チャネルによって異なります。

RLOAD、RTIA、およびR FILTER抵抗値を構成する方法の詳細については、「低電力TIA」セクションを参照してください。 低電力TIA出力には、RFILTERとAIN4 / LPF0ピンに接続された外部コンデンサで構成されるローパスフィルタがあります。 R FILTERは通常1MΩであり、外部コンデンサは1 µFにすることをお勧めします。これにより、カットオフ周波数が低くなります。

ADCマルチプレクサ入力の選択

最適なADC動作のために、測定タイプに基づいて推奨されるマルチプレクサ入力は次のとおりです。

  • 電圧測定

    • 正のマルチプレクサ選択= CE0、RE0、SE0、DE0、およびAINx

    • 負のマルチプレクサ選択= VBIAS_CAPピン

  • 低電力TIAでのDC電流測定

    • ポジティブマルチプレクサ選択=低電力TIAのローパスフィルター

    • ネガティブマルチプレクサ選択= LPTIA_Nノード

  • 低電力TIAでのACまたはより高い帯域幅の電流測定

    • 正のマルチプレクサ選択= LPTIA_Pノード

    • MUXSEL_N = LPTIA_Nノード

  • 高速TIAでの電流とインピーダンスの測定

    • MUXSEL_P =正の高速TIA出力

    • MUXSEL_N =負の高速TIA入力

ADC後処理

AD5940/AD5941 は、信号対雑音比と全体的な測定精度を向上させるために、多くのデジタルフィルタリングおよび平均化オプションを提供します。 図35に、後処理フィルターオプションの概要を示します。

処理フィルターオプションには、次のものがあります。

  • デジタルフィルタリング(sinc2またはsinc3)および50Hzまたは60Hzの電源除去。

  • 振幅と位相の値を自動的に計算するためにインピーダンス測定で使用されるDFT。

  • ADC結果のプログラム可能な平均化。

  • 平均と分散を自動的に計算するためのプログラム可能な統計オプション。

Sinc3 フィルタ

sinc3フィルターへの入力は、800 kHz(16 MHzオシレーターが選択されている場合)または1.6 MHz(32 MHzオシレーターが選択されている場合)のレートの生のADCコードです。 ADCクロックが32MHzの場合、ADCFILTERCON(ビット0)= 0です。この設定により、sinc3ブロックが1.6MHzのデータレートで正しく機能することが保証されます。 sinc3フィルターを有効にするには、ADCFILTERCON、ビット6 = 0であることを確認します。フィルターのデシメーションレートは、2、4、または5のオプションでプログラム可能です。デシメーションレート4を使用することをお勧めします。

ゲイン補正ブロックはデフォルトで有効になっており、ユーザーがプログラムすることはできません。

内部温度センサチャネル

AD5940/AD5941には、内部温度センサーチャネルが含まれています。 温度センサーは、ダイ温度に比例した電圧を出力します。 この電圧は温度に対して線形です。 この内部チャネルは、マルチプレクサからの正および負の入力として温度センサーチャネルを選択することにより、ADCを介して測定されます。 金型温度は次のように計算されます。

\[\mathrm{\left(\frac{TEMPSENSDAT0}{PGA\,Gain \times K}\right)-273.15}\]

ここで、\(K=8.13\) です。

精度を向上させるには、TEMPCON0、ビット[3:1]を介して温度センサーをチョップモードに構成します。 チョッピングが選択されている場合、ユーザーは温度センサーチャネルで偶数のADC変換が行われ、これらの結果が平均化されていることを確認する必要があります。

温度センサーチャネル専用の校正レジスターも利用できます。 ADCが温度センサーを正の入力として選択すると、ADCOFFSETTEMPSENS0およびADCGAINTEMPSENS0レジスタの校正値が自動的に使用されます。

内部温度センサーを有効にするには、AFECON、ビット12 = 1を設定します。ADC入力チャネルを次のように選択します。

  • ADCCON、ビット[12:8] = 1011は、ADCの負の入力チャネルを選択します。

  • ADCCON、ビット[5:0] = 001011は正の入力チャネルを選択します。

温度センサーチャネルのADC変換を開始するには、AFECONのビット13とAFECONのビット8を1に設定します。最適な温度センサーの結果を得るには、6.25kHzのチョッピング周波数で温度センサーのチョップモードを有効にします。 次に、偶数のADC温度センサーの結果を平均して、チョッピングクロックによって引き起こされる不正確さを排除します。

SINC2 フィルタ (50Hz/60Hz メインフィルタ)

メインノイズをフィルタリングするために50Hzまたは60Hzのノッチフィルターを有効にするには、ADCFILTERCON、ビット4 = 0をクリアし、AFECON、ビット16 = 1を設定します。入力はsinc2フィルター出力です。 入力レートは、sinc3およびsinc2の設定によって異なります。 選択した場合、sinc2フィルター出力はSINC2DATレジスターを介して読み取ることができます。 表41に、50Hzまたは60Hzの同時メイン除去をサポートするデジタルフィルター設定を示します。

ADCキャリブレーション

AD5940 / AD5941には複数の入力タイプ(たとえば、電流、電圧、温度)があるため、複数のオフセットおよびゲインキャリブレーションオプションがあります。 AD5940 / AD5941ソフトウェア開発キットに含まれている、さまざまなADC入力チャネルを校正するときにユーザーを支援するために、組み込みの自己校正システムが提供されています。

プログラム可能なスイッチマトリックス

AD5940 / AD5941は、外部ピンを高速DAC励起アンプおよび高速TIA反転入力に接続するための柔軟性を提供します。 この柔軟性により、さまざまなセンサータイプのインピーダンス測定のオプションがサポートされ、AC信号をセンサーのDCバイアス電圧に結合できます。

スイッチを構成するときは、低電力アンプの出力のスイッチ設定を考慮に入れてください。

電源投入時に、すべてのスイッチが開いてセンサーを切断します。

図36に、各スイッチマトリックスノード(データ出力、正、負、およびTIAノード)がAD5940 / AD5941の内部回路に接続する方法の概要図を示します。 図37に、マトリックス上のすべてのスイッチの詳細図を示します。

スイッチの詳細

Dx/DR0 スイッチ

Dx/DR0スイッチは、高速DACの励起増幅器出力に接続するピンを選択します。 インピーダンス測定の場合、このピンはCE0です。 DR0スイッチが閉じている場合、励起増幅器の出力はRCAL0ピンを介して外部校正抵抗(RCAL)に接続できます。

高精度電圧リファレンス

このセクションでは、AD5940 / AD5941で使用可能な統合電圧リファレンスオプションについて説明します。 AD5940 / AD5941は、ADCおよびDACの正確な電圧リファレンスを生成できます。 ADCとDACには1.82Vのリファレンスがあり、ポテンシオスタットには2.5Vのリファレンスがあります。 2.5 VリファレンスはVREF_2V5ピンを介してデカップリングする必要があり、1.82VリファレンスはVREF_1V82ピンを介してデカップリングする必要があります。 ADC入力バイアスには1.11Vのリファレンスがあります。 このリファレンスは、VBIAS_CAPピンを介してデカップリングする必要があります。

1.11Vおよび1.82Vリファレンスに関連付けられた高電力バッファと低電力バッファの両方があります。 ハイパワーバッファは、ADCがアクティブモードで変換中のときに使用されます。 低電力バッファは休止状態モードで使用され、デカップリングコンデンサの電荷を維持して、休止状態モードからのより高速なウェイクアップを可能にします。

図38に、使用可能なさまざまな電圧リファレンスオプションと、これらのオプションを制御するレジスタとビットを示します。

シーケンサ

シーケンサの特徴

AD5940/AD5941 シーケンサの特徴は次のようなものです。

  • 高精度な繰り返しアプリケーション向けにプログラム可能

  • 4つの個別のコマンドシーケンス

  • シーケンスを格納するための大きな6kB SRAM

  • 測定結果を保存するためのFIFO

  • ウェイクアップタイマー、SPIコマンド、またはGPIOトグルを介して制御します

  • ユーザーのマスク可能なソースからのさまざまな割り込み

シーケンサの概要

シーケンサーの役割は、外部マイクロコントローラーからの低レベルAFE操作のオフロードを可能にし、アナログDSPブロックを周期的に正確に制御することです。 シーケンサーは、システムの負荷にさらされることなく、タイミングが重要な操作を処理します。 AD5940 / AD5941では、4つのシーケンスがハードウェアでサポートされています。 これらのシーケンスをSRAMに保存して、さまざまな測定手順を簡単に切り替えることができます。 シーケンサーが一度に実行できるシーケンスは1つだけです。 ただし、ユーザーはシーケンサーが実行するシーケンスとそれらが実行される順序を構成できます

シーケンサーは、コマンドメモリに格納されているシーケンスからコマンドを読み取り、コマンドに応じて、一定時間待機するか、メモリマップレジスタ(MMR)に値を書き込みます。 実行はシーケンシャルであり、分岐はありません。 シーケンサーは、アナログまたはDSPブロックからMMR値または信号を読み取ることができません。 シーケンサを有効にするには、SEQCONレジスタのSEQENビットを設定します。 このビットに0を書き込むと、シーケンサーが無効になります。

シーケンサコマンドが実行される速度は、SEQCONレジスタのSEQWRTMRビットで提供されます。 シーケンサーが書き込みコマンドを実行すると、シーケンサーはMMR書き込みを実行し、SEQWRTMRクロックサイクルを待機してから、シーケンス内の次のコマンドをフェッチします。 効果は、書き込みコマンドの後に待機コマンドが続くのと同じです。 この設定の主な目的は、任意波形を生成するときにコードサイズを小さくすることです。 SEQWRTMRビットは、待機またはタイムアウトコマンドの後で何の効果もありません。 単一の書き込みコマンドの後に待機コマンドが続くことに加えて、複数の書き込みコマンドを連続して実行し、その後に待機コマンドを続けることができます。 レジスタ書き込みの数とそれに続く正確に実行された遅延に関係なく、シーケンサーは任意の構成を迅速にセットアップできます。

シーケンサは、SEQCONレジスタのSEQHALTビットを設定することによって一時停止することもできます。 このオプションは、FIFO操作、内部タイマー、波形生成などの各機能に適用されます。 シーケンサーが一時停止している場合、MMRからの読み取りが許可されます。 このモードは、ソフトウェア開発中のデバッグを目的としています。

シーケンサが実行するコマンドの数は、SEQCNTレジスタから読み取ることができます。 コマンドがコマンドメモリから読み取られて実行されるたびに、カウンタは1ずつインクリメントされます。SEQCNTレジスタへの書き込みを実行すると、カウンタがリセットされます。 シーケンサーは、実行するすべてのコマンドの巡回冗長検査(CRC)を計算します。 使用されるアルゴリズムは、x8 + x2 + x +1多項式を使用するCRC-8です。 CRC-8アルゴリズムは、32ビットの入力データ(シーケンサー命令)に対して実行されます。 各32ビット入力は1クロックサイクルで処理され、結果はホストコントローラーによる読み取りにすぐに利用できます。 CRC値はSEQCRCレジスタから読み取ることができます。 このレジスタは、SEQCNTレジスタに書き込むことにより、コマンドカウントと同じメカニズムでリセットされます。 SEQCRCは0x01のシード値にリセットされます。 SEQCRCは読み取り専用レジスタです。

シーケンサコマンド

シーケンサーで実行できるコマンドには、書き込みコマンドとタイマーコマンドの2種類があり、待機コマンドとタイムアウトコマンドが含まれます。

書き込みコマンド

書き込み命令を使用して、データをレジスタに書き込みます。 レジスタアドレスは0x00000000と0x000021FCの間にある必要があります。 図39に、命令のフォーマットを示します。 MSBは1に等しく、書き込みコマンドを示します。 図39で、ADDRは書き込みアドレスであり、dataはMMRに書き込まれる書き込みデータです。 すべての書き込み命令は1サイクル以内に終了します。 アドレスフィールドは7ビット幅で、AFEレジスタブロックのアドレス0x0からアドレス0x1FCまでのレジスタにアクセスできます。 すべてのMMRアクセスは32ビットのみです。 バイトおよびハーフワードアクセスは禁止されています。 すべてのアクセスは、書き込みのみを意味します。 アドレスフィールドとMMRアドレスの間には直接マッピングがあります。 図39では、ADDRは16ビットMMRアドレスのビット[8:2]に対応しています。

たとえば、SPIインターフェイスを介してWGCONレジスタに直接書き込む場合、使用されるアドレスは0x2014です。 シーケンサーを使用して同じレジスターに書き込むには、アドレスフィールドは0b0000101(外部コントローラーが使用するアドレスのビット[8:2])である必要があります。 データフィールドは24ビット幅で、MMRビットのビット[23:0]への書き込みのみが可能です。 シーケンサーを介してMMRの32ビット全体に書き込むことはできません。 ただし、ビット[31:24]はどのMMRでも使用されません。 したがって、割り当てられたすべてのMMRビットをシーケンサーで書き込むことができます。

タイマコマンド

シーケンサーには2つのタイマーコマンドがあり、それぞれに個別のハードウェアカウンターがあります。 waitコマンドは、シーケンサーの実行に待機状態を導入します。 プログラムされたカウンタが0に達した後、コマンドメモリから次のコマンドを読み取ることによって実行が再開されます。

timeoutコマンドは、シーケンサーフローとは独立して動作するカウンターを開始します。 タイマーが経過すると、シーケンスタイムアウトエラー割り込みINTSEL17、またはシーケンスタイムアウト終了割り込みINTSEL16の2つの割り込みのいずれかが生成されます。 両方の割り込みはINTCSELxレジスタで設定されます。 シーケンスタイムアウト終了割り込みは、タイムアウト期間の終了時にアサートされます。 タイムアウト期間の終了時にシーケンサーが実行の終了に達しない場合、シーケンスタイムアウトエラー割り込みがアサートされます。 これらの割り込みは、INTCCLRレジスタの対応するビットに書き込むことによってクリアされます。 カウンタの現在の値は、SEQTIMEOUTレジスタを介してホストコントローラがいつでも読み取ることができます。

シーケンサー書き込みコマンドの結果、シーケンサーの実行が停止しても、タイムアウトカウンターはリセットされません。 ただし、ホストコントローラがSEQCONレジスタのSEQENビットに0を書き込むとリセットされます。 このリセットは、ホストがシーケンスを中止する必要がある状況に適用されます。 両方のタイマーコマンドの時間単位は1ACLK周期です。 クロック周波数が16MHzの場合、タイマーの分解能は62.5 nsで、最大タイムアウトは67.1秒です。 これらの値は、SEQCONレジスタのSEQWRTMRビットがゼロ以外の場合でも真です。

シーケンサの動作

図42は、測定を行うためにシーケンサーをセットアップするために必要な一般的な手順を示しています。 デバイスの起動後、シーケンサー、コマンドメモリ、およびデータFIFOを構成する必要があります。 この構成には、次の手順が必要です。

  1. コマンドメモリを設定します。

  2. シーケンスをSRAMにロードします。

  3. シーケンス0(SEQ0)をシーケンス3(SEQ3)の情報シーケンスに設定します。

  4. データFIFOを構成します。

  5. スリープウェイクアップタイマーを設定します。

  6. GPIOピンマルチプレクサを構成します。

  7. 割り込みを構成します。

  8. スリープとウェイクアップの方法を構成します。

コマンドメモリ

コマンドメモリはシーケンスコマンドを保存し、外部マイクロコントローラとシーケンサー間のリンクを提供します。 コマンドメモリは、CMDDATACON、ビット[2:0]を使用して選択された2 kB、4kB、および6kBのSRAMメモリサイズを使用するように構成できます。 コマンドメモリに使用できる大量のメモリにより、より大きく、より複雑なシーケンスの作成が容易になります。 SEQxINFO、ビット[26:16]を読み取って、シーケンス内のコマンドの数を決定します。 コマンドメモリは単方向です。 ホストマイクロコントローラは、CMDFIFOWADDRレジスタに書き込むことによってコマンドの宛先アドレスを指定し、コマンドの内容をCMDFIFOWRITEレジスタに書き込みます。 シーケンサーは、実行のためにメモリからコマンドを読み取ります。 コマンドFIFOには、FIFOしきい値割り込み、FIFOエンプティ割り込み、FIFOフル割り込みなどの多数の割り込みが関連付けられています。 詳細については、「割り込み」セクションを参照してください。

ロードシーケンス

シーケンスコマンドは、2つのレジスタに書き込むことによってSRAMに書き込まれます。 コマンドのSRAM内のアドレスは、CMDFIFOWADDRレジスタに書き込まれます。 コマンドの内容はCMDFIFOWRITEレジスタに書き込まれます。 すべてのコマンドがSRAMに書き込まれた後、SEQxINFOレジスタに書き込むことにより、SEQ0からSEQ3の情報シーケンスを設定します。 SEQ0からSEQ3までの各情報シーケンスには、SRAMの開始アドレスと、そのシーケンスの総数またはコマンドが必要です。 コマンドの数は、SEQxINFO、ビット[26:16]に書き込まれます。 開始アドレスは、SEQxINFO、ビット[10:0]に書き込まれます。 4つのシーケンスの間に重複がないことを確認してください。 シーケンスの重複をユーザーに警告するハードウェアメカニズムはありません。

シーケンサーには、次のような多くの割り込みソースが関連付けられています。

  • シーケンスタイムアウトエラー。

  • シーケンサータイムアウトコマンドが終了しました。

  • シーケンスの終了割り込み。 この割り込みをアサートするには、シーケンサーコマンドの最後にSEQCONのビット0をクリアする必要があります。

詳細については、「割り込み」セクションを参照してください。

データFIFO

データFIFOは、外部コントローラーによって読み取られる前に、アナログブロックとDSPブロックの出力用のバッファーを提供します。 データFIFOに使用可能なメモリは、CMDDATACONレジスタのDATA_MEM_SELビットで選択できます。 使用可能なオプションは、2 kB、4 kB、および6kBです。 データFIFOとコマンドメモリは、6 kBSRAMの同じブロックを共有します。 したがって、コマンドメモリとデータFIFOの間にオーバーラップがないことを確認してください。

データFIFOは、CMDDATACON、ビット[11:9]を介してFIFOモードまたはストリームモードで構成できます。 ストリームモードでは、FIFOがいっぱいになると、新しいデータ用のスペースを確保するために古いデータが破棄されます。 FIFOモードでは、FIFOがいっぱいになると、新しいデータは破棄されます。 FIFOモードのときにFIFOをオーバーフローさせないでください。 その後、すべての新しいデータが失われます。 データFIFOは常に単方向です。 AFEブロックの選択可能なソースがデータを書き込み、外部マイクロコントローラーがDATAFIFORDからデータを読み取ります。

DATAFIFOSRCSEL(FIFOCON、ビット[15:13])でデータFIFOのデータソースを選択します。 使用可能なオプションは次のとおりです。ADCデータ、DFT結果、sinc2フィルター結果、統計ブロック平均結果、および統計ブロック分散結果。 データFIFOには、空、フル、オーバーフロー、アンダーフロー、しきい値など、いくつかの割り込みフラグが関連付けられています。

これらの割り込みは、INTCFLAGxレジスタを使用してユーザーが読み取ることができます(詳細については、「割り込み」セクションを参照してください)。 各フラグには、マスク可能な割り込みが関連付けられています。 オーバーフローフラグとアンダーフローフラグは、1クロック期間のみアクティブになります。 データFIFOは、FIFOCON、ビット11に1を書き込むことによって有効になります。データFIFOしきい値は、DATAFIFOTHRESレジスタに書き込むことによって設定されます。 ホストマイクロコントローラは、FIFOCNTSTA、ビット[26:16]を読み取ることにより、いつでもデータFIFOのワード数を読み取ることができます。 空のときにデータFIFOからデータを読み取ると、0x00000000が返されます。 さらに、INTCFLAGxレジスタのアンダーフローフラグFLAG27がアサートされます。

データFIFOワードフォーマット

データFIFOワードのフォーマットを図43に示します。データFIFOの各ワードは32ビットです。 7つのMSBは、機能安全アプリケーションに必要なエラー訂正コード(ECC)です。 データFIFOワードのビット[24:23]はシーケンスIDを形成し、SEQ0からSEQ3までのどのシーケンスから結果が得られたかを示します。 データFIFOワードのビット[22:16]には、チャネルIDが含まれ、データのソースを示します(表93を参照)。 データFIFOワードの16LSBは実際のデータです(図43を参照)。 データソースがDFTの結果である場合、データは18ビット幅で、2の補数形式です。 フォーマットを図44に示します。チャネルIDは5ビット幅で、5’b11111はDFTの結果を示します。

シーケンサとスリープとウェイクアップタイマ

詳細はスリープとウェイクアップタイマの節を参照してください。

GPIOxピンマルチプレクサの設定

8つのGPIOxピンのそれぞれは、シーケンスをトリガーするように構成できます。 GPIOxピンは、最初にGP0OENレジスタの入力として設定する必要があります。 次に、ピンをGP0CONレジスタのPINxCFGビットに設定する必要があります。 レジスタEI0CONおよびEI1CONは、レベルトリガーまたはエッジトリガーのいずれかのGPIOイベントを検出する方法を構成します。 GPIOイベントが検出された後、対応するシーケンスが実行されます。 AD5940 / AD5941ソフトウェア開発キットのAD5940 / AD5941_SEQGpioTrigCfg関数を参照してください。 シーケンサーは、実行時にGPIOにアクセスすることもできます。 このアクセスは、ADXL362やAD8233などの外部デバイスを同期します。 この同期を実行するには、対応するGPIOx機能をGP0CONレジスタで同期するように設定し、データの方向をGP0OENレジスタで出力するように設定する必要があります。 次に、シーケンサーはSYNCEXTDEVICEレジスターに書き込み、対応するGPIOxピンを切り替えることができます。これは、シーケンサーをプログラミングするときに便利なデバッグ機能です。

シーケンサの衝突

シーケンス間の競合が発生した場合、たとえば、SEQ0が実行されていて、SEQ1要求が到着した場合、SEQ1は無視され、SEQ0は完了します。 SEQ1シーケンスが無視されることを示す割り込みが生成されます。 レジスタをリードバックしても、リソースの競合は発生しません。 シーケンサーが有効な場合、ホストコントローラーによるMMRへの書き込みが許可されます。 いくつかの競合が発生する可能性があります。 競合が発生した場合は、シーケンサーが優先されます。 シーケンサーとホストコントローラーが同時に書き込む場合、ホストコントローラーは無視されます。 この競合に関するエラーレポートはありません。 シーケンサーの実行中は、ユーザーがレジスターに書き込んではいけません。 ただし、競合することなく自由に書き込むことができる例外があります。 SEQCONレジスタを使用すると、シーケンスの実行を終了し(SEQENビット)、シーケンスを停止できます(SEQHALTビット)。

波形生成器

AD5940 / AD5941は、正弦波、台形、および方形波形を生成するためのデジタル波形発生器を実装しています。 このセクションでは、波形ジェネレータの使用方法について説明します。

波形生成器の機能

波形発生器は、正弦波、台形、および方形波の機能を備えており、高速DACまたは低電力DACで使用できます。

波形生成器の動作

波形ジェネレータブロックを有効にするには、AFECONレジスタのWAVEGENENビットを1に設定します。このビットを有効にすると、選択した波形ソースが開始し、ブロックが無効になるか(WAVEGENEN = 0)、別のソースが選択されるまでループします。 ブロックが無効の場合、DAC出力は、WGCONレジスタのTYPESELビットに書き込むことによって別の波形が選択されるまで、または波形がリセットされるまで、電圧を維持します。

正弦波発生器

正弦波発生器のブロック図を図46に示します。

出力周波数(fOUT)は、周波数制御ワード(WGFCW、ビット[30:0])を使用して次の式で調整されます。

\[f_{OUT}=f_{ACLK} \times \frac{SINEFCW}{2^{30}}\]

\(f_{ACLK}\) は、ACLK の周波数 16MHz です。

\(SINEFCW\)は、WGFCWレジスタのビット[30:0] です。

低電力DACで波形ジェネレータを使用する

波形発生器は主に高速DACで使用するように設計されていますが、超低電力および低帯域幅のアプリケーション向けに低電力DACで使用することもできます。 波形を生成するための低電力DACを構成するには、LPDACCONレジスタのビット6を1に設定します。前述のように、台形または正弦波を選択できます。 低電力DACで波形発生器を使用する場合は、32 kHz発振器をシステムクロックとして選択する必要があります。これにより、信号の帯域幅が制限されます。

スリープとウェイクアップタイマ

スリープとウェイクアップタイマの機能

AD5940/AD5941は、20ビットのスリープおよびウェイクアップタイマーを統合しています。 スリープおよびウェイクアップタイマーは、シーケンサの自動制御を提供し、SEQ0からSEQ3までの任意の順序で最大8つのシーケンスを順番に実行できます。 タイマーは、内部の32kHzオシレータークロックソースからクロックされます。

スリープとウェイクアップタイマの概要

スリープおよびウェイクアップタイマーブロックは、カウントダウンする20ビットタイマーで構成されています。 ソースクロックは、32kHzの内部低周波発振器です。

タイマーが経過すると、デバイスはウェイクアップしてシーケンスを自動的に実行します。 最大8つのシーケンスを順番に実行できます。 タイマーが経過すると、デバイスはスリープ状態に戻ります。 シーケンスの実行が完了する前にタイマーが経過すると、シーケンス内の残りのコマンドは無視されます。 したがって、ユーザーコードは、SEQxSLEEPxレジスタの値が、シーケンスがすべてのコマンドを実行できるように十分な大きさであることを確認する必要があります。 ウェイクアップタイマーを使用してタイマースリープ機能(PWRMOD、ビット2 = 0)を無効にし、シーケンサーを使用して休止状態モードに入ることをお勧めします。 PWRMOD、ビット3 = 1を設定して、シーケンサーがデバイスを休止状態モードにできるようにします。

シーケンス順序の設定

スリープおよびウェイクアップタイマーは、特定の順序のシーケンスを定期的に実行できるようにする機能を提供します。 シーケンスが実行される順序は、SEQORDERレジスタで定義されます。 このレジスタには、AからHまでの8つの使用可能なスロットがあります。各スロットは、4つのシーケンスのいずれかで構成できます。 図51に、この機能の例を示します。 図51に示すように、実行される3つの定義済みシーケンス、SEQ1、SEQ2、およびSEQ3があります。

このシーケンス順序を実装するようにAD5940/AD5941を構成するには、次のレジスタ設定を実装します。

  1. SEQORDER, Bit SEQA = 1 (SEQ1)

  2. SEQORDER, Bit SEQB = 2 (SEQ2)

  3. SEQORDER, Bit SEQC = 3 (SEQ3)

  4. SEQORDER, Bit SEQD = 1 (SEQ1)

  5. CON, Bit ENDSEQ = 3 (endo on sequence D)

スリープとウェイクアップタイマの推奨動作

アナログ・デバイセズは、スリープおよびウェイクアップタイマーを使用してパフォーマンスと消費電力を最適化する場合、次の手順を推奨しています。

  1. PWRMOD、ビット2を0に設定して、タイマースリープ機能を無効にします。スリープウェイクアップタイマーは、デバイスを休止状態モードにしません。 代わりに、シーケンスの最後にあるSEQTRGレジスタに書き込んで、デバイスをスリープモードにします。 このスリープモードは、消費電力を最適化します。

  2. TMRCON、ビット0を1に設定して、タイマーウェイクアップ機能を有効にします。

  3. PWRMOD、ビット3を1に設定し、SEQSLPLOCKレジスタを0xA47E5に設定して、シーケンサがスリープをトリガーできるようにします。

  4. CON ビット[3:1]で最終シーケンスを設定します。 シーケンスを1つだけ使用する場合は、そのシーケンスを選択します。

  5. スリープ時間とウェイクアップ時間をSEQxSLEEPH、SEQxSLEEPL、SEQxWUPH、およびSEQxWUPLレジスタに書き込みます。

  6. SEQORDERレジスタを使用して、シーケンスがトリガーされる順序を構成します。

  7. CON ビット0 = 1に書き込むことにより、タイマーを有効にします。

CON、ビット0 = 1の場合、タイマーはSEQxWUPHおよびSEQxWUPLレジスタから値をロードし、カウントダウンを開始します。 タイマーがゼロに達すると、デバイスはウェイクアップし、SEQORDER、ビット[1:0]で指定された順序でシーケンスを実行します。 タイマーは、SEQxSLEEPHおよびSEQxSLEEPLレジスタから値をロードし、シーケンサーの実行時に再びカウントダウンを開始します。 タイマーが経過すると、TMRCON、ビット0 = 1の場合、AD5940 / AD5941はスリープに戻ります。PWRMOD、ビット3 = 1の場合、AD5940 / AD5941は最後のシーケンスの終了時にスリープに戻ります。

内部32kHz発振器を使用する場合、最大休止時間は32秒です。 SEQxWUPxおよびSEQxSLEEPxレジスタのコードを計算するには、次の式を使用します。

\[Code=ClkFreq \times Time\]

ここで、CodeはSEQxWUPxレジスターのコード値です。 ClkFreqは、内部発振器の周波数(Hz)です。 時間は秒単位の必要なタイムアウト期間です。

割り込み

AD5940/AD5941 で使用可能な割り込みオプションがいくつかあります。これらの割り込みは、割り込み応答イベントに応答して GPIOx ピンを切り替えるように構成できます。

割り込みコントローラ割り込み

割り込みコントローラは2つのブロックに分かれています。 各ブロックは、INTCSELxレジスタとINTCFLAGxレジスタで構成されています。 INTCPOLおよびINTCCLRレジスタは、両方のブロックに共通です。 INTCSELxレジスタで割り込みが有効になった後、INTCFLAGxレジスタの対応するビットがセットされます。 使用可能な割り込みソースを表135に示します。INTCFLAGx割り込みは、割り込みイベントに応答してGPIOxピンを切り替えるように構成できます。

割り込みの設定

割り込みソースを設定する前に、GPIOxピンを割り込み出力として設定する必要があります。 GPIO0、GPIO3、およびGPIO6は、INT0出力用に構成できます。 GPIO4およびGPIO7は、INT1出力用に構成できます。 詳細については、「デジタルポートマルチプレックス」セクションを参照してください。 ユーザーは、INTCPOLレジスタの割り込みの極性(立ち上がりエッジまたは立ち下がりエッジ)をプログラムできます。 割り込みがトリガーされると、選択されたGPIOxピンが切り替わり、割り込みイベントが発生したことをホストマイクロコントローラーに警告します。 割り込みソースをクリアするには、INTCCLRレジスタの対応するビットに書き込みます。

カスタム割り込み

INTCSELx、ビット[12:9])で、ユーザーは4つのカスタム割り込みソースを選択できます。 これらのカスタム割り込みは、AFEGENINTSTAレジスタの対応するビットに書き込むことによって割り込みイベントを生成できます。 このレジスタへの書き込みは、シーケンサを介してのみ可能です。 SPI使用時にAFEGENINTSTAレジスタに書き込んでも効果はありません。

外部割込みの設定

AD5940 / AD5941には8つの外部割り込みが実装されています。 これらの外部割り込みは、次のタイプのイベントの任意の組み合わせを検出するように構成できます。

  • 立ち上がりエッジ。 ロジックは、ローからハイへの遷移を検出し、パルスを生成します。

  • 立ち下がりエッジ。 ロジックは、ハイからローへの遷移を検出し、パルスを生成します。

  • 立ち上がりエッジまたは立ち下がりエッジ。 ロジックは、ローからハイまたはハイからローへの遷移を検出し、パルスを生成します。

  • 上級。 ロジックは高レベルを検出します。 割り込みラインは、外部ソースがディアサートするまでアサートされたままになります。

  • 低レベル。 ロジックは低レベルを検出します。 割り込みラインは、外部ソースがディアサートするまでアサートされたままになります。

外部割り込み検出ユニットブロックにより、外部イベントが休止状態モードのときにAD5940 / AD5941をウェイクアップできます。

システムリセット

AD5940は次のリセット方法を提供します。

  • 外部リセット

  • POR

  • デバイスのデジタル部のソフトウェアリセット。低電力、ポテンショスタットアンプ、および低電力TIA回路はリセットされません。

AD5940/AD5941は外部ハードウェアリセット、またはPOR中にリセットされます。

外部リセットまたはハードウェアリセットは外部RESETピンに接続されています。 このピンがLowに引き下げられると、リセットが発生します。 すべての回路と制御レジスタはデフォルトの状態に戻ります。

ホストマイクロコントローラーは、SWRSTCON、ビット0をクリアすることにより、AD5940 / AD5941へのソフトウェアリセットをトリガーできます。AD5940/ AD5941のRESETピンをホストプロセッサーのGPIOピンに接続して、コントローラーがハードウェアリセットを制御できるようにすることをお勧めします。 AD5940 / AD5941リセットステータスレジスタはRSTSTAです。 このレジスタを読み取って、チップへのリセットのソースを特定します。 ソフトウェアのリセットをバイパスして、外部センサーにバイアスをかけるために使用される回路が妨害されないようにすることができます。 これらの回路には、超低電力DAC、ポテンシオスタットアンプ、TIAが含まれます。 プログラム可能なスイッチ回路は、リセットの場合にそれらの状態を維持するように構成することもできます。