ステップアップ・コンバータ
- 2005-10-02 初版
- 2008-11-21 第2版
はじめに
一般的なステップアップ・コンバータ(ブースト・コンバータとも呼ぶ)を PIC で制作してみました。
直流電圧を昇圧するものです。
専用のICも用意されていますが、原理を理解するために、さらに改良を加えられるように PIC を使いました。
12F683 にはステップアップ・コンバータに必要なA/DコンバータとPWM(Pulse Width Modulation、パルス幅変調)を搭載しています。
原理
ステップアップ・コンバータの原理はインダクタ(コイル)に蓄えた電力を上手く引き出して利用します。
コイルは電流のON/OFFに対して不思議な性質を持っています。
状態を常に維持しようという性質があり、定常電流が流れている場合に急に OFF すると流れ続けようとします。
逆に電流が流れていない場合に急に ON すると電流を流さないように働きます。
そのためコイルに流れる電流の ON/OFF を繰り返すと、切り替えの瞬間に電圧が変化します(電流を維持しようとするため)。
これを巧妙に利用したものがステップアップ・コンバータです。
ON/OFFの制御にPWMを用い、出力電圧検出にA/D変換を用います。出力電圧に応じてPWM(パルス幅)を制御します。
このフィードバック制御により、出力電流が変化しても出力電圧を一定に保ちます。
ステップアップ・コンバータは比較的電力の変換効率が高く、いろいろと利用されます。
昇圧DCDCコンバータにはこのほか、コンデンサを利用したチャージポンプ方式があります。
最近では乾電池で白色LEDを駆動するためにも用いられます。
ここでは、5V から 12Vへ変換するステップアップ・コンバータを例にします。
手元にある部品のみを使用しました。
仕様
改良前
入力電圧 | 5V |
出力電圧 | 12V |
出力電圧リップル | 0.1Vpp |
最大出力電流 | 10mA |
変換効率 | 約70% |
PWM周波数 | 100KHz |
改良後
入力電圧 | 5V |
出力電圧 | 12V |
出力電圧リップル | 0.5Vpp |
最大出力電流 | 100mA |
変換効率 | 約80% |
PWM周波数 | 100KHz |
回路図
- 入力電圧5VをそのままA/D変換の基準電圧として利用します。
- 基準電圧の半分を基準にPWMを制御します。出力電圧が高すぎれば低くなるように、出力電圧が低ければ高くなるようにします。
- R2 と R3 によって出力電圧がきまります。5V / 2 = Vout x R3 / (R2 + R3)
- 小型化させるためにマイクロインダクタを使用しました。
- インダクタの容量はカットアンドトライで選択しました。
- 出力電流10mA以上取り出さないでください。異常発振を起こすことがあり、出力電圧が追いつかないばかりでなく、過大な入力電流が発生します。
改良のためのヒント
- 出力電圧を変更する場合は R2 と R3 の比を変更します。同時にC2の耐圧に気をつけます。
- 出力電圧は25Vくらいまで実用になります。ただし取り出せる電流は少なくなります。
- リップルを減らすためにはC2の容量を大きくします。
- 入力電圧を基準としているため、入力電圧の変動が出力にも現れます。
- 電流をもっと取り出すためには、内部抵抗の低いインダクタ(トロイダルコア)とON抵抗の低いトランジスタ(MOSFETなど)を利用します。変換効率も改善されるでしょう。
- 12F683は内部発振8MHzで動作しており、電源電圧範囲は3Vから5.5Vです。
- PWM周波数は200KHzくらいまで上げることができますが、DUTY解像度が低くなります。内部発振8MHzではこれが限界です。変換効率はほとんど変わりません。PICであれば高調波を避けるためにPWM周波数を簡単に変更できます。
改良版
- 出力電流の増加と効率の向上を目指して改良してみました。
- 2SC1815から内部抵抗の低いFET 2SK1772に変更しました。
- これに伴いFETの駆動抵抗を1Kから100に変更しました。
- PWM周波数で最適になるようにインダクタL1を470uHから47uHに変更しました。
- フィードバック電圧が安定するようにC3 1000pを追加しました。
- 整流ダイオードをショットキー 1S4 に変更しました。
改良にあたっては、PSpice を使ってシュミレーションを行いました。
駆動電圧のリンギング対策やインダクタの最大電流確認など重宝しました。
一般的にパワーMOSFETは入力容量Cissが大きいのですが、2SK1772 は小さいため、PICで直接駆動しています。
通常は入力容量のためにスイッチングが遅延し、期待したPWM制御にならないことがあります。
このため溜まった電荷を吸い出す駆動回路を追加する必要があります。
部品表
改良前
値 | 数 | 備考 |
1K | 1 | R1 カーボン皮膜抵抗1/6W |
91K | 1 | R2 カーボン皮膜抵抗1/6W |
24K | 1 | R3 カーボン皮膜抵抗1/6W |
22uF | 1 | C1 縦型電解コンデンサ(耐圧16V) |
100uF | 1 | C2 縦型電解コンデンサ(耐圧25V) |
1N4007 | 1 | D1 ショットキーが望ましい |
12F683 | 1 | U1 PIC |
2SC1815Y | 1 | Q1 NPNトランジスタ |
470uH | 1 | L1 マイクロインダクタ |
改良後
値 | 数 | 備考 |
100 | 1 | R1 カーボン皮膜抵抗1/6W |
9.1K | 1 | R2 カーボン皮膜抵抗1/6W |
2.4K | 1 | R3 カーボン皮膜抵抗1/6W |
22uF | 1 | C1 縦型電解コンデンサ(耐圧16V) |
100uF | 1 | C2 縦型電解コンデンサ(耐圧25V) |
1S4 | 1 | D1 ショットキー・バリア・ダイオード(SBD) |
12F683 | 1 | U1 PIC |
2SK1772 | 1 | Q1 MOSFET |
47uH | 1 | L1 マイクロインダクタ |
1000pF | 1 | C3 セラミックコンデンサ |
基板例
ファームウェア
DCDC2.zip
プログラムの説明
- 単純な制御しかおこなっていません。
- A/D変換し、PWM制御を繰り返すだけです。
- 出力電圧が高すぎれば、下げるようにPWM制御します。
- 出力電圧が低すぎれば、上げるようにPWM制御します。
- 出力電圧がちょうどであれば、PWM制御しません。
- BOD を無効にしています。実測でPICの電源電圧は2Vから動作するようです。
- 過電流にならないようにソフトスタート機能を追加しています。
評価
設計した回路を実際に組み、実測してみました。
負荷抵抗[Ω] | 入力電圧[V] | 入力電流[mA] | 出力電圧[V] | 出力電流[mA] | 変換効率[%] |
無負荷 | 4.9 | 1.7 | 11.85 | 0 | 0 |
10K | 4.9 | 5.2 | 11.84 | 1.184 | 55.0 |
3.3K | 4.9 | 12.1 | 11.74 | 3.558 | 70.4 |
2K | 4.9 | 19.3 | 11.72 | 5.86 | 72.6 |
1K | 4.9 | 37.1 | 11.53 | 11.53 | 73.1 |
510 | 4.9 | 79.8 | 11.40 | 22.35 | 67.7 |
入力電圧が5Vではなく4.9Vとなっているのは、たまたま使用した5V三端子レギュレータの電圧が4.9Vであったためです。
- 試行錯誤で行った割には変換効率70%になりました。
- リップルはオシロで確認したところ 0.1Vpp 程度です。これは出力電圧12Vに対して0.8%程度です。
- C2を470uFにするとリップルは50mVpp程度になります。あまりC2を大きくしすぎると、出力電圧の立ち上がりが遅くなります。
改良後の特性(Vin=5V)
- 出力電流を100mAまで取り出すことができるようになりました。
- 出力電圧がさらに安定しました。
- リップルはオシロで確認したところ 10mA 時に0.1Vpp 程度、100mA 時に0.5Vpp 程度です。フィルタをかませるかC2を大きくすると改善されます。
- 効率も10%程度改善し、80%を超えました。ダイオードを使ったこの方式ではそろそろ限界です。
ここまでくるとダイオードの損失も影響してきます。
さらにダイオードの代わりにMOSFETを使った、同期整流型にすれば 90% を超えるようになるでしょう。
副作用
- この改良により、思わぬ副作用が現れました。
- 電源のOFF/ON間隔が短い(概ね数秒)と正常に動作しないことがあります。時間をおけば正常に動作します。
- 原因はコンデンサに蓄えられた電気が回り込み、PICがリセットしないためです。
- 対策として R2=9.1K, R3=2.4K に変更しました。これによりコンデンサの電気が逃げやすくなります。
備考
12F683に限った話ではありませんが、PICの PWM 制御で DUTY の説明が不十分です。
Dutyを決める CCPR1L:CCP1CON<5:4> の値は「Lowパルスの期間」を決定します。
図ではあたかも「Highパルスの期間」のように見受けられ、誤解を招きます。
ご注意ください。
追記)予想通り12F683のエラッタ(DS80196F)に、データシート(DS41211D)の修正が追記されました。
PWMの動作を決めるCPP1CONレジスタのCCP1Mビットに実はactive-highとactive-lowの設定が隠されていました。
- CCP1M=110x PWM mode active-high(normal mode)
- CCP1M=111x PWM mode active-low(inverted mode)
(C)2005-2008 All rights reserved by Einstein.