ATmega88(P)用ブートローダ

Kimio Kosaka

 

Hack No.4


ATmega88(P)用のブートローダをmakeしてArduinoに搭載して見ます。 2010.01.04現在,秋月電子においてATmega88P,168P,328Pがほぼ同じ価格で提供されており,88Pを新規に購入してArduinoに搭載する意義はありません。


  1. Arduino にATmaga88, ATmega88Pを積む

    「bird.dip.jpさんのArduino with ATmega88」 の方法を模倣しArduino-0015付属のソースコードを改編してDiecimilaにAtmega88,88Pを積んで見た。

    • ATmega88ブートローダ・ソースコードの組み込み
      atmega88_2009_05_25.zipをダウンロードして展開します。
      生成されたatmega88フォルダをarudino-0015\hardwaer\bootloader\配下に置きます。
    • ブートローダのmake
      コマンドプロンプトでhardwaer\bootloader\atmaga88\ に移動して, make 88 または make 88P でブートローダのHEXファイルを生成します。 生成されるファイルはATmegaBOOT_88.hex または ATmegaBOOT_88P.hex です。 (atmega88_2009_05_25.zipに同梱しているmake済みのhexファイルは own risk でお使いください)
    • ブートローダを書き込み
      FTDI BitBang その他の方法でブートローダを書き込みます。
      ライタソフトにavrdudeを使う場合ATmega88Pのデバイス情報が通常のavrdude.confには記述されていないので, このavrdude.confを使って書き込みを行ないます。 ただし,このavrdude.confのefuseの記述には誤りがあるようです。efuseに0x00以外の値をセットして書き込んではいけません。 ブートローダが正しく動作しなくなります。
    • Arduino-IDEにArduino Diecimila w/ ATmega88 を登録
      hardwaer\boards.txtに以下を追加します(ATmega88の場合)
      atmega88.name=Arduino Diecimila w/ ATmega88
      atmega88.upload.protocol=stk500
      atmega88.upload.maximum_size=6144
      atmega88.upload.speed=19200
      atmega88.bootloader.low_fuses=0xff
      atmega88.bootloader.high_fuses=0xdd
      atmega88.bootloader.extended_fuses=0x00
      atmega88.bootloader.path=atmega88
      atmega88.bootloader.file=ATmegaBOOT_88_diecimila.hex
      atmega88.bootloader.unlock_bits=0x3F
      atmega88.bootloader.lock_bits=0x0F
      atmega88.build.mcu=atmega88
      atmega88.build.f_cpu=16000000L
      atmega88.build.core=arduino

  2. ATmaga88P

    Arduino-IDEがチェックしているデバイス・シグネチャ値はブートローダ内に記述してある値なので, ATmega88用のブートローダを88Pに書くとArduino-IDEは88Pを88と認識します。


[もどる]

update 2010.01.04

Creative Commons License