arduino自作(2) ATmega168Pを使う
Arduino Unoに使われているマイコンはATmega328Pだが、これをATmega168Pに入れ替えて使ってみる。
フラッシュメモリの容量以外にも、ブートローダーやフューズビットの設定が必要になった。
必要なもの
- AVRライタ 今回はAVRISP mkⅡを使用
- AtmelStudio
- Arduino化したいmega168P
- Arduino周辺パーツ 水晶発振子、抵抗、コンデンサ、USB-シリアル変換器など前回参照
参考にしたページ
Arduino/Arduino の自作/ブートローダを仕込む
http://robo.mydns.jp/Lecture/index.php?Arduino
フューズビットの設定
ATmega168PとAVRISP mkⅡを接続しておく。外部電源の供給が必要なので、USB-シリアル変換器から5Vを拝借しておいた。
AtmelStudioを起動し、Device Programmingを開く(下記画像赤丸)
Fusesメニューより拡張・上位・下位フューズを以下のように設定する。
- EXTENDED = 0xF8
- HIGH = 0xD7
- LOW = 0xFF
ブートローダーの書き込み
MenoriesメニューよりFlashに C:\Program Files (x86)\Arduino\hardware\arduino\avr\bootloaders\atmega内のATmegaBOOT_168_diecimila.hexを書き込む。
スケッチの書き込み
Arduino IDEよりツール>ボード>Arduino Duemillanove or Diecimilaを選択する。
ツール>プロセッサ>ATmega168を選択
あとは確認のためにBlinkスケッチを書き込んで動作を確認した。
動作確認はできて不満はないのだが、フラッシュメモリ16KB中2KBをブートローダーで使うことになってしまうので、使える容量が16KB-2KB=14KBになる。
optibootを使えば512Bに収まるらしいので、使ってみてから容量が足りないようであればoptibootを導入してみるか。