● 実験テーマ155
「PIC16F1_バッテリ充放電マネージャ EAGLEによる基板化」
(後閑哲也 著「PICではじめるアナログ回路」の記事を参考にP板を設計し基板屋に外注しました。)
■ 2024.8.29〜 2024.9.11
・まずは、毎日少しずつ新規登録部品のデバイス・マクロを作成し始めた。
(1) RN42XB "ROVING NETWORKS":Bluetooth Module
@ Sym名:RN42XB(新規作成)
A Pac名:RN42XB(新規作成)
B Dev名:RN42XB(新規作成)
(2)
PIC16F1783 "Microchip":マイコン 28DIP
@ Sym名:PIC16F1783(新規作成)
A Pac名:DIL28-3(EAGLE流用:1ピンを角パッドに、他ピンを丸パッドに変更)
B Dev名:PIC16F1783(新規作成)
(3)
MCP73837 "Microchip":バッテリ充電制御IC 10CHIP
@ Sym名:PIC16F1783(新規作成)
A Pac名:MSOP10(EAGLE-microchip.lbr-MSOP8を、10pinに編集)
B Dev名:PIC16F1783(新規作成)
(4)
MCP1700-3.3V "Microchip":3.3V250mAレギュレータ
@ Sym名:MCP1700-3.3V(新規作成)
A Pac名:SOT-89(新規作成:中央のINPUTピン2pinがTABピンと接続されている所は長丸パッドと矩形パッドの合成で作成した)
B Dev名:MCP1700-3.3V(新規作成)
(5)
SB1602B "ストロベリーリナックス":I2C 16x2行キャラクタ液晶
@ Sym名:SB1602B(新規作成)
A Pac名:SB1602B(新規作成)
B Dev名:SB1602B(新規作成)
(6)
2SD1828 "SANYO":ダーリントン接続パワートランジスタ
@ Sym名:NPN-DAR(EAGLE-transistor-npn.lbr-NPN-DAR2.symを、編集)
A Pac名:TO220V(EAGLE-transistor-npn.lbr-TO220V.pacを、編集)
B Dev名:2SD1828(新規作成)
(7)
1W 0.3Ω "赤羽電具製作所":不燃性酸化金属皮膜抵抗
@ Sym名:R(自作既存)
A Pac名:RSMF1B(新規作成)
B Dev名:R(自作既存・リストに登録)
(8)
3W 1Ω "赤羽電具製作所":不燃性酸化金属皮膜抵抗
@ Sym名:R(自作既存)
A Pac名:RSMF3B(新規作成)
B Dev名:R(自作既存・リストに登録)
(9)
5046-02A "molex":2.5mmピッチMini-Latchウエハー・ライトアングルタイプ
@ Sym名:2X1_PIN_HAEDER(自作既存)
A Pac名:RSMF3B(新規作成)
B Dev名:RSMF3B(新規作成)
(10)
0.1u・4.7u・10u "村田製作所 他":チップ積層セラミックコンデンサ 2012サイズ
@ Sym名:C_NP(自作既存)
A Pac名:2012(新規作成)
B Dev名:C_NP(自作既存・リストに登録)
■ 2024.9.13
・回路図入力後のERCチェックでは、ERRORS=
4/
WANINGS= 18という結果だったが、殆ど承認できるもの
だったので承認した。
しかし最後に残ったWANING「No
pins on net K」(ネットKにピン無)の場所が不明で処置を迷ったが、
以下の理由でこれも承認した。(記録に残すためスクリーンショットを残した)
<「No
pins on net K」を承認した理由>
・エラー・ワーニング一覧の、[Sheet]項目に当該場所のシート番号が出てこない。
・NET LISTに、ネット名:Kは出てこなく、NET
LISTチェックもOK
何が原因なのか不明だが、もしかしたら、2台目のPCに無償版のEAGLEをインストールしたせい??
(今迄は1台目のディスクトップにインストールされてる無償版EAGLEで作業してたが、PCの不調で2台目のノートに無償版EAGLEをインストールした)
このままボード設計に進むことにした。
■ 2024.9.14〜 2024.9.16
・取付穴+禁止帯+部品暫定配置まで済んだ。
■ 2024.9.17
・まず面倒そうなバッテリ充電制御IC:MCP73837-1pin=
VAC・10pin= VBATの島(ベタ)をポリゴンコマンドで作成してみた。
・5Vライン暫定終了
・この後、他のラインも引き終える。
■ 2024.9.19
・AGNDのベタを作成した。(今回は裏面のみ)
先に作成した、VACとVBATのベタ領域があるので、結構面倒だったが何とか作成終了。
やっとエアーワイヤがゼロになった。(Ratsnet
Nothing to do!:未だシルク整理+viaのテンティングはしてない)
・DRCチェック開始
結果:Clearanceエラー1箇所のみ
・これを修正してDRCエラーゼロになった。
この後シルク整理+VIAのテンティングを済ませた。
■ 2024.9.20
ガーバ作成後、Gerbvと、FusionPCDのビューワで確認→ OK
これで手配済
■ 2024.9.21 〜2024.9.25
・基板到着まで間があるので、部品を先行手配しておく。
今回の手配は割と特殊部品が多く、かなり複数のパーツ屋さんに手配する結果になった。
まず放電用トランジスタの、2SD1824が入手困難だった。
代替え候補として、2SD560, 2SD1407A, 2SD1415Aがあるが、2SD560は入手困難で×
2SD1407Aは若松通商にあり、2SD1415Aは秋月にあったので、秋月に発注した。
・炭素皮膜又は金属皮膜抵抗はマルツでも、1個単位で購入出来なくなった。
結局、秋月で100本1セットのを注文した。
・PIC16F1783は、どこのパーツ屋さんにも置いてなかった。
そこで、yahooショッピングサイトを検索したらあったので注文した。
・TO220用のヒートシンク:16x16x25hと、リチュームポリマー電池:3.7V860mAは共立エレショップに注文した。
・メインパーツの、充電制御IC:MCP73837-FCI/UN
"microchip"と、
3.3v250mA Reg,:MCP1700T-3302E/MB "microchip"は、DigKey社と提携しているマルツに注文した。
但し、納期だ掛かりそうではあるが・・・
■ 2024.9.27〜 2024.9.30
・進捗確認
2024-09-27 15:00:19 ご注文は梱包され、まもなく発送されます
2024-09-27 15:00:20 ご注文は発送されました。物流ステータスを速やかに更新します
<ここからOCS追跡>
Fri 27Sep2024 18:15 集荷完了
Fri 27Sep2024 18:30 データエントリー
Fri 27Sep2024 19:25 OCS施設への搬入完了・サービスセンター搬入・中国深圳サービスセンター
Sun 29Sep2024 00:03 発送手続き完了・中国深圳サービスセンター
Sun 29Sep2024 15:02 通関申告中(フライト到着前の書類審査中または到着後の本申告中)
Sun 29Sep2024 22:27 通関申告完了・許可
Mon 30Sep2024.10:28 佐川急便Xフロン営業所を出発
Mon 30Sep2024.15:00 佐川急便足立営業所から配達に出発
Mon 30Sep2024.15:54 不在で、お預かり
■ 2024.9.27
・今回Androidアプリを扱うので、Java開発環境が必要なのだが、これを全てNotePCにインストール
したくなかったので、既にインストール済の、ディスクトップPC(O'ZZiO)で、まずは開発統合環境の
Eclipseが、この不調のPC(もうWNI10アップデート不可でネット接続は外してある)で立上るか確認
してみたが残念なことに立上らない。
キャッシュのクリーンアップをしてからの立上げdosコマンド:eclipse.exe -clean.cmdを実行しても駄目だった。
■ 2024.9.28
・ということで、Eclipseだけでもと、NotePCにインストールを試みた。
以前O'ZZiO PCにインストールしたインストーラZIPはpleiades-e4.5-java-32bit20150624.zip
(これは、Ver4.5 Mares(Pleiades All in One):JavaのランタイムJREを含まないStanderd
Edition)
だったので、これと同じのをと思ってPleiades All in OneのHP「MargeDoc
Project」から[旧バージョン表示]
をクリック- [Eclipse4.5 Mars 2015/06/24]-
[32bit-Standerd Edition-Java]順次クリック
444MBあったのでZIPダウンロードにかなり時間が掛かった。
タウンロードしたファイル名を確認すると何故か、同じV4.5だが、日付けが少し新しい
pleiades-e4.5-java-32bit20160312.zipだった。
・Eclipseだけインストール後、起動したがエラー発生
JAVA開発キット(JDK)のインストールを先にしておく必要があった。
[JDK8 Update191]jdk-8u191-windows-i586.exe(197MB)をダウンロードした。
■ 2024.10.1
・JDKのインストールをし、JDKの設定をしてみた。
・9:10 再配達でP板届く。
■ 2024.10.2
・JDKの設定をしたので、Eclipse起動を試す。
@ ディスクトップのEclipseショートカットアイコンをクリック
A ワークスペースの選択
B [File]- [インポート]でダイアログ表示 [既存プロジェクトをワークスペースへ]を選択し
[次へ]をクリック
C 次に出るダイアログで、プロジェクトのインポートディレクトリ等設定
「◎ ルートディレクトリの選択 [C\Android\project\ChargerController]
[v]
プロジェクトをワークスペースにコピー
[完了]
<- クリック 」
D インポートされたようだが、パッケージエクスプローラのプロジェクトフォルダとソースファイルフォルダ
に赤い[x]マーク表示が出た。
E [ウインドウ]- [ビューの表示]-
[問題]をクリックすれば問題のある箇所が表示される。
確認すると次の2点がエラーのようだ。
エラー(2項目) リソース パス
=====================================================================================================
@ ビルド・パスが不完全であるため、 ChagerController
プロジェクトはビルドされませんでした。
java.lang.Objectのクラスファイルが
見つかりません。
ビルド・パスを修正してから、
このプロジェクトをビルドしてください。
A 型java.lang.Objectを解決できません。 BluetoothClient.java
必要な、classファイルから間接的に /ChargerController/src/com/picfun/chargercontroller
参照されています。
■ 2024.10.12
・この1wほど、色々試したが、ビルドパス問題が未だ解決しなかったが、
Javaのビルドパスに、ChagerContoller/src/com(クラスフォルダー)を追加したら
ビルドエラーと関連エラー「java.lang.Objectを解決できません」が消えエラー0になり、
プロジェクト及びソースフォルダの赤い[x]マークが消えた!!
・ところがパッケージエクスプローラでソースフォルダを開いても何も表示しなくなった。
追加したビルドパス(クラスフォルダ)を [除去]して[適応]したら、今度は、赤い[x]マークも無くなり
ソースファイルフォルダも正常に開け中身も見れた。
しかしソースファイルを見ると幾つかの行にエラーマークが?
ところが、Eclipseを立上げ直したら、そのエラーマークも無くなった。
良く分からないが結果okとする。
・Eclipseからアプリをタブレットに転送してみたいが、[実行]- [実行構成]と、クリックして行っても、左ペインの実行構成リストに
「Androidアプリケーション」が出てこない?
Eclipseがタブレットを認識しない。PCエクスプローラでは認識しているが・・・
色々試したが何故か駄目。
■ 2024.10.14
・目的は後閑氏がビルド済のアプリを、タブレットに転送するだけなので、Eclipseを使わないで、サクッと
転送する方法がないかを調べたら、トラ技2014年3月号に、その記事が載っていた。
手順は以下のようにすればOK。
但し、SDKがインストールされている必要がある。
SDKはダウンロードサイズが膨大なので、新しいNotePCにはインストールしたくない。
SDKがインストール済のディスクトップPC(O'ZZiO)で実施してみた。
@ コマンド・プロンプト起動
A コマンドラインから「adb devices」と入力
B PCから、USB接続しているタブレットが認識されているか確認する。
sdkがインストールされているディレクトリに移動し「adb devices」を実行
C:\>cd C:\Android\android-sdk\platform-tools
C:\Android\android-sdk\platform-tools>adb devices
List of devices attached
0a4e56f7 device /// 認証されない時は、unauthorizedと表示される
C アプリの実行ファイルは(*.apk)は、プロジェクトのbinフォルダに
格納されているので、cdコマンドでプロジェクトのbinフォルダに移動し、
adb install ChargerController.apkと入力
C:\> cd workspase_eclipse\ChargerController\bin
C:\workspase_eclipse\ChargerController\bin>adb install ChargerController.apk
xxxxKB/s (xxxxxx bytes in 0.xxxxs)
D 転送が成功すると以下のメッセージが表示される。
Success
C:\> cd workspase_eclipse\ChargerController\bin
・上手順通り実施したら転送が成功した。
タブレット上に出来た「電池アイコン」のアプリ:ChargerControllerをタップして起動してみたら
イニシャル画面が正常に表示された。
■ 2024.10.15〜 2024.10.16
・ 後作業になってしまったが、部品実装を行った。
・峡間ピッチ(0.5mm)の充電制御IC:MCP73837-FCI/UN
"microchip"と、
豆粒サイズの3.3v100mA Reg,:MCP1700T-3302E/MB "microchip"のハンダ付けにやや苦労したが
何とか実装終了。
■ 2024.10.18〜 2024.10.21
・動作確認開始
◆ Step1
(1) LCD + BT + PIC未実装(ソケットから抜く)の状態で電源電圧チェック
GNDポイントは、CN3-3pin
@ +5Vライン
・R1:0.3Ω1Wのリードにて測定
---> 5.27V
・IC1:PIC16F1783-20pinにて測定 ---> 5.27V
・PICkit2コネクタ:CN3-2pinにて測定---> 5.27V
・LCD1:LCD1-5pinにて測定 ---------> 5.27V
A +3.3Vライン
・BT1:BT1-1pinにて測定 ------------> 3.33V
(2) PICのみ実装し、HEX書込み(O'ZZIO PCにて)--> OK
(3) 抜いたデバイスを全て実装し動作確認に移る。
@ 念のため実装状態で電源電圧チェック
・+5Vライン
・R1:0.3Ω1Wのリードにて測定 ---> 5.27V
・+3.3Vライン
・BT1:BT1-1pinにて測定 --------> 3.33V
A 未だBATは接続しない。
P_ONすると液晶にスタートメッセージ"Start!"が表示されるか? -->
OK
この状態で赤と緑LEDが両方共に点灯するか?
-------> OK
→ 最初点灯しなかった。
IC3:充放電制御ICの10pin(VBAT)が浮き気味になっていたので、ハンダ盛り修正したらOKになる。
◆ Step2
(1) タブレットとの接続準備〜 接続
@ P_ONするとBTモジュールの[〇]赤LEDが点滅
---> OK
A 初めてP_ONした場合は、SW3(緑)を押しながら、SW4:RESET_SW(白)を
ONしOFFするとBTモジュールの、[〇]赤LEDが高速点滅 --->
OK
これで初期設定動作を開始し、BTモジュールに
「Charger Monitor」という名前が付与される。
---> OK
点滅が遅くなったら通常動作になっている。
---> OK
B タブレット側で以下のBluetooth設定を行う。 ---> OK
B-1. [設定]- [Bluetooth] タップ
B-2. 以下のように表示
「 ペアリングされたデバイス
$ BT_PIO (以前ペアリング済のデバイス)
使用可能なデバイス
XXXXXXXXXXX (何やら数字と記号だけ) 」
B-3. Bluetooth設定画面上部の、ON-OFF SWを一度OFFにしてON ( ●)にすると
外部Bluetooth機器の検出が始まり、以下のように使用可能なデバイスにChrger Monitorが検出される。
(後閑氏オリジナルソースのテキスト:"Cahrger"のまま直してない。動作に無関係)
B-4. "Cahrger"をタップすると次のダイアログ(セキュアなペアリング要求)が出て
PIN入力を要求されるので、1234と入力する。
B-5. ペアリングされたデバイスに、Cahrger Monitorが追加される。
C タブレット側で、アプリ「ChargerController」起動
--->OK
D [端末接続]をタップすると、接続可能なBT端末リスト表示->
OK
E リストの中から「Cahrger Monitor」をタップ選択
---> OK
F これで「接続完了」と表示
---> OK
◆ Step3
(1) まずはBAT1のみ充電コネクタ:CN1に接続し満充電にし、充電特性のみグラフ化する。
@ DCジャックに、DC5VのACアダプタを接続しP_ON
A 充電するBATを充電側コネクタ:CN1に接続
すると赤色LEDのみ点灯した状態になるか?------->
OK
これで充電が開始される。
C |~▽~~)))~~~~~~~~~~~~|
|Chg x.xxV xxxmA
| VR2 VR1
|Dis x.xxV xxxmA
| [〇] [〇]
~~~~~~~~~~~~~~~~~~
・液晶1行目の充電電圧と充電電流を確認し、VR1を回して充電電流を調整
※ BAT容量に対し、0.2倍〜 0.5倍の範囲で充電する。
3.7V860mAh使用なので、860x0.2= 172mAにする。--> OK
尚、BAT1の充電前の解放電圧はテスターでの実測で、3.80Vであった。(殆ど満充電状態)
これが満充電で、4.2Vになる予定。
<注意>
・300mA以上にすると充放電制御ICが、かなり熱くなる。
D [モニタ開始]タップで15秒毎にグラフが更新される。 -->
OK
満充電になると緑LEDのみが点灯する。 -->
OK
殆ど満充電状態での充電だったので、約2時間で充電終了となった。
後で完全放電させてからの充電を試してみる。
尚、充電後BAT1をコネクタから外してテスターで実測するとぴったり4.21Vになっていた。
グラフ描画は未だ左端まで行ってなかった事と、深夜だったこともあり就寝して、このままやらしておこうと
放置したせいで途中で起きられず途中で接続が切れたようで、Eのデータ保存の確認は出来なかったが、
ここまでのモニタ画面の写真は綺麗ではないが撮れたので以下にアップした。
E [データ保存]タップでdata.txt等名前付けて保存 -->
OK
(最大6ファイルまで保存可)
(2) 満充電になったBAT1を、放電用コネクタ:CN2に接続し、未だ一度も充電してない
BAT2を充電用コネクタ:CN1に接続し、充電・放電特性両方をグラフ化する。
→ BAT1の放電を試したが、放電が、なかなか進まなかった。(殆ど下がらず勾配が非常に緩やかだった)
BAT1を途中で外して電圧チェックすると、4.2Vのままだった。
とりあえず、BAT2の充電のみ単体でやらした。
これは約2時間位で終了した。
■ 2024.10.22
・放電が進まない原因が判明した。なんてことない凡ミスだった。
放電用に使っているQ1トランジスタのエミッタ側の放電電流検知用抵抗の値が、10倍の10Ωになってた。
1Ωが正解だった。
後閑氏の回路図の抵抗値の書き方が、1ohm3Wとなっているのを私の見間違えで、10Ωと思い込んでしまった。
部品表を見るとちゃんと、1Ω 3Wとなっていた。
なので液晶表示は放電電流=300mAとなっているが、実際は検知抵抗が10Ωになっているので、300mA/10=30mA
しか流れてなかった事になる。
なのでなかなか放電の進みが遅かったというオチである。
■ 2024.10.25
・1Ω 3W抵抗が届いたので交換した。
写真左は、10Ω
3Wを抜いた図。その抵抗の下にあるのが、これから交換する、1Ω
3W。
見た目同じように見えるが、左から4つ目のカラーコードが異なる。
10Ω 3Wは金:乗数がx0.1・ 1Ω
3Wは銀:乗数がx0.01である。右側の図は交換後。
■ 2024.10.28
・1Ω 3W抵抗に交換後、以下に示すBAT1放電チェックを実施した。
結果今度はOKだった。
※ BAT1=表面にハンダ垂らした跡有り品/ BAT2=外観綺麗
※ BAT2やや満充電に足りてなかった(3.95V)ので充電してから以下を行った。
(1) 満充電BAT1(実測:4.16V)を放電用コネクタ:CN2に接続し放電特性をグラフ化する。
@ BAT1を放電用コネクタ:CN2に接続する。
A 既に無接続状態で放電完了状態になっているので、
SW2:Discharge Start SW(赤)をI秒以上押して、放電完了をリセットする。
これで放電がスタートする。
---> OK
B 液晶2行目の充電電圧と充電電流を確認し、VR2を回して放電電流が適当な値になるようにする。
300mAにする。
---> OK
<注意>
・400mA以上にするとヒートシンクが、かなり熱くなる。
C [モニタ開始]タップで15秒毎にグラフが更新される。 -->
OK
以下にプロットが右端まで行って[モニタ終了]となった時の写真を示した。
300mA定電流放電から、放電電流が約0mA(グラフ表示では6mA)になるまでの時間を読取ると約2.9時間なので
BAT1の電池容量= 300mA x 2.9H= 870mAhということになり、定格の860mAとほぼ一致した。
D [データ保存]タップでdata1.txtで保存 --> OK(これを読み出せばグラフが再現する)
(最大6ファイルまで保存可)
(2) (1)で放電済(終止電圧=3.5V程度)のBAT1を充電側コネクタ:CN1に接続し、
満充電BAT2(実測:4.2V程度)を放電用コネクタ:CN2に接続し充放電特性をグラフ化する。
@ 放電は(1)の手順で行う。
<充電手順>
@ 充電するBAT1を充電側コネクタ:CN1に接続すると赤色LEDのみ点灯した状態になるか?------->
OK
これで充電が開始される。
A |~▽~~)))~~~~~~~~~~~~|
|Chg x.xxV xxxmA
| VR2 VR1
|Dis x.xxV xxxmA | [〇] [〇]
~~~~~~~~~~~~~~~~~~
・液晶1行目の充電電圧と充電電流を確認し、VR1を回して充電電流を調整
290mAにする。 ------->OK
※ BAT容量に対し、0.2倍〜 0.5倍の範囲で充電する。
3時間位で終了するはず。
<注意>
・300mA以上にすると充放電制御ICが、かなり熱くなる。
B 満充電になると緑LEDのみが点灯する。 -->
OK
C [モニタ開始]タップで15秒毎にグラフが更新される。 -->
OK
以下にプロットが右端まで行って[モニタ終了]となった時の写真を示した。
300mA定電流放電から、放電電流が約0mA(グラフ表示では6mA)になるまでの時間を読取ると約2.9時間なので
BAT1の電池容量= 290mA x 2.9H= 841mAhということになり、定格の860mAとほぼ一致した。
D [データ保存]タップでdata2.txtで保存 --> OK
(最大6ファイルまで保存可)
<最終回路図:Eagle版>
・こちらから、どうぞ→ 「BATERY_MANAGER」
<後閑氏の製作資料>
・以下のページに、概要・全体構成と仕様・タブレットアプリの全体構成・アプリケーションの詳細が記載されてます。
また充放電マネージャのアプリも、ここからダウンロード可能です。
→ 「電子工作の実験室」- [F1ファミリ活用製作例]より、「リチューム電池 充放電マネージャ」
・PICのファームウエア等は「技術評論社」-
[PICではじめるアナログ回路」のページでダウンロード可能です。(充放電マネージャは第6章です)