cronos雑記

Virtual_Load

[ 電子負荷 ] FW更新

by on 1月.15, 2013, under Virtual_Load

現在配布しております電子負荷のファームウェアにあった不具合を
Fixしたファームウェアを作成致しましたので、以下にて公開致します。
変更内容は…
1. 電流キャリブレーション機能の修正
電流キャリブレーション中に途中で中断した場合に、中断後も
キャリブレーション時の電流が出続けてしまう不具合を修正しました。

2. bコマンドの不具合改修(再)
bコマンドで表示される経過時間が、32767秒を超過すると
時間表示が負になってしまう不具合を修正しました。
修正後は、4,294,967,295秒まで拡張されています。

適用の程宜しくお願い致します。
リリースノート(Ver1.4)
ファームウェア(HEX)
ファームウェア(ソース、AVR Studio5.0_Project, 130115時点)

Leave a Comment more...

[ 電子負荷 ] FW更新

by on 11月.12, 2012, under Virtual_Load

@honet さんに電子負荷用のGUIを作っていただきました。
@honetさんありがとう!><
https://launchpad.net/vloadctl

現在配布しております電子負荷のファームウェアにあった不具合を
Fixしたファームウェアを作成致しましたので、以下にて公開致します。

変更内容は…
1. アボート機能の追加
 ご要望頂いていた、bコマンド・Pコマンドへのアボート機能を追加致しました。
測定中に”q” or “Q”を入力する事により、測定を途中終了する事が出来ます。

2. bコマンドの不具合改修
 bコマンドで表示される経過時間が、32767秒を超過すると
時間表示が負になってしまう不具合を修正しました。
修正後は、4,294,967,295秒まで拡張されています。

3. bコマンドへ累積消費容量表示を追加
 測定時間間隔と、消費している電流から
消費された容量を計算、mAh単位で表示します。

適用の程宜しくお願い致します。

リリースノート(Ver1.3)
ファームウェア(HEX)
ファームウェア(ソース,AVR Studio5.0 project,121111時点)

Leave a Comment more...

[ 電子負荷 ] FW更新

by on 8月.05, 2012, under Virtual_Load

現在配布しております電子負荷のファームウェアにあった不具合を
Fixしたファームウェアを作成致しましたので、以下にて公開致します。

変更内容は、電流キャリブレーションのデータを参照するブロックで
電流指示値からD/Aコンバータへのデータに変換する処理において
設定電流値全域で、5mA~25mAのキャリブレーションデータのみを
使用していた不具合のFixとなります。
設定精度に関わる変更となります、適用の程宜しくお願い致します。

リリースノート(Ver1.1)
ファームウェア(HEX)
ファームウェア(ソース,AVR Studio5.0 project,120805時点)

1 Comment more...

[ 電子負荷 ] 最終仕様

by on 7月.22, 2012, under Virtual_Load

先日、無事FPGA-Cafeさんに電子負荷4セットを納入させていただきました。
TLの中で触れた最終仕様をblogの方にも掲載しておこうと思います。

耐圧:30V
電流0~5A(1mA Step, 設定確度約0.1%)
電圧モニタ(0~30V, 1mV Step, 確度約0.1%)
電流モニタ(0~5A, 1mA Step, 確度約0.1%)
※設定・モニタ確度はキャリブレーションの精度に依ります。

定電流出力モード
バッテリ放電特性測定モード
電源出力電流-垂下電圧測定モード

PCとの通信:USB経由。(I/Fは電気的に絶縁されています!)

・添付の組み立てマニュアル
http://bit.ly/P6oiDC

・セット内容物
1. 電子負荷ボード (x1ヶ)
2. パワーFET (x3ヶ)
3. 熱伝導シート (x3ヶ)
4. 330Ω抵抗 (x3ヶ)
5. ヒートシンク (穴加工済み x1ヶ)
6. 組み立てマニュアルカード (x1ヶ)

Leave a Comment more...

[ 電子負荷 ] 完成

by on 5月.15, 2012, under Virtual_Load

 今までに見つかった全ての問題に対応し、基板の改版を行った。
完成した電子負荷を使った測定例を以下に示す。

電子負荷の利用例(1): 秋月パワーLEDの順方向電圧-順方向電流特性。
 電流は最小分解能の1mAステップで変化、電圧は1mVステップで記録しています。
 http://bit.ly/JMMOat

電子負荷の利用例(2): 実験用可変電源の負荷電流-出力電圧特性測定。
 http://bit.ly/J3KkWh

電子負荷の利用例(3): Li-ionバッテリの放電特性測定。
 …ダメバッテリの例 http://bit.ly/KfpwHM

 ボードとFETのセットを、FPGA-Cafe Fablab Tsukubaで頒布する予定です。
価格・時期は追ってご連絡します。
http://www.fpga-cafe.com/

 回路図・ソースコードは全て公開します。
ソースについては、機能拡張等を行われた場合フィードバックを頂けますと助かります。
回路図
ソースコード (AVR Studio5.0 project,120515時点)

6 Comments more...

[ 電子負荷 ] ソフト実装中2。

by on 4月.08, 2012, under Virtual_Load

前回までで、電子負荷としての基本的な動作は概ねするようになった。
今までは部品の理論値を使った式でDAC/ADCのデータ処理をしていたんだけど
やはりどうしても誤差が出る。 オフセットも無視出来ない。

・電流値→DAC値の変換をする所
・AD値→電流値の変換をする所
・AD値→電圧値の変換をする所

直線性は非常によく出ているのはチェック出来ていたので
この3箇所について直線近似を実装してみた。
結果、0~5000mAまで5mA程度の誤差に収まってくれた。 0.1%。

キャリブレーションの動作を見ている中で、大きな電流に設定した場合
そう言えば何だかモニタ値がバラ付いて電源が鳴くなーと思っていたら
どうも発振していたらしく。
定電流回路にデフォルトで突っ込んでいた位相補償用のコンデンサが
過剰で動きがトロかったので、後で調整するつもりで外していたのでした。

位相補償用コンデンサの値を680p -> 1100p -> 2200pと試したのが以下写真。
まぁ素直に効いてくれているようで可愛い。よしよし。

  

まだ25Wしか喰わせた事が無いのだけど、一度定格を喰わせたいなぁ。

Leave a Comment more...

[ 電子負荷 ] ソフト実装中。

by on 4月.01, 2012, under Virtual_Load

連日、ソースを書きためている。
足回りとなる、デバイスを動かす部分の実装が全て終わったので
それを基礎に、組み合わせで機能を作っている状況。

文章に書いてしまうと非常にシンプルに終わってしまうのだけど
いくつかの不可解な現象に悩まされていたり、RAMが足りなくなってしまって
どうにも前に進めないちょっと苦しい時期もありました。

●不可解な現象
1.プログラム中でPCに出力する文字列の一部が歯抜けになる。
Hello が、 Hllo とかになっちゃう。
2.ある特定の文字列表示命令を外すと、プログラム自体が暴走する。

結局、入力されたコマンドを解析して数値を得る関数のバッファをクリアする
処理の所で、バッファの容量を超えてクリアしてしまっている所があって
それ以外の変数(もしかしたらプログラムかも)を壊していたのが原因だったよう。
全く予想しない所での問題で、不具合現象の特定に時間が掛かってしまった。

ある日、数値を渡さないコマンドでは不具合が出ず
数値を渡すコマンドを実行した後から動きがおかしくなる事に気がつき
特定に至った。 これは分からんわー (汗

●RAMが足りない
1. UARTバッファの容量
電流値からDACコードを作ったり、ADCコードから電圧値・電流値を作ったり
計算をし始めたところで、浮動小数点を使った直後からRAMの使用率が107%と
上限を超えてしまった。 これはいかん。

ある所から拝借してきたuartのルーチンが原因なのは気がついていたのだけど
1kByteしか無い貴重なRAM領域のうち、60%近い領域がUARTのバッファとして
喰われるのを是正しようと、リングバッファの容量を少しでも減じると
暴走してしまう。 減じないと非常に安定に動作するのに。

この問題は、ChaNさんが公開されているUARTモジュールをもとに
若干の修正を掛けたものを使う事で回避する事が出来た。
バッファも64byteと小さく抑えられて満足。

2. シリアル表示の書き方
今まで、UARTに文字列を送る場合は以下のようにして送っていた。

sendString("Continuous Current Mode\r\n");

固定の文字列はROMを参照しているものだと思い込んでいたのだけど
実際はROM→RAMにコピーして、RAMの方を参照する作りとなってしまい
無駄にRAMを食いつぶしてしまう事を知った。
そこで、以下のように記述を改めた。

sendString(PSTR("Continuous Current Mode\r\n"));

使っている関数がソースと違うが、それはまぁ無視してほしい。
こう書くことでRAMを消費しないようになってくれた。

これらの対策を行う事で、現在はRAM使用率37%前後となった。
これならまだ機能を作り込めるぞ。

という事で、現時点で実装した機能は以下の通り。

・PCから指定した電流を流す機能(CCモード)
これは単純で、1A流してください。 と指定されたのを受けて
指示通りの1Aを流し続けるモード。

その他にも、定電圧(CV), 定抵抗(CR), 定電力(CP)モードを実装する予定。

・バッテリの放電特性測定機能(写真中央, 測定結果は右)
定電流負荷を応用したもので、バッテリの両端電圧が
指定の値になるまで、バッテリ電圧・負荷電流を定時記録するもの。
今回は、Li-ionバッテリ(18650)のジャンクをCVCCで充電して
それの放電特性を調べてみた。

測定間隔は10秒としたけど、1秒~18.2時間くらいまで
1秒ステップで指定出来る。
電流値は0~5Aまで1mAステップ、電圧は0~30Vまで1mVステップだ。
テストに使ったセルは2並列2直列のものだったので
放電終止電圧は3.0Vに設定した。

  

設計しながら書いた原稿を貼っておきます。
回路図
ソースコード。 (AVR Studio5.0 project,120401時点)

…晒すのは恥ずかしいのだけど。
こんなコードでも見て頂ける方が居るのかしらw

Leave a Comment more...

by on 2月.19, 2012, under Virtual_Load


 電子負荷を作っている。
電源を作る事が多くて、電源の評価のためにデカい(数Wとかの)ボリュームを用意して
負荷の代わりにしたりしていたりするのだけど、だんだん扱う電力が大きくなってきて
いつまでもボリュームで って訳には行かなくなってきた。
値の再現性も無いし、そろそろ好きに電流とか電力とか設定出来る負荷が欲しいなって
思ったんですよ。


 ボードこれね。
冬コミに、これの設計編で同人誌の記事書かせて貰ったりしたの。
部品実装まではすぐ終わったのだけど、ファームウェアがなかなか進まなくて。
先週辺りまでで、やっと関数が揃ってきて面白くなってきた感じ。
今日は最後のデバイス、A/Dの初期化・データ受信の関数を作ってました。
割とすんなり動いてくれたと思う。

来週からは電子負荷としての機能の方を書き進められたらいいな。

Leave a Comment more...

Looking for something?

Use the form below to search the site:

Still not finding what you're looking for? Drop a comment on a post or contact us so we can take care of it!