バックアップ付マイコン用電源回路を考える



- マイコンからON/OFFできるもの。
- 3.3V 駆動
- マイコンから電源スリープ・復帰ができるもの

# 電源モジュール



![IMG_20240510_122931.jpg](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/139524/16d4eacf-68fa-0cf5-6b1a-03dac1ba0d2e.jpeg)

TPS63020 モジュール。

- DC-DC Up/Down
- 降圧3A昇圧2A出力
- 2.2V入力3.3V出力時でも1.5A出力できる
- パワーセーブモードにすると無負荷時消費電流が50μA程度
- ソフトスタート機能やPowerGood端子がある
- Undervoltage Lockout が 1.8V なので、リチウム系二次電池などは別途過放電防止が必要

ESP32 を乾電池駆動するのに最適?



## モーメンタリスイッチを使用して、物理操作でON後、ソフトウェアでOFFするまでONしっぱなし

### 動作遷移
- 電源供給開始時 OFF
- スイッチプッシュでON
- ON後、スイッチプッシュでマイコン通知
- マイコンからOFF

### 回路図

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/139524/3be0dc8e-0d1e-b12c-ecd0-0f9edbd75f90.png)

|||
|:---:|:---:|
|  VIN|  乾電池などから供給 |
| VBACKUP| 常時3.3V出力|
| 3.3V| 出力 |
| OFF SW DETECT| スイッチが押されたことをマイコンに通知|
| _POWERDOWN| Lo信号を入力することでOFF|



図では、_POWERDOWN は電源OFFする用途。
しかしながら逆に OFF 状態から High を入力すると WakeUp もできる。


## オルタネイトスイッチを使用して、物理スイッチ優先でON-ソフトウェアでOFF


### 動作遷移

- 電源供給開始時 スイッチ状態に依存
- スイッチプッシュでON
- ON後、スイッチ開放でマイコン通知
- マイコンからOFF

### 回路図

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/139524/b16fb7e8-afde-bda0-9a43-eda37d5db87a.png)

|||
|:---:|:---:|
|  VIN|  乾電池などから供給 |
| VBACKUP| 常時3.3V出力|
| 3.3V| 出力 |
| OFF SW DETECT| スイッチがOFF側になったことをマイコンに通知|
| _POWERDOWN| Lo信号を入力することでOFF|

モーメンタリスイッチも、こちらの回路図でいいかも知れない。

## オルタネイトスイッチを使用して、物理スイッチでON/OFF -ソフトウェアでON可能

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/139524/29771ffc-d199-7188-25f2-0906617525ea.png)

## オルタネイトスイッチを使用して、物理スイッチでON/OFF -ソフトウェアでOFF可能

フリップフロップを使ってみます。
74AUC1G74 は、消費電流が 10μA でバックアップ回路に使うのもなんとかなりそうです。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/139524/abea7ba2-b2f9-acb8-ce79-24701386e256.png)


使っているのはD型フリップフロップです。

:::note warn
POWERCTL を、VCCで動くマイコンではなく 3.3Vで動くESP32だとうまくいきませんでした。これについては後述します。

:::

データシートに掲載されている動作表です。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/139524/434ef312-4e4e-2e67-4c06-085b9a7bb871.png)

$Q$と$\overline Q$ は お互い信号が反転していて、今回は $\overline Q$ を使います。
$\overline Q$ が Lo になると、FET出力の 3.3V が ONになります。
初期状態では POWERDOWN はハイインピーダンスとします。

## スイッチがOFFになっているとき

SW2 が開いていると $ \overline{CLR} $ が Lo なため $ \overline{Q} $ が High になり、FET出力はOFFになります。

## スイッチをON にする

SW2 を閉じると $ \overline{CLR} $ が Hi になり、C3とR3で遅延して$C$がHighになるので $\overline{Q}$ はLoになり、FET出力はONになります。

## POWERDOWN信号でOFFにする

$\overline Q$ は $D$につながっていて、スイッチON状態だと$ \overline {PRE} $ と $ \overline{CLR}$は常に High のため、

$C$ (${CLK}$ の立ち上がりタイミング出力が反転します。POWERDOWN は 短い Loパルスを送り、パルス後端の立ち上がりタイミングで電源が落ちます。

:::note warn
記事の初出時にはこのようにしていました。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/139524/90b6bf78-2212-06b5-e20e-d53f57edd8a4.png)
POWERDOWN 信号(水色)を入力後、立ち上がりエッジで$\overline Q$ がHIGHになるはずですが、ばたついて反転が多数回行われます。 なお、黄色はVCCです。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/139524/236fae1d-4674-7f43-a377-29aa6b0ed9ae.png)
これを防ぐためにシュミットトリガNANDを入れるように改善しました。


:::


## オルタネイトスイッチを使用して、物理スイッチでON/OFF -ソフトウェアでOFF可能 ESP32版

ESP32 の電源OFF時には、GPIO はハイインピーダンスにならないようです。

今回POWERDOWNに ESP32 の GPIO25 をつなぎました。 ESP32 のGPIO はリセット時にプルアップ・プルダウンのかかるものがありますが、GPIO25は それらはかからず INPUT モードになる端子です。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/139524/5da96c9f-71e3-b263-6890-4401b28637a6.png)

ESP32 Series Datasheet v4.5 Page63
https://www.espressif.com/sites/default/files/documentation/esp32_datasheet_en.pdf

- oe: output enable 
- ie: input enable  
- wpu: weak pull up  
- wpd: weak pull down

例えば 68Ωで3.3Vにプルアップして電源ONしてINPUTモードにすると端子電圧は 3.3V。OUTPUTでLO出力すると1.3Vとなります。

それが電源OFF すると 2.4Vになってしまいます。150Ωぐらいの内部抵抗でGNDに接続していることになりますね。厄介なのはこの状態が確実に再現するわけではないらしいこと。

電源OFFと起動直後に誤作動しないようにするには外部でプルダウンかけておいて、外部に信号を送るパルスは High で送るようにしないといけなくなりそうです。

実際に作成した回路はこれ。Cに送るのは立ち上がりエッジなので、電源OFF時のプルダウンは省略でOKぽいです。


![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/139524/29424fa8-41f9-c847-17f0-20aebbfcc168.png)



## MOSFET 

JLCPCB で PCBA 製造するときは、Q3 は HSBB6056 や IRF7317TRPBF を使用しました。
![IMG_20240510_121153.jpg](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/139524/b68a0be1-7354-0830-152d-7fb9a6c02963.jpeg)