圧力センサのプログラム結果は概要PSoC3のユーザモジュールを見ていたら、定電流源のモジュールがあった。これは、PSoC1のモジュールには無いけど、センサとか使う時にあると便利だ。AN2089というのが見つかった。圧力センサを繋ぐというのは、CQ出版の「PSoC3ボード+デバッグ・ボード」にあった例を参考にしました。[top]定電流源AN2089では、どの様に定電流源を実現しているのか、追っかけてみる。英文は苦手なので、ざっと読んで適当に意訳しただけだけど。基本回路x1のオペアンプの出力から、Rsetを通して負荷抵抗Rloadに接続する。設定電圧Vsetと負荷電圧Vloadを比較して電流Isetをコントロールする。RsetPSoCでの構成PSoCのINSAMPは、x1のオペアンプを構成できない。SCBブロックを使って、x1のDiffAmpを構成することは可能。この基本回路を、PSoCのDiffAmpで構成する。→負荷抵抗の接続先の電圧Vss,Vdd,そしてAGND等に接続可能だが、それぞれの電圧で出力電圧範囲が異なる。VloadRef+Iset*RloadVloadRefをVccにセットした時、Rloadに電流を流し込む事や、VloadRefをVssにセットした時に、Rloadから電流を引くのは難しい。VloadRef+Iset*(Rload+Rset)動作範囲に関しては、式をそのまま書いただけ。出力電流範囲に気をつけろということか。回路例VloadRefをGndにして、Rloadを、0〜300ΩVloadが0〜1.2Vとなる様に、Isetは4mAとする1Vsetを-1.26Vとすると、Iset=-Vset/Rset=4mAから、Rset=316Ωとなる。Port2が使えない場合PSoCの接続の都合で、DiffAmp入力はPort2になってしまうが、Port2が使えない場合は、x1のPGAを介して入力すれば良い。以下のようにVloadの入力電圧がシフト2するので、注意。1.82〜3.02V結論ということで、1個の抵抗を外付けするだけで、PSoC1でも定電流源を構成することが出来る様だ。ここまでがAN2089の内容だが、実際どうなのか、やってみようと思う。1これは、Isetを4mAとするためにVloadを0〜1.2Vとしたのかもしれない。2何故、0.5Vシフトするのか、理解していないんだけど。[top]定電流源を試してみるAN2089‐定電流源の動作確認をしてみる。プロジェクトを作るAN2089の、Figure9の構成DiffAmpの入力を、Port0から取れるようにPGAのバッファを入れる。定電流源プログラム各モジュールをスタートして、DAC出力を約1.24Vに設定するだけ。DAC6_1_WriteStall(15);実験回路ブレッドボードで組んでみるP0_4から330ΩでP0_2に接続、さらに330Ω、130Ωを通して、GNDに接続するだけ。電流が少ない場合、例えば1/10の定数でどうなるかやってみる。P0_4から3.3kΩでP0_2に接続、さらに5.1kΩ、1.3kΩを通して、GNDに接続するのも試してみる。P-10)を挟んで測定。330Ω+130Ωで約3.78mA、330Ωでは約3.79mA5.1kΩ+1.3kΩで約378uA、5.1kΩでは約377uA抵抗が変化しても、電流変化は僅かであり、いちおう定電流動作していることがわかる。[top]圧力センサを使ってみる秋月で扱っている圧力センサMPS2407を、この定電流源で使ってみる。単純に5V直結で、定電圧駆動しても良いが、定電流駆動した方が精度が良いらしい。実験回路で試した、1/10の定数、つまり400uA狙いの定電流駆動、P0_4・P0_2間に3.3kΩを接続、VGAのオフセット分の1.3kΩは省略する。ブレッドボードに組んでみる。定電流源で、圧力センサに電流を流して、その出力をPGAを通して、差動入力のADCで取り込む。圧力センサのプログラムADCの結果を、LCDで表示するようにしてみた。}結果はブレッドボードに組んで、圧力を掛けてみると、ちゃんと出力が変化する。圧力センサ出力の変化がちょっと小さい気がする。息を吹きかけたぐらいでは、出力に変化が見られない。3→圧力をかけない状態LEGOのポンプをつないでみると、確かに圧力で値が変化する。再現性はあるので、圧力の検出は出来ているのだろう。変化が小さいのは駆動電流が少ないためかも4しれない。5V直結で、定電圧駆動した方が、出力が大きくなると思う。15PSIは、約1気圧なので、2気圧まで掛けられるということだと思う。測った圧力は差分だと思うので、最大負荷圧力ギリギリ(ちょっと超えるかも)ぐらい掛けている計算になる。実験的には、都合が良い範囲の圧力を掛けている感じだと思う。14.5psi1気圧は14.7psi、約0.1MPaとなる3サーバダウンで写真やプロジェクトが消えてしまったので、写真だけ撮り直しました。(140109)4なにか間違っている気がしないでもないけど。5一般的には、従来使われていたミリバールに合わせて、hPa(ヘクトパスカル)が良く使われる。