前回ブレッドボードArduinoを作りましたが、その際にbootloader書き込み済みのマイコンを使っていました。今回は、bootloaderを書き込んでいないATmega328pにbootloaderを書き込んむ方法を紹介します。
用意するもの
部品 | 個数 | 購入先 | メモ |
---|---|---|---|
AVR ISP mk2 | 1 | 秋月電子とか | AVRライター(書き込み機) |
AVRマイコン ATmega328P-PU | 1 | 秋月電子とか | ー |
あと前回のブレッドボード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 件のコメント:
コメントを投稿