google-site-verification: google3bd66dd162ef54c7.html
FC2ブログ

CMOS シリーズレギュレーターの特性測定(主に無負荷電流)

まえがき
CMOS シリーズレギュレーターの特性について以前の記事で触れましたが、デバイスの耐圧や許容電流で無負荷時の消費電流が変わるので要注意。つまり大は小を兼ねない場合がある、というのが重要な結論でした。

こういうことはデーターシートからほとんどのことが読み取れますが、細かいところで、実際の特性がどうなっているのかが判らないことがあります。例えば無負荷時の消費電流は max.10μA となっていても、実力的には半分以下であることが多いです。事情は判りますが、これは電池寿命を決定するための重要な値なのでちょっと困ります。

特性の実測
そのあたりを確認するには実測して確認するしか無いので、やってみました。
調べたCMOSレギュレーター
測定したのは全部 3.3V 出力の物で、XC6202P332TB、S812C33A、HT7333、 ME6202 の4種類です。測定は、入力/出力電圧特性と、入力電圧/入力電流特性で、後者の測定は無負荷状態と負荷に 330kΩを接続した状態で行いました。電源電圧 3.3V に 330kΩを接続すると消費電流は 10μAとなりますが、これは電池でバックアップしているような状態を想定したものです。

配線はマスキングテープで固定
マイクロアンペアオーダーの測定なので周囲の影響を受け易いため、配線が動かないようにテープで固定しました。また、この MDF の板の下にはアースに接続したアルミ箔を入れています(いつものままです)。負荷抵抗 (330kΩ) の切り替えをスイッチで行っているのは、配線の状態が出来るだけ変わらないようにするためです。なお、タクトスイッチを 10μA で使うのはちょっと問題がありますが、電流を実測して確認しているのでまあいいかと。

【追記】
あれこれもっともらしいことを書いていますが、大きな見逃しがありました。詳しくはこの記事の末尾をご覧ください。

XC6202 (XC6202P332TB)、20V/150mA、TO-92 (クリックで別窓の少し大きな図を表示、以下同様)
XC6202VV XC62602VI
[メーカー:トレックス、100円/2個@秋月] 現在在庫無し?
左が入力電圧に対する出力電圧特性、右が入力電圧に対する入力電流特性で、黒い線が無負荷、赤い線が 330kΩ負荷(負荷電流 10μA)の状態です。(以下同様)

電圧特性は CMOSのシリーズレギュレーター(更に無負荷状態)なのでドロップアウトもほとんどなく、綺麗な定電圧特性になっています。右側の電流特性では、設定電圧 (3.3V) 以下になると消費電流が急増しているのがちょっといやな感じです。あと、電源電圧が高くなると、無負荷電流が僅かに上昇しています。
なお、負荷に 330kΩを接続した場合はきっちり 10μAだけ電流が増えていて、変なおまけなどは付いていないようです。

S812C33A 16V/50mA TO-92
S812C33VV S812C33VI
[メーカー:エイブリック(旧SII)、100円/8個、@秋月 I-03289 ]
耐圧16Vなのでもっと高い電圧まで測定すべきでしたが、忘れていました。

右側の電流特性を見ると制御モードの切り替え付近 (3.3V) で少し電流の変化がありますが、その量は僅かです。また、電圧が上がっても消費電流の増加が全く無いのは素晴らしいです。消費電流は今回測定した物の中で一番小さくて 1.4μA(@5V) と優秀な値で、流石はSII です。
【追記】
1.4μAには測定器に流れていた電流の0.34μAが含まれていたので、正しくは1.06μAです。詳しくは記事末尾の追記をご覧ください。

ME6206 6.5V/300mA SOT-23
ME6206VV ME6206VI
[メーカー:MicroOne、100円/2個 @aitendo]
ME6206
これは SOT-23 パッケージなので、写真のようにピンヘッダにはんだ付けして測定しました。なお 662K というマーキングが付いていますが、XC6206 も同じマーキングなので要注意です。

特性としては耐圧 6.5V にもかかわらず消費電流が多くて、5Vの時の無負荷電流が 7μA です。TO-23 なので使い難く、特性もいまいちなので、あまり積極的に使う気はしません。

HT7333 12V/250mA TO-92
HT7333VV HT7333VI
[メーカー:HOLTEK、90円/3個 @aitendo]
無負荷時の消費電流は 4μA (@5V) で今回測定した物の中では二番目に小さな値です。XC6202 より耐圧が低いので消費電流的には有利なのかも知れません。また XC6202 のように設定電圧以下で消費電流が急増する現象が無いので安心です。

まとめ
自己消費電流は S812C33A が一番小さいので、消費電流を小さくしたい場合はお勧めです。それに値段も安いです。但し電流容量が 50mA と小さいく、また負荷電流が増えるとドロップアウトも急増するので要注意です。あと過電流保護回路が入っていないので、ブレッドボードでごちゃごちゃやる時に使うと、飛ばしてしまうかも知れません (S812C33E なら過電流保護付きだが秋月には無い)。そんなことでクセはありますが、常備薬みたいに持っていると良いと思います。

XC6202 は電源電圧が下がった場合の自己消費電流が急増する現象があります。実は私、この現象は CMOS レギュレーター共通の問題かと思っていたのですが、どうもこの部品 (データーシートを見るとXC6206も) 特有の現象だったようです。

0.96インチ OLED に使われている 662K というマーキングの 3端子レギュレーターは、XC6206 (トレックス) のようなので、今回これも調べてみたかったのですが、残念ながら手に入りませんでした。aliexpress で662K をキーワードに探すといっぱいヒットするので買ってみても良いのですが、偽物あるいはME6206が来る可能性もあるので、そこまでしなくてもいいかな、という気がしています。

n = 1 の測定でごちゃごちゃ書くなとお叱りが来そうですが、測らないよりずっとまし、と言うことでご容赦を。

【追記】
2番目の写真を見ていて、えらい見逃しというか測定誤差があることに気付きました。測定中は出力電圧をテスターで測定すると同時に、発振などしてないか確認するためにオシロを接続していました。問題はこれらの測定器の入力抵抗です。調べて(実測して)みると、

テスターの入力抵抗は 9.5MΩ だったので、その抵抗値に相当する負荷が接続されていたことになります。つまり、無負荷と思っていたのに実際には 3.3V/9.5MΩ = 0.34μAの電流が流れていたことになります。S812C33Aは無負荷消費電流が小さいので、相対的に大きな測定誤差が発生していました。

オシロは 10:1 プローブを使ったので入力抵抗は10MΩです。ただ幸いなことに、リップルを観察するためにACカップルで使っていたので直流的には∞Ωでした。ということで、幸いこちらの影響はありませんでした。でも、もしDCカップルで使っていたら上と同じ量の誤差が追加されたはずです。

テスターの入力抵抗なんて普段は無限大と思って気にしないで使っています。でも、マイクロアンペアオーダーの測定では無視出来ない誤差になることがあるので注意が必要です。

Arduino の RAM の内容をダンプして、あれこれ考えてみた

まえがき
前回の記事では arduino のメモリーの用途別アドレス、つまり、groval, haeap, free, stack の各領域のアドレスを調べるプログラムを作りました。これを使うとメモリーの使い分けが正確に判って面白いのですが、今回はこれを更に発展させてRAMの内容をダンプするプログラムを追加しました

プログラム
プログラムは関数の形で作りましたが、単独では動かないので使用例の形で公開します。内容としては、0.96インチOLED(SSD-1306)に適当なパターンを描くプログラムになっています。このプログラムは OLED の画像バッファとしてヒープ領域を大量に使うので、事例として面白いと思います。

プログラムはこちら→20190519CoreDump.txt (Shift-JISエンコードになっています)

setup の中の下記の関数呼び出しでメモリーの中身を調べてダンプしています。
  checkMem();    // メモリーの使用状況をチェック
  printMem();    // チェック結果をシリアルに表示
  coreDump();   // コアダンプ(RAM領域の内容を表示)

実行結果
ダミー表示
こんな画像を表示した後で、シリアルにRAM の状態をダンプするようになっています。なお、10グリッドピッチの線を書いているのは、ビット位置がデーターの中で変化するようにしたかったためです。

じっくり眺めるために、紙に印刷してみました。
ダンプリスト
面白いのでもう少し詳しく中身を見てみます。

最初に領域別のアドレスのリスト (RAM allovation table) が出てきますが、これは前回の記事と同じです。

その後が RAM 領域のダンプで、先頭の 0x0000 から 0x00FF までの256バイトは CPU 内部のレジスタで、RAM 領域ではないのですが、同じアドレス空間にあるので一緒にダンプしています。なお、CPU は ATmega328P なので RAM は 2k バイトあり、そのアドレスの範囲は 0x0100 から 0x08FF です。

以下、面白そうなところを見て行きます。

RAMダンプ (先頭)
ダンプ-1b

RAM allocation tabel の値(アドレス)が RAM の中に埋まっている様子がこのリストから見て取れます。プログラムでは RAM の内容を調べて領域別のアドレスを洗い出しているので、当然と言えば当然の結果です。なお、avr はバイトオーダーをリトルエンディアンで扱うので、RAM のダンプの中に出て来る値は下位、上位の順になっています。

アドレスの 0x005D は CPU のスタックポインタのレジスタですが、その値は 0x01EE 番地にコピーされていました。またその前には、ヒープの開始や終了アドレスが入ってる感じです。なお、プログラムの構造によってこの場所(アドレス)は変化しているようです。

プログラムカウンタ (PC) の値がこのダンプの範囲に入っていると面白いのですが、残念ながら発見出来ませんでした。PC (プログラムカウンタ) はソフトにとっては神の領域なので見えなくても当然、というか見ても意味が無いのかも知れません。

話を戻しますが、RAM 領域の先頭 (つまりグローバル変数領域の先頭) から 2バイト目にはヒープ領域の開始アドレスが入っているようで、この位置はプログラムの内容によって変化しない、つまり固定されている感じでした。

RAMダンプ (中間)
ダンプ-2
グローバル変数領域とヒープ領域の様子です。中身の推定データーを赤字で記入しておきました。(かなり怪しいところもあります)

ヒープ領域の大半は OLED の画像メモリーとして使われていました。OLED 画面の左上がアドレスの若い方に相当し、1 バイト 8 ビットのデーターの MSB が画面の上側にマップされているようです。

RAMダンプ (末尾)
RAMダンプ-3
ヒープの終わりからRAMの終わりにあるスタック領域まで見た様子です。

スタックは RAM の末尾の 2 バイトだけが使われていて、その値は 0x05E8 となっています。これは恐らくこの関数 (setup) 終了時の戻りアドレスだと思います。なお、スタックにはアドレス逆順でデーターが積まれていくので、リトルエンディアンなのにビッグエンディアンで記録されたように見えるのが面白いです。

フリー領域には電源を入れた時のノイズのようなデーターが記録されていますが、およそ 0x08A8 以降では値の雰囲気が変わっていてゼロが多くなっています。想像ですが、リセットがかかってシステムの立ち上げ処理が行われていく過程で、このあたりまでスタックとして使われていた痕跡が残っているのではないかと思います。

まとめ
面白いのでいろいろとやってみたのですが、CPU やコンパイラがやっていることの一部を垣間見たようで、なかなか興味深かいです。コンピューターの仕組みを勉強したい人には格好の教材になると思います。

以前の記事に書きましたが、arduino のIDE のメッセージで空きメモリーに関する情報は極めて少ないので、何か問題が発生した時にその原因の切り分けに苦労します。そんな時にこういうツールを使うと原因究明が楽になるかも知れません。

ところで、この OLE Dのライブラリ (adafruits_GFX) は画像メモリーをヒープ領域に確保していることが良く判りました。ここで疑問は何でヒープ領域を使うんだろう?という点です。グローバル変数領域を使っても良さそうな気がしますが、何故かヒープ領域が使われています。

想像ですが、メモリーを開放して別のことに使えるように配慮しているのかも知れません。そうは言っても、OLED の使用を停止する display.end(hoge,, ) なんて関数は用意されていないようなので自信はありません。あと、adafruit が用意するライブラリは多くのCPUやフルカラーの大きなグラフィックデバイスにも対応しているので、そのあたりとの整合性を取るとこういう仕様になるのかも知れません。うん、たぶんそうなん、、かな、、
カレンダー
04 | 2019/05 | 06
- - - 1 2 3 4
5 6 7 8 9 10 11
12 13 14 15 16 17 18
19 20 21 22 23 24 25
26 27 28 29 30 31 -
プロフィール

ラジオペンチ

Author:ラジオペンチ
電子工作を中心としたブログです。たまに近所(東京都稲城市)の話題など。60過ぎて視力や器用さの衰えを感じつつ日々挑戦!
コメントを入れる時にメールアドレスの記入は不要です。なお、非公開コメントは受け付けていません。

記事が気に入ったらクリックを!
最新記事
カテゴリ
最新コメント
リンク
FC2カウンター
検索フォーム
月別アーカイブ
RSSリンクの表示
QRコード
QRコード