[Japanino] 外部水晶発振子を使う
先月買った大人の科学マガジン Vol.27 テクノ工作セットは相変わらず付録にも手をつけず放ったらかしにしてあった。少しはいじってみようかとネットをうろついていたら「水晶が付いているのに、実際は使われていない」なんて話を見つけた。クロック精度がどうとかはともかく、せっかくついているものがただ基板に乗っているだけなんて勿体無い。
外部の水晶を使うにはヒューズビットというものを書き換えればいいらしい。正攻法ではAVRライタとかAVRプログラマを手に入れる必要があるが、代わりにArduinoを使う方法もある。幸いというか間抜けというかここに書いた通りArduinoが手元にあるので、こいつを使ってやってみる。「というもの」とか「らしい」とか無知丸出しだが、それでもやってしまう。
「半田付け無しでJapanino同士ヒューズビットを再設定する」を参考にほぼその通りやってみた。
Arduino playground - Programmer2からスケッチ(http://www.arduino.cc/playground/uploads/Code/programmer2.txt)をもらってくる。
1014行目と1016行目を書き換える。
1010 case atmega168: 1011 serialprintflash(PSTR("Writing mega48/88/168 fuses: ")); 1012 CMD_Write_Fuse_Extended( 0xf8); 1013 delay(10); 1014 CMD_Write_Fuse_High( 0xdf); // 0xdf を 0xdd に 1015 delay(10); 1016 CMD_Write_Fuse_Low( 0xef); // 0xef を 0xc6 に 1017 delay(10);
ArduinoとJapaninoを結線する。
Arduino Japanino +5V --- +5V GND --- GND D10 --- Reset D11 --- D11 D12 --- D12 D13 --- D13
参考にしたページではヒューズビットの読み出しに別のツールを使っているが、上で取ってきたスケッチに読み出しのコマンドがあるのでここではそれを使っている。
ArduinoとJapaninoを説明通りにつなぎ、スケッチをArduinoにロードする。
Arduino IDEのシリアルモニタを19200baudに設定。
"*s"を送ってシグネチャを確かめる。
"SIGNATURES1e,94,06,ff,"が帰ってくる。通信成功。
"*u"を送ってFuseビットを読み出す。
各値を16進表記で確認すると、参考にしたページと同じだ。
Lock Bits: 11111111 => FF Fuse Low: 11010010 => D2 Fuse High: 11011110 => DE Fuse Extn: 11111000 => F8
"*A"でFuseビットを書き換える。Aは必ず大文字で。小文字だとブートローダの書き換えになってしまう。不安ならスケッチで"*a"を無効にしておけばいい、というかそうした(488行目から4行をコメントアウト)。
書き換わっているかもう一度"*u"を送って確認。
Lock Bits: 11111111 => FF Fuse Low: 11000110 => C6 Fuse High: 11011101 => DD Fuse Extn: 11111000 => F8
うまく行ったらしい。
動作確認は気が向いたらいつか。
« [PowerShot G11] オートブラケット撮影 | トップページ | [Japanino] クロック精度 »
「Arduino」カテゴリの記事
- [Japanino] 光残像キット(2010.06.29)
- [Japanino] snprintfを使ってみた(2010.06.23)
- [Japanino] クロック精度(2010.06.19)
- [Japanino] 外部水晶発振子を使う(2010.06.16)
- Japanino(2010.05.26)
この記事へのコメントは終了しました。
コメント