M5StickC SDK0.1.1版 AXP192クラスの使い方

現時点の情報です。最新情報はM5StickC非公式日本語リファレンスを確認してみてください。

Doxygenでの自動作成のリファレンスはこちらです。

概要

SDKに大幅に変更があった0.1.1対応のAXP192クラスの使い方をまとめました。

内部ステップ数を返却する関数群が非推奨になり、計算後の数値がそのまま利用できるようになりました。

サンプルスケッチ

#include <M5StickC.h>

void setup() {
  M5.begin();
  M5.Lcd.fillScreen(BLACK);
}

void loop() {
  M5.Lcd.setCursor(0, 4, 1);

  M5.Lcd.printf("AXP192 Test\n");
  M5.Lcd.printf("\n");

  M5.Lcd.printf("Battery\n");
  M5.Lcd.printf(" State:%6d\n"  , M5.Axp.GetBatState());      // バッテリーが接続されているか(常に1のはず)
  M5.Lcd.printf(" Warn :%6d\n"  , M5.Axp.GetWarningLevel());  // バッテリー残量警告 0:残あり, 1:残なし
  M5.Lcd.printf(" Temp :%6.1f\n", M5.Axp.GetTempInAXP192());  // AXP192の内部温度
  M5.Lcd.printf(" V(V) :%6.3f\n", M5.Axp.GetBatVoltage());    // バッテリー電圧(3.0V-4.2V程度)
  M5.Lcd.printf(" I(mA):%6.1f\n", M5.Axp.GetBatCurrent());    // バッテリー電流(プラスが充電、マイナスが放電)
  M5.Lcd.printf(" W(mW):%6.1f\n", M5.Axp.GetBatPower());      // バッテリー電力(W=V*abs(I))

  M5.Lcd.printf("ASP\n");
  M5.Lcd.printf(" V(V) :%6.3f\n", M5.Axp.GetAPSVoltage());    // ESP32に供給されている電圧

  M5.Lcd.printf("VBus(USB)\n");
  M5.Lcd.printf(" V(V) :%6.3f\n", M5.Axp.GetVBusVoltage());   // USB電源からの電圧
  M5.Lcd.printf(" I(mA):%6.1f\n", M5.Axp.GetVBusCurrent());   // USB電源からの電流

  M5.Lcd.printf("VIN(5V-In)\n");
  M5.Lcd.printf(" V(V) :%6.3f\n", M5.Axp.GetVinVoltage());    // 5V IN端子からの電圧
  M5.Lcd.printf(" I(mA):%6.1f\n", M5.Axp.GetVinCurrent());    // 5V IN端子からの電流

  delay(1000);
}

SetLDO2について

明るさ消費電流(mA)増減
OFF63.1-31.3
063.2-31.2
163.2-31.2
263.2-31.2
363.2-31.2
463.2-31.2
563.2-31.2
663.2-31.2
763.4-31.0
865.9-28.5
969.3-25.1
1075.7-18.7
1183.6-10.8
1294.40.0

液晶をON、OFFできる関数が追加されましたが、実際の消費電力を比べたところ、それほど減りませんでした。現状OFFにするぐらいだったら、明るさ7とかで表示するのがおすすめです。

まとめ

全般的に素直に利用できるようになっています。ただ充電クーロン系関数は0.1.1では、正常に動かないので注意してください。上の図にある関数以外で使う関数は、ボタンの状態取得ぐらいだと思います。

細かい初期化時のパラメータも変更されており、MICに給電される電圧が2.8Vから3.3Vになったりと、普通に使う分には影響がないと思います。

あとは、クーロンカウンターが初期化時に有効化されなくなり、EnableCoulombcounter()を呼び出す必要がありますが、クーロン系関数が正常に動いていないのと、普段使うことはないと思います。

コメント