自作Arduinoボード向けブートローダ/プログラムライター

本研究室では過去に,Arduino UNO等で使われているものと同じマイコン ATMEGA328にArduinoブートローダを書き込む「タハライター」を開発した.
タハライターを用いることで,安価なATMEGA328をArduino化して使うことが可能となる.
タハライターではDIP型のATMEGA328を対象としていたが,表面実装版のATMEGA328へのブートローダ書き込みには対応していなかった.
そこで,DIP型も表面実装型も関係なく,ATMEGA328を搭載した自作Arduinoボードに接続してArduino化させるブートローダライター(以下ATMEGA328ライター)を新たに開発した.
タハライターではATMEGA328を基板に実装する前にAruduinoブートローダを書き込むのに対し,ATMEGA328ライターはあらかじめ自作基板に実装されたATMEGA328にArduinoブートローダを書き込む.よって,自作基板にはATMEGA328ライターと接続するための専用端子が必要となる.
一方,プログラムを書き込む機能については,タハライターと同じである.
本ページでは,ATMEGA328ライターの構成と,使い方について説明する.



1. ライターの構成

この装置は、ブートローダーライター(上段)とプログラムライター(下段)の2段で構成している。それぞれ、図1-1のようにPCとATMEGA328の自作ボードを接続する。

図1-1 構成図


2. ブートローダライターとしての使い方

ATMEGA328ライターを用いてブートローダーとプログラムの書き込みを行う場合、書き込み先のATMEGA328にセラロックと、表1-1、表1-2のピンにつながるコネクタを用意する必要がある。

表1-1 ATMEGA328とコネクタの配線(ブートローダー用)

ATMEGA328 ピン名 NHコネクタ ピン番号
CSK
MISO 2
MOSI 3
Reset 4
GND 5
VCC 6


表1-2 ATMEGA328とコネクタの配線(プログラム用)

ATMEGA328 ピン名 NHコネクタピン番号
VCC
GND 2
TX 3
RX 4
Reset 5

また、プログラムの書き込み時はResetピンを5Vにプルアップする必要があるため、ブートローダーの書き込みかプログラムの書き込みかを選択するためのジャンパーピンを自作基板上に用意する必要がある。下記のPDFはプログラムとブートローダーを書き込むための最低限の構成の自作基板回路例(ATMEGA328P-AU 表面実装版)である。
ATMEGA328_Arduino_compatible_board.pdf


3. ライターのセットアップ

最初に、ブートローダーをATMEGA328に書き込むために必要なプログラムをArduinoUnoに書き込む必要がある。ArduinoUnoにブートローダー書き込みシールドは装着せずに、ArduinoUnoとPCを接続する。(シールドを装着するとArduinoUnoへのプログラム書き込みは行えない)
ArduinoIDEを起動して、上部メニューより、ファイル>スケッチ例>11.ArduinoISP>ArduinoISPを開く。

図3-1 ArduinUnoへのプログラム書き込み(1)

次に、ArduinoUnoへの書き込み設定を次のようにする。
ボード設定:Arduino/Genuino Uno
書き込み装置:USBasp
シリアルポート:ArduinoUnoの接続されているポート

図3-2 ArduinoUnoへのプログラム書き込み(2)

以上の設定が完了したら、マイコンボードへ書き込みボタンをクリックする。ArduinoUnoへのプログラム書き込みが完了したら、一度ArduinoUnoとPCを切り離し、ブートローダー書き込みシールドを装着する。
以上のライターのセットアップ作業は、一度行ったら次回以降は不要である。


4. ブートローダの書き込み方法

書き込み先の基板のジャンパーをブートローダー書き込み側にセット(図4-1)して、ブートローダーライター(上段)とATMEGA328の実装基板のブートローダー書き込み用コネクタ(6P)を接続する(図4-2)。次に、ArduinoUnoとPCを接続する。

図4-1 ジャンパーピンをブートローダー側にセットする

図4-2 上段と書き込み先基板を接続

ArduinoIDEを起動して、書き込み設定を次のように設定する。
ボード:Arduino Duemilanove or Diecimila
プロセッサ:ATMEGA328
書き込み装置:Arduino as ISP
シリアルポート:ArduinoUnoの接続ポート

図4-3 ATMEGA328へのブートローダー書き込み

 設定が完了したら、ツール>ブートローダーを書き込む をクリックする。
ブートローダーの書き込みが完了すると、シールドの緑のLEDが点灯し、ArduinoIDEにブートローダーの書き込みが完了しましたと表示される。書き込みに失敗した場合、シールドの赤のLEDが点灯してIDEにはエラー内容が表示される。


5. プログラムの書き込み方法

書き込み先基板のジャンパーピンをプログラム側(図4-1)にセットする。
その後プログラムライター(下段)をATMEGA328のプログラム書き込みピンとPCに接続する(図4-2)。

図5-1 ジャンパーピンをプログラム側にセット

図5-2 下段と書き込み先基板を接続

ArduinoIDEから、書き込みを行いたいプログラムを開き、書き込み設定を以下のようにする。
ボード:Arduino Duemilanove or Diecimila
プロセッサ:ATMEGA328
書き込み装置:USBasp
シリアルポート:プログラムライターの接続ポート

図5-3 プログラム書き込みの設定

設定が完了したら、ArduinoIDEのスケッチの書き込みボタンを押す。


6. ダウンロード

ATMEGA328ライターのブートローダーライター(上段)部分の回路図,ガーバーデータは以下のリンクよりダウンロードいただけます.
ブートローダーライター(上段) 回路図(bootloader_writer.pdf)
ブートローダーライター(上段) ガーバーデータ(bootloader_writer.zip)

ATMEGA328ライターのプログラムライター(下段)部分の回路図,ガーバーデータはタハライターと共通であるため,以下のリンクのタハライターのページからダウンロードください.
Arduinoブートローダ書き込み機「タハライター」

クリエイティブ・コモンズ・ライセンス
桐谷公基 作『ATMEGA328ライター』はクリエイティブ・コモンズ 表示 - 非営利 4.0 国際 ライセンスで提供されています。
2017年11月21日