以下の内容はhttps://gijin77.blog.jp/archives/2022-08.htmlより取得しました。


◆M5StickC Plus の バッテリーの不良等に対処する為にAXP192の情報を
 表示させてみました。
 元のスケッチは、M5StickC用のスケッチ例AXP192を参照しています。
 
1.下記のスケッチをM5StickC Plusに書き込みます。
   (保障無しの自己責任で)  M5StickC_Plus_battery_info.ino

2.実際に動かしてバッテリー情報を表示させています。
 ①上側は、バッテリー動作中
 ②下側は、充電中
m5-30

 
3.バッテリー不良でここに来られた方は、下記ブログ内記事も参照して下さい。
  ・M5StickC Plus の バッテリー交換 分解 について

以上


ブログトップへ

1.分解手順
 ①まずは、六角レンチで二本のビスを外します。
m5-1

 ②液晶側ケースは、簡単に外れます。
m5-2

 ➂本体と裏側ケースは接着剤で止めてあり慎重にこじ開けます。
  この時、ブザーが裏側ケースに接着してあり細い線で
  繋がっていますので、切らないよう慎重に開けます。
 (そう言いながら一本切れてしまいました。後で半田付けしました。)
m5-3
 ➂-2 裏ケースと本体は、ピンソケットにラベルがくっついていて中々外れなかった
 ので、前もってラベルを剥がしておくとスムースに外れると思われます。
 (下記黄色枠の部分)
m5-21

 ④何とかバッテリーが外せるまで分解出来ました。
m5-4

 ⑤バッテリーは、赤2本、黒1本で本体に半田付けされています。
  2本は、簡単に取れそうですが、拡張端子に繋がっている方は
  アプローチが難しそうです。
m5-5

 ⑥組むときは、下図、黄色線のように配線にしたいと思っています。
m5-20

2.バッテリーの交換
 ①使えそうなバッテリーを入手し、交換しようと思っています。
  120mAh 3.7V 25mm x 14mm x 4.5mm (451425)
m5-7

 ②バッテリーを外して、充電モジュールに繋いで充電してみました。
m5-8

 ➂外す前は、0.4V位でしたが、
m5-9

 ④充電後3.84Vに復活しました。
m5-10

 ⑤なので再度組み上げて、バッテリーテストプログラムを書き込んでみました所
  普通にバッテリーで動くようになりました。写真の上のM5StickC Plusです。
  下のM5StickC Plusは、同じくバッテリー不良の物で、電源に繋いでも電圧が
  出ていません。
  ◆バッテリーテストプログラムは、下記を参考に次の3行をM5StickC Plus用に
  書き換えて使用しました。

  ◆修正箇所
    1:#include <M5StickCPlus.h>
    9:#define DISP_BRIGHTNESS_MIN 10
  60:  M5.Lcd.setRotation(3);

m5-11

 ⑥同じ現象なので、今回は分解しないでそのまま拡張端子のBAT,GNDに
  充電モジュールを繋いでみました所、見事復活しました。
 (本体が壊れるかも知れませんので覚悟のうえで実行しました。)
m5-12

 ⑦2台とも100%まで充電しバッテリーだけで動かしたところ10分から15分位
  動作しました。
  当然バッテリーは、へたっていますが、このまま使うことにしました。
m5-13

 ◆使えそうなバッテリーが入手出来たら交換しようと思っています。

 ◆後さらに詳しくバッテリー情報を表示させてみました。
 下記、ブログ内記事も参照してみてください。
 ・M5StickC Plus の バッテリー 情報 の 表示

3.バッテリーを交換しました。「2024/066/03(月) 追記
 ①容量は、少ないですが中に入るバッテリーが入手出来ましたので
  交換しました。(120mAh-->100mAh)
(ショック:交換の際かと思われるのですが液晶が壊れてしまいました。)
  詳しくは、下記ブログ内記事を参照して下さい。
 ・M5StickC Plus の 液晶 が壊れたので交換してみた

 M5C_P_バッテリ交換


以上



ブログトップへ

◆ATtiny85 で QC2.0 / QC3.0 を制御して実験用可変電圧出力電源を
 作ってみました。
qt-1-1

 以前ATmega328で、同様の事を作りましたが、今回8ピンのATtiny85で
 実現しました。
 
 ①入力3,出力3の6ピンを使うためATtiny85の全てのピンを使う必要があります。
 よってRESET(PB5)ピンも入力ピンとして使かいました。
  ブログ内記事参照
   ・ATtiny85 RESET(PB5)ピンを入力ピンとして使用するには
 
 ②QC2.0/3.0の仕様やライブラリなどは、先のブログ内記事を参照して下さい。
  ・ATMega328 で QC2.0 / QC3.0 トリガーモジュール を作ってみた。
 
2.ハードの製作
 ①回路図を下記に示します。
 ・元はATMega328のソケットを使い、その上にATtiny85を乗せる構造としています。
 ・又、ATtiny85は、裏向きに配置し、表面はデジタル電圧計を取り付けました。
 ・よって図面もATtiny85は、裏から見た図となっております。
qt-2

 ②組み立て前の写真です。
qt-10

 ➂組み立て後の写真です。
qt-11

3.スケッチについて
 ①ATmega328のソースをATtiny85用にピンアサインやRESETピンの
  アナログ入力関連を修正しました。
  (保障無しの自己責任で)  QC3Control_enc85.ino

 ②スケッチの書き込みには、下記ブログ内記事を参照して下さい。
  ・USBasp を使って「ATtiny85」etc にスケッチを書き込むには

4.実際に動かしてみます。
 ①QC2.0による固定出力です。
qt-12
 
 ②QC3.0による連続可変出力です。
qt-13
 
以上


ブログトップへ

◆ATtiny85のRESET(PB5)ピンをヒューズを書き換えずに入力ピンとして使う
 簡単な方法が分かったので紹介します。
 最初、色々試していたのですが、なかなか思うようにいかず悩んでいました。
 まずは、RESETピンのアナログ入力を確認する為に、ソフトシリアルが使えるよう
 環境を整備しました。
 スケッチの書き込みには、下記ブログ内記事を参照して下さい。
  ・USBasp を使って「ATtiny85」etc にスケッチを書き込むには

 この中でTX,RXの線を追加して、ソフトシリアルの試験が出来るように
 しました。(青い線を追加配線)
 TX,RXシリアルの先は、USBシリアル変換モジュールを繋いでいます。
at-1

at-2

 1.実験1(失敗例)
 ①スケッチ1

#include <SoftwareSerial.h>
#define LED 1
#define asw 5 //RESET/PB5

SoftwareSerial mySerial(3,4);//RX,TX

void setup() {
  pinMode(LED,OUTPUT);
  mySerial.begin(115200);
  mySerial.println("Hello world");
  for(int i=0;i<5;i++) {
    digitalWrite(LED, HIGH); 
    delay(200);
    digitalWrite(LED, LOW);
    delay(200);     
  }
}

void loop() {
int ad=0;
  ad=analogRead(asw);
  mySerial.println(ad);
  digitalWrite(LED, HIGH); 
  delay(200);
  digitalWrite(LED, LOW);
  delay(3000);
 
}

 ②実行画面1
at85ng

◆アナログ値ではなく0/1のデジタル値として入力されている。

2.実験2(成功例) 
 ①スケッチ2

#include <SoftwareSerial.h>
#define LED 1
#define asw A0 //RESET/PB5

SoftwareSerial mySerial(3,4);//RX,TX

void setup() {
  pinMode(LED,OUTPUT);
  mySerial.begin(115200);
  mySerial.println("Hello world");
  for(int i=0;i<5;i++) {
    digitalWrite(LED, HIGH); 
    delay(200);
    digitalWrite(LED, LOW);
    delay(200);     
  }
}

void loop() {
int ad=0;
  ad=analogRead(asw);
  mySerial.println(ad);
  digitalWrite(LED, HIGH); 
  delay(200);
  digitalWrite(LED, LOW);
  delay(3000);
 
}

 ②実行画面2
at85ok
 
 ◆ちゃんとアナログ値が表示されています。
  スケッチ1と2でどこが違っているか比べて見て下さい。
  悩んで悩んだ末、ピン指定方法が間違っていたのです。
  アナログ入力には、アナログピン指定が必要なんですね。
  #define asw A0 //RESET/PB5

  後、リセットの機能も問題なしです。

3.アナログ値が入力できる事が分かったので、RESET(PB5)をデジタル入力の
 代わりにする方法です。
 ①下記の抵抗分圧回路を作りRWSET(PB5)ピン1に入力します。
at--10

 ◆スケッチOFF約5V、ONで約4Vが、RESET ピンにかかりその電圧を
  判定します。
  もちろん、RESETピンをGNDに落とすとリセットされます。
 
 ②スケッチでデジタル判定をします。
 ◆以下スケッチの抜粋です。

#define PIN_SW A0 //RESET PIN PB5 
int a_sw;    //アナログSW 入力値
int asw_off; //アナログSW OFF電圧
int asw_on;  //アナログSW ON電圧

void setup(){
  asw_off=analogRead(PIN_SW);  //アナログSWのOFF電圧初期値読み込み
  asw_on=asw_off-(asw_off/10); //アナログSWのON電圧計算
**
**
**
}
void loop(){

  a_sw=analogRead(PIN_SW);
  if (a_sw < asw_on) { //アナログSWが押されているか
    delay(200); 
**
**
}
 この方法でRESET(PB5)ピンをヒューズを書き換えずに入力ピンとしても
 RESETピンとしても使えるようになりました。

 ◆実際の使用例として、下記ブログ内記事を参照してみてください。
  ・ATtiny85 で QC2.0 / QC3.0 トリガーモジュール を作ってみた。

以上



ブログトップへ

◆◆下記サイトには、無断でリンクしていますので◆◆自己責任で閲覧して下さい
◆ESP32
ESP32-DevKitC ESP32-WROOM-32 開発ボード (秋月電子) [V2: 回路図]
ESP32-DevKitC ESP32-WROOM-32 開発ボード (マルツオンライン) [V2: 回路図]
ESP32-DevKitC-32D ESP32-WROOM-32D 開発ボード (秋月電子) [V4: 回路図]
ESP32-DevKitC ESP32-WROOM-32 開発ボード (Amazon: waves) [V4: 回路図]
ESPr Developer 32 (スイッチサイエンス) [回路図]
ESP32-WROOM-32 ブレイクアウト SD+ (スイッチサイエンス: 魔法の大鍋) [回路図]
ESP32-WROOM-32 Breakout Board "Unopuino32S" (SS: THOUSANDIY) [回路図]
HiLetgo ESP32 ESP-32S NodeMCU 開発ボード (Amazon) [回路図]
daier ESP32 ESP-32S NodeMCU 開発ボード (Amazon) [回路図]
KKHMF DOIT v1 (Amazon) [回路図]
[K-ESP32T] ESP32最小構成ボード / eBox ESP32-T (aitendo) 
ESP32-WROOM-32 + 開発基盤 (eBox ESP32-T) セット (Amazon: waves)
ESP32 テストボード ESP32-WROOM-32用 テストツール (Amazon: Funeshop)

◆ATMega328
Arduino UNO R3回路図
あちゃんでいいの [KIT-ADINO3]回路図
ATmega328Pで作るMetaboard回路図

meta328

◆ATTiny85
Digispark (ATTiny85)回路図

◆データシート
ESP32-WROOM-32E PDFデータシート
ESP32/ESP8266のデータシート集
ESP32-IDFプログラミングガイド

ATmega328PPDFデータシート
Ttiny85/45/25PDFデータシート
ATtiny13APDFデータシート
AVR全般PDFデータシート


ブログトップへ

◆ATMega328 で QC2.0 / QC3.0 をコントロールして
 トリガーモジュール(実験用可変電圧出力電源)を作ってみました。
 操作性を良くする為、スイッチ付きロータリーエンコーダを使いスムースに
 電圧の増減が出来るようにしました。
 なお、これを使うには、QC3.0対応の充電器又はモバイルバッテリーが
 必要です。
 充電器については、下記プロ区内参照
 ・QC3.0 20V-3A PD対応 65W 急速充電器 を入手してみた

qc-4

1.QC2.0/3.0の仕様をネットで検索してみました所、D+,D-にある電圧値を
 与えることにより簡単にコントロール出来ることが分かりました。
 設定したい電圧に応じて D+ D- に電圧をかける事により実現出来ます。
 
 ①まずQC2.0/QC3.0の仕様などを下記に示します。
qc-42

 ②「D+,D-」の値による出力電圧値です。
qc-40
 ➂「D+,D-」の値の分布図です。
  QC2.0で使われていなかった点をQC3.0で連続可変で使っているみたいです。
qc-41
 ④「D+,D-」の電圧を作る為、下記の様に10k,1.5k,470Ωを使って実現しています。
qc-46

2.ハードの製作
 ①回路図を下記に示します。
 ・操作性を良くする為に、SW付ロータリーエンコーダを使いました。
 ・ATMega328の5V電源として78L05(Vin35V,Vout5V,50mA)を使いました。
  (今回20V扱うので、LDO1117は、Vin15Vmaxで使用できず)
 ・ATMega328は、aitendoの「あちゃんでいいの」のキットを使いました。
  あちゃんでいいの [KIT-ADINO3]


qc-20

 ②組み立て前の写真です。
qc-1


 ➂組み立て後の写真です。
qc-2

qc-7

3.ソフトの構築

 ①まずは先人が開発されたライブラリをインストールします。
  ◆ライブラリマネージャーで「QC3」と検索して、「QC3Control」を
   インストールします。
qc-43

 ②スケッチの概要
  1.ロータリーエンコーダを使って電圧の増減を操作
  2.付属SWで、QC2.0/QC3.0を切替(トグル動作)
  3.QC3.0モードの時LEDを点灯させ、QC2.0モードの時消灯
  4.QC2.0モード時は、5,9,12,20V設定可
  5.QC3.0モード時は、±200mV単位で増減可(4.8V~20V)
  2022/8/19 追記
  6.電源OFF前のQC2.0/3.0モード、設定電圧をEEPROMへ記憶して、
   次回起動時読み出し設定

  
 ②次にスケッチを書き込みます。
  (保障無しの自己責任で)  QC3Control_enc.ino

4.実際に動かしてみました。
 ①QC2.0による固定出力です。上から順に5V,9V,12V,20Vとなっております。
  USBテスターのD+D-の電圧をみると1.②➂の電圧を確認できます。
qc-5
 
 ②QC3.0による連続可変出力です。初期値15V設定です。
  USBテスターのモードもQC3.0を確認できます。
qc6

5.参考サイト
  vdeconinck/QC3コントロール

◆これで、QC3対応の充電器やモバイルバッテリーで5-20Vの範囲で0.2Vステップで
 任意の電圧を発生させることが出来ました。

以上



ブログトップへ

◆Type-Aで20V-3Aまで出力の急速充電器を入手し、PDトリガー QCトリガーなど、
 これ一個で、色々な電源として活用出来るようになりました。

 活用例1:下記ブログ内リンク
  ・ATMega328 で QC2.0 / QC3.0 トリガーモジュール を作ってみた。

1.製品仕様
 サイズ:70*35*32 mm
 重量:約130g
 入力:100-240V~, 50/60hz, 1.5A Max
 USB-C 出力:5V=3A, 9V=3A, 12V=3A, 15V=3A, 20V=3.25A
 USB-A 出力:5V=3A, 9V=3A,12V=3A, 20V=3A
 Type-C1/Type-C2:PD3.0/PD2.0/PPS/QC4+
 USB-A:QC3.0/QC2.0/SCP FCP/AFC APPLE2.4/BC1.2/PE+
 
 ◆USBテスターでプロトコルを測定してみました。
  ①USB-A
qc-20


  ②Type-C1
qc-21


  ②Type-C2
qc-22


2.外観
qc30-1

qc30-2

qc30-3
 
3.取説抜粋
qc-30-4
 
4.この商品について(アマゾンより抜粋)
①【単ポートで最大65Wの高出力】PD3.0/PPS急速充電をサポートして
 最大65W大出力、スマホやタブレットはもちろん、MacBook Pro(13インチ)を
 はじめとした60W以上出力が必要な高性能ノートPCでも短時間で急速充電
 できます。QC3.0に対応のUSB-Aポートは最大30 W出力でAndroidスマート
 フォンや、タブレットなどを従来の約2.5倍~3倍速での充電が可能です。
 特別なデザイン‐Baseus 65W 充電器は他のコンセントに干渉しないサイズ
 なので何処にでも使いやすいです。
②【3台同時充電】PD3.0/PPSに対応の2×USB-CポートとQC3.0に対応のUSB-A
 ポートを備え、3台デイバイスの端末を同時に充電できます。一台があれば、
 お手元デバイスの充電を全方位サポート!また、この充電器は2ポート同時
 に使用しでもUSB-C最大45W+USB-A/C最大18Wの出力が可能。
 Macbookを45W出力で充電しながら、iPhone 12を18Wの最高速度で充電でき
 ます。 出張・旅行に欠かせない愛用品です。
➂【スマートな電力配分】Baseus自主開発のBPS充電技術を搭載、多ポート
 同時充電時、接続されたデバイスを知的に識別でき、自動的に電圧・電流
 を最適値に調整します。スマホやノートPC、switchなどに対応しており、
 あらゆるデバイスへ最適・最速速度での充電を実現します。
④【新素材 GaN (窒化ガリウム)採用】本充電器はGaN窒化ガリウムの素子を
 採用しており、MacBookの61W純正アダプターよりも小さくて約50%の小型
 化を実現しました。収納しやすい折畳式プラグ付き、世界各国の電圧
 (AC 100-240V)に対応しているので海外旅行や主張先にも最適です。
⑤【安心防護機能】過充電保護、過電力防止、過圧防止、過熱防止、静電気
 防止、ショート防止の複数の充電保護システムを備え、スマートチップも
 内蔵して、長期間安心してお使いいただけます。Baseus 急速充電器 は
 PSE認証済みなので、安全性が保証されます。
 12か月の安心保証
⑥パッケージ内容:充電器×1、100W USB-Cケーブル×1

以上



ブログトップへ

◆安いFS312 PD トリガーモジュールを購入し色々調べていましたら
 通常の固定出力5/9/12/15/20Vのほかに、I2C接続が出来ることが分かり
 挑戦してみました。
 目的は、PD充電器などより可変出力電圧を制御することです。
FS312_ESP32

 ①AliExpressで入手
  Pd/qc Artificial Board Fast Charging USB Boost Module Type-c

 ②FS312については、下記データシート参照
  *この中には、I2Cについての記載はありません。

 ➂I2C接続接続についての記事
  Speedcore の新しいスマート トリガー プロトコル チップ FS312

 ④I2C接続接続についての抜粋
f-11

 ⑤(参考)FS312を使ってデバイス作成例
  FS312スキームのPD、PPS、QCデコイ


1.改造前のモジュールと回路図
 ①FS312モジュール
ic-4

  ②回路図
FS312


2.FS312 PD トリガーモジュールを改造してESP32間でI2C接続を試してみました。
 ①まずは、FS312からSCLとSDAを引き出すために、ヒートガンで温め
  チップを取り外しました。
ic-5

 ②ピッチ変換基板に、チップを取り付け、元基板を両面テープで貼り付けました。
  その後、SCL,SDAを除く端子間をジャンパーしています。
FS312_ESP32

 ➂I2C化した後の回路図
  *I2C化するには、VOL端子をオープンにする必要がありました。
FS312_I2C_ESP32

2.ESP32でのI2C接続実験
 ①FS312からレジスタ読み出しのスケッチ
//i2ctest.ino
#include <Wire.h>
#define FS312adrs 0x2D
int dat;
int siz;

void setup(){
	Wire.begin();
	Serial.begin(115200);

}
void loop(){
  siz=Wire.requestFrom(FS312adrs,10);
    for (int i=0;i<siz;i++) {
      dat=Wire.read();
      Serial.printf("%d: %02X ",i,dat);
    }
    Serial.println();
    delay(3000);
}


 ②実行結果
f-10

何かしらデータが出ています。

3.I2C接続して内部にアクセスできることまでは行けたのですが、資料が無くて現在
 データシートを検索中です。
 どなたか、レジスタ等のデータシートが分かる方が、おられましたらお教え願えれば
 助かります。
 一応メーカーにその旨メールしたのですが、返答がありません。

 2022/8/18 追記
 ◆今回の件については、残念ながら断念ということになりました。

 8/4にメールで問い合わせしていたのですが、返事が無いため
 昨日再度問い合わせした所、返答をもらいました。
 返答内容を要約すると、
 ①FS312のI2C接続についてFS312にはそのような機能がない。
 ②実際には FS312 WITH I2C を FS2711 に変更した。
  なのでI2Cにて制御する場合は、FS2711を使う事。
 ➂FS312のI2C接続についての記事ですが、プラットフォーム(Wechat)のポリシーにより、
  古い記事は変更できないため、古い情報がウェブ上に残っている。


 ◆FS2711が入手出来たら再度挑戦します。

以上





ブログトップへ

◆PD トリガーモジュールを色々入手して使ってみた
PDICALL

 ①IP2721_MAX12    9/12V           ジャンパー替え
 ②IP2721                 15/20V          ジャンパー替え 
 ➂HUSB238             5/9/12/15/20V   ジャンパー替え
 ④FS312                  5/9/12/15/20V   ジャンパー替え
 ⑤CH224K               5/9/12/15/20V   DIPSW設定
 ⑥CH224K               5/9/12/15/20V   SW操作で設定
 ⑦XY-WPDT            5/9/12/15/20V   SW操作で設定

1.IP2721_MAX12
2.IP2721
ic-1

 ①回路図
ip2721

 ②データシート
  IP2721.PDF
  ・IP2721 でノートパソコン充電用 PDトリガーケーブル を作ってみた
  
3.HUSB238
ic-3

 ①回路図
HUSB328

 ②データシート
  Hynetek HUSB238
 
4.FS312
ic-4

 ①回路図
FS312

 ②データシート
  FASTSOC-FS312-datasheetv1.4.pdf

 ➂参考 下記ブログ内参照
  ・FS312 PD トリガーモジュール と ESP32 で I2C 接続してみた


5.CH224K
ic-5

 ①回路図 
ch224k
 
 ②データシート
  FCH224DS1.PDF


6.CH224K
ic-6

PD_TG2

 ①回路図 
 ②データシート
  
7.XY-WPDT
ic-7

 ①回路図 
 ②データシート
 ➂使用例 下記ブログ内参照
  ・「XY-WPDT」PD充電器用トリガーデバイスを入手してみた
 

◆随時、調査追記していきます。



ブログトップへ



以上の内容はhttps://gijin77.blog.jp/archives/2022-08.htmlより取得しました。
このページはhttp://font.textar.tv/のウェブフォントを使用してます

不具合報告/要望等はこちらへお願いします。
モバイルやる夫Viewer Ver0.14