コードのダウンロード
静電容量センシング用Pmodコントローラ(トップレベルファイル):pmod_cdc_ad7156.vhd(15.6 KB)
I2C マスター(プロジェクトに含める必要があります):i2c_master.vhd (14.1 KB)
特徴
- DigilentのPmod CDC1(アナログデバイスの AD7156 容量デジタルコンバータ用Pmod)への最新のインターフェースのVHDLソースコード
- 各チャネルの最新の静電容量データをパラレルインターフェースで連続出力可能
- I2C通信と静電容量コンバータPmod からの全てのデータ取得
- AD7156静電容量コンバータのオプションのユーザー定義設定可能
- システムクロックレートを設定可能
はじめに
これは、図1に示すDigilentの静電容量センシング用AD7156 Pmodとのインターフェースを処理するVHDLコンポーネントの詳細です。図2は、この静電容量センシング用Pmodコントローラをシステムに組み込んだ典型的な例です。このように、このCap Sense PmodコントローラはPmodポートに接続し、静電容量コンバータを設定し、データを収集するためのトランザクションを実行します。データは継続的に更新され、ユーザーロジックやFPGAの出力ポートに接続可能なシンプルなパラレルインターフェースで提供されます。
図1.Digilentの静電容量式AD7156 Pmod
図2.実装例
背景
Analog DevicesのAD7156は2チャンネルの容量-デジタルコンバータで、固定スレッショルドモードと環境適応型補償を備えたモードの両方を備えています。
動作原理
静電容量センシング用Pmodコントローラは、主にステートマシンとI2Cマスターコンポーネントで構成されています。
ステートマシン
この設計では、図3に示すようなステートマシンを使用して動作を実現しています。起動すると、コンポーネントは直ちに start(始動)ステートに入ります。この状態は、Pmodがパワーアップするのに十分な時間を確保するため、100msの間維持されます。次にconfigure(設定)ステートに進み、ユーザーが変更可能な値に従って、静電容量コンバータのモード、スレッショルド、感度などを設定します。pause(一時停止)ステートは、AD7156 のデータシートの要求に従って、 I2Cトランザクション間に1.3usの 「バッファ時間(Bus-Free Time)」を挿入します。続くread_dataステートでは、Pmodの静電容量コンバータから最新の静電容量データを収集します。最後に、output_resultステートで全データを出力します。その後、pause、read_data、output_resultの各ステートを連続的に繰り返し、静電容量データを定期的に更新します。図には示されていませんが、コンポーネントはいつでもリセットされると、start(スタート)状態に戻ります。
図3.状態図
I2Cマスター
configureとread_dataステートの間、ステートマシンはI2Cマスターコンポーネントを制御し、Pmod上の静電容量コンバータと通信します。I2Cマスターのドキュメントはこちらです。
静電容量センシング用Pmodコントローラの設定
静電容量センシング用Pmodコントローラは、エンティティの汎用パラメータを設定することで構成されます。
システムクロック周波数
GENERICパラメータsys_clk_freqは、静電容量センシング用Pmodコントローラのclkポートに供給されるシステムクロックの周波数に設定する必要があります。
AD7156の構成
静電容量センシング用Pmodコントローラには表1に示すように、AD7156内の7つのレジスタに対応する7つのGENERICパラメータがあります。これらのGENERICパラメータに割り当てられた値は、configureステートの間、レジスタに書き込まれます。コード内のデフォルト値は、工場出荷時のレジスタ値と同じです。AD7156 Datasheet(527.3 KB)に、各レジスタビットについて説明していますので、ユーザーはコンバータを必要に応じて設定することができます。
表1.AD7156の設定用レジスタマップへのGENERICパラメータ
ポートの説明
表2は静電容量センシング用Pmodコントローラのポートについて説明しています。
表2.ポートの説明
接続
このPmodは8ピンコネクタを備えています。表3にこのコネクタのピン配置を示します。静電容量センシング用Pmodコントローラのポートは、このコネクタに配線されているFPGAのピンにリスト通りに割り当てる必要があります。Pmodボードでは、2列のJ1コネクタが接続されていますので、片方だけをFPGAに接続すればよいことになります。
表3.静電容量センシング用Pmodのピン配置と静電容量センシングPmodコントローラへの接続
リセット
静電容量センシング用Pmodコントローラのコンポーネントが動作するには、reset_n入力ポートがロジックHighである必要があります。このポートがLowロジックレベルで、非同期にコンポーネントをリセットします。リセット中、コンポーネントはPmodとの現在のトランザクションを中止し、cdc_ch1_data、cdc_ch2_data、cdc_ch1_avg、およびcdc_ch2_avgデータ出力とi2c_ack_err 出力はクリアされます。リセットが解除されると、静電容量センシング用Pmodコントローラは動作を再開します。静電容量コンバータを再設定し、静電容量データの収集と出力を再開します。
まとめ
この静電容量センシング用AD7156 Pmodコントローラは、DigilentのPmod CDC1(静電容量センシングAD7156 Pmod)にインターフェースするプログラマブルロジックコンポーネントです。このPmodとのすべての通信を処理し、Pmodの静電容量コンバータを設定し、パラレル出力で継続的に更新された静電容量データを提供します。
補足情報
AD7156 Datasheet(527.3 KB)
関連するトピック
お問い合わせ先
ご意見、ご感想、ご質問は、eewiki@digikey.comまでお寄せください。