MAX5591のPICによる制御:PICマイクロコントローラとMAX5591高速セトリングDACとのインタフェース
要約
PIC18F442マイクロコントローラと高速セトリングDACのMAX5591のインタフェースについてプログラム例をあげて解説します。
MAX5591概要
MAX5591は3線式のSPI™シリアルインタフェースを備えた12ビットの高速セトリングDACです。MAX5591のインタフェースは最高20MHzまでSPIをサポートすることができ、セトリングタイムは最大3µsです。このアプリケーションノートはアプリケーション回路の説明とPICコントローラの最高速ライン(PIC18Fコア)をMAX5591にインタフェースするために必要なすべてのファームウェアを含んでいます。実例のアセンブリプログラムは、MPLAB® IDE version 6.10.0.0.で提供される無料アセンブラを用いて、PIC18F442用に特別に書かれています。
ハードウェアの概要
アプリケーション回路はMAX5591EVKITを使用しますが、それはMAX5591、超高精度の電圧リファレンス(MAX6126)、2つの押しボタンスイッチ、利得設定抵抗、および実証済みのPCBレイアウトで構成されています。PIC18F442はMAX5591EVKITのボードには搭載されていませんが、図1に示したアプリケーション回路を完成させるために、ここではシステムに追加されています。MAX5591EVKIT上の/CS\、SCLK、DINおよびDOUTパッドによってSPIシリアルインタフェースを容易に接続することができます。
図1. MAX5591のアプリケーション回路
アナログとディジタルのグランドプレーン
アナログとディジタルのグランドプレーンを分離するのは良い方法です。この実例が図2に示されています。この両方のグランドプレーンはフェライトビーズを使用して接続してください。TDK MMZ1608B601Cなどのフェライトビーズを使って両方のグランドを接続すると、マイクロコントローラのシステムクロックとその高調波がアナロググランドに混入するのを防ぐことができます。PIC18F442のシステムクロックが40MHzであるため、「インピーダンス」 対 「周波数特性」からMMZ1608B601Cが選定されました。図3にはMMZ1608B601Cの「インピーダンス」 対 「周波数特性」図が示されています。
図2. アナログとディジタルグランドの分離
図3. TDK MMZ1608B601Cフェライトビーズのインピーダンス 対 周波数特性図
ファームウェアの概要
例としてリスト1に示したアセンブリプログラムはPIC18F442の内蔵MSSP SPIペリフェラルを用いてMAX5591を初期化します。PIC18F442の40MHzシステムクロックによってMSSPに最高10MHzのSPIクロック(SCLK)を供給することができます。表1は電源投入後に必要となるコンフィギュレーションワードのみが示されています。MAX5591が初期化されると、表2に示すように、プログラムはDACの出力レジスタに連続してゼロスケールとフルスケールをロードします。この連続ループによって方形波が生成され、MAX5591の高速セトリングタイムを実証します。
リスト1. この実例のアセンブリプログラムはPIC18F442内蔵のMSSP SPIペリフェラルを用いて、MAX5591にインタフェースします。
SPI Line | C7 | C6 | C5 | C4 | C3 | C2 | C1 | C0 | D7 | D6 | D5 | D4 | D3 | D2 | D1 | D0 |
DIN | 1 | 0 | 1 | 1 | 1 | 0 | 0 | 0 | 1 | 1 | 1 | 1 | 1 | 1 | 1 | 1 |
SPI Line | C3 | C2 | C1 | C0 | D11 | D10 | D9 | D8 | D7 | D6 | D5 | D4 | D3 | D2 | D1 | D0 |
DIN (1st) | 1 | 0 | 1 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 |
DIN (2nd) | 1 | 0 | 1 | 0 | 1 | 1 | 1 | 1 | 1 | 1 | 1 | 1 | 1 | 1 | 1 | 1 |