<< 2024/04 >> | 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 |
|
電圧ロギング&スイッチャー その4
12/03/11 23:55 / 電子工作
ロードテストも終わったと思ったのですが、時々フリーズしてしまいます。
原因を探っていたのですが、テストの為に安定化電源をログ端子に接続していたのですが、どうも基板側を動作させたまま安定化電源をいきなり切るとフリーズします。 もしかしてサージ??と思って回路の方を見直していたのですが、問題なさそう。 ファームの方がおかしいのかな?と色々と出力させてデバッグしていたのですが、悩むこと数時間。ようやく原因が判明。 PIC で AD変換を行う場合、 BSF ADCON0,GO こんな感じで ADCON0 の [Go]/Done の Bit を立てて Go/[Done] が 0 に戻ったら(BTFSCとかで判定)変換 完了という仕組みになっています。 んで BSF ADCON0,GO Loop1 BTFSC ADCON0,GO GOTO Loop1 こんな感じにポーリングさせていたんですね。 少し基礎的な話になるのですが、PIC の AD変換は、GO した後に内部のコンデンサに充電してから変換を行うということです。 入力端子にかかる抵抗によって充電時間(アクイジション時間と言います)が変わるので、計算するのが面倒だからポーリングさせていたのですが、ここに落とし穴がありました。 充電時間は非常に短い(数十マイクロ秒)のですが0ではありません。つまり「充電している途中」という状態がある訳です。(A/D変換をしていない場合は 0 のままなのでそのままループしないで普通に動くというのも、落とし穴でした) そして、この充電している途中に入力電源が切れると、どうやらいつまでも充電が完了しないので(GO/Done bit が 0 に戻らない)ここで永久ループに落ち込むようなのです。 アクイジション時間をきちんと計算して・・・は面倒だったので、充分なウェイトを置いてウェイトから抜けても Go/Done bit が 1 だったらタイムアウトするような処理に変更をしたら、きちんと動くようになりました。 (測定頻度が低いのでOKな方法です。測定頻度を高くする場合は、ギリギリまでウェイトを短くしないと Count/Sec を稼げません) アセンブラだからと言って安易にポーリングしていました。 大いに反省です。 これでほぼ回路側は完成しましたので、後は Windows 用のサービスアプリを作るだけです。(GUIアプリは完成しているので、サービスアプリに移植するだけですが) あと、ソーラーパネルの変化などによって色々なパターンを作りたいと思います。(12.5V を切ったらリレーを off にするのが基本ですが、晴天の日でも、冬場に厚い雲で一時的に大きく下がったりすることもあるので、11.5V を切ったら問答無用で OFF、11.5V 〜 12.5V の間が1分続いたら OFFとか。発電効率を上げるというのも重要なのですが、バッテリー運用も効率よく出来たら良いと思いますので) [更新日付:2012/03/12 01:46:22]
トラックバックを見る(0) Log Link [https://akisoftware.com/cgi-bin/blom.exe?akisoft+sl+7eef839577107b73b93d6451a1a4e4713f877091] TB Link [https://akisoftware.com/cgi-bin/blom.exe?akisoft+tb+7eef839577107b73b93d6451a1a4e4713f877091] 記事へのコメント コメントはありません |
@AKISoftOfficialをフォロー
掲示板 サポートBBS PMailServer BBS アクセスの多い記事
最新記事(カテゴリ別)
PMailServer2 Version 2.53 をリリースしました。
04/08 00:50 フリー版からの製品版移行時の MTA 並列数について 02/17 23:52 メールサーバーの開発を始めて20年 02/07 21:46 PMailServer2 Version 2.52a をリリースしました。 12/26 14:02 PMailServer2 Version 2.52 をリリースしました。 10/01 10:48 PMailServer2 Version 2.51b をリリースしました。 09/19 01:43 PMailServer2 Version 2.51b(仮) Memo 09/12 00:33 PMailServer2 Version 2.51a をリリース、及び脆弱性についてのお知らせ 09/05 01:15 PMailServer2 Version 2.51a Memo 08/21 00:48 アドレスV125(K5)のスターターリレーの交換 08/04 10:10 最新コメント
コメントはありません
UUアクセス数
今日は 269回
昨日は 432回 トータル 305557回 3ヶ月記事別ランキング
プロフィール
Z80から68系、8086系を経由して
Pascalに移行。現在は Delphiをメインに C/C#も囓ってみたり。 「無い物は作れ」の精神で年がら年中なにかを作っています。 すぐ自前で作りたがるので無駄に工数が上がったりして自爆してみたりもします。 好きな物は麺類とお煎餅 Blom内検索
BLOM Version 1.39 ©2007-15 A.K.I Software all rights reserved. |