AN-1108: AD9832/AD9835の設定例

はじめに

このアプリケーション・ノートでは、AD9832/AD9835 製品の出力にサイン波をロードする方法についてご説明します。この中にはAD9832/AD9835 のパワーオンからの設定、 FSELECTコントロール・ビットの設定、FSELECTコントロール・ビットを使ったデバイスへの新しいデータのロードを含みます。

AD9832/AD9835の設定

AD9832/AD9835 をパワーアップする時、デバイスをリセットする必要があります。これによって適切な内部レジスタが0にリセットされ、フルスケールのアナログ出力が提供されます。AD9832の初期化時に、スプリアスのDAC出力が生じないように、デバイスが出力する準備ができるまで、RESETビットを1に設定してください。RESETビットは、位相レジスタ、周波数レジスタ、コントロール・レジスタをリセットしません。これらのレジスタには無効なデータが含まれるので、ユーザーはこれらを既知の値に設定する必要があります。次に出力の生成を開始するためにRESETビットを0に設定してください。RESETを0に設定してから7~8MCLKサイクル後にデータはDAC出力に現れます。

図 1.AD9832機能ブロック図

図 1.AD9832機能ブロック図

AD9832/AD9835の設定

AD9832 と AD9835を設定する方法を説明するためには簡単な例が最適です。さらに詳しい内容については、AN-621 アプリケーション・ノートと AD9832又はAD9835を参照してください。


例 1:パワーアップ後のデバイスの設定


2つの出力周波数を生成する目的のために、MCLKを25 MHzとして、3 kHzをFREQ0レジスタにロードし、10 kHzをFREQ1レジスタにロードします。

このための周波数レジスタの中のコードは次式によって明らかになります。

数式 a.

ADIsimDDS toolは希望のコードを16進法、10進法あるいは2進法で生成する迅速で簡単な方法を提供します。

要求される初期化シーケンスを表1に示します。

表1.初期化シーケンス
16進数 2進数
0xD000 1101 0000 0000 0000
0x3044 0011 0000 0100 0100
0x21DD 0010 0001 1101 1101
0x3207 0011 0010 0000 0111
0x2300 0010 0011 0000 0000
0x343E 0011 0100 0011 1110
0x2536 0010 0101 0011 0110
0x361A 0011 0110 0001 1010
0x2700 0010 0111 0000 0000
0x9000 1001 0000 0000 0000
0XC000 1100 0000 0000 0000

コマンド・シーケンスの説明


参考のためにAD9832 又は AD9835の中のレジスタ表を使用します。

0xD000— AD9832をリセットする。

RESET ビット D12 を 1にセット。これにより内部レジスタが0にリセットされ、アナログ出力がフルスケールになります(図2参照)。Ch1はリセットに設定されたスプリアス出力です。Ch2 は FSYNC, Ch3 は SDATA、 Ch4 は SCLKです。データはSCLKの立ち下がりエッジで有効になる事に注意してください。8SCLKサイクル後のSDATAのハイ・レベルは無視してください;これは使用される特別なSPIドライバの固有の特長でデバイスには影響しません。

図 2.AD9832/AD9835をリセット状態にする –0xD000

図 2.AD9832/AD9835をリセット状態にする –0xD000

0x3044

  • 8ビットをDEFERレジスタに書き込む
  • 周波数レジスタ0, L LSB データ
  • 8ビット・データ=0x44.

0x21DD

  • (8ビット+保持された8ビット)を選択した周波数レジスタに書き込む。
  • 周波数レジスタ0, H LSB データ
  • 8-ビットデータ (0xDD) + 保持されたデータ = 0xDD44.

図 3. 0x21DDをロードする

図 3. 0x21DDをロードする

0x3207—周波数レジスタ0, L MSB データ

0x2300— 周波数レジスタ0, H MSB データ

0x343E— 周波数レジスタ1, L LSB データ

0x2536— 周波数レジスタ1, H LSB データ

0x361A— 周波数レジスタ1, L MSB データ

0x2700— 周波数レジスタ1, H MSB データ

0x9000—コマンド・ビットC15 、C14=[1:0]を使ってSELSRCを1に設定する。

  • SELSRCを1に設定—FSELECTはデータ・ビットにより制御されます。レイテンシは2MCLKサイクルに増大します。

0xC000—周波数レジスタ1, L LSB データ.

  • リセット・モードを終了する。RESET ビットを0に設定してから8MCLKサイクル後に、(FREQ0レジスタからの)3 kHz信号が、DACの出力に現れます。

図 4.デバイスをリセットから抜け出させるー0xC000

図 4.デバイスをリセットから抜け出させるー0xC000

例 2:FSELECTビットを変更する


デバイスの出力は現在3KHz信号に設定されています。そしてFSELECTピンではなく、FSELECTビットによって制御可能となっています。この周波数を10 KHzへ変更するには、コントロール・レジスタに書込んで、FSELECTビットを変更するだけです。

0x5800— FREQ1 レジスタを選択する。

  • すなわち、0x5をコマンド・ビット・C3:C0に書込む。
  • FREQ1レジスタを選択するために、ビットD11に1を書込む。(図5を参照)

3 kHz FREQ0 の出力に戻るには、FSELECTビットを0にリセットする。

0x5800— FREQ0 レジスタを選択する。

図 5.FSELECT ビットを変更する–0x5800

図 5.FSELECT ビットを変更する–0x5800

例 3:必要に応じて出力を更新する。


次のステップはRESETモードにする事なしに、FREQ1レジスタを10 kHz から 40 kHzに変更する事です。 

数式 b.

次のコマンド・シーケンスをロードします。

  • 0x348C—周波数レジスタ 1, L LSB データ.
  • 0x25DB— 周波数レジスタ1, H LSB データ.
  • 0x3668—周波数レジスタ1, L MSB データ.
  • 0x2700—周波数レジスタ1, H MSB データ.
  • 0x9000—同期したデータで出力にラッチする。この場合、再びコマンド・ビットC15 、C14= [1:0]を使用してSELSRCビットを1に設定。デバイスは単純にSYNCエッジの立下りでデータをラッチします。(図6を参照)

図 6.FREQ1 出力を10 kHzから40 kHzへ変更する

図 6.FREQ1 出力を10 kHzから40 kHzへ変更する

著者

Liam Riordan

Liam Riordan

Liam Riordanは2002年にユニバーシティ・カレッジ・コークを卒業し、電気工学およびマイクロ電子工学の学士号を取得しました。ヘルスケアおよび産業用センサー市場を中心に、これまでアナログ・デバイセズのミックスド・シグナルおよび組込みシステム部門で様々な業務に従事しました。現在はMeasureWareチームのシステム・アプリケーション・マネージャとしてアイルランドのリメリックに拠点を置いています。