google-site-verification: google3bd66dd162ef54c7.html
fc2ブログ

USB接続 充電容量チェッカー 製作と解説編

 作ってはみたものの、オフセットが思いのほか大きくて15mA以上の電流が流れないと動き出さない。というちょっと残念な性能になっちゃいました。まあ普通に充電する時は500mAくらいの電流が流れるので致命的な問題では
ないのですが、やっぱり残念。

 ということでモチベーションが下がってしまったのですが、めげずに解説記事を書いておきます。

1.ケース加工
 タカチのTW4-2-8を使い万歩計の表側のピースがぴったり嵌るような穴を明けて固定。万歩計の裏側ケースは外してしまいます。
ケースの加工

2.USBケーブルの処置
 100円ショップのUSB延長ケーブル(Type-A オス/メス)を分解して部品を流用しています。メス側はケーブルを分解して内部のコネクタを取り出しホットボンドで固定。メス側のコネクタを裏返しに付けるといろいろ不便なことになるので要注意です。つまり、私はあまり考えないで逆向きに付けてしまっていろいろ不便な目に遭ってます。笑;

 オス側はケーブルを短く切ってケースから直接出します。ケーブルの抜け留めのために内側はナイロンバンド2本で締め上げ。さらに回転留めのためにホットボンドで固定しています。
内部の状態
 この写真の手前のCPUの上を通っているケーブルがUSBの信号。USBの信号線(+D,-D)は良く撚ったペア線で接続します。ペア線を空中に通しただけだとそこだけインピーダンスが上がって高速伝送にエラーが出易くなるので、信号のペア以外にもう1ペアを2本ともシールドにしてこれらを撚って配線しています。(つまり+D/-Dのペアの廻りにShield線を二本巻きつけた状態)

 これでどれくらい大丈夫かは判りませんが、USB2.0のSDカードを接続して1GBくらいのファイルの読み書きは大丈夫でした。たぶんUSB2.0はOK。USB3.0は無理な気がします。

3.回路(クリックで別窓に拡大)
ハイサイド測定にした回路図
 Q1が2N700となっていますが、正しくは2N7000です。

 オペアンプの部分は以前の記事で解説したので説明は省略します。

 ロジック部も特に変わったことはやっていませんが、一つだけひねりが入っています。それはCPUのI/Oピンのアサイン。回路図を見ると判りますが、信号は全てパッケージのコーナーピンを使いました。こうしておくと配線が楽だし、間違う可能性も少なくなります。どうせいっぱい余っているんだから便利な場所から使おう、ということです。

 なお、この回路全体の消費電流は9mAくらいで、この電流は測定対象外になっています。

4.ソフト
 MsTimer2で50mS周期で割り込みを掛け、ADCの値を読んで積算。基準値を超えたら万歩計への出力を反転させています。消費電流を減らすため初期設定後はスリープに入れています。ちなみにもっと深いレベルにスリープさせると動かなくなりました。
  スケッチはこちら すごく簡単なプログラムです。

5.まとめ
 冒頭に書いたオフセットの問題はありますが、これはこれで持っていると結構重宝します。

 ただ、たったこれだけの機能を作るのにATmage328Pを使うのはもったいないです。腕の良い人ならたぶん8PinのPICやAtinyを使うんでしょう。でも私にはそんなスキルは無いんですよね。

 とはいっても、いつまでもこんな言い訳を言っているのもアレなので、そろそろ8ピンのCPUも使いこなす技術を身に付けたいと思ってます。PCAXEなんて良さそうなので少し調べ始めたところです。

tag : Auduino電流測定

USB接続 充電容量チェッカーの特性測定

 自作のUSB接続 充電容量チェッカーの低電流領域での特性を測定してみたのですが、これがあまり良くなくてがっかり。

▼低い電流の特性
低電流領域の立ち上がり特性
 オペアンプと回路を変えた3種類のデータです。横軸は実際に流れた電流で、縦軸は表示された電流。ま、表示といってもLEDの点滅周期から計算で求めた値です。

・LM358とLMX662はローサイドの検出回路で、シャント抵抗は0.1Ω
・LMC6482はハイサイド検出回路で、シャント抵抗は0.05Ω

 いずれもけっこう大きなオフセットがあります。最終型はLMC6482を使ったハイサイド検出回路ですが、約15mA以上電流が流れないとシステムは反応していないことになります。

 うーん、片電源のオペアンプを使っているので微小入力領域で不感帯が出るのは覚悟していたのですが、ちょっと大きいです。せめて5mAくらいから反応して欲しかったです。シャント抵抗を0.05Ωに下げたのは失敗だったかもです。面倒くさいので元には戻しませんけど。

 まあ、このチェッカーは大きな電流で景気良く充電している状態で使うのがメインなので、これで妥協することにします。

 もっと特性を改善させるのなら、居酒屋ガレージ店主さんに教えてもらったハイサイド電流検出専用アンプのLT6100やLTC6101を使えば良さそうです。こういう石ではハイサイド測定に特化した回路やデバイス特性、レイアウトなどを最適化していると思われ、もっと精度の高い測定が可能になると思います。

 で、ここまでやって気になってきたのがCPUのATmaga328PのADコンバーターの立ち上がり特性。データシートを見るとオフセットは2LSBとなっていますが、実際にどんな特性になっているのか知りたくて測定してみました。

▼ATmaga328P(Arduino UNO)のADCの微小入力での立ち上がり特性
ATmega328PのADCの特性
 ArduinoではVrefは5V(電源電圧)と1.1V(内部Ref)が選択できます。製作したUSB充電容量チェッカーではADCを内部Refの1.1Vで使っていますが、ついでなので5Vの時の特性も測ってみました。

 縦軸の測定結果は、ADCの値を換算してソフトが認識する電圧をプロットしています。なお、ADCの値のままだと1024ステップに離散化されてしまうので、1000回測定の平均値でプロットしています。

 5V入力の場合は12mVくらいのオフセット。LSB=5000mV/1024=4.9mVなので、仕様のオフセット誤差2LSBをちょっと越えています。でもADCの精度のスペックにはオフセット以外の項目もいろいろあるので、まあ仕様の範囲内なんでしょう。

◆システム全体への影響
 で、今回製作した回路では1.1V入力で使ってますが、この時のオフセットはグラフを読むと約4mV。入力アンプのゲインは8.8倍なのでシステムの入力に換算すると0.455mVとなり、シャント抵抗(0.05Ω)の電流に換算すると9.1mAに相当します。

 なるほど、上の方に不感領域が15mAあると書きましたが、この全部がオペアンプのせいではなく、大雑把に言うと半分はCPUのADコンバーターにも責任があったということでしょう。CPUのアナログ入力にも片電源のオペアンプ(ノートンアンプ?)が入っているはずなので仕方ないでしょうね。

◆まとめ
 こういう誤差は片電源アンプの宿命なので、これが顕在化しないように出来るだけ大きな振幅で使う。あるいは入力に正のオフセットを混入させておき、後でソフトで補正する手があるのかも知れません。今後また勉強していきたいと思います。

tag : オペアンプアナログポートオフセットArduinoADC誤差ノートンアンプ

USB充電容量チェッカーの電流測定を、ハイサイドに変更

 USB充電容量チェッカーは一応完成しましたが、作るときから気になっていた点があります。それはシールド線を流れる電流を測定していないことです。参考にしたビットトレードワンの物も回路図や基板の写真を見る限りではシールドの電流を測定していないようです。

 そのあたりが引っ掛かってた折に、よく巡回させていただいているTakaさんのこの記事にUSBハブの内部写真が掲載されていました。この写真を見ると、USBのハブでは電源のGNDラインとシールドはがっちり接続されています。負荷側の回路の作りにもよりますが、こうなっていると下の図のようにシールドにも電流パスが出来てしまい、正しく測定出来ない場合がありそうです。

▼USBのシールド線に流れる電流は測定出来ないかも
USBのシールド線の電流が心配
 (注:USBのピン番号がこの通りかどうかは未確認です)

 負荷を通った電流が戻る時にシールドにも流れていると、シャント抵抗(Rs)を通らないので正しい消費電流が測定できないことがありそうです。これはヤバイです。

 USBケーブルのシールドは、どちらか片側のコネクタではコンデンサと高抵抗で接続されているのでこんな問題は起きないと思ってましたが、どうもいつもそうだとは限らないみたいです。特に、そのものズバリの写真を見ちゃうと対策を真面目にやっておかないとダメだと感じました。

 この問題の簡単な対策としては、シールドとGNDラインを接続してまとめて電流測定する方法です。でもそんな俺様仕様にしちゃうとUSBが予期しない動きをする可能性が高いです。ということで、根本的な対策としては電源のプラス側、つまりハイサイドの電流を測定するしかなさそうです。

 ハイサイドの電流を測定する方法をいろいろ探した結果、一番簡単そうなのがこのLMC6482を使った回路。

▼LMC6482を使ったハイサイド電流測定回路
ハイサイド電流検出回路
 LMC6482のデータシートより転載。

 最初はええー、こんなんでいいのか!と思いました。普通のオペアンプでハイサイドの電流測定する場合、オペアンプのヘッドルームを確保するためにシャント抵抗の電位プラス1.5Vくらいの電源が必要です。ところがこのLMC6482はフルスイング入出力のレール to レールアンプなのでそんなマージンは不要。ということで、電源電圧とシャント抵抗の電位は同じでいいようです。

 ブレッドボードで動作確認してみたらいけそうな感じ。ということでLMC6482を起用して再設計。

▼電流をハイサイド測定に変更(クリックで拡大)
ハイサイド測定にした回路図
 これでハイサイドの電流測定が可能になり、問題解決できました。

▼基板の外観
ハイサイド電流測定に改良した基板
 もう1ピッチ右に寄せて作ればよかったです。

 この回路は微小入力電圧に対する立ち上がり特性がすごく良いので、シャント抵抗を0.1Ωから0.05Ωに下げています。そのあたりの話は回路の解説編の記事でまた紹介したいと思います。

 私が知らなかっただけなんでしょうが、世の中には優秀なオペアンプがいっぱいあるんですね。

【2014/01/31追記】
かずべいさん同じ物を作られたので製作例として紹介します。覚えたてのEAGLEで基板設計したそうです。

tag : オペアンプ電流測定検出回路

カレンダー
05 | 2023/06 | 07
- - - - 1 2 3
4 5 6 7 8 9 10
11 12 13 14 15 16 17
18 19 20 21 22 23 24
25 26 27 28 29 30 -
プロフィール

ラジオペンチ

Author:ラジオペンチ
電子工作を中心としたブログです。たまに近所(東京都稲城市)の話題など。60過ぎて視力や器用さの衰えを感じつつ日々挑戦!
コメントを入れる時にメールアドレスの記入は不要です。なお、非公開コメントは受け付けていません。
記事の内容のご利用は読者の自己責任でお願いします。

記事が気に入ったらクリックを!
最新記事
カテゴリ
最新コメント
リンク
FC2カウンター
検索フォーム
月別アーカイブ
RSSリンクの表示
QRコード
QRコード