2013年2月18日月曜日

遅延付きグロープラグヒーター(その4)

やっと製作したプロトタイプボードに合わせて、テストプログラムを作成です。



とりあえず、基本動作として以下を確認

①シリアルポートを使ったブートローダーの動作。
CCS-Cからサンプルで提供されているブートローダーは16F1825などのエンハンスト・ミッドレンジ向けでコンパイルすると出力されるHEXのファイルサイズが大きくコンパイルエラーになるので、領域をいじって動くようにしました。これで、pickit2を接続しなくても簡単に新しいファームウェアがPICにダウンロードできます。

②シリアルポートを使ったデバック
ブートローダーが動いているので当たり前ですが、printfを使用したデバックは有効です。特にpickit2は新しいPICのインサーキット・デバッグができないので・・・・そろそろICDかpickit3を買わないといけないですね。





③プッシュボタンからの入力
これもブートローダーの起動スイッチ(電源ONの時に押されていればブートローダーが起動する。)として使用しているので、ちゃんとON-OFFが読めます。トリガーとして使用するだけなのでチャタリング防止の回路は入れていません。必要ならプログラムで遅延掛けて読むようにします。

④LEDの点灯
システムの状態表示で使用する予定です。アイドリング時は点灯、ヒートの遅延中はゆっくり点滅、ヒート中は速く点滅など。

⑤ADC入力
アナログ→デジタル変換です。今回は10ビットの精度なので、0~5V(または基準電圧4.096V)を0~1023のデジタルデータに変換します。

⑥PWM出力
必要な電圧を得るためにパルスでMOSFETをON-OFFします。今回は3セルリポ(12.6V)から1.2V~1.5Vを生成するので、デューティー比は9.5%~12%くらいになります。

早速デュティー比を設定するためにパラメータをボリュームを使って104に設定。分解能が1024なので、104/1024=10.2%。 PWMの周期は256us(3.9KHz)で、そのうちHighの部分は27us。27/256=10.5%の結果に。VRもそれほど精度良いものではないし、ロジアナの読み取りも誤差があるのでこんなものかな?

注)コロイド電池は1.5Vと思っておりましたが、2Vなんですね。K口さん、アドバイスありがとう。



0 件のコメント: