ここ1週間ハマっていた顛末を。
物事には必ず原因が有ると言うことです。
ちょっと前までATtiny202のプログラムを作っていました。
参照したのはここ。
kosakalab
少し他の仕事で手を取られていたので間が空きましたが、プログラムの続きをしようとしたところ、全く書き込めなくなりました。
この間までちゃんと出来ていたのになぜ?
と思いつつ操作の見直しをしたり、同じような症状がないかググってみたりしても一向に書き込めない。
「ブートローダの書き込み」は成功するのに「マイコンボードに書き込む」ができません。
Arduino IDEのバージョンを下げてみたり、インストールし直したりと、いろいろやってみるも全てダメ。
数日経って困り果て @kimio_kosaka さんに助けを求め、色々アドバイスをもらいました。
しかしどれもうまくいきません。
と言うことは、きっと根本的な間違いをしているに違いないと思い、もっと範囲を広げてググってみたところ、「書込装置を使って書き込む」を見つけました。
メニューにこんなのがあったんだ!
やってみるとすんなり書き込めました。
そうです。
私はずっと「マイコンボードに書き込む」ボタンばかりやっていたのが問題でした。
でも、以前はこのボタンでうまくいっていました。なんで?
さらにググってみました。
そしたら、違うマイコンですが「ブートローダ無し」を選ぶと言うのを見つけました。
そうです。ずっと私は ATtiny412/402/212/202 w/Optiboot を選んでいました。
ATtiny412/402/212/202 に替えたら「マイコンボードに書き込む」ボタンでアッサリ書き込めるじゃないですか。
そうかーー。
この時はずっとボード選択で私の目には下のように見えていて、他に選択肢が無いものと思い込んでいました。なんでだろう?
人は目に映っていても見ようとしなければ見えなくなってしまうんですね。
なので、見直しの際にもここは間違い無いと思ってスキップしていました。
もちろん kosakalab には正しくこの図がありました。
しかも、ツールメニューに「ブートローダを書き込む」とあるので疑問を持ちませんでした。
もちろんブートローダ無しを選んだ場合はブートローダは書き込まずヒューズの設定のみになります。
さらに、ブートローダ無しの場合は「マイコンボードに書き込む」ボタンで自動的に書込装置を経由して書き込んでくれ、ブートローダ有りの場合は書込装置を経由しないで直接デバイスのブートローダに対して書き込むのです。だから書き込めなかったのです。
これで全ての謎が解けました。
それぞれの機能は正しいのですが、ちょっと変な選択をしてしまうと訳が分からなくなってしまったと言う訳です。
ここで教訓。
見直しの際にはここは間違っていないと思うところも入念にチェックすべき。
※コメント投稿者のブログIDはブログ作成者のみに通知されます