2010年5月5日水曜日

Arduinoのリセット~その後

Arduinoのリセットについて、まだやってました。MTM05の準備もしないで大丈夫なんだろうか。

Arduino本体に手を加えずに確実に起動させる方法を考えていたのだが、完全ではないが十分な成果が得られた。ResetHelperと呼んでいるが、+5V、GNDとRESET信号の 3つで動作する、ちょっとした回路だ。これもシールドと呼べるのだろうか。

前回までのデータと見比べて欲しいが、まずUSBケーブルを差した場合。
ドライバの影響で繰り返す部分では時間が 50ms程度になってしまっているが、最初の電源立ち上り時には 250ms程度のリセット時間が確保できている。10Vまで上昇してしまう現象にも対処している。

外部電源を使用した場合はこのようになる。
250ms程度のリセット時間が確保できている。これは Ethernet shield等の確実な起動には効果的だろう。

そしてこれがスケッチのアップロード時の動作。
一発掛ければ十分なはずだが、何の都合か 3回目が本番のようだ。アップロード中、DTRはローを維持している。

最後にRESET信号にコンデンサを追加してしまった場合は、スケッチのアップロード時にこのようになる。
上記のブートローダ起動部分の拡大だが、残念ながら 1箇所補正できていない。しかしこの後のリセットパルスがブートローダー起動の本番なので、正常にアップロードできる。補正しきれていない部分は、使用した部品の特性が原因なのだが、実害がないとはいえ解決できずちょっと残念だ。

Arduino本体に手を加えずにできるのは、このあたりが限界かと思う。
実際に困っている話しはあまり聞かないのだが、外部電源を使うと挙動がおかしい等で困っている方は相談して欲しい。

0 件のコメント:

コメントを投稿