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出力に現れます。
AD9832/AD9835の設定
AD9832 と AD9835を設定する方法を説明するためには簡単な例が最適です。さらに詳しい内容については、AN-621 アプリケーション・ノートと AD9832又はAD9835を参照してください。
例 1:パワーアップ後のデバイスの設定
2つの出力周波数を生成する目的のために、MCLKを25 MHzとして、3 kHzをFREQ0レジスタにロードし、10 kHzをFREQ1レジスタにロードします。
このための周波数レジスタの中のコードは次式によって明らかになります。
ADIsimDDS toolは希望のコードを16進法、10進法あるいは2進法で生成する迅速で簡単な方法を提供します。
要求される初期化シーケンスを表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ドライバの固有の特長でデバイスには影響しません。
0x3044
- 8ビットをDEFERレジスタに書き込む
- 周波数レジスタ0, L LSB データ
- 8ビット・データ=0x44.
0x21DD
- (8ビット+保持された8ビット)を選択した周波数レジスタに書き込む。
- 周波数レジスタ0, H LSB データ
- 8-ビットデータ (0xDD) + 保持されたデータ = 0xDD44.
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の出力に現れます。
例 2:FSELECTビットを変更する
デバイスの出力は現在3KHz信号に設定されています。そしてFSELECTピンではなく、FSELECTビットによって制御可能となっています。この周波数を10 KHzへ変更するには、コントロール・レジスタに書込んで、FSELECTビットを変更するだけです。
0x5800— FREQ1 レジスタを選択する。
- すなわち、0x5をコマンド・ビット・C3:C0に書込む。
- FREQ1レジスタを選択するために、ビットD11に1を書込む。(図5を参照)
3 kHz FREQ0 の出力に戻るには、FSELECTビットを0にリセットする。
0x5800— FREQ0 レジスタを選択する。
例 3:必要に応じて出力を更新する。
次のステップはRESETモードにする事なしに、FREQ1レジスタを10 kHz から 40 kHzに変更する事です。
次のコマンド・シーケンスをロードします。
- 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を参照)