質問:
私のシステムのADCのSPIインターフェースが読取りのたびに 0xFF を返します。何がいけないのでしょうか?

回答:
新世代のGSPS(Giga Sample Per Second)ADC(A/Dコンバータ)は、システム実装において業界最先端の性能と信頼性を提供します。しかし、読取りのたびにSPIインターフェースが 0xFF を返してきたら、確かに成功は見込めません。これはおそらくADC内の何かがうまく動作していないことを示唆しています。それが何かを探り出しましょう。
例えばAD9680のような最新世代のGSPS ADCは、ディープ・サブミクロンの 65 nm CMOSプロセスで設計されています。必要なAC性能仕様を満たすには、複数の電圧領域(1.25 V、2.5 V、3.3 V)に対応する必要があります。通常、このように複数の電圧領域に対応した半導体デバイスには、何らかの電源シーケンシングが必要です。しかし、アナログ・デバイセズの設計者は、ある種の管理回路を組み込んで電源シーケンシングの必要性をなくすことで、AD9680を簡単にシステムに組み込めるようにしました。
AD9680は、すべての電源レールを管理するパワーオン・リセット(POR)監視回路を内蔵しています。このPOR回路が、電源レールが必要なレベルに達したことを確認するまで、デバイスはリセット・モードになります。リセット・モードでは、SPIVDDが1.8 V、2.5 V、または 3.3Vの場合、読取りごとにADCがSPIポートを通して0xFFを送出します。目星がついてきたようです。ここで最も役に立つのが、昔から頼りになるデジタル・マルチメータ(DMM)です。
DMMを使って最初にチェックすべき箇所は、AD9680の様々なピンの電源電圧です。POR回路が関わる限り、この内の1本が範囲を外れている可能性があります。ここがうっかり見逃しやすいところです。図1をよく見てください。この図は、1.25 GHzのクロックで駆動されるAD9680-1250の配線をブロック図で示しています。一見したところ、回路におかしい点はないように思えます。この図にはデカップリング・コンデンサが示されておらず、他の電源領域も示されていません。電源電圧としては 1.25 Vが最小なので、ここではこの領域に焦点を絞ります。

AD9680の1.25V領域への給電
1.25 V に接続されたすべての領域に給電するには、ADP1741に十分な余裕を持たせる必要があります。しかし、ここでの犯人はLDOでもADCでもなく、疑ってもいなかったフェライト・ビーズです。通常フェライト・ビーズは、特定のデバイスへの電源にフィルタをかけるために、電源回路に使われます。フェライト・ビーズで見落としがちなパラメータの1つが、DCR(DC 抵抗)です。では、なぜDCRに気を付けなければならないのでしょう。それは、ゲオルク・ジーモン・オームと言う名の紳士がそう言ったからです。
オームの法則によれば、導体の2点間を流れる電流は、それら2点間の電位差に正比例します。ここでADP1741LDOの出力測定値は1.25 Vになるはずで、問題はないように思えます。しかし、ADCのピンの電圧、つまりフェライト・ビーズの反対側の電圧を測定すると、DMMの指示値は1.12 Vです(定格電流と仮定)。これが、ADCSPIが 0xFF を返していた本当の理由です。監視回路が、AD9680の内部電圧に問題があると判定していたのは明らかです。
では、どうすれば良いのでしょうか。対策として、いくつかのオプションが考えられます。
1. フェライト・ビーズを使わない。この場合、ノイズの影響を受けやすい設計になる可能性がありますが、必ずそうなるとも限りません。
2. フェライト・ビーズによる電圧低下を補うために、LDO出力電圧を上げて調整する。ただしこの場合は、適切な量の電流が引き出されないと、AD9680に過大な電圧が加わる恐れがあります。
3. インピーダンスと電流容量は同じだが、DCRが小さい(50 mΩ 未満)別のフェライト・ビーズを選ぶ。
4. 電圧出力をそれぞれの電圧領域(AVDD1、AVDD1_SR、DVDD、DRVDD)に分岐させてDCRの小さい フェライト・ビーズを使用し、適切な動作電圧が得られるようにする。
オプション2 と4 を図2 に示します。オプション4 が最良の妥協案ですが、これは部品コストが上がるので、その点を考慮する必要があります。オプション4 では、AVDD、DVDD、および DRVDDの各領域間である種のフィルタリングが生じることによって、ノイズ耐性が向上します。

以上のようなことから、今度ADCを接続してクロックを入力した時にADCがうまく機能せず、読取りサイクルごとに SPI が 0xFF を返す場合は、オーム氏に感謝することになるでしょう。この場合は、オシロスコープや親しくしているアプリケーション・エンジニアではなく、古典的なDMMが最適のツールになります。確かにフェライト・ビーズは優れたノイズ耐性をシステムに提供することができます。ただし、適切なものを選ばず、オームの法則に注意を払わないと、システム内でADC本来の性能を引き出すうえで、この小さな部品が深刻な問題を引き起こす恐れがあります。