チュートリアル 3189

MAX5290~MAX5925、MAX5580~MAX5585、MAX5590~MAX5595ユーザプログラマブルDACのプログラマハンドブック


要約: このプログラマハンドブックはMAX5290~MAX5295、MAX5580~MAX5585、およびMAX5590~MAX5595ユーザプログラマブルD/Aコンバータ(DAC)に対する詳細タイミングパターンおよび高度なプログラミング機能を提供します。

このハンドブックはMAX5920~MAX5925、MAX5580~MAX5585、およびMAX5590~MAX5595ユーザプログラマブルD/Aコンバータ(DAC)に対する詳細タイミングパターンおよび高度なプログラミング機能を提供します。このファミリの各デバイスは、共通の非常にフレキシブルな3線、4線、または5線式のシリアルインタフェースを備えています。このインタフェースは、次に示す入力と出力で構成されます:
  • SCLK:シリアルクロック入力。データはクロックの立上りまたは立下りエッジでシリアルインタフェースからクロック同期入力、または、シリアルインタフェースへクロック同期出力されます。どちらのエッジが有効かは、コンフィギュレーションに依存します。
  • DIN:シリアルデータ入力。
  • CS:アクティブローのチップセレクト。DSPフレーム同期モードを除くすべてのモードで、CSの立下りエッジがシリアルインタフェースコマンドの開始に対応し、CSの立上りエッジがコマンドの終了に対応します。
  • DSP:DSPは電源オンリセットシーケンスの最後にサンプリングされ、その状態がDIN端子のデータをクロック同期入力するSCLKのアクティブエッジを決定します。DSPをDVDDに接続すると、データはSCLKの立上りエッジでクロック同期入力され、DGNDに接続すると、SCLKの立下りエッジでクロック同期入力されます。DSPをアクティブに駆動することも可能であり、その場合は、パワーオンリセット後、最初のDSPの立上りエッジでDSPフレーム同期モードをイネーブルにします。
  • UPIO1/UPIO2:このファミリの各デバイスは2つのユーザプログラマブルI/Oポート(UPIO1とUPIO2)を備え、リードバック(DOUTRB)またはデイジーチェーン(DOUTDC0またはDOUTDC1)のどちらかのシリアル出力データポートを含む様々なモードに構成することができます。
タイミング仕様の詳細およびデバイスのコンフィギュレーションに関しての詳細はMAX5290~MAX5295MAX5580~MAX5585およびMAX5590~MAX5595のデータシートを参照してください。

このファミリのすべてのデバイスは以下に示す内容を含む(に限定せず)、広範囲のコンフィギュレーションをサポートすることができます:

  • 単一デバイスに対する書込み動作
  • 単一デバイスからの読取り動作
  • イジーチェーンの中の多数のデバイスのライトまたはリードアクセス
  • 多数のデバイスの直接書込みまたは読取りアクセス(非DSPフレーム同期モード)
  • 多数のデバイスの直接書込みまたは読取りアクセス(DSPフレーム同期モード)
以下の各項では、シリアルインタフェースの能力の拡張の例として、可能なコンフィギュレーションの1つの例を示します。

単一デバイスに対する書込み動作

シリアルインタフェースは3つの入力:CS、SCLK、およびDINを使って、書込み専用の動作をサポートします。SCLKの立上りエッジでデータをクロック同期入力するためには、DSPをDVDDに接続してください。SCLKの立下りエッジでデータをクロック同期入力するためにはDSPをDGNDに接続してください。一度DSPがパワーオンリセットサイクルでサンプリングされると、DSPの立上りエッジが検出されるかまたは電源がデバイスから外されるまで、選択された実行中のSCLKクロックエッジがそのまま維持されます。

図1はデータがクロックの立上りエッジで入力される場合にデバイスと通信するために必要とするCS、SCLK、およびDINパターンを示しています。CSをローに駆動してSCLKの立上りエッジでDIN端子のシリアルデータを入力シフトレジスタにクロック同期入力してください。16個のSCLKパルスの整数倍(すなわち、N*16)を受信した後でCSがハイに戻されると、データまたはコマンドの書込みが有効となります。N*16個のSCLKサイクルの前にCSがハイに戻されても、書込みは無視されます。

図1. 単一デバイスへの書込み:データはSCLKの立上りエッジでクロック同期入力されます。
さらに図を拡大

図1. 単一デバイスへの書込み:データはSCLKの立上りエッジでクロック同期入力されます。

図2はSCLKの立下りエッジでデータがクロック同期入力される場合、デバイスと通信を行うために必要となるCS、SCLK、およびDINを図示しています。CSをローに駆動してSCLKの立下りエッジで入力シフトレジスタにDIN端子のシリアルデータをクロック同期入力してください。16個のSCLKパルスの整数倍(すなわち、N*16)を受信した後でCSがハイに戻されると、データまたはコマンドの書込みが有効となります。N*16個のSCLKサイクルの前にCSがハイに戻されても、書込みは無視されます。

図2. 単一デバイスへの書込み:データはSCLKの立下りエッジでクロック同期入力されます。
さらに図を拡大

図2. 単一デバイスへの書込み:データはSCLKの立下りエッジでクロック同期入力されます。

単一デバイスからの読取り動作

このデバイスのファミリのシリアルインタフェースはリードコマンドとしていくつかの選択肢があります。ほとんどの場合、リードコマンドによる出力データは8ビットであり、その結果、コマンドシーケンス長は16ビット(コマンドが8ビット、出力データが8ビット)となります。DACデータの読取り動作の場合は、インタフェースは入力(12ビット)およびDAC (12ビット)レジスタの両方からデータを出力します。その結果、出力データは24ビットとなり、合計のコマンドシーケンスは32ビットとなります。

デバイスからデータを読み取るためには、UPIO1またはUPIO2をDOUTRB (DOUT for Read Back)として構成してください。どちらのクロックエッジをDOUTRBからのシリアルデータを伝送するために使うかを決定するために、電源投入時にDSP入力をサンプリングします。もし電源投入時にDSPがDVDDに接続されていれば、データはSCLKの立上りエッジでクロック同期入力され、SCLKの立下りエッジでクロック同期出力されます。もしDSPが電源投入時にDGNDに接続されていれば、データはSCLKの立下りエッジでクロック同期入力され、SCLKの立上りエッジでクロック同期出力されます。

図3はSCLKの立上りエッジでデータがクロック同期入力される場合、デバイスと通信するために必要となるCS、SCLK、およびDINのパターンを図示しています。CSをローに駆動してDINからSCLKの立上りエッジで入力シフトレジスタに8ビットのリードコマンドをクロック同期入力してください。読取り長にしたがって、データは次の8または24_SCLKサイクルの間にDOUTRBに現れます。24ビットを読み取るためには、最後の2バイトのデータをDOUTRBから流れ出させるために、8ビットのリードコマンドに続いて2個の余分なNO-OPコマンド(0xFF)を必要とします。DOUTRB上のデータ出力はSCLKの立下りエッジで変化し、SCLKの立上りエッジで有効です。読取り動作がすべて終わるまではCSはローのままを維持してください。

図3. 単一デバイスの読取り:データはSCLKの立上りエッジでクロック同期入力されます。
さらに図を拡大

図3. 単一デバイスの読取り:データはSCLKの立上りエッジでクロック同期入力されます。

図4はSCLKの立下りエッジでデータがクロック同期入力される場合、デバイスと通信するために必要となるCS、SCLK、およびDINのパターンを図示しています。CSをローに駆動してDINからSCLKの立下りエッジで入力シフトレジスタに8ビットのリードコマンドをクロック同期入力してください。読取り長にしたがって、データは次の8または24_SCLKサイクルの間にDOUTRBに現れます。24ビットを読み取るためには、最後の2バイトのデータをDOUTRBから流れ出させるために、8ビットのリードコマンドに続いて2個の余分なNO-OPコマンド(0xFF)を必要とします。DOUTRB上のデータ出力はSCLKの立上りエッジで変化し、SCLKの立下りエッジで有効です。読取り動作がすべて終わるまではCSはローのままを維持してください。

図4. SCLKの立下りエッジでクロック同期入力される単一デバイスの読取り
さらに図を拡大

図4. SCLKの立下りエッジでクロック同期入力される単一デバイスの読取り

デイジーチェーンにおける複数デバイスへの書込み動作

このデバイスファミリに対するシリアルインタフェースは多様なデイジーチェーン構成をサポートすることができます。チェーン内でデータはクロックの立上りまたは立下りエッジのいずれかで、各デバイスにクロック同期入力されます。その結果、チェーンの中の前のデバイスからのシリアルデータはどちらのクロックエッジでも与えることができます。シリアルインタフェースはデイジーチェーンの中で同じクロック位相、または位相の変更を必要とするアプリケーションに柔軟に対応することができます。クロッキング方式の選択に影響を与えるボードレベルでの多くの考慮事項がありますが、その中には以下の項目が含まれます:

  • クロックのスキュー:デバイスAとデバイスBとの間に大きなスキューが存在する可能性がある場合、逆エッジを使ってデータ転送を行う(例として、デバイスAからの出力は立上りエッジを使用して、デバイスBへの入力はSCLKの立下りエッジを使用する)ことを考えてください。この方法はクロックスキューに対して強い方法ですが、注意深く基板レベルの設計を行わないと、シリアルポートによってサポートされる最大クロック速度での実現は難しいかもしれません。
  • クロック速度:最大のクロック速度でデイジーチェーンを行うことが必須である場合、チェーンを通して、同じクロックエッジを使ってデイジーチェーンを動作させることを考えてください。しかし、この方法を選択するためには、基板環境を注意深く設計しなければなりません。デイジーチェーンが正常に動作するためには、長いデータ経路、デバイス間の大きいクロックスキュー、または基板環境の大幅な変動(温度、電源電圧など)を避けてください。
  • クロックのデューティサイクル:デイジーチェーンにおいてクロックエッジを交互に使う方法は、1つのデバイスから次のデバイスにデータを転送するためにクロック周期の半分を使用しているため、クロック信号が適切なデューティサイクルを持つことに依存します。遅いクロックのデイジーチェーンにおいて、非常に低い、または非常に高いデューティサイクルを使う場合は、適切に設計を行わないと失敗する可能性があります。
  • クロックまたはデータエッジが遅い場合:デイジーチェーンにおいてクロック信号の駆動能力が不十分であると、立上りまたは立下り時間が遅くなります。この問題は、クロックスキューの特別なケースとして取り扱うことができ、デイジーチェーンの異なるデバイス間でクロックイベントが異なるタイミングで生じていると認識する可能性があります。
デバイスのUPIO1またはUPIO2をDOUTDC0 (デイジーチェーンのモード0に対するDOUT)またはDOUTDC1 (デイジーチェーンのモード1に対するDOUT)出力として構成してください。モード0では、DOUTDC0におけるデータはSCLKの立下りエッジで変化しSCLKの立上り時点で有効です。モード1では、DOUTDC1におけるデータはSCLKの立上りエッジで変化しSCLKの立下り時点で有効です。

デイジーチェーンにおいては、チェーンの最初のデバイスはそのDINをバスマスタから受け取ります。チェーンの後続デバイスは先行するデバイスからそのDINをDOUTDC_出力から受け取ります。シリアルインタフェースを通してデイジーチェーンデータをデバイスAがデバイスBに受け渡すためには、デバイスAへのCS信号は16ビットのコマンドシーケンスを受け取った後、(立上りエッジではなく)ロー状態を維持しなければなりません。DOUTDC_のクロック同期出力データは、DINのクロック同期入力データが16クロックサイクルだけ遅れたものです。.

デイジーチェーンの中のすべてのデバイスはシリアルレジスタに格納された書込みコマンドをCSの立上りエッジで実行します(読取りコマンドに対しては「デイジーチェーンと読戻しとの相互作用」の項を参照)。デバイスに次の書込みコマンドがクロック同期入力される前にCSの立上りエッジが存在しなければ(CSがロー状態のままであれば)、新しい書込みコマンドは、入力シフトレジスタの中にある古いコマンドを上書きします。このことにより、状態をなんら変化させることなく、チェーンの中のあるデバイスが他のデバイスにデータを受け渡すことが可能となります。これらのデバイスに対するNO-OP (0xFF)コマンドの適用は何の影響も与えないはずです。

入力クロックエッジと出力クロックエッジの両方を制御することが可能ですが、このことは、デイジーチェーンを正常に働かせるためには、データは15.5、16、または16.5クロック周期だけ遅延させる必要があるかも知れないことを意味します。CPOLとCPHAの制御ビットを使って任意のデバイスを通過するDINからDOUTDC_までの遅延を設定することにより、クロックの構成に関わらず、あるデバイスから次のデバイスへのチェーンを通して正しい動作を保証することができます。

CPOLとCPHAはSPI™インタフェースで記述されたCPOLやCPHAに似た定義となります:

  • CPOLはクロックの極性を規定する
  • CPHAはあらゆる任意のシーケンスの中で、最初のアクティブクロックエッジの前に先行するクロックエッジが存在するかどうかを規定する
設定可能なCPOLとCPHAビットはDSP入力と組み合わせることにより、DOUTDC1またはDOUTDC0上のシリアルデイジーチェーン出力データを必要とするだけ遅延させます。表1を参照してください。

表1. DSP、CPOL、およびCPHAの設定

DSP CPOL CPHA DOUTDC1
(ALWAYS CLOCKED
OUT ON RISING EDGE
OF SCLK)*
DOUTDC0 (ALWAYS CLOCKED
OUT ON FALLING
EDGE OF SCLK)*
COMMENT
DGND 0 1 DIN clocked in on falling edge of SCLK. Power-up state of CPOL/CPHA for this DSP connection.
DVDD 0 0 DIN clocked in on rising edge of SLCK. Power-up state of CPOL/CPHA for this DSP connection.
DGND 0 0 Invalid Invalid This combination is unused.
DGND 0 1 Delay of 15.5 clocks from SCLK falling edge (active edge for DIN) to SCLK rising edge (active edge for DOUTDC1) Delay of 15 clocks from SCLK falling edge (active edge for DIN) to SCLK falling edge (active edge for DOUTDC0)
DGND 1 0 Delay of 15.5 clocks from SCLK falling edge (active edge for DIN) to SCLK rising (active edge for DOUTDC1) Delay of 16 clocks from SCLK falling edge (active edge for DIN) to SCLK falling edge (active edge for DOUTDC0)
DGND 1 1 Invalid Invalid This combination is unused.
DVDD 0 0 Delay of 16 clocks from SCLK rising (active edge for DIN) to SCLK rising (active edge for DOUTDC1) Delay of 15.5 clocks from SCLK rising (active edge for DIN) to SCLK falling (active edge for DOUTDC0)
DVDD 0 1 Invalid Invalid This combination is unused.
DVDD 1 0 Invalid Invalid This combination is unused.
DVDD 1 1 Delay of 15 clocks from SCLK rising (active edge for DIN) to SCLK rising (active edge for DOUTDC1) Delay of 15.5 clocks from SCLK rising (active edge for DIN) to SCLK falling (active edge for DOUTDC0)
*データは常にSCLKの有効なエッジ(DOUTDC0は立上りエッジ、DOUTDC1は立下りエッジ)でDOUTDC_からクロック同期出力されます。

図5はデイジーチェーンのある構成における複数デバイスへの書込みの場合のCS、SCLK、DIN、およびDOUTDC0のパターンを示しています。この場合DINはチェーン内の各デバイスでSCLKの立上りエッジでクロック同期入力され、あるデバイスから次のデバイスにデータを受け渡すためにDOUTDC0が使われます。

図5. SCLKの立上りエッジによるデイジーチェーンデータのクロック同期入力
さらに図を拡大

図5. SCLKの立上りエッジによるデイジーチェーンデータのクロック同期入力

デイジーチェーンの書込み動作を実行するためには、デイジーチェーンのすべてのデバイスを選択するためにCSをローに駆動してください。バスマスタからのデータまたは先行デバイスのDOUTDC0は、カスケード接続されたそれぞれのデバイスのDINにクロック同期入力されます。CSがロー状態に留まっている限り、入力シフトレジスタを通してデータが通過する間、デバイスは影響を受けません。データがデイジーチェーンを通して伝播を終えたとき、デイジーチェーンされたすべてのデバイスの入力シフトレジスタにあるDACコマンドを同時に格納するためにCSをハイに駆動してください。この場合、再び、16の整数倍のSCLKパルス(即ち、N*16)が発生済みであるものとします。もし、N*16のSCLKサイクルが発生する前にCSがハイになると、デイジーチェーンに接続されたすべてのデバイスは書込みを無視します。

図6はデイジーチェーンのある個別の構成における複数デバイスへの書込みの場合のCS、SCLK、DIN、およびDOUTDC1のパターンを示します。ここで、DINはチェーン内の各デバイスにSCLKの立下りエッジでクロック同期入力され、DOUTDC1があるデバイスから次のデバイスにデータを受け渡すために使われます。

図6. SCLKの立下りエッジによるデイジーチェーンデータのクロック同期入力
さらに図を拡大

図6. SCLKの立下りエッジによるデイジーチェーンデータのクロック同期入力

デイジーチェーンの書込み動作を実行するためには、デイジーチェーンのすべてのデバイスを選択するためにCSをローに駆動してください。バスマスタからのデータまたは先行デバイスからのDOUTDC1は各縦続接続されたデバイスのDINへクロック同期入力されます。CSがロー状態に留まっている限りはデータが入力シフトレジスタを通過する間、デバイスは影響を受けません。データがデイジーチェーンを通して伝播を終えたとき、デイジーチェーンされたすべてのデバイスの入力シフトレジスタにあるDACコマンドを同時に格納するためにCSをハイに駆動してください。この場合、再び16個の整数倍のSCLKパルス(即ち、N*16個)が発生済みであるものとします。もし、CSがN*16個のSCLKサイクルが経過する前にCSがハイになると、デイジーチェーンに接続されたすべてのデバイスは書込みを無視します。

デイジーチェーンの例
次に示す例は3つのデバイス(A、B、およびC)からなるデイジーチェーンの設定です。デバイスAがバスマスタに最も近い位置にあります。各デバイスは他の2つとは異なった構成となっています。

  1. デバイスAを構成するために、CSをローにしてください。デバイスAのUPIO1をDOUTDC0として構成するためにバスマスタからデバイスAにコマンド(COMMAND 1)を送信してください。このコマンドはデバイスAの入力シフトレジスタに格納されます。デバイスAの入力シフトレジスタに格納されたコマンドを実行するために、CSをハイに戻してください。これにより、デバイスAは構成されます。
  2. デバイスBを構成するために、CSをローにしてください。デバイスBのUPIO2をDOUTDC1とするために、バスマスタからデバイスAを通過するコマンド(COMMAND 2)を送ってください。デバイスBの入力シフトレジスタはこの16ビットの書込み直後のクロックサイクルでデータの更新を始めます。
  3. デバイスAの状態が変化しないようにバスマスタからデバイスAに、その入力シフトレジスタに上書きするコマンド(COMMAND 3)を送出してください。特別な動作を必要とする場合(例えば、UPIO1の構成、速度の変更など)、NO-OPの代わりにデバイスAにどのようなコマンドでも与えることが可能です。デバイスBの入力シフトレジスタはこれらの16クロックサイクルの間に先行するコマンドで更新されます。デバイスAとBの入力シフトレジスタに格納されたコマンドを実行するためには、CSをハイとしてください。デバイスAとBは、このことによって構成されます。
  4. デバイスCを構成するためにCSをローにしてください。デバイスCのUPIO1をDOUTDC1に構成するために、デバイスAとBを通過するバスマスタからのコマンド(COMMAND 4)を送ってください。
  5. デバイスBの状態が変化しないようにデバイスBの入力シフトレジスタを上書きするためにデバイスAを通してバスマスタからコマンドを送ってください(COMMAND 5)。デバイスBの入力シフトレジスタはステップ5のコマンドによって更新されます。
  6. デバイスAの状態が変化しないようにデバイスAの入力シフトレジスタを上書きするためにバスマスタからデバイスAにコマンドを送ってください(COMMAND 6)。デバイスBの入力シフトレジスタはステップ6のコマンドによって更新されます。デバイスCの入力シフトレジスタはステップ5のコマンドによって更新されます。デバイスA、B、およびCの入力シフトレジスタに格納されたコマンドを実行するためには、CSをハイに戻してください。

表2. デイジーチェーンの場合のデバイスA、B、Cの入力シフトレジスタの内容

STEP DEVICE A
(FROM BUS
MASTER)
DEVICE B
(FROM DOUTDC_
OF DEVICE A)
DEVICE C
(FROM DOUTDC_
OF DEVICE B)
RISING EDGE OF CS?
1 COMMAND 1 - - YES
2 COMMAND 2 - - NO
3 COMMAND 3 COMMAND 2 - YES
4 COMMAND 4 - - NO
5 COMMAND 5 COMMAND 4 - NO
6 COMMAND 6 COMMAND 5 COMMAND 4 YES

デイジーチェーンと読戻しとの相互作用

このファミリの各デバイスのシリアルインタフェースは2つのUPIOポートを持っています。このことは一方を読戻し(DOUTRB)として、他方をデイジーチェーン(DOUTDC1またはDOUTDC0)として使うことができることを意味します。これは、完全に有効な組み合せであり、ほとんどすべてのケースで読戻しとデイジーチェーンが正常に機能します。この方法を使う2つのケースでは次に示すいくつかの結果が得られます。

データの読戻しを行うデイジーチェーンの例
この例ではAとBの2つのデバイスを使い、Aがバスマスタに近い側とします。デバイスAがDOUTRBとDOUTDC_を備え、デバイスBがDOUTRBを備えるとすると、次に示すシーケンスが正常となります。

  1. CSをローにし、バスマスタからデバイスAへ8ビットの読取りコマンドを送出します(COMMAND 1)。CSはローのままとし、ハイに変化させないでください。
  2. バスマスタからデバイスAへ他の読取りまたは書込みコマンド(COMMND 2)を送ります。デバイスBの入力シフトレジスタはCOMMAND 1で更新されます。COMMAND 1の結果による正しい出力データはデバイスAのDOUTRBに現れます。コマンドシーケンスを終了させるために、CSをハイに戻します。
  3. COMMAMND 1の結果である有効な出力データはデバイスBのDOUTBに現れます。デバイスAは、COMMND 2を実行します。
このケースでは、デバイスBに受け渡すことを意図した8ビットの読取りコマンドはデバイスAを通過します。コマンドがデバイスAを通過している間、デバイスAのDOUTRBポートは読取りコマンドに応答します(正しい読取りデータが得られます)。これは、その読取りコマンドがデバイスBへ受け渡されることを妨害せず、デバイスBも読取りコマンドに応答して、有効なデータを返します。

相互作用の2番目の例は、デバイスA (バスマスタに最も近い)からのみ24ビットDACの読取りを行う場合で、このコマンドが正常に機能します。デイジーチェーンの最初のデバイスを例外として、24ビットの読取りはデイジーチェーンとは互換がありません。これはデイジーチェーンの最初のデバイスはDOUTDC_上にデータを通過させるとき、24ビットの読取りをNO-OPに変換するためです。同様に、24ビットの読取りは、合計が32ビットのコマンドシーケンスであり、デイジーチェーンに要求される16ビットのコマンドシーケンスと互換がありません。

複数デバイスへの直接書込みおよび読取りアクセス

複数デバイスへの書込み、または読取りは、図7図8に示すような共用(shared) 3+Nシリアルインタフェースによって可能です。Nはシリアルインタフェースを共用するデバイスの数および個別のチップ選択ラインの数であり、それは各デバイスが自分のCSを持つからです。書込みおよび読取り操作は前述の項のプロトコルに従います。SCLK、DIN、およびDOUTRB信号はすべてのデバイスで共用します。この方法とデイジーチェーンとの2つ主な相違は1)各デバイスが自分のCSを持つこと2) DINはすべてのデバイスで共通ということです。

複数のデバイスを共用シリアルインタフェースに接続する場合は、以下のことを考慮してください:

  • 複数のチップ選択(CS)を同時にアサートすることによって、同じデータを複数のデバイスに1回の書込み操作で一斉同報(broadcast)することができます。
  • 競合を防ぐために、データの読戻し中は、同時には1個のデバイスのDOUTRBのみをアクティブにすることができます。選択されていないデバイスでは、DOUTRBはハイインピーダンスであり、他のデバイスがバスを駆動することを可能とします。
  • 個別信号(SCLK、DIN、DOUTRB)に接続された複数のデバイスによる負荷は、シリアルインタフェースの速度を低下させます。速度の低下は、PCBのレイアウトおよびバスを共用しているデバイスの数などの外的要因に依存します。
  • 通常、CS信号は、マイクロコントローラもしくはDSPなどによって駆動されるため、複数デバイスにアクセスすることに伴うソフトウェアオーバヘッドが存在します。これは、1個のDACのみのアプリケーションでCSが恒久的にローに接続されているか、またはDSPのハードウェアをベースとしたフレーム同期信号によって制御されるのでは、大きな差異があります。

図7. 複数デバイスの読取り:データはSCLKの立上りエッジでクロック同期入力されます。
さらに図を拡大

図7. 複数デバイスの読取り:データはSCLKの立上りエッジでクロック同期入力されます。

図8. 複数デバイスの読取り:データはSCLKの立下りエッジでクロック同期入力されます
さらに図を拡大

図8. 複数デバイスの読取り:データはSCLKの立下りエッジでクロック同期入力されます

DSPのフレーム同期モード

DSPのフレーム同期モードにおける読み書きの動作は前項で述べたプロトコルに似ていますが、2つの主な相違があります。最初に、書込み動作の始まりはCS (この信号は、DSPのフレーム同期モードにおいても、デバイスを選択するためにローにしなければなりません)ではなく、DSPの立下りエッジを基準としています。次に、16ビットのDACデータまたは書込みコマンドがDSPの立下りエッジの16 SCLK後に有効となることです。他のモードでコマンドを実行するために必要としたCSの立上りエッジはDSPフレーム同期モードでは必要としません。

DSPフレーム同期モードは、デイジーチェーンと同等ではありません。CSの立上りエッジは、次のデバイスにデータを通す代わりに、特定の16ビットのデータに従って動作するようにデバイスに伝えるため、利用できません。

DSPフレーム同期モードを用いて複数デバイスに対する読み書きの動作を共用4+Nシリアルインタフェースを使って行わせることができます。Nはシリアルインタフェースを共用するデバイスの数であると同時に個々のデバイスが個別に持つチップ選択ラインの数でもあります。デバイスは電源投入後、DSPの最初の立上りエッジでDSPフレーム同期モードに入ります。このモードを避けるためには、電源投入時、DSPをDVDDまたはDGNDに接続してください。これは前項に図示されています。

DSPフレーム同期モードの利点は、1個のハードウェア信号(フレーム同期)がシリアルバス上の複数デバイスのDSPアクセスのタイミングを制御することです。これは性能上の利点を持ちます。その理由はチップセレクトのソフトウェア制御は、もはや、DACタイミングを決定する重要な要素ではないからです。この機能による利点を持つ1つの例は、共通のフレーム同期信号がDACとADC (常にイネーブルとされて)を同じ速度で駆動するマルチチップCODECの場合です。DSPのソフトウェアが一回の操作でDACのデータバッファを満たし、ADCのバッファがフルとなるのを回避して、シリアルインタフェースのハードウェアが全二重データ転送を可能とします。

図9. DSPフレーム同期モード:多重読取り
さらに図を拡大

図9. DSPフレーム同期モード:多重読取り

次のステップ
EE-Mail EE-Mail配信の登録申し込みをして、興味のある分野の最新ドキュメントに関する自動通知を受け取る。
© , Maxim Integrated Products, Inc.
このウェブサイトのコンテンツは米国および各国の著作権法によって保護されています。コンテンツの複製を希望される場合は お問い合わせください。.
APP 3189:
チュートリアル 3189,AN3189, AN 3189, APP3189, Appnote3189, Appnote 3189