How to make

Arduino UNO Rev.3 で AVRISP mkII クローンを作る


日本語 / [English]

1.はじめに

Arduino UNOにArduinoISPスケッチを書き込んでUNOを汎用AVRライタに変身させることができます。また、Arduino IDEを調整すれば色々な種類のAVRのスケッチのコンパイルができますので,Arduino UNO + ArduinoISP + Arduino IDE はAVRの開発環境として便利に利用できます。

が,ArduinoISPは「米粒AVR」と呼ばれるATtiny10には対応しておらず,ATtiny10をターゲットとして開発するにはTPI書込みに対応したAVRISP-mkIIなどのAVRライタが必要でした。

ところが実は,Arduino UNO Rev.3にちょっとした改造を施せばAVRISP mkII互換機として働かせTPI書込みができるようになるのです。

以下に,Arduino UNO Rev.3をAVRISP mkIIクローンにする製作記事を掲載します。

このハックは「Arduino IDE配下のATtiny他の開発環境」で使用することを目的とし
“AVRDUDE ver6.2″で動作確認をしています。
“Atmel Studio”での使用については対象外で全くテストしていません。

2.ちょっとした改造の概要

  1. Arduino UNO搭載のUSB-SerialチップATmega16U2にAVRISP-mak2クローンのファームウェアを書き込んでAVRライタとして働かせます。
  2. 通常のAVRの書込みに必要なRESET,SCK,MISO,MOSIの信号をATmega16U2のICSPピンと空きバッドとなっているJP2から引き出します。
  3. ATtiny10の書込みに必要なRESET,TPIDATA, TPICLKの信号をJP2, D0,D1,TX-LEDから引き出します。
  4. 2.3を実現するために簡単なはんだ付け作業を行います。

3.用意するのも

  1. Arduino UNO Rev.3 (DIPのATmega328P搭載品)
    USB-Serial にATmega16U2を搭載し基板上にJP2の空きパッドがあるATmega328P-PU(DIP28)のUNO R3互換ボードでも可。この3条件を満足する中華製UNO R3互換ボードは600円程度で流通しています。
  2. Windowsパソコン (Mac / Linux のバーチャルマシン上で動くWindowsでも可)
  3. Flipツール
    Atmega16U2にDFUでプログラムを書き込むツールです。Atmel社のFlipのページ(下記URL)からダウンロードしてインストールします。
    http://www.atmel.com/tools/FLIP.aspx
  4. AVRISP mkII クローンファームウエア
    1. AVRISP-MKII_ATmega16u2.zip  をダウンロードします。
      解凍するとAVRISP-MKII_Atmega16u2.hexが生成されます。
    2. 上記のファームウェアがうまく働かない場合はAVRISP-MKII_130303.zip をご利用ください。
      解凍するとAVRISP-MKII_130303_toggle_driver.hexが生成されます。
  5. ヘッダーピン
    3☓2の2.54mmピッチのヘッダーピンが必要です。
  6. オスーメス・ジャンパー線
    動作検証の際に秋月電子・ブレッドボードジャンパーコード(オスーメス) or 類似品が必要です。

4.ATmega328P取り外し

  • Arduino UNO 基板上のATmega328Pは使いませんので取り外します。取り外したATmega328Pは,ATmega16U2のAVRISP mkII化が成功し,その操作に習熟するまでは大切に保管します。途中でArduino UNOを元にもどす時にも必要です。

 5.Arduino UNO Rev.3 基板に改造を施す

  1. ヘッダーピンを図1のようにピン2本のはんだ付け側をカットします。
  2. Arduino UNO R3 基板上のJP2空きパッドを確認します。図2,図3
  3. JP2空きバッドのハンダを抜きます。図4
  4. 図5のようにJP2に3×2ヘッダーピンを立ててはんだ付けします。
  5. 図6のようにTX-LEDから信号線をヘッダーピンの根元に引き出し,はんだ付け接続します。

    _

    図はクリックすると大きく表示されます。

    図1 ピンの切断加工 図2 JP2の位置 図3 JP2
    図4 ハンダを抜く 図5 ピンヘッダを立てる 図6 TX-LEDと配線接続

6.ファームウェアの書込み

  1. 図7のようにATmega16U2のICSPの5番ピン6番ピンをショートした状態でUSBコネクタを挿しパソコンと接続します。

    図7

  2. 5番ー6番ピンのショートを解除すると,ATmega16U2がDFUモードで起動します。
  3. USBデバイス「Atmel Corp IOUSBHostDevice」(または,ATmega16U2 DFU)が現れます。デバイスドライバが要求される場合はC:\Program Files\Atmel\Flip 3.4.7\usb\を指定してドライバをインストールします。
  4. Flipツールを起動して,以下の手順でAVRISP mkII クローンファームウエアを書込みます。
    (参考:図8〜11はATmega16u2に旧版のファームウエアを書き込む様子です)

    1. ATmega32U4を選択します。 図8
    2. USB接続でオープンします。 図9
    3. AVRISP-MKII_Atmega16u2.hexをロードします。 図10
    4. Runボタンをクリックして書き込みます。 図11
      図8 図9
      図10 図11
  5. USBコネクタを抜きパソコンと切り離します
  6. 再度,USBコネクタを接続するとUSBデバイスATMEL AVRISP mkIIが出現します。Arduio IDEと連携させて用いるには汎用USBドライバlibsubをインストールします。
    libusbのインストール方法はOS環境等によってさまざまに適する方法がありますので libusb AVRISP 等のキーワードでWeb検索してご自分のOS環境に適し方法でインストールします。

7.信号線

  1. 以上の作業で,ATmega16U2はAVRISP mkIIとして稼働します。
  2. AVR書き込み用の信号線は下図12,13のように取り出すことができます。
    図12・ISPモード 図13・TPIモード
  3. TPIモードではUNOのD0とD1がショートしたかたちの配線となりますが,UNO基板内部でAtmega16U2向けのD0,D1信号線には保護抵抗が挿入されているので障害をおこすことはありません。ただし,ATmega328Pに対しては保護抵抗は入っていないので328P装着時にD0,D1をショートして使うと最悪328Pが壊れます。

8.Arduino UNO を元にもどす方法

  1. ATmega16U2をDFUモードで起動します(「6.ファームウェア聞き込み」参照)
  2. Arduino IDE付属のUSB-Serialファームウェア
    C:\Program Files\Arduino\hardware\arduino\avr\firmwares\atmegaxxu2\UNO-dfu_and_usbserial_combined.hex
    をFlipツールでATmega16U2に書き込みます。(「6.ファームウェア聞き込み」参照)
  3. 取り外して保管していたATmega328Pを元のとおり(パッケージの切り欠きとソケットの切り欠きの向きを合わせて)装着します。

9.RX,TX信号線の保護抵抗について

  • TPIモードのときTPIDATAをD0(RX)とD1(TX)を並列接続にして取り出します。ATmega16U2とD0,D1端子の間には図14のように基板内で保護抵抗(1KΩ)が接続されておりD0,D1を並列接続しても短絡障害が起こりません。
  • しかし,保護抵抗が1KΩと比較的大きな値であるため,ATtiny10のTPIDATAピン(3番ピン)にLEDやセンサー等が接続された状態で読み書きする場合,保護抵抗1kΩによる信号レベルの低下により読み書き不安定もしくは読み書き不能となることがあります。 TPIDATAピン(3番ピン)に何も接続されていない状態での読み書きは保護抵抗1kΩによる不具合は発生しません。
  • この不具合を回避するには図15のように47Ω程度の抵抗で既存の保護抵抗をバイパスします。
    図14 保護抵抗 図15 保護抵抗バイパス
    矢印が保護抵抗 矢印の箇所のビアにバイパス用抵抗を接続する

10.動作不具合についての情報

ー 履歴 ー
update 2017.01.21 RX,TX保護抵抗に起因する不具合への対策。
update 2017.01.15 firemwareは 2017.01.13版 より130303版が安定している との試行情報がありましたので,この二つを掲載します。 @INOUETAICI氏の試行詳細レポートに感謝します。
update 2017.01.13 AVRISP mkII Clone firmware version up
upload 2016.12.27 kimio kosaka

 

 

 

Copyright © kosakalab All Rights Reserved.
Powered by WordPress & BizVektor Theme by Vektor,Inc. technology.