【追加訂正】Japaninoのクロック設定を書き換える方法::補足

昨日、「Japanino のヒューズビットを書き換えて、実は使われてなかった水晶を使ってやりましょう」という記事を書きました。この中で

デフォルトは内蔵CR発信設定になっております。ブートローダーの書換(Q13)で、外部Xtal発信に変更できます。(通常使用で変更の必要はありません)

http://otonanokagaku.net/japanino/faq/#q30

は間違ってますよ!みたいなことを書いたのですが、すみません、私が間違っていました。使用するソフトウェアによっては、ブートローダの書き込みと同時にヒューズビットも書き換えが行われます。Arduino IDE に組み込まれた機能を使ってブートローダを書き込む場合も、ヒューズビットは書き換えられます。


ただし、学研さんも(まだ)間違ってます。学研さんが提供してしている Arduino IDE の設定そのままでは、Japanino のブートローダ書き直しを実施しても「クロックの設定」はそのまま(内部発振のまま)です(※ 2010/06/13 現在)


以下、Arduino IDE (0018 Japanino 版)を使用して Japanino のヒューズビットを書き換えて、Japanino が「外部発振」となるようにする手順を記します。(※ たぶん Windows 版限定の気がします。)


まず、Arduino IDE の中の設定ファイルを書き換えます

Arduino IDE 上でブートローダを書き込む場合、その設定は「boards.txt」というファイルに記述されています。場所は、

....\arduino-0018-japanino-2\arduino-0018\hardware\arduino

「....」の部分は「c:\Program Files」など、Arduino IDE を置いた場所です。
このフォルダ内にある「boards.txt」をテキストエディタ(メモ帳でもいいよ)で開きます

この 9行目あたり

japanino.bootloader.low_fuses=0xe2

ここを書き換えます。先日はこの「lFuse」(= low_fuses)を「0xD6」に書き換えたわけですが、ここでも「無関係と思われる部分は書き換えない」という方針のもと、元々の設定を信じて上位 4ビットは継承し「0xE6」に書き換えることにします。

japanino.bootloader.low_fuses=0xe6

保存して閉じます。


因みに、将来的には 学研 Japanino ”特設”公式サイトでダウンロードできる Arduino IDE もバージョンアップされる可能性があるわけですが、その場合、「lFuse」の「下の桁」が 0x6(16進数で 6)ならば(…にすれば) OK だと思われます。

AVRライタを準備する

で、Arduino の通常使用状態(Japanino / Arduino を PC に USB 接続した状態)そのまんまでブートローダ書き込みができるのかというと、残念ながらそういうわけではありません(同様に不成功に終わっている先達多し*1)。 一見すると

この「w/ Arduino as ISP*2でできそうな気がしてしまいますが、これは恐らく http://www.arduino.cc/playground/Code/Programmer2 のことを指しているのではないかと思われます。(…ので、これを使うにはこのあたりを参照しつつ準備が必要。)
ですので、例によって小坂先生のレポート「Arduino-IDE から FTDI Bitbang method を実行する」を参考に(というより 100% コピー)しつつ、自環境の Arduino IDE を書き換えます。


……… いろいろと、書き換えて、ファイルコピーして、


このように「w/ FTDI Bitbang」がメニューに現れれば OK 。
あとは、昨日の記事と同様に、FT232RL モジュール若しくは Arduino を介して ターゲット Japanino を接続します。

書き込む

Arduino IDE にて、ボードの機種が正しく「Japanino」になっているか、また、接続先ポートがあっているか確認してください。


確認できたら同じメニューから [ブートローダを書き込む] > [w/ FTDI Bitbang] を選択。
すぐに開始されますが、 2分ほど無反応になります。慌てず待ちましょう。

終了すると無言のまま(あたりまえです)ウィンドウの下ペインにわらわらわらっと赤い字が出て戦慄しますが、正常終了でも赤い字が出ます。
試しに avrdude-GUI.exe を起動してヒューズビットを読み出してみると

確かに先程「boards.txt」で設定した値と同じ数値が返ってきました。成功です。


因みに、クロック(水晶)の設定とは別のところ(lFuse の上位)が若干書き換わったわけですが、何がどう変わったのかは私にはわかりませんでした。ただ、ひょっとすると起動遅延時間が若干長くなったかもしれません。Mac 向けの対策として、使えるかもしれませんが、詳細は不明です。


ほんと、くどいようですが念の為

上記内容にを参考にして何かなさる場合は、飽くまで「自己責任において」実施してください。手順を誤ったり、異なる操作を加えたり、また、使用環境の違いや予期せぬハプニング等々によって、最悪、Japanino / Arduino 若しくは PC に復元不能な不具合が生じることが無いとは言い切れないことを、予め御承知おきください。…飽くまで、念の為。


それにしても…

ヒューズビットの情報って重要な話だと思うのに、ちゃんと載ってるところがすぐ見つかるところにないっていうのは、一体どういうことなんだろうなぁ…。(ぼそり)

*1:これこそ飾りかよと。

*2:「w/」は「with」の略記