2014年1月12日日曜日

ブレッドボード上でArduinoを作ろう(その2):MacでAVR ISP mk2を使ってbootloaderを書き込む

前回ブレッドボードArduinoを作りましたが、その際にbootloader書き込み済みのマイコンを使っていました。今回は、bootloaderを書き込んでいないATmega328pにbootloaderを書き込んむ方法を紹介します。

用意するもの
部品個数購入先メモ
AVR ISP mk21秋月電子とかAVRライター(書き込み機)
AVRマイコン ATmega328P-PU1秋月電子とか

あと前回のブレッドボードArduinoを作ったときに使ったマイコン以外の一式が必要です。

配線の接続
回路図としては下記のようになります。図中右下の6ピンの配線を参照してください(わかりづらくてスミマセン)。また、回路図はATmega328pのピン番号が書かれています。ATmega328pのピン番号は黒いチップの角にある○印を1pinとして反時計回りにpin番号を数えていけばOKです。
回路図:右下の接続を参考にしてください

接続にはジャンパワイヤを使います。つないだ様子は下記の写真のようになりますが、つなぐ場所がわかりづらいので、回路図を参照してつないでください。
AVR ISP mk2を接続

Macからbootloaderを書き込む
[1] Arduino.app内のContents/Resources/Java/hardware/tools/avr/binというフォルダの中にavrdudeが入っています。これを使ってbootloader(hexファイル)を書き込みます。

[2] bootloaderとなるファイルは、Arduino.app内のContents/Resources/Java/hardware/arduino/bootloaders/atmegaの中にある、ATmegaBOOT_168_atmega328.hexというファイルを使います。

上記[1][2]を実行するシェルスクリプトを書きました。下記のファイルを適当に名前をつけて保存し、実行してしまえばOKです(基本的にはArduino Playgroundの解説とだいたい同じ内容です)。

#!/bin/bash
HARDWARE=/Applications/Arduino.app/Contents/Resources/Java/hardware
AVRDUDE=$HARDWARE/tools/avr/bin/avrdude
AVRDUDE_CONF=$HARDWARE/tools/avr/etc/avrdude.conf
BOOTLOADER=$HARDWARE/arduino/bootloaders/atmega/ATmegaBOOT_168_atmega328.hex
OPTIONS="-C $AVRDUDE_CONF -P usb -p atmega328p -c avrisp2"
#sudo $AVRDUDE $OPTIONS -t -v

# Erase chip write lock and fuses 
sudo $AVRDUDE $OPTIONS -e -U lock:w:0x0f:m -U lfuse:w:0xff:m -U hfuse:w:0xda:m -U efuse:w:0x05:m

# Upload bootloader code 
sudo $AVRDUDE $OPTIONS -D -U flash:w:$BOOTLOADER:i 

# Lock boot section 
sudo $AVRDUDE $OPTIONS -U lock:w:0x0f:m

このファイルをとりあえずhoge.shとしておきましょう。あとは、このファイルのアクセス権を変更(chmod)し、ターミナルから実行します。

chmod 755 hoge.sh
./hoge.sh

以上です。

0 件のコメント:

コメントを投稿