PSoCでLED正弦波電流駆動

PSoCは、ワンチップで簡単に正弦波電圧を出力できます。この正弦波電圧出力でLEDを駆動したのがPSoCでLED正弦波駆動です。今回は、PSoCをもちいてLEDを正弦波電流駆動しました。



video.1: LEDの正弦波電流駆動



PSoCで正弦波電圧出力


PSoCでLED正弦波駆動では、PSoCのI/Oから1Hzの正弦波電圧を出力することにより、LEDを駆動するサンプルプロジェクトを動作させました。その結果、LEDがぼんやりついたり消えたりを繰り返す動作をすることを確認できました。

このときの出力電圧と、LEDに流れる電流の関係は、fig.1に示すものでした。


005_20090604133317.png
fig.1: 電圧波形(赤),電流波形(緑)


緑の電流波形(実際はLEDと直列の抵抗の両端の電位差)をみると、正弦波というよりは、ON/OFF動作のON時の波形がなまったような形をしています。
LEDは電流駆動すべき素子です。そこで、本エントリでは、PSoCをもちいて、正弦波電流出力をすることを目的とします。

電流出力回路


正弦波の電流出力が必要になるアプリケーションは数多く存在します。
抵抗の測定には、直流電流源が必要となりました。(100mA定電流源,TL431で低抵抗測定用10mA定電流源)

同様に交流インピーダンスを測定する場合には、交流電流源が必要となります。

たとえば、インダクタンスの測定などです。正弦波電圧を正弦波電流に変換する電圧-電流コンバータ回路に関しては、LTspiceでモンテカルロ解析LTspiceモンテカルロ解析の定数分布 その4でモンテカルロ解析を行いました。これらのエントリから、電流出力回路の発振のしやすさが伺えます。

PSoCオペアンプ


PSoCの連続時間ブロック(CT Block/Continuous Time Block)の中心はOPアンプでできています。しかしながら、このOPアンプの入出力をすべて同時に外部に出力することはできません。

これに対して、JUNK-BOXさんが反転入力側にPGAで作ったボルテージフォロワを追加することによって、擬似的に外部にOPアンプの入出力を取り出す方法を公開しています。(PSoCオペアンプ)

電流値のフィードバック回路


LEDの電流駆動回路の場合は、片方向の電流源でよいのでfig.2-3に示すように電流検出用のシャント抵抗の両端電圧と正弦波電圧をエラーアンプで比較するだけの単純な回路で実現できるはずです。


002_20091019030143.png
fig.2: 電流値のフィードバック回路

003_20091019030138.png
fig.3: LEDの電流波形


OPアンプとしてLMC662を用いてfig.2の回路を作成したところ、シミュレーションどおり正弦波電流出力ができました。しかしながら、前述の方法で外部に取り出したPSoCのOPアンプで同様の回路を構成したところ、1Hzの正常な発振に加えて激しい寄生発振が見られました。

PSoCでLED正弦波電流駆動


寄生発振が無く、LEDを正弦波電流駆動するために行ったことは以下の3点です。

  • OPアンプのPowerを下げる(LOWPOWERにする)
  • PGA_2の接続先を反転入力から非反転入力に変更する
  • LEDと直列に抵抗を挿入



004_20091019030138.png
fig.4: PSoC Designer


fig.4に示すとおり、PGA_2,PGA_3を追加します。PGA_2はゲインを0.25に、入力を正弦波出力に接続します。PGA_3は、入力をPGA_2にし、出力を外部に出します。この時点では接続されていませんが、PGA_3のある列のアナログ入力マルチプレクサの接続先が、OPアンプの反転入力端子になります。

以下に、main.cの一部を示します。

void main()
{
        Counter16_1_Start();
        Counter8_1_Start();
        PGA_1_Start(PGA_1_HIGHPOWER);
        BPF2_1_Start(BPF2_1_HIGHPOWER);

        PGA_2_Start(PGA_2_LOWPOWER);
        PGA_3_Start(PGA_3_LOWPOWER);
        ACB02CR1 = (ACB02CR1 & 0xc7) | 0x38;
}


PGA_2およびPGA_3のPOWERをLOWPOWERに設定します。
ACB02CR1レジスタに書き込みを行うことで、ACB02(PGA_3)の反転入力をPort0[7]に接続します。

出力P0[4]からフィードバック入力であるP0[7]の間に負荷となるLEDを接続しますが、このときLEDと直列に抵抗を挿入します。
以上をまとめた接続の概念図をfig.5に示します。


005_20091019030129.png
fig.5: 接続の概念図


電流波形の測定結果


fig.6にPDS5022で測定した波形を示します。


006_20091019030129.png
fig.6: 電流波形(赤) 基準電圧(緑)


基準電圧のステップ上の信号にも(それがよいことか悪いことかは別として)きちんと追従しつつ、寄生発振も起こしていません。

インダクタンス計への応用


OPアンプのPOWERを下げると、OPアンプの利得帯域幅積が下がるので、ゲイン余裕が作れるはずです。PGA_2がエラーアンプの反転入力側に入っていると帰還部分での信号の遅延が大きくなり、位相余裕の減少につながると考えられます。

今回のような負荷がはっきりしている回路では、カットアンドトライで対策を考えることもできますが、どのような負荷がつながるか分からない計測器の場合はそれも難しいと思います。

PSoCを用いた位相検波方式のインダクタンス計としては、PSoCデジタルLメータのありえない実装があります。しかしながら、この作例でも電圧-電流変換回路部だけは外部のOPアンプを利用しています。

逆に言えば、電圧-電流変換回路さえPSoCで作れれば、ワンチップインダクタンス計が実現するわけですが、なかなか難しそうです。

関連エントリ




参考URL




付録


このエントリで使用したLTspiceのシミュレーション用ファイルを添付します。ファイル名末尾の".txt"を削除して、"_"を"."に変更すれば使えるはずです。


参考文献




フィードバック



にほんブログ村 その他趣味ブログ 電子工作へ

 ↑ 電子工作ブログランキング参加中です。1クリックお願いします。


コメント・トラックバックも歓迎です。 ↓      


 ↓ この記事が面白かった方は「拍手」をお願いします。


tag: LTspice PSoC 定電流 OPアンプ 

comment

Secret

PGAのGB積を小さくするには、

> OPアンプのPOWERを下げると、OPアンプの利得帯域幅積が下がる

PGA のデータシートには、GB積にかかわる二つの条件 POWER と BIAS が書いてあります。 POWER が OP アンプの POWER の事だと理解しましたが、 BIAS というのがわかりませんでした。どうやら、 Global Resources で設定する項目のようです。チップ全体の BIAS が影響を受けるので、 LOW に設定してもいいのか思案のしどころです。
BIAS の隣には、 A_Buff_Power という項目があります。おそらく、出力につながっているバッファ・アンプの事だろうと思います。これを使うと、 LED に直列に入れた 100Ω の抵抗が省略できるかもしれません。

Re: PGAのGB積を小さくするには、

のりたんさん、こんにちは。

お察しのとおり、下げたのはOPアンプのPOWERの方です。Global Resoucesを触るのは最後の手段としたかったので、今のところトラ技のプロジェクトから変更していません。

A_Buff_Powerの事は考えていませんでした、時間ができ次第BIASとあわせて試してみます。

生OPアンプ

cypress のアプリケーション・ノートをあさっていたら、こんなのを発見。

AN2223 - The Faux Op-Amp

日本語で「擬似OPアンプ」
ACB を使うのではなく、 SCBLK を使うと自然にOPアンプになってしまうというお話。ちょっと、変なところがありますが、それを検証するすべを私は持っていません。

Re: 生OPアンプ

のりたんさん、こんにちは。

> AN2223 - The Faux Op-Amp
http://www.cypress.com/?id=1573&rtID=76&rID=2630&l=2&sort=column_7&sortDir=desc&page=all
ですね。
プロジェクトファイルがあるようですが、私の環境では開けませんでした。
SCBlockのユーザーモジュールを個別に設定すれば、同じ事はできそうですが、まだやってません。先にLTspiceでシミュレーションしてみようかなとも思いますが、さて・・・と言ったところです。


PDFは斜め読みしました。SCブロックに入っているOPアンプ周りのスイッチをいじれば、積分回路に見える形にできることは確かですね。ふたつある入力のスイッチを逆位相でつかえば、差動入力になると言うのはトラ技2009年1月号にもありました。

Re: 生OPアンプ

私が気になったのは、
* SCBLK内部の作動アンプのポールはどこにあるのか。
* 出力バッファのポールはどこにあるのか。
の二点です。
これらのポールがはるかに周波数の高いところにあって、無視できたとしても、外部出力に容量性負荷をつけると、低い周波数にポールができて、発振してしまうのではないでしょうか。

と、想像しているだけで、実験にまで至っていません。だいたい、発振しているかどうかをどうやって確認すればよいのか。やっぱり、オシロスコープが欲しいな。

Re: Re: 生OPアンプ

のりたんさん、こんばんは。

やはり、スイッチト・キャパシタブロックにしろ、連続時間ブロックにしろ、OPアンプとその周辺の特性がどうなっているのかが知りたいですね。
実際には公開されているユーザー・モジュールを並べるだけでも、いろいろ楽しめるチップだとは思いますが・・・

> やっぱり、オシロスコープが欲しいな。
いま購入するなら、やはりPDS5022Sが妥当な選択肢ではないかと思います。
FC2カウンター
カテゴリ
ユーザータグ

LTspiceAkaiKKRmachikaneyamaScilabKKRPSoCOPアンプCPA強磁性PICモンテカルロ解析常微分方程式odeトランジスタecalj状態密度DOSインターフェース定電流スイッチング回路PDS5022半導体シェルスクリプト乱数レベルシフトHP6632A温度解析分散関係I2Cトランジスタ技術R6452A可変抵抗ブレッドボードセミナーバンドギャップ数値積分確率論反強磁性偏微分方程式バンド構造絶縁熱設計非線形方程式ソルバフォトカプラシュミットトリガLEDLM358カオスISO-I2C三端子レギュレータGW近似A/Dコンバータカレントミラーアナログスイッチ数値微分マフィンティン半径TL431発振回路サーボPC817CUSB直流動作点解析74HC4053補間FFTBSch開発環境パラメトリック解析2ちゃんねるチョッパアンプ量子力学bzqlty電子負荷イジング模型LDA標準ロジックアセンブラ基本並進ベクトルブラべ格子単振り子熱伝導位相図TLP621キュリー温度繰り返し状態方程式MaximaVESTAスイッチト・キャパシタ相対論FETランダムウォークスピン軌道相互作用SMP六方最密充填構造抵抗不規則合金ewidthスレーターポーリング曲線GGAラプラス方程式cygwingfortranQSGW失敗談コバルト条件分岐TLP521テスタLM555Writer509TLP552格子比熱マントルデータロガー自動計測詰め回路ガイガー管ダイヤモンドQNAPMCUFXA-7020ZR過渡解析三角波UPSNE555固有値問題熱力学ブラウン運動フェルミ面awk起電力第一原理計算OpenMPfsolveubuntu最大値xcrysden最小値最適化仮想結晶近似VCA差し込みグラフスーパーセル井戸型ポテンシャル平均場近似シュレディンガー方程式FSMフラクタルOPA2277固定スピンモーメント2SC1815全エネルギー合金multiplotgnuplotc/aTeX結晶磁気異方性interp1ウィグナーザイツ胞初期値マンデルブロ集合疎行列面心立方構造fcc不純物問題非線型方程式ソルバフィルタL10構造PGA半金属二相共存SICZnOウルツ鉱構造BaO重積分クーロン散乱磁気モーメント電荷密度三次元CIF岩塩構造CapSenseノコギリ波デバイ模型ハーフメタル正規分布フォノンquantumESPRESSOルチル構造スワップ領域リジッドバンド模型edelt縮退キーボード軸ラベルグラフの分割凡例トラックボールPC不規則局所モーメント片対数グラフトランス両対数グラフCK1026MAS830L直流解析Excel円周率パラメータ・モデルヒストグラム日本語最小二乗法等価回路モデルGimp線種シンボルTS-110TS-112PIC16F785LMC662化学反応文字列specx.f入出力ifortマテリアルデザインヒストグラム確率論Realforce等高線ジバニャン方程式P-10Ubuntuナイキスト線図Crank-Nicolson法陰解法熱拡散方程式HiLAPWAACircuit連立一次方程式負帰還安定性境界条件EAGLEMBE関数フィッティング

最新コメント
リンク

にほんブログ村 その他趣味ブログ 電子工作へ