TPL5110 を使用して、LiPo バッテリーから Raspberry Pi Pico への電源供給を周期的に制御する回路。
ポーリング間隔 : 2分
待機時消費電流 : 約 35nA (TPL5110 のみ)
flowchart TB
subgraph Power["電源部"]
LIPO["LiPo Module<br/>4.5V OUT"]
end
subgraph TPL["TPL5110"]
VDD["VDD"]
EN["EN"]
GND_T["GND"]
DRV["DRV"]
DONE["DONE"]
DELAY["DELAY"]
end
subgraph Switch["P-ch MOSFET (SI2301)"]
S["Source"]
G["Gate"]
D["Drain"]
end
subgraph Load["Raspberry Pi Pico"]
VSYS["VSYS"]
GP15["GP15"]
GND_P["GND"]
end
R1["R1: 30kΩ<br/>(2分タイマー)"]
C1["C1: 100nF"]
C2["C2: 10μF"]
GND["GND"]
%% 電源接続
LIPO --> VDD
LIPO --> EN
LIPO --> S
LIPO --> C1
C1 --> GND
%% TPL5110 GND
GND_T --> GND
%% タイミング抵抗
DELAY --> R1
R1 --> GND
%% MOSFET 制御
DRV -->|"LOW=ON / HIGH=OFF"| G
D --> VSYS
D --> C2
C2 --> GND
%% Pico からのフィードバック
GP15 -->|"DONE信号"| DONE
GND_P --> GND
Loading
状態
DRV
P-ch Gate
P-ch 状態
Pico
タイマーカウント中
HIGH (4.5V)
HIGH
OFF (Vgs=0)
電源なし
タイマー完了
LOW (0V)
LOW
ON (Vgs=-4.5V)
電源供給
DONE信号後
HIGH (4.5V)
HIGH
OFF (Vgs=0)
電源遮断
Q: TPL5110 の DRV から直接 Pico に給電できないか?
A: できない。
項目
DRV ピン
Pico の要求
設計目的
MOSFET ゲート駆動
電源供給
電流能力
数μA〜数mA程度
100mA以上 (WiFi時)
データシート記載
最大電流の記載なし
-
DRV ピンは MOSFET のゲートを駆動するために設計されており、大電流を流す能力がない。
Pico は WiFi 使用時に 100mA 以上消費するため、外部の P-ch MOSFET でスイッチングする必要がある。
部品
型番/値
パッケージ
用途
U1
TPL5110
SOT23-6
ナノパワータイマー
Q1
SI2301
SOT23
P-ch MOSFET (ハイサイドスイッチ)
R1
30kΩ (1%)
0603 or THT
タイミング抵抗 (≈2分)
C1
100nF
0603 or THT
TPL5110 VDD バイパス
C2
10μF
0805 or THT
Pico側 電源安定化
┌─────┐
GND 1│● │6 DRV
VDD 2│ │5 DONE
EN 3│ │4 DELAY/M_DRV
└─────┘
ピン
名称
接続先
1
GND
GND
2
VDD
LiPo OUT (4.5V)
3
EN
VDD (常時イネーブル)
4
DELAY/M_DRV
R1 経由で GND
5
DONE
Pico GP15
6
DRV
P-ch MOSFET Gate
項目
値
Vds(max)
-20V
Id(max)
-2.2A
Vgs(th)
-1.0V 〜 -2.5V
Rds(on)
85mΩ @ Vgs=-2.5V
パッケージ
SOT-23
Gate が LOW (0V) のとき、Vgs = -4.5V となり確実に ON
低 Rds(on) で電圧降下が小さい (85mΩ × 100mA = 8.5mV)
Pico の消費電流 (数十〜100mA) に対して十分な余裕
時間
抵抗値
1分
22kΩ
2分
30kΩ ← 今回使用
3分
34.7kΩ
5分
42.9kΩ
10分
57.4kΩ
30分
92.4kΩ
1時間
124.9kΩ
2時間
170kΩ
※ 正確な2分は 29.35kΩ だが、E24系列の 30kΩ で実用上問題なし
sequenceDiagram
participant LiPo as LiPo Module
participant TPL as TPL5110
participant FET as P-ch MOSFET
participant Pico as Raspberry Pi Pico
Note over TPL: 電源投入
TPL->>TPL: タイマー開始 (DRV=HIGH)
Note over FET: OFF (Pico電源なし)
Note over TPL: 2分経過
TPL->>FET: DRV = LOW
FET->>Pico: 電源供給 (4.5V)
Note over Pico: 起動・処理実行
Pico->>Pico: センサー読み取り
Pico->>Pico: WiFi接続
Pico->>Pico: データ送信
Pico->>TPL: DONE = HIGH パルス
TPL->>FET: DRV = HIGH
FET->>Pico: 電源遮断
Note over TPL: タイマー再開
Loading
import board
import digitalio
import time
# DONE ピン設定
done_pin = digitalio .DigitalInOut (board .GP15 )
done_pin .direction = digitalio .Direction .OUTPUT
done_pin .value = False
def send_done_signal ():
"""TPL5110 に処理完了を通知して電源を切る"""
done_pin .value = True
time .sleep (0.001 ) # 1ms パルス
done_pin .value = False
# ここで電源が切れる
def main ():
try :
# センサー読み取り
# WiFi接続
# データ送信
pass
finally :
# 成功/失敗に関わらず電源を切る
send_done_signal ()
main ()
USB から給電しながら TPL5110 回路も接続すると電源が競合して TPL5110 が壊れる可能性あり
デバッグ時は TPL5110 を切り離すか、VSYS への接続を外すこと
Pico 起動前に DONE ピンがフローティングになる
必要に応じて 100kΩ のプルダウン抵抗を追加
Pico の起動〜WiFi接続〜送信完了まで十分な時間が必要
タイマー間隔が短すぎると処理が完了しない可能性あり
2026-01-12: Mermaid図追加、DRV電流制限の説明追加、動作シーケンス修正
2026-01-12: 初版作成 (ポーリング間隔 2分)