QLOOKアクセス解析

2013年01月12日

PIC10F322の不審な動き

PICラーメンタイマーを作る時に最初に使った10F322ですが、振動を受けた時にリセットしてしまうことがありました。いろいろ試すと、どうも圧電サウンダからの信号が大きすぎるとリセットがかかるようだったので、ダイオードを2本をVddとGNDに繋いで振幅制限して、やっとまともに動くようになりました。

 

今回は、ポートにタクトスイッチをつけて、押す毎に動作を変えるプログラムを書いたのですが、これがまたおかしな動きをしました。

スイッチをカチャカチャ何度も押していると、突然意図しない動きをすることがあります。あれこれ考えられる部分を書き直してみても改善しませんし、今回も途中でリセットがかかっているような動きに見えます。チップを入れ替えてみると発生頻度は減りましたが、やはりおかしいです。

原因究明のために、最小限のハードとシンプルなプログラムでテストしてみました。

部品は、10F322、 47kΩプルアップ抵抗とタクトスイッチ、 直列抵抗470ΩとLEDが2セット。

これで、スイッチを押す毎にLEDが交互に点灯するプログラムを書きました。電源投入直後はLEDは両方とも点灯です。そこからスイッチを1回押すと片方だけ点灯し、もう一度押すと反対側だけ点灯するようにしました。

そしてスイッチを何度も押していると、両方のLEDが点灯する場合がありました。

プログラム上、両方点灯はリセット直後のみなので、途中でリセットがかかっているようです。念のため最初に両方が消灯するよう書き換えてみると、やはり時々両消灯が起きます。

 

なぜリセットになる?

先ほどのプログラムは、最初のプログラムから不要部分をコメントアウトして必要な部分を書き足したもので、ごちゃごちゃしているので再度一から書き直しました。

すると・・・・途中で両点灯や両消灯することが無くなりました。この違いは何なのか、プログラムをよく見比べると、原因がわかりました。

正常に動くほうは、内蔵プルアップをOFFにしていました。これをONにすると異常が起きることも確認できました。

そして、内蔵プルアップONのまま外付けの抵抗を外してみると・・・正常になりました。

 

結論

外部プルアップしてる時は、内蔵プルアップを使ってはダメ!

回避方法がわかったので、それ以上は調べません。

製造ロットによっては両方使っても大丈夫かもしれませんね。

 

お手間でなければ応援クリックいただくと嬉しいですにほんブログ村 その他趣味ブログ 電子工作へ
にほんブログ村

posted by R.yawatta at 22:14| 愛媛 | Comment(0) | TrackBack(0) | 自作・電子工作 | このブログの読者になる | 更新情報をチェックする
この記事へのコメント
コメントを書く
お名前:

メールアドレス:

ホームページアドレス:

コメント:

認証コード: [必須入力]


※画像の中の文字を半角で入力してください。

この記事へのトラックバック
×

この広告は180日以上新しい記事の投稿がないブログに表示されております。