デジポットの実験

デジタルポテンショメータの実験を行いました。
デジタルポテンショメータとは抵抗値をデジタル制御できるICです。
楽器などに使われるボリュームやフェーダーは可変抵抗(ポテンショメータ)と呼ばれますが、値を変えるには手動で行わないといけません。つまりその状態を保存したりや自動で動かしたりするには難しいわけです。(ここで難しいと言ったのは、モーターとか使って物理的にはできるけどその機構を作るのに大変という意味です)
という訳で、デジタル的に制御できる抵抗はそういったある状態を保存したり、自動制御するために使用されます。

今回使用したMCP4231はMicrochip製のモノで、SPIで制御できます。IC単体に2個の抵抗が入っています。また解像度は128(7bit)になります。MIDIとかで制御する場合はちょうどいいですね。

このシリーズはいろいろバリエーションがあり注意が必要ですが、SPIの制御をするときにSDOとSDIが共通のものと別々のPINにアサインされているものとあります。(MCP41X1)

MCP4231は別々のタイプで、個人的には特に小型を使う必要性がないということもあり、MCP4231を使用しています。また抵抗値の範囲も10k, 50k, 100kとあります。あとはポテンショメータとして使うか”レオスタット”として使用できるものがあります。レオスタットとは抵抗の三端子のうち、はじの端子がICからでていないタイプになります。

用途としては電流値を変える用途やアンプの帰還抵抗にいれてGainの調整等、いろいろあります。ポテンショメータは三端子がすべてICからでています。そのため、はじの端子をオープンにすればレオスタットしても使用できます。

MCP4231を制御するには、16bitをデータを送るか、8bitのみで1bit増分、減分するデータ構成があります。

最初のAD3~AD0はアドレスです。二つの抵抗があり、WIPER0、WIPER1と分けられています。WIPER0用のレジスタは、アドレスが”0000″にあり、WIPER1用のレジスタは”0001″にあります。
次に、C1,C0ですが、これはcommand bitといい、write、read、increment、decrementの何を行うのかを指定するためのビットです。今回の使用方法では、単純に抵抗値のみを変更できればいいので、C1,C0は”00″に固定しています。D9~D0はDataのビットになり、この値によって抵抗値が変更されます。MCP4231は7bitのみなので、D9~D7は何も影響がありません。残りのD6~D0に値を書きます。

ピンのWPとSHDNは最初オープンにしてました(内部にきっとプルアップ抵抗があると信じて)。
しかし、オープンだと動作が不安定でした。これらのピンをVDDに接続すると動作が安定しました。
他の端子の接続は以下のように接続しました。
VDD : 5V
VSS : 0V
WP : 5V
SHDN : 5V
SDI : SDO (マイコンPIC16F690)
SCK : SCK (マイコンPIC16F690)
CS : RC4 (マイコンPIC16F690)

後は、P0Aを5V、P0Bを0Vに接続し、P0Wから分圧した電圧が出力されます。P1xも同様です。

コメントはまだありません »

コメントはまだありません。

この投稿へのコメントの RSS フィード。 TrackBack URL

コメントする