Darkside(https対応しました) |
2012年9月21日(金) 21:40
元の制御ループには、3つのモードがある。
電源OFFと通常のフィードバック制御、そして電源ON時の出力安定待ちである。出力安定待ちは1ミリ秒のウエイトを入れてあり、合計15ミリ秒の単純な時間待ちループである。ループカウンターを減らして行き、ゼロになったら通常のフィードバック制御に移行する。
そこでまず、カウンター初期値を書き換えて100ミリ秒まで待つようにした。続いて、ゼロになったら故障発生とみなして飛び先をそっちの処理に変更。
カウンターがゼロにならない場合はそのままループ先頭に戻していたが、そこで電圧チェックを行なうことにした。
出力安定待ちループ中は、D/A出力値は0であり約91Vが出力されて正常である。だから、電圧が89V以上あるかどうかを確認し、なければループ先頭へ。超えていれば通常のフィードバック制御に移行。
これにより、出力電圧が上がるまで待つことと、待ち過ぎると故障扱いするという2つの機能が実現できた。
出力切り替えHで実際に動作させると、前回同様に一瞬でエラーに入ってしまった。PICのフラッシュメモリーを読み出して、エラー時の値を確認する。
項目 | エラー時の値 | 10進数 | 対応実値 |
D/A出力 | 0680h | 1664 | |
電圧 | 0914h | 2324 | 94.1V |
電流 | 0313h | 787 | 1.57A |
PD値 | 0306h | 774 |
D/A出力が充分に大きくなっているので、出力安定待ちは脱しているようだ。そして通常のフィードバック制御を
680h / 20h = 52 回ほど回ったところで、出力電圧が97V以下になっているのを検出して故障判定されてしまった。
D/A出力値が 0324h で出力電圧は100Vになるので、0680h なんて大きな値を出力して94Vは明白に異常である。とはいえ、50回以上は正常だった。どの程度のノイズが乗ったのか?
これだけでは情報不足なので、今度は出力電圧をオシロで確認しつつ動作させてみた。
やはり一瞬でエラー判定されたものの、オシロの波形は想定外。約100Vで収束し、収束後0.03秒ほどで DC-DCコンバーターがOFFになった、という感じである。この時のエラー時値は、
項目 | エラー時の値 | 10進数 | 対応実値 |
D/A出力 | 03E0h | 992 | |
電圧 | 08CCh | 2252 | 91.2V |
電流 | 0195h | 405 | 0.81A |
PD値 | 017Bh | 379 |
さっきより早期に過小電圧エラーに引っ掛かっている。
それにしても約100Vに収束したように見えるのは何なんだ?
表面的ではないところにバグが潜んでいるかもしれない。一見して原因が明白、という挙動ではない。
written by higashino [ファイバーレーザー] [この記事のURL] [コメントを書く] [コメント(0)] [TB(0)]
Generated by MySketch GE 1.4.1
Remodelling origin is MySketch 2.7.4