SONY Spresense用リチウムイオンバッテリーチャージャー&残量モニターボード

2023年3月20日に
[ChatGPTに聞いてみた　リチウムイオン/リチウムポリマー電池用充電制御ICと電池残量モニタICを組み合わせた回路](https://qiita.com/kaz19610303/items/2fbff33ca1035e022988)
という記事を書きました。
この記事はChatGPTに
リチウムイオン/リチウムポリマー電池用**充電制御IC MCP73831T**　と
**電流残量ゲージ用IC MAX17048**
の使い方の質問をした記事で、実際に回路の設計及び基板の製作はやっていませんでした。

今回この内容でSpresense用の拡張ボードを作ってみました。

**回路図**
![battery_chage_status_schematic.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/99249/e0142912-be4b-c2a9-d9da-9a7de8178a9a.png)

**試作した基板**
![DSC04647.jpg](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/99249/465f76f1-331c-b899-b045-e44cbd871a3e.jpeg)

**Spresenseに取り付けた写真**
![DSC04650.jpg](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/99249/30b37894-87c5-4b6d-0d4d-71ba1b2aecb4.jpeg)

**使用したバッテリー**
![DSC04652.jpg](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/99249/e5327edf-9657-2e1d-2913-b5d1872c7c09.jpeg)

**テストプログラム**

電流残量計測のライブラリとして
[adafruit Adafruit_MAX1704X](https://github.com/adafruit/Adafruit_MAX1704X) を使用していますので
ライブラリのインストールを行ってください。
テストプログラムはこのライブラリのサンプルプログラム **MAX1704_basic** 
を使いました。
変更なしでSpresenseでも動きます。
```MAX1704_basic*.ino
#include "Adafruit_MAX1704X.h"

Adafruit_MAX17048 maxlipo;

void setup() {
  Serial.begin(115200);
  while (!Serial) delay(10);    // wait until serial monitor opens

  Serial.println(F("\nAdafruit MAX17048 simple demo"));

  if (!maxlipo.begin()) {
    Serial.println(F("Couldnt find Adafruit MAX17048?\nMake sure a battery is plugged in!"));
    while (1) delay(10);
  }
  Serial.print(F("Found MAX17048"));
  Serial.print(F(" with Chip ID: 0x")); 
  Serial.println(maxlipo.getChipID(), HEX);
}

void loop() {
  Serial.print(F("Batt Voltage: ")); Serial.print(maxlipo.cellVoltage(), 3); Serial.println(" V");
  Serial.print(F("Batt Percent: ")); Serial.print(maxlipo.cellPercent(), 1); Serial.println(" %");
  Serial.println();

  delay(2000);  // dont query too often!
}
```
このプログラムでは**バッテリーの電圧**と**残量**をモニタすることが出来ます。

**起動時のターミナル表示**
![スクリーンショット 2023-04-16 14.44.06.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/99249/31d53467-947e-94e8-0433-c06d452c66c1.png)

一番最初だけ 0V 0% になるみたいです。
接続しているバッテリーは **400mAh** のバッテリーです。
**残量14.9%、電圧3.713V からスタート**で、充電を開始しました。
充電中は基板上の**チャージモニタLED**が点灯します。
![DSC04645.jpg](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/99249/b7666026-281c-04ac-0e17-019b6474e6fd.jpeg)

**しばらく充電した時点でのターミナル表示**
![スクリーンショット 2023-04-16 16.49.39.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/99249/6d8fca52-b135-91a9-68f6-018fd59277f5.png)
**残量98.4%、電圧4.179V** になりました。

この時点では基板上のチャージモニタLEDは**消灯**しています。
![DSC04644.jpg](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/99249/7c85dd0b-79fb-31ce-fc6a-25fd38b7daf3.jpeg)

リチウムイオンバッテリーの充電とモニター基板が動きました。

バッテリーの**残量**と**電圧**をグラフにしてみました
**オレンジが残量(%)** で 
**ブルーが電圧(V)** です。
データーは5秒間隔で取得しています。
このグラフを見る限り問題なく使えそうです。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/99249/f12638ac-b80d-67c4-531c-872d79c0e180.png)

今回試作した基板は使っているコネクターの変更やレイアウトを変更して商品化したいと思っています。


[MCP73831T データシート](https://www.mouser.jp/datasheet/2/268/20001984g-846362.pdf)
[MAX17048 データシート](https://www.mouser.jp/datasheet/2/609/MAX17048_MAX17049-3126952.pdf)