AUTOJ
1
助けてください
——スイッチング電源の並列給電
概要
立創オープンソースプラットフォームでzerunsさんが公開しているプロジェクト「DCDCスイッチング電源の並列均流出力8V(2011年電子競技問題) - 立創オープンソースハードウェアプラットフォーム」(https://oshwhub.com/zeruns/2011-dian-sai-dian-yuan-ti-dcdc-shu-chu-8v) を再現しました。
私は主制御チップをSTM32F103CBT6に変更し、元のプロジェクトで使用されていた国産AIR32F103CCT6から置き換えました。コードについてはU8g2フォントライブラリを削除した以外は変更していません。
測定方法とデータ
左下の入力端子に24Vを供給し、右下の出力端子には直列にマルチメータと負荷を接続し、もう一台のマルチメータで出力を測定しています。
出力直流電圧は8V、電流2は0.2Aです。
シャント抵抗両端の電圧は0.2mV。INA199A1の理論利得は50倍ですが、実際の測定では2〜200倍の間でランダムに変化しています。
疑問点
- INA199A1のフィードバック係数が正しくない。半田不良や品番相違の可能性はすでに排除済み(予備のチップが手元にないため、数日後に新しいものを2つ交換して再テストする予定)。
- OLEDに表示されるデータが不正確。電流2はまだまともだが、電流1は全くおかしい。また、「OFF」状態でも約1Aの総電流が表示され、電圧は0Vである。これは理解できない。シャント抵抗にはケルビン接続(4端子法)を使用しておらず、この誤差が原因かどうか分からない。
- この設計案の実現可能性について知りたい。設計を変更する必要があるのかどうか。もし可能であれば、どのように調整すれば良いのか教えてほしい。
zeruns
2
このプロジェクトはもう随分前のことなので、すでに忘れてしまっていて、あまり完成度も高くありません。参考程度にして、自分で最適化や修正を行うことをお勧めします。
zeruns
4
私はこの方法で学校のコンテストを通過したんだから、使えるに決まってるだろう
ABC
6
お兄さん、こんにちは。電子設計競技の古典的な電源問題でこんな「謎現象」に遭遇するのはまったく珍しいことではありません。この問題は当時、多くの人を苦しめた「大きな落とし穴」でした。スイッチング電源のアナログ部分、特に並列均流制御を扱う際には、回路図そのものよりも、基板のレイアウトや配線、ノイズ干渉の影響の方がはるかに致命的になることがあります。
提示された回路図、発生している現象、およびメインコントローラの交換状況を踏まえて、一つずつ丁寧に分析し、あなたの理解を整理するお手伝いをさせていただきます。
1. INA199A1 の増幅率が「ランダムに変化」する理由と0.2mVに関する疑問
あなたが述べた内容:電流0.2A、シャント抵抗両端の電圧が0.2mV、増幅率が不安定に変動する。
ここには明らかにオームの法則との矛盾があります:
回路図上のR3、R12のシャント抵抗は20mΩ(0.02Ω)です。もし実際の電流が0.2Aであれば、抵抗両端の電圧降下は
0.2A × 0.02Ω = 0.004V(つまり4mV)
となるはずです。
しかし万用表では0.2mVしか測定できていないということは、以下の可能性が考えられます:
-
万用表が高周波スイッチングノイズの影響を受けている
XL4015のスイッチング周波数は約180kHzであり、出力リップル(リプル)が非常に大きいです。INA199の入力端子(R1/R2/C1)にあるローパスフィルタのカットオフ周波数が高すぎ(計算するとメガヘルツ帯)、180kHzのスイッチングノイズをろ過できません。このような高周波リップルが乗った微小直流電圧を万用表で測定しても、その値は信頼できません。
-
電流が完全にシャント抵抗を通っていない
銅箔の広がり方や配線パターンによって、電流がバイパスしていないか確認してください。
なぜ増幅率が不安定に変動するのか?
これはほぼ間違いなくスイッチングノイズのカップリング+接地不良によるものです。万用表で観測される「出力電圧」は、巨大なスイッチングノイズが重畳された信号です。不正確な出力値を不正確な入力値で割れば、算出されるゲインが2~200の間でバラつくのも当然です。
提案:oscope(オシロスコープ)を借りて、INA199の出力ピンの波形を確認してみてください。おそらく、滑らかな直流ではなく、ノイズだらけの波形が見えるはずです。
2. OLED表示値が異常、OFF状態でも1Aの電流が表示される理由
-
ケルビン接続(4端子測定法)未使用の致命的欠陥
あなたのシャント抵抗は20mΩです。PCBの1オンス銅箔では、数ミリメートルの配線抵抗だけでも数mΩあるかもしれません!ケルビン接続(シャント抵抗のパッド内側から大電流を流さない細線を2本独立に引き、INA199へ接続する方法)を使用しなければ、はんだ付け部や配線の電圧降下も一緒に増幅されてしまい、「電流が1Aなんてあり得ない」という現象が起こります。
-
OFF状態で1Aの「ゴースト電流」が表示される理由
- オペアンプのゼロ点オフセット
INA199のREF端子はGNDに接続されています。単電源駆動の場合、オペアンプの出力は理論上0Vまで下げられず(通常数十mV程度の下限がある)、例えば出力が50mVに張り付いている場合、ADCがこれを読み取り、50倍のゲインで割ってさらに20mΩで割ると、システムは50mAの底電流があると誤認します。
- グランド・バウンス(地電位跳動)
あるチャンネルの出力をOFFにしたとき(または無負荷時)、AGND(アナログGND)とPGND(パワーGND)の間に電位差が生じ、それがINA199の入力として検出されます。たとえ数mVの差であっても、増幅されると大きな誤差になります。
- STM32とAir32のADC差異
MCUを交換したとのことですが、両者のADC内部リファレンス電圧の精度、入力インピーダンス、デフォルト設定にわずかな違いがある可能性があります。元の作者のコードには、特定のボードのノイズ特性に合わせた「ソフトウェアゼロクリア」や補正係数が含まれていたかもしれません。MCUを変更することで、ADCのベースラインノイズが変わり、そのまま1Aという誤った値に変換されている可能性があります。
3. この設計は本当に成立するのか?どう調整すべきか?
結論:この方式は絶対に成立します。かつての電子設計競技でも使われたクラシックな解法です(定電圧源を主、定電流源を従、誤差増幅器で制御)。ただし、PCBのレイアウト(Layout)に極めて依存します。
すでに基板が完成しているとのことなので、以下のような「変数制御法」に基づいたハードウェアデバッグ手順を提案します。焦ってコードを書き換える前に、まずアナログ回路系が正常であることを確認しましょう。
-
静的注入テスト(スイッチングノイズの影響を除外)
基板の電源を切断します。外部の安定化電源を使い、定電流モード(例:固定1A出力)に設定し、この1Aを直接シャント抵抗R3に注入します。
その後、INA199とMCUに別途3.3V/5Vを供給します。INA199の出力ピンの電圧を万用表で測定します。このとき出力が 1A \\times 0.02\\Omega \\times 50 = 1V という安定した値を示せば、INA199は壊れておらず、型番も正しく、直流条件下では完璧に動作していることになります。この時点で問題は100%スイッチング電源のリップルとレイアウトにあると断定できます。
-
飛線で「疑似ケルビン接続」を構築
PCB上にケルビン接続が設計されていないなら、物理的に改造しましょう。INA199のIN+およびIN-端子につながる大電流用の銅箔をカッターで切断し、極細のエナメル線を使って、20mΩシャント抵抗の金属本体の根元部分に直接半田付けします。これにより、電流測定値が過大になる問題を大幅に改善できます。
-
ソフトウェアによるノイズ除去とキャリブレーション(STM32向け)
- コード内でADCのサンプリング周期を長く設定します。
- 起動時のキャリブレーションを実装:負荷が接続されていない状態(OFF状態)で、ADC値を読み取り、これを
Offset(ゼロ点オフセット)として保存します。以降の電流計算式を Actual_Current = (ADC_Read - Offset) × 係数 に変更します。これにより、「OFF時にも1A流れている」というゴースト電流を完全に排除できます。
-
グランド(GND)配線の確認
回路図にはAGNDとGNDが分かれていますね。これらはどこで接続されていますか?適当に接続されていると、大電流の帰還電流がアナログ地に干渉します。正しい方法は一点接地(XL4015の入力コンデンサのマイナス端子付近で一点のみ接続)です。
次のステップの提案:
オシロスコープをお持ちでない場合は、ぜひまず上記のステップ1とステップ3(特に起動時にノイズ底を除去するキャリブレーション処理)を試してみてください。まずはステップ1の「静的注入法」でINA199の直流ゲインが正しいかどうかを確認し、テストが終わったら、次のトラブルシューティングに進みましょう。
AUTOJ
7
お兄さん、ありがとう。週末は実験室が開いていないので、来週月曜日にあなたのアドバイスに従って調べてみます。