MAX11300PMB1をexStickにつなぐ

GWいかがおすごしですか?

さて、今日はGW中の簡単な工作としてMAX11300PMB1をexStickにつないでみます。20本のADC/DACを備えたIOポートをNetworkで制御できるようになりますよ。

MAX11300PMB1とは

MAX11300PMB1はMAXIMから発売されているMAX11300の評価ボードです。MAX11300は20ポートのデジタル/アナログプログラマブルI/OのICで、設定によってADCやDAC、TTLレベルの信号生成と多彩なI/Oポートとして利用できます。

評価ボードの詳細は こちら を、ICの詳細は こちら を参照してください。

評価ボードの物理的なI/FはPMODなのでDigilentのFPGAボードやexStickに簡単に接続できます。ただし、I/Oポートを有効にするためにはSPIによる初期設定が必要なので、若干使い始めは面倒かもしれません。

MAX11300用のコンフィグレーション

SPIなので、もちろんHDLで記述できますが、特段、速度が必要というわけでもないのでJavaで書いてSynthesijerで合成してしまうことにします。

読み書きのインターフェースクラスは、こんな感じ。MAX11300Iface.java

たとえば、レジスタから値を読み出すために、次のようなメソッドを定義しています。このメソッドでは、一つ目のループで、SPIのCLKをぱたぱたしながらアドレスを出力し、二つ目のループでデータを取りこみます。

MAX11300を叩いてみる

用意したI/Fクラスを使ってMAX11300を叩いてみます。たとえばポート19をDACモードに設定し、のこぎり波を作るには、

  • ポート19の設定レジスタ(0x33)に0x5100を指定(+10V~0VのDACモードに設定)
  • ポート19のデータレジスタ(0x73)にカウンタ値をセット

すればよいでしょう。

Javaで書くとこんな感じ。 MAX11300Test.java

ちなみに、データシートではデバイスIDの値が0x0024と書いてありましたが、実際に読めた値は0x0424でした。

UDPコアとつなげばネットワーク対応汎用I/Oのできあがり

exStick付属のIPコアを使えば、簡単にネットワークから制御可能なI/Oができあがります。MAX11300はあまり高速に値を制御することはできませんが、10V幅でデータを制御できるようになると、アプリケーションの範囲も広がりそうですね。

シェアする

  • このエントリーをはてなブックマークに追加

フォローする