要約
このアプリケーションノートは、アナログ-ディジタルコンバータ(ADC)のMAX1169をPIC®マイクロコントローラにインタフェースする方法を解説し、PIC18F442に対する実例回路とソフトウェアが含まれます。ソフトウェアには、400kHzで内部MSSP I²Cポートを使用してPICマイクロコントローラにADCをインタフェースする関数呼び出しが含まれます。
MAX1169は、2線式I²C互換のシリアルインタフェースを特徴とする16ビット、低消費電力のADCです。MAX1169のインタフェースは、Fast Mode (400kHz)とHigh Speed Mode (最高1.7MHz)をサポートすることができます。
このアプリケーションノートは、PIC18F442を使用した実例アプリケーション回路とソフトウェアから構成されています。このソフトウェアには、400kHzで内部MSSP I²Cポートを使用してMAX1169をPICにインタフェースするための関数呼び出しが含まれます。他のマイクロコントローラが類似したオンチップ周辺機器を備えているので、提供された実例I²C通信ルーチンは意図的に単一のI²C関数呼び出しに切り替えられ、そのコードが他のマイクロコントローラですぐに実行することができます。表1には、アセンブリプログラム例で使用される単一のI²C互換性関数コールが示されています。
アプリケーション回路はMAX1169EVKITが使用され、MAX1169、入力バッファ(MAX4430)および試験済みPCBレイアウトから構成されています。PICおよびRS-232トランシーバーIC (MAX3232)は、MAX1169EVKIT上にはありません。MAX1169EVKITのSCLとSDAパッドは、I²C互換性シリアルインタフェースの接続を簡単します。400kHzでI²Cを動作させるためにはR3とR4に1.5kΩプルアップ抵抗を取り付けてください。
MAX1169のピンアウトによって、デジタルセクションからアナログセクションを簡単に分離することができます。アナログセクションは、ICの右側のピン8-13にグループ化され、デジタルセクションではICの左側でピン1-7に配置されます。また、ピン14はデジタルセクションの部分ですが、ICの左側にグループ化することができます。最適性能を得るには、図1の回路図で示されように、独立したアナログとデジタル電源の使用が推奨されます。
図1. MAX1169アプリケーション回路図
図2で示すようにアナログとデジタルのグラウンドを分離してください。MAX1169の近くで両方のグラウンドをフェライトビーズを通して接続してください。両方のグラウンドの接続にはTDK MMZ1608B601Cのようなフェライトビーズを使用して、マイクロコントローラのシステムクロックとその高調波がアナロググラウンドへ流入するのを防いでください。PIC18F442のシステムクロックが40MHzであるということを知って、その特有インピーダンス対周波数特性に対してMMZ1608B601Cが選択されました。図3は、MMZ1608B601Cのインピーダンス対周波数曲線を示します。
図2. アナログとデジタルのグラウンドの分離
図3. TDK MMZ1608B601Cフェライトビーズのインピーダンス対周波数曲線
例題アセンブリプログラムは、400kHzの2線式インタフェース周波数で、MAX1169 16ビットADCからPICに連続した変換を読み込みます。一度データのデジタル化されたアナログ電圧表現がPICによって受信されると、それは115kbpsでソフトウェアUARTによって直ちに送信されます。RS-232トランシーバーによって、標準シリアルポートを持つパソコンでデータが取り込まれます。
表1. 単一I²C互換の関数コール
単一I²C互換関数コール | 説明 |
HWI²C_start | 互換性を持つI²Cスタート条件を実行します。 |
HWI²C_repeatedStart | 互換性を持つ繰り返しI²Cスタート条件を実行します。 |
HWI²C_W_slaveAddr | 初期スレイブアドレス書き込みフレームを含むすべてのI²C互換書込み操作を実行します。 |
HWI²C_readMore_W | マスターACKで、互換I²C読込み操作を実行します。 |
HWI²C_readLast_W | マスターNACKで、互換I²C読込み操作を実行します。 |
HWI²C_stop | 互換I²C停止条件を実行します。 |
PIC18F442の内部I2C MSSP周辺機器にMAX1169をインタフェースするアセンブリプログラム例をダウンロードしてください。
{{modalTitle}}
{{modalDescription}}
{{dropdownTitle}}
- {{defaultSelectedText}} {{#each projectNames}}
- {{name}} {{/each}} {{#if newProjectText}}
- {{newProjectText}} {{/if}}
{{newProjectTitle}}
{{projectNameErrorText}}