スポンサーサイト

上記の広告は1ヶ月以上更新のないブログに表示されています。
新しい記事を書く事で広告が消せます。


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カウンター
カテゴリ
ユーザータグ

LTspiceAkaiKKRScilabmachikaneyamaKKRPSoCCPAOPアンプPIC強磁性モンテカルロ解析常微分方程式トランジスタodeインターフェース状態密度DOSecalj定電流PDS5022スイッチング回路半導体シェルスクリプト乱数レベルシフトHP6632A温度解析ブレッドボードI2CR6452A分散関係トランジスタ技術可変抵抗確率論数値積分反強磁性セミナー非線形方程式ソルバ絶縁バンドギャップ熱設計偏微分方程式バンド構造GW近似カオス三端子レギュレータLEDフォトカプラシュミットトリガISO-I2CA/DコンバータLM358USBカレントミラーTL431マフィンティン半径PC817C数値微分アナログスイッチ発振回路サーボ直流動作点解析74HC40532ちゃんねる標準ロジックチョッパアンプLDAアセンブラFFTbzqltyイジング模型ブラべ格子開発環境補間量子力学電子負荷BSchパラメトリック解析単振り子基本並進ベクトル熱伝導繰り返しGGAMaximaTLP621ewidthSMP相対論抵抗位相図ランダムウォークスピン軌道相互作用六方最密充填構造不規則合金FETコバルト失敗談QSGWcygwinスレーターポーリング曲線スイッチト・キャパシタラプラス方程式gfortranキュリー温度状態方程式条件分岐格子比熱TLP552LM555TLP521三角波NE555過渡解析FXA-7020ZRWriter509テスタ詰め回路MCUマントルダイヤモンドQNAPデータロガーガイガー管自動計測UPS井戸型ポテンシャルawk第一原理計算仮想結晶近似ブラウン運動差し込みグラフ平均場近似fsolve起電力熱力学OpenMPスーパーセル固有値問題最適化最小値VCAシュレディンガー方程式VESTAubuntu最大値面心立方構造PGAOPA2277L10構造非線型方程式ソルバ2SC1815fccフェルミ面等高線ジバニャン方程式ヒストグラム確率論マテリアルデザイン正規分布結晶磁気異方性interp1フィルタ初期値ウィグナーザイツ胞c/aルチル構造岩塩構造スワップ領域リジッドバンド模型edeltBaOウルツ鉱構造重積分SIC二相共存ZnOquantumESPRESSOCapSensegnuplotmultiplot全エネルギー固定スピンモーメントFSM合金ノコギリ波フォノンデバイ模型ハーフメタル半金属TeXifortTS-110不規則局所モーメントTS-112等価回路モデルパラメータ・モデルヒストグラムExcel円周率GimpトラックボールPC直流解析入出力文字列マンデルブロ集合キーボードフラクタル化学反応三次元Realforce縮退日本語最小二乗法関数フィッティング疎行列シンボル線種ナイキスト線図陰解法負帰還安定性熱拡散方程式EAGLECrank-Nicolson法連立一次方程式P-10クーロン散乱Ubuntu境界条件MBEHiLAPW軸ラベルトランスCK1026MAS830L凡例PIC16F785LMC662AACircuit両対数グラフ片対数グラフグラフの分割specx.f

最新コメント
リンク

にほんブログ村 その他趣味ブログ 電子工作へ
上記広告は1ヶ月以上更新のないブログに表示されています。新しい記事を書くことで広告を消せます。