本研究室では過去に,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 | 1 |
MISO | 2 |
MOSI | 3 |
Reset | 4 |
GND | 5 |
VCC | 6 |
表1-2 ATMEGA328とコネクタの配線(プログラム用)
ATMEGA328 ピン名 | NHコネクタピン番号 |
---|---|
VCC | 1 |
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ブートローダ書き込み機「タハライター」