迷走の果て・Tiny Objects

迷走する日々の覚え書きです。自分で分かってることは省略してますので、念のため。

正弦波発振回路のリンク

ネットをうろついて見つけた記事のリンクです。
nobuさんのブログ nobuの雑記帳「+バイアスを少し」から定歪み発振器
Low-distortion Audio-range Oscillatorから引用されてます。
移相回路(オールパスフィルタ)二段に反転増幅器による発振回路、振幅制御はLED-Cdsフォトカプラ。

オペアンプによる正弦波発振回路はまたやってみたいんです。
DDSにも興味がありますが・・・。

過去記事をリストアップしてみました。
オールパスフィルタを使った発振回路の実験 上のリンクと同じオールパスフィルタを使っています(CRの位置が反対ですが)。見直してみると、結構いいんですが・・・、何で辞めたんだろう?と過去の自分に問いたい^^;;
オールパスフィルタ発振回路FET定電流リミッター式

スポンサーサイト

LT3080を使った電子負荷の実験(3)

LT3080を使った電子負荷の実験(2)の続きです。
電子負荷は電源の特性を測定するときに使います。
特性を測るには下図のように電流計と電圧計をつなぐことになります。
前の実験ではR2の両端電圧を測って電流を求めようとしましたが、これでは下図のようにI4が加わるため誤差が出ます。
このI4、すなわちVcontrolピン(4ピン)の電流はデータシートにあります。下図で引用してあります。
これによるとTj=25℃のとき、Load Current=1AでVcontrolピンの電流は17.5mA、Load Current=0.5Aなら10mAですので大体2%程度です。
これから出力トランジスタのHFEは50程度と推計できます。

ところでTjというとジャンクション温度のことなんでしょうか?だとすればデータシートのグラフにはTj=-50℃のデータが載ってますが、どうやって測ったんでしょう??

それはさておき、R2の両端電圧から電流を求めたのでは約2%の誤差が出るということになります。
これぐらいなら実際の測定にはたいした影響は無いのですが、どうせやるなら正確にやりたいので回路図にあるようにR1を追加しその両端電圧からVcontrolピン(4ピン)の電流を求めて引き算すれば補正が出来ると考えました。
負荷電流を測るための案2


今、回路をあれやこれやと考え中。
当然電圧も測らなきゃならないし、どうせなら電池電圧も表示できればいいかも。
表示はLCDで、そうなると例によってPSoCを使うので電源に5V必要で、電池で動作させたいからDCDCコンバータが必要で・・・と膨らむ一方です^^;;
手持ちに16bitADCのADS1110が複数個あるので2個使ってやろうと思ったのですがI2Cアドレスが同一!
となるとI2Cバスをアナログスイッチで切り替えてはどうか・・・。SDAとSCLの両方切り替えではなく、片方だけの切り替えで出来るのだろうか・・・。

どんどん逸れていきます、いつものことですが。

(続く)

ADS1110を使ったハイサイド電流モニターの実験(3) どこでもベープをばらす

ADS1110を使ったハイサイド電流モニターの実験(2)の続きです。
ADS1110とMPC3425の比較をやってるうちにうっかりICを二つも昇天させてしまいました。
CY8C24123とPCF8574Aです、どちらもまだ手持ちがあったので実験は続けられましたが・・・。

気分転換(?)に使わなくなったどこでもベープをバラしてみました。
中のファンです、単三電池四本で動かしてます。
どこでもベープ3

どこでもベープ2

実験中の電流モニターをつないでみました。電圧は5Vです。
最初は50mAほど流れ、14mAほどで落ち着きます。
LCD1行目左は電流、右はADコンバータの読み出し値。
2行目左は最大電流、右は制限電流で単位はmAです、これを超えると電流供給を遮断します。
デジタルスイッチで100mAステップで設定できます。
どこでもベープ1
このファン、風量はさほど無いのですが、静かなので何かに使えないかな・・・。

MCP3425はADS1110と同等品ではありません(2)

先の記事の続きです。
上の四個はADS1110、下はMPC3425です。
ADS1110とMCP3425の違い写真
オフセットを測ってみました。設定は16bit、PGA=8です。
ADS1110はAD変換値が-37、0、-50、20なのに対し
MPC3425はどちらも0でした。

どうしてこのような違いがあるのかとデータシートから抜き出してみました。
PGA=1のとき、MPC3425はOffset Errorが30μV(typ)なのに対しADS1110は1.2mV(typ)と大きく違います。
ADS1110とMCP3425の違い3_offset

さらにデータシートからグラフを抜き出しました。(赤字は私が加えました)
やはり大幅に違います。
ADS1110とMCP3425の違い4_offset

ADS1110では最初にオフセットを測って記憶しておき、以後のAD変換ではオフセットを引けば使えるんですが、そんな手間かける必要の無いMPC3425の方がいいですね、秋月で手に入りますし・・・。

いい勉強になりました。データシートはちゃんと読まなければ。




ADS1110を秋月の変換基板に乗せる

ADS1110は手持ちにまだあるので秋月のSOT23変換基板に乗せました。
そうしたらオフセットがゼロ!、今使ってるのはオフセットが-37も出てたんですが・・・なぜでしょう?
まだ数個もっているので試してみます。
ADS1110を秋月基板に乗せる

左が秋月のSOT23基板。
ADS1110を秋月基板に乗せる2

LM10を使った定電流回路の覚え書き

LM10を使った定電流回路の覚え書き。
以前実験した回路で使ったのですが、ちゃんと書いていなかったので記録しておきます。
LM10定電流回路

動作説明です、自分がわかればいいので端折ってます^^;;
LM10定電流回路動作説明

以前の記事にも載せたのですが、LM10を使った設定値約1mAの定電流回路と0.5mAの定電流ダイオード二本並列との比較です。
LM10と定電流ダイオード比較

LT3080を使った電子負荷の実験(2)

LT3080電子負荷・測定回路

作った電子負荷の特性を調べてみました。
LT3080電子負荷・特性1
4.5V~14Vまで可変できる手持ちの電源を使いました。
1000mA近く流すと13.5V以上で低下が見られます。下図に示すLT3080のデータシートによると電流制限が働いたようです。
LT3080電子負荷・データシートの特性

次に下図の0.1Ω抵抗の両端電圧と負荷電流(5pinに流れ込む電流)を測定しました。このときの電圧は4.5Vです。
LT3080電子負荷回路図

0.1Ωの両端電圧を測れば電流がわかると思ったのですが、LT3080のオペアンプ部の電流と出力トランジスタのベース電流も流れ込むため若干のずれがあります。
変化は直線的ですので補正は容易に思えますが、温度による影響を受けるんじゃないかと思います。
トランジスタのHFEは温度で変化するので当然ベース電流も変化します。そのあたりの影響はまだ見積もれていません。
LT3080電子負荷・特性2



LT3080を使った電子負荷の実験(1)

リンクさせていただいている電気の迷宮さんがLT3080を使った電子負荷を発表されていたので、実験してみました。

LT3080電子負荷回路図

実験の様子です、自作の5V電源につないでいますが、念のため5.1Ωの抵抗を直列に入れてます。
動作確認後に抵抗を外しましたが、当然電流値は変化しません。
可変抵抗には手持ちにあった10回転ポテンショメーターを使っています。
LT3080電子負荷・実験の様子

実験基板です、大きな顔をしているのはオークションで手に入れた0.1Ω10Wの抵抗です、誤差±10%なのがちょっと残念ですが、それに流すのは1Aまでなのでこんな大きなワット数は必要ないんですけど・・。
これ以外の抵抗とコンデンサはすべて手持ちで間に合わせました。
LT3080電子負荷・実験の様子2

これで1Aまで流せます。
実は以前オペアンプとトランジスタを組み合わせて電子負荷を作ったことがあるのですが、こちらのほうがはるかに簡単です。LT3080を放熱する必要があるので、ケースに押し込んでみようと思ってます。
発表してくださったFriendship 7さんには感謝しています。

MCP3425はADS1110と同等品ではありません

以前の記事でMCP3425はADS1110と同等品だろうなどと書いたのですが、違いました。
書いた手前、確かめてみようと秋月に部品を注文したついでにMCP3425も買いました。
届いたので早速実験したら、動きません(汗
もう一度データシートを詳しく比較したら違ってました。
ADS1110のCONFIGURATION REGISTERですが、bit4が1でsingle conversion mode、0でcontinuous conversion modeなのですが、MCP3425では逆なのです!!!

bit3-2でサンプルレートを選びますが、ADS1110とMCP3425では設定値が異なります。
MCP3425には30SPSの設定が無く、15SPSの設定値がADS1110と異なります。

ADS1110とMCP3425の違い
ADS1110とMCP3425の違い2

MCP3425のCONFIGURATION REGISTERです。
MCP3425.png

いや焦りました。設定を直してからはちゃんと動くようになりました。
驚いたのは入力が無いときのオフセットが0だということです、私が今実験しているADS1110では-37ほどあるんです。(16bit PGA8倍のとき)
取り急ぎ書きましたので、ちょっとわかりにくいところがあるかもしれませんが、MCP3425はADS1110と同等ではありません。気をつければ同じように使えますが、オフセットゼロの分MCP3425が上です。

プラグイン変更

月別アーカイブプラグインを変更。これですっきりしました。
これを見ると2005年からはじめて2011年までは結構更新してましたが、2012年はほぼ休止状態。理由はわたくしごとなので詳しくは書きませんが・・・。

サイドバーの全記事表示プラグインを上の方に移動、。覚え書きのつもりではじめたブログですが、カテゴリーやタグをええ加減にしていたため、どこに何を書いたかよくわからんのです。全記事表示にして探したほうがはやい^^;;
読み直してみると製作したのにぬけていることが多い、載せなきゃ。



ADS1110の変換モードについて

ADS1110の変換モードには単発変換モード(single conversion mode)と連続変換モード(continuous-conversion mode)があります。

単発変換モード
ST/DRDY bitを1にセットすると変換が開始され、終了するとADS1110がST/DRDY bitを0にします。
ST/DRDY bitが0になるまで待つか、変換に必要な時間だけ待ってからデータを読み出します。

連続変換モード
ST / DRDY bitが1の場合、出力レジスタ内のデータは既に読み出されており、新しくありません。
0の場合、出力レジスタ内のデータは新しく、まだ読み出されていません。
ST/DRDY bitが0になるまで待ってからデータを読み出します。

ST/DRDY bitが0になるまで待ってから読み出せばどちらのモードでも問題ないように思えますが、複数の入力をスイッチで切り替えてAD変換する場合、連続変換モードだとスイッチ切り替えのタイミングがAD変換のタイミングと非同期になるので、スイッチ切り替え直後の変換データがおかしなことになる場合があります。ADS1110はサンプル&ホールド回路を持っていません。
こういう場合は単発変換モードにしておきます。
これに気付かず嵌まってしまいました^^;;

int read_ADC(void )
{
    BYTE rxBuf[3];
    //int LoopCount;
   
    set_ADC(CONVERSION_START |G_ADC_setting);
   
    // AD変換に時間がかかる、その間I2Cバスを無駄にスイッチングさせないためのディレイ
    // ASC1110は16bitモードだと15spsだから変換に66mS程度かかる。
    delay_1mS_Times(80);
   
    //LoopCount=0;
    do {
        I2Cm_fReadBytes(ADS1110_ADR,rxBuf,3,I2Cm_CompleteXfer);
        //LoopCount++;
    }while ((rxBuf[2] & 0x80));
    //I2C_LCD_Positon(2,9);
    //I2C_LCD_PrIntWithAlign(LoopCount,6,1);

    return rxBuf[0]*256+rxBuf[1];
}


恥ずかしながらPSoCでの読み出しコードです。I2Cmユーザーモジュールを使ってます。
I2Cm_fReadBytes APIを使って、rxBuf[0]にAD変換値の上位バイト、rxBuf[1]に下位バイト、rxBuf[2]にconfiguration registerの値が入ります。
ST/DRDY bit(configuration registerのbit7)が0になるまでdo-whileループを回します。
set_ADC(CONVERSION_START |G_ADC_setting);によって変換を開始させてから80mSほどディレイを入れてあります。
I2Cバスを無駄にスイッチングさせないためです。I2Cバスは抵抗でプルアップしてあります、私の実験回路では4.7KΩ。バスがHレベルなら電流は流れませんが、Lレベルになると約1mAほど流れます。I2CバスのSCLおよびSDAがどれぐらいの頻度でスイッチングしているかはわかりませんが平均デューティー比がともに50%と仮定するとSCLで約0.5mA、SDAでも約0.5mA、計1mAが変換終了まで流れることなります。
今回の実験では問題になりませんが、電池動作の場合に少しでも消費電流を抑えたいならこういう方法も有効でしょう。
コメントアウトしてあるコードは、ディレイを入れないときdo-whileループが何回回るのか知るために入れてみたものです。大体170回でした。

ADS1110を使ったハイサイド電流モニターの実験(2)0.1mA刻みにする。

ハイサイド電流モニター3
ADS1110のPGAゲインは4倍のままで、ソフトで0.1mA刻みに対応してみました。
写真は5.1Ω10Wのセメント抵抗を負荷としたときです。5Vで5.1Ωですから、980mAになるはずですが、直列につないだデジタルテスターの内部抵抗、0.1Ωの電流検出抵抗、PhotoMOSリレーAQY272のオン抵抗、ワニ口クリップの接触抵抗などで低くなっています。
ちなみにこの時のPhotoMOSリレーの両端電圧は58mVでしたのでオン抵抗は0.066Ωと計算できます。
AQY272のデータシートによるとオン抵抗は0.11Ω(平均)となっています。
セメント抵抗は正の温度係数を持っているようで、0.1mAまで表示できるようにしたので加熱により時間とともに電流値が減少していくのがわかりました。触れないほど熱くなってました^^;;

ADS1110を使ったハイサイド電流モニターの実験(1)

先のローサイド電流センサーの実験ですが、一旦中止します。
PSoCのADCユーザーモジュールはやめて、手持ちのI2C接続16bitADコンバータADS1110を使い、ハイサイド電流モニターの実験をしました。

ADS1110は秋月電子で売っているMCP3425と同等品のようです。
2015/04/14訂正、同等ではありません。詳しくはこちら

MCP3425のデータシートにはハイサイド電流モニター回路が載ってます。
MCP3425 High Side Current Monitor

ADS1110で試したら動作したので、過電流保護回路を追加しました。
概略図です。
ハイサイド電流ーモニター概略図

心配だったのはVin+入力がVDDと同じということですが、ADC1110のデータシートによると
Analog Input Voltage は MIN : GND − 0.2 MAX : VDD + 0.2
とあります、VDD=5Vなら -0.2V~5.2VまでとなりますのでVin+=VDDでも問題ないようです。
ちなみにMCP3425では GND-0.3~VDD+0.3 となっています。

回路図です、過電流時の遮断には先の実験と同じくPhotoMOSリレーを使いました。
PSoCはCY8C24123Aを使いました。
Buildしたら

390 bytes unused code deleted
ROM 85% full. 3453 out of 4096 bytes used (does not include absolute areas).
RAM 6% full. 15 bytes used (does not include stack usage).

となりました。Code Compressionしてあります、しないとメモリーが足りませんから。

デジタルスイッチで設定電流を100mAステップで1000mAまで設定できるようにしました、負荷となる実験回路の保護が目的ですから、あまり細かく設定できなくてもいいだろうと判断しました。
ハイサイド電流ーモニター回路

実験中、LCD一行目左側は測定電流、右側はADコンバータのオフセット値です。
起動時にPhotoMOSリレーをオフにしてAD変換しオフセット値を測っておき、以後の測定値から引くようにしています。
LCD二行目左側は最大電流、右側は制限電流で測定電流がこの値を超えるとPhotoMOSリレーをオフにします。
ハイサイド電流モニター1

前の実験基板と比べてみました。シンプルになりました。
ADS1110の設定は16bit、PGAゲイン4倍です。
前の実験ではPSoCのADCユーザーモジュールの設定を13bitにしていましたが、AD変換値がバタつくので数回の平均をしていました。
今回のは平均を取らなくても安定しています。さすがに専用チップだけのことはあります。
ハイサイド電流モニター2
ADS1110のPGAゲインを8倍にすれば0.1mA刻みに出来るはずです。いずれ実験してみます。




 | HOME | 

文字サイズの変更

プロフィール

edy

最新記事一覧(サムネイル画像付き)

BME280モジュールを使った温度・湿度・気圧計(2)DSO Shellを使って動作電流を測る Apr 23, 2017
BME280モジュールを使った温度・湿度・気圧計 Apr 23, 2017
DSO Shell(2)電源 Apr 16, 2017
小学一年生5月号付録 ドラえもん こえピアノ Apr 14, 2017
DSO Shell(1) Apr 13, 2017
非接触温度センサMLX90614を試す(6)プラケースに入れる Apr 03, 2017
アナログフィルタ Mar 28, 2017
非接触温度センサMLX90614を試す(5)Arduino pro miniを使ってみる Mar 19, 2017
非接触温度センサMLX90614を試す(4)耳内温を測ってみる。 Mar 12, 2017
非接触温度センサMLX90614を試す(3) Mar 11, 2017

全記事表示リンク

全ての記事を表示する

ブログリンク

リンク

このブログをリンクに追加する

月別アーカイブ

04  03  02  01  12  11  10  09  08  07  06  05  04  03  02  01  12  11  10  09  08  07  06  05  04  03  02  01  12  11  10  09  08  07  06  05  04  03  02  12  11  10  09  07  05  04  03  04  03  01  12  11  10  08  07  06  05  03  02  01  12  11  10  09  08  07  06  05  04  03  02  01  12  11  10  09  08  07  06  05  04  02  01  12  10  09  08  07  06  05  04  03  02  01  12  11  10  09  08  07  06  05  03  02  01  12  11  10  09  08  07  06  05  04  03  02  01  12  10  09  08  07  06  05  04  03  02  01 

カテゴリ

プログラミング (0)
freescale (1)
AVR (3)
テルミン (16)
緊急警報放送 (3)
78K (1)
PSoC (295)
地上デジタル放送 (2)
電子工作 (390)
HX711 (2)
ACS712 (6)
数学 (6)
パソコン (12)
PLC (14)
未分類 (39)
ブログ関係 (20)
スカイプ (37)
ロボット (1)
LTSpice (8)
OCXO (0)
arduino (28)
maxima (1)
フランクリン発振回路 (3)
GPS (3)
DTMF (1)
Linux (1)
KOMAINO (7)

タグリスト

最近のコメント

最近のトラックバック

メールフォーム

名前:
メール:
件名:
本文:

検索フォーム

アクセス

RSSリンクの表示

フリーエリア

FC2Ad

まとめ

Template by たけやん