AVRマイコンでのモーター制御ができるようになり、喜んでいたのですが・・・
今、私はAVRマイコンをブレッドボード上で配線して実験しています。
パソコンに、AVRプログラマ(AVR mkII)を接続し、そこから出ているISP(6ピン)をブレッドボード上のATMEGA88に接続しています。
これで、パソコン上で作成したプログラムをAVRマイコンに転送して動作実験をしています。
ISPを接続したまま、
プログラム作成⇒転送⇒動作確認
を繰り返しています。
たまたま、(ISPを接続したまま)パソコンの電源を切りました。 この状態で、AVRマイコンが動くかどうか確認したら、うんともすんとも言いません。
「あれ、電源はパソコン側から供給してないハズなんだけどなぁ」
ISPを外してみると、ちゃんと動きました。
「単体で動かすときにはISPは外さないとダメなのか・・・」
♪たらりらった~らった~♪
「M&Y父」はレベルが上がった。
「AVRマイコンを単体で動作させるときには、ISPを外すと正しく動作する」を覚えた。
じゃあ、ISPを外してもう一回動作確認だ! と繰り返していくと、いままでモーター制御でリセットしまくっていたのが嘘のようになくなりました。
あの誤動作は幻だったのか?
巨大な電解コンデンサを抜いても、全然問題ありません。
これまでの、私の努力は何だったの?
そうすると、今後は
プログラム作成⇒ISP接続⇒転送⇒ISPを抜く⇒動作確認
という面倒な手順になるのかなぁ。
ちょっと脱力感です。
これも、マイコン開発の常識なのですかねぇ。
パソコンとつながっている状態であればそれこそ何かしら通信をする状態なのでずっと信号レベルがLかHになっているはずです。
そういう不安定な状態のものを一緒にくっつけた状態であげたらプログラマ自体にも悪い影響が出てしまうかもしれません。
動作確認をするときはISPケーブルを抜いたほうがいいのが一般的だと思います。
ただ、PICの場合は開発環境(MPLAB)で動作するかしないか指定できるので、ICSPをさしっぱなしでも動くんですよ。
こんにちは
いつも、貴重な意見をありがとうございます。
落着いて考えてみると、rem@TIMS様のコメントの通り、電源の切れたプログラマを接続したままでは、どのように動作するか不明・・・が正しいように思えてきました。
安定した動作をさせるためには、プログラマを抜くのが正しいようですね。
逆に、プログラマの電源が入っているとき(パソコンと接続されているとき)もやっぱり同様なのでしょうか?
こちらの実験(AVRマイコンですが)では、プログラマを挿したままだと、モ-ター制御でリセットが掛かりまくる。 プログラマを抜くと、(共通の電池でも)リセットが掛からず、正しい動作をする。 となっていますので、どちらにしてもプログラマを抜いて動作確認をした方が良いようです。
PICは、プログラマを挿したままで、動作確認可能だとすると、そのような細かい部分の作りがしっかりしているのでしょうね。