資料ライブラリ

アプリケーション・ノート使用上の注意
本アプリケーションノートの英語以外の言語への翻訳はユーザの便宜のために提供されるものであり、リビジョンが古い場合があります。最新の内容については、必ず最新の英語版をご参照ください。
なお、日本語版のアプリケーションノートは基本的に「Rev.0」(リビジョン0)で作成されています。

AN-1388: AD7779 24 ビット同時サンプリング・シグマ・デルタ ADC を使用した電力品質測定のためのコヒーレント・サンプリング
はじめに
スマート・グリッドの進化とともに、電力会社は、電力網の可視性の向上と自動化の進展を必要としています。電力インフラにおける自動化の普及は、需要に合わせた動的負荷調整により、電力網の効率を向上させます。この可視化と自動化を進めるには、電力網上のノードの監視能力を上げる必要があります。送配電(T&D)製品に関しては、スマート・グリッドの要件を満たす複数の機能を備えた、コスト効果の高い製品が求められています。これらの機能には、保護、測定、品質モニタなどが含まれます。T&D 機器のメーカーは、これらの要件を満たす統合化されたハードウェア/プラットフォーム・ソリューションを開発しています。1 つのハードウェア/プラットフォーム・ソリューションに各種機能を集約するには、以下の特性を備えた A/D コンバータ(ADC)が必要です。
- 8 チャンネル/ 4 チャンネルの同時サンプリング 24 ビットADC
- 高いダイナミック・レンジ(8 kSPS で 114 dB)
- 高速セトリング ADC(低グループ遅延)
- ライン周波数の 0.01 Hz 以内までのコヒーレント・サンプリングを助ける ADC 出力データ・レート(ODR)の精密調整
AD7779 は、これらの要件をすべて満たす 24 ビット同時サンプリングΣ-Δ ADC です。このアプリケーション・ノートでは、AD7779 を使ってライン周波数に対してコヒーレントなサンプリングを行う方法を示し、それを他の方法と比較します。
コヒーレント・サンプリングの仕様
電力測定機器や電力品質監視機器の高調波データや測定パラメータについて必要な精度を実現するには、ADC のサンプリング・レートと電力ライン周波数の間のコヒーレンシ(整合性)を保証します。
電力ライン周波数は、50 Hz ± 15 % または 60 Hz ± 15 % の範囲で変動する可能性があります。電力網が十分確立され管理されている国では、電力ライン周波数の変化率が低く抑えられています。これに対し、電力網を開発中の国では、電力ライン周波数は大きく変化します。電力品質規格である IEC 61000-4-30 には、周波数トラッキングの分解能に基づく電力品質製品のクラス分類の仕様が定められています。クラス A の機器は 0.01 Hz のライン周波数変化をトラッキングできなければならず、クラス Sの機器は 0.05 Hz のライン周波数変化をトラッキングできなければなりません。また、クラス B 機器のトラッキング仕様はメーカーが決定することになっています。クラス B の機器は、IEC 61000-4-30 規格の将来の改定版から削除される可能性があります。
IEC 61000-4-30 規格で使われている電圧高調波の測定方法は、IEC 61000-4-7 に定められています。この方法では矩形窓を使用して、サンプルのグループに対してデジタル的に離散フーリエ変換(DFT)を行います。DFT 窓関数(ハミング、ブラックマン等)は高調波の大きさを変えてしまうので、DFT に窓関数を用いる手法は推奨しません。それぞれのメーカーが異なる窓関数による高速フーリエ変換(FFT)手法を用いた場合、高調波解析の結果は製品のサプライヤごとに異なったものとなります。したがって IEC 61000-4-30 のクラス A 電力品質機器では、DFTに窓関数を用いる手法を使用してコヒーレント・サンプリングを実現することはできません。
コヒーレント・サンプリングを実現するための既存ソリューション
現時点では、カスタマは以下のオプションのいずれかを使ってライン周波数とのコヒーレンシを維持しています。
- フェーズロック・ループ(PLL)を使用して ADC クロックを動的に調整。
- ADC をサンプリングし、Goertzel アルゴリズムを使ってDFT を実行。
- 少なくとも 4 回 ADC のオーバーサンプリングを行って波形サンプルを補間し、通常の高速フーリエ変換(FFT)アルゴリズムを使って DFT を実行。
PLL はアナログ領域またはデジタル領域で実装され、入力信号の基本周波数と同じ周波数の出力信号が得られます。この信号が ADC クロックを動的に調整して、ADC サンプリングとライン基本周波数のコヒーレンシを実現します。PLL に伴う問題は、その応答時間、つまりライン周波数が変化してから PLL 出力が安定するまでの時間です。
AD7779 とデジタル・シグナル・プロセッサ(DSP)で構成される保護リレーおよび測定システムのブロック図を図 1 に示します。このシステムは電圧高調波を計算し、さらにそれを保護アルゴリズムに使用します。Goertzel DFT アルゴリズムは、整数個のライン・サイクルで取得した同数の波形サンプルのフーリエ変換係数の関数を実用的に調整します。これらの係数は正弦と余弦なので、DSP の帯域幅は、この負荷に対応するために広くなければなりません。
Goertzel アルゴリズムに代わる方法として、補間アプローチを使用することもできます。AD7779 の出力レートを、通常レートである 8 kSPS の 4 倍、32 kSPS に設定します。DSP は、ライン周波数に関わらずライン・サイクル内でのサンプル数を同じに保つために、波形サンプルを補間します。補間は、線形とすることも、より高次のものにすることも可能で、後者の場合はより正確な結果が得られます。ただし、この追加的な計算負荷に対応するために、DSP にはより広い帯域幅が求められます。補間を行うと、測定帯域内に高調波スプリアスが生じることに注意してください。
各種の既存ソリューションには、それぞれ消費電力の増大(より広い計算帯域幅が DSP に求められるため)やコスト増加といった欠点があります。AD7779 のサンプル・レート・コンバータ(SRC)を使用すれば、パワーラインの 0.01 Hz の変化をトラッキングするのに十分な分解能を AD7779 の ODR に持たせることにより、クラス A の電力品質機器を実現することができます。SRC を使用した場合は、図 1 に示す補間ブロックが不要になります。
サンプル・レート
サンプル・レート・コンバータ(SRC)
Σ-Δ ADC には、モジュレータのノイズを効率的に除去するためにローパス SINC フィルタが含まれています。また、SINC フィルタは、出力データ・レートをモジュレータのクロック・レートの 1/n(n は整数値)に減少させます。このプロセスはデシメーションと呼ばれます。通常、デシメーションは、一定の整数値に制限されます。AD7779 の SINC フィルタは、同期サンプル・レート・コンバータ(SRC)を使って実装されており、非整数値によるデシメーションを行うことができます。この値は、効率的かつ実績ある SINC フィルタ・アーキテクチャを使い続けながら、時間経過とともに変化させることができます。
SRC を使用できるようにするには、AD7779 を SPI 制御モードにする必要があります。このモードは、FORMAT0 ピンとFORMAT1 ピンを入出力デジタル LDO 電源 IOVDD に直接接続することにより、起動手順実行時に選択します。
AD7779 は、特に AC 電力網の AC 電圧と電流をモニタするアプリケーションに使用することを意図しています。これらのアプリケーションで測定される 2 つの主な特性は、送電線の周波数と電力です。これらは、ADC が生成する出力に対して FFT を行うことによって決定します。
AD7779 では、特定の出力データ・レートをプログラムできるので、ライン周波数に対するコヒーレント・サンプリングを維持することができます。SINC フィルタのデシメーション率(N)は、SPI インターフェースを使ってプログラムします。出力データ・レート(ODR)の式は次の通りです。

ここで、
MCLK はAD7779 のクロック周波数。
M は、AD7779 が高分解能(HR)モードに設定されている時は4、AD7779 が低消費電力(LP)モードに設定されている時は8。
fMOD = MCLK/M(モジュレータのサンプリング・クロック)。
デシメーション率 N の計算は以下の手順で行います。
- FORMAT0 ピンと FORMAT1 ピンを IOVDD に接続して、AD7779 を SPI 制御モードにします。
- SPI インターフェースを使ってそれぞれ該当するメモリ・マップ・レジスタへ書き込みを行うことにより、SINC フィルタ、デシメーション率、電力モード、PGA ゲイン、内部/外部電圧リファレンスを選択します。AD7779 にはSINC3 フィルタしか備わっていません。
- ADC の出力データ・レート(ODR)を最小レートと最大レートの間に設定します。詳細については表 1 を参照してください。
- fMOD = MCLK/M によりモジュレータのサンプリング・クロックを計算します。
- N = fMOD/ODR によりデシメーション率を計算します。
Mode | Minimum ODR (kHz) | Maximum ODR (kHz) |
HR | 0.500000001 | 16 |
LP | 0.125000001 | 8 |
たとえば、AD7779 の場合は、デバイスを LP モードに設定してSINC3 フィルタの使用を選択します。
ADC 出力サンプルを 64 ポイント DFT に使用するために、ライン 1 周期につき電圧を 64 回サンプリングします。周波数がちょうど 50.00 Hz の場合、出力データ・レートは ODR = 50.00 × 64= 3.200 kHz となります。モジュレータのサンプリング・クロックは次のようになります。

デシメーション率 N は次のとおりです。

ライン周波数が50.01 Hz になった場合も、サンプリングは 64回行います。この場合の出力データ・レートは ODR = 50.01 ×64 = 3.20064 kHz となります。
このときデシメーション率 N は次のようになります。

任意の条件におけるデシメーション率とフィルタ応答の計算には、AD7770/AD7771/AD7779 のフィルタ・モデルを使用します。
サンプル・レート・コンバータへのデシメーション率 N のプログラミング
メモリ・マップにデシメーション率 N をプログラムしてから、SRC にそれをロードします。デシメーション率は整数部と小数部で構成されます。デシメーション率をプログラムするのに使われるメモリ・マップ・レジスタは 4 個あります。
2 個のレジスタは整数の設定に使用され、設定可能値の範囲を最小指定値(表 2 を参照)から 4095 までに設定することができます。
- レジスタ 0x60、SRC_N_MSB ビット、ビット[3:0]
- レジスタ 0x61、SRC_N_LSB ビット、ビット[7:0]
他の 2 個のレジスタは補間率とも呼ばれる小数部のプログラムに使用され、16 ビットの十進表示で少数部をプログラムすることができます。
- レジスタ 0x62、SRC_IF_MSB ビット、ビット[7:0]
- レジスタ 0x63、SRC_IF_LSB ビット、ビット[7:0]
各フィルタ・タイプのデシメーション率 N の最大値と最小値を表 2 に示します。
Filter Type | Minimum N | Maximum N |
Sinc3 (HR Mode) | 128 | 4095 |
Sinc3 (LP Mode) | 64 | 4095 |
サンプル・レート・コンバータ(SRC)のセクションに示す例では N = 159.968006、つまり整数部が 159 で、小数部は0.968006 です。また、SRC_N_MSB = 0x00、SRC_N_LSB = 0x9Fです。
SRC_IF_MSB とSRC_IF_LSB の各レジスタの値を計算するには以下のようにします。
- 小数部に 216 を乗じます。0.968006 × 216 = 63,439.24
- 整数部を取り出して 16 進形式に変換します。63,439 = 0xF7CF
- 0xF7 を SRC_IF_MSB レジスタへ、0xCF を SRC_IF_LSB レジスタへ書き込みます。
AD7770/AD7771/AD7779 のフィルタ・モデルは、計算したすべてのデシメーション率Nに対して、SRC_N_MSB、SRC_N_LSB、SRC_IF_MSB、およびSRC_IF_LSB の各レジスタのレジスタ値を計算します。
サンプル・レート・コンバータへのデシメーション率 N のロード
SRC_N_MSB、SRC_N_LSB、SRC_IF_MSB、および SRC_IF_LSBの各レジスタは、デシメーション率だけを保存します。これらは、SRC ロード操作によって DSP にロードする必要があります。デシメーション率は、SRC_UPDATE レジスタ(レジスタ0x64)のビット7(SRC_LOAD_SOURCE)に従って、ソフトウェアまたはハードウェアによってロードすることができます。
- ビット 0 = SRC_LOAD_UPDATE
- ビット 7 = SRC_LOAD_SOURCE
ビット7(SRC_LOAD_SOURCE)がデフォルト値の 0 の場合は、SRC_LOAD_UPDATE ビットを 1 に設定することによってロードを実行します。さらに、少なくとも MCLK の 2 周期だけ待ってから SRC_LOAD_UPDATE ビットを 0 にクリアします。このビットは、新しいロードを実行する前に 0 にクリアしなければなりません。
ビット 7(SRC_LOAD_SOURCE)を1 に設定した場合、ODRはハードウェアで制御されます。ロードは以下の手順で実行します。
- MODE0/GPIO0 ピンを MODE1/GPIO1 ピンに接続します。
- LP モードでは MODE2/GPIO2 ピンを MCLK の 2 周期にわたってハイにし、HR モードでは MCLK の 1 周期にわたってハイにします。その後、MODE2/GPIO2 ピンをローにします。
複数の AD7779 デバイスに同じ同期 SRC ロード信号をロードしなければならない場合は、1 つのデバイスの MODE1/GPIO1 ピンを残りのデバイスの MODE0/GPIO0 ピンに接続します。この同期方法では、共通 MCLK を使用する必要があります(図 2 を参照)。
新しい ODR への移行時のレイテンシ
新しいデシメーション率が SRC にロードされた後、新しいODR へ移行するまでにはレイテンシがあります。このレイテンシは、SRC が移行シーケンスに入るために発生します。このシーケンスは前の ODR でのフィルタ出力の計算を終わらせてから、新しい ODR での出力の計算を開始します。ODR は、DRDYピン(ピン 30)の信号の周期をモニタすることによって決定されます。DRDY ピンは、最後の変換が終了して DOUT ピンにデータがもうすぐ出力されることを示すために、少なくともDCLK パルス1 個分の間ハイに維持されます。
デシメーション率がロードされてから新しい ODR が DRDY ピンに現れるまでには、レイテンシがあります。新しい ODRは、3 ~ 4 個の DRDY パルスの後に現れます(図 3 を参照)。レイテンシは DRDY パルスを基準とする SRC のロード・タイミングによって異なるので、その正確な値は固定されていません。
移行シーケンス中は、SRC に新しいデシメーション率をロードしないでください。ロードしようとしても無視されます。
周波数
DRDY ピンは、AD7779 の ODR を測定するために使用できます。デシメーション率が整数の場合 DRDY ピンの周期は常に一定で、その値は 1/ODR となります。
たとえば、N = 160 の場合、ODR = fMOD/N = 512/160 = 3.2 kHzで、DRDY パルス間の周期は1/3200 = 312.5 μs です。N = 159 の場合は ODR = 512/159 = 3.220126 kHz、DRDY パルス間の周期は1/3220.126 = 310.547 μs です。
デシメーション率 N が整数でない場合、DRDY の周期は、そのデシメーション率を切り上げるかまたは切り下げて得られる整数によって決定される周期の間で変動します。これらの周期の平均は、予想される ODR に等しくなります。ただし、周期は常に AD7779 にプログラムされた ODR で計算されます。
たとえば、N = 159.968006 の場合、DRDY の周期は、N = 159 によって決定される周期(310.547 μs)と、N = 160 によって決定される周期(312.5 μs)の間で、平均が N/fMOD =159.968006/512000 = 312.438 μs となるように変動します。
ODR の周期が予想された値であることを確認するには、次式で表される個数の DRDY パルス間の時間を測定します。これらの値は、予想される ODR を得るのに要する時間の良好な近似値を与えます。
IF ≤ 0.5 の場合、
((1/IF) + 1) パルス
IF > 0.5 の場合、
((1/(1 − IF)) + 1) パルス
ここで、IF はNの小数部です。
DRDY パルスの個数が整数でない場合は、計算結果を最も近い整数に切り上げます。
たとえば N = 159.968006、IF = 0.968006 だとすると、予想 ODR 周期を計算するためにカウントしなければならないDRDY パルスの個数は次のようになります。
1/(1 − 0.968006) + 1 = 32.35 ≅ 33 DRDY パルス