2020年8月18日火曜日

Atmel StudioからArduinoを用いてATtiny85に書き込む

Atmel StudioからArduino UNOを書き込み器として用いてATtiny85に書き込む


私の場合はATtiny85に書き込むツールとしてTL866ⅡPLUSを使用しているのですが、Arduinoで書き込みができないかという声がありましたので、試してみました。
やりたいことはAtmel Studioでプログラムを作成し、それを書き込み器として設定したArduino(ArduinoISP)でATtiny85に書き込むということです。

(1)Arduino UNOを書き込み器として設定する。


「ファイル」→「スケッチ例」→「11.ArduinoISP」からArduinoISPを選択
「ツール」→「ボード」でArduino UNOを選択
「ツール」→「シリアルポート」でArduino UNOが接続されているポートを選択
「ツール」→「書込装置」でAVRISP mkIIを選択
スケッチをコンパイルして書き込む。
これでArduino UNOが書き込み装置になりました。

(2)ArduinoにATtiny85を認識させる。


「ファイル」→「環境設定」の設定タブ中の「追加のボードマネージャのURL:」に
「http://drazzy.com/package_drazzy.com_index.json」を書き込み、OKボタンを押す。(もう既に設定済みのものがあれば次の行に書き込みます。)
「ツール」→「ボード」→「ボードマネージャ」でフィルタにATtinyCoreと入力し、現れたATTinyCoreをインストールする。
「ツール」→「ボード」でATtiny25/45/85(No bootloader)を選択
「ツール」→「書込装置」でArduino as ISPを選択

(3)ArduinoにATtiny85を接続する。


        次のように接続します。(画像参照)
        Arduino UNO ATtiny85
        13 <----------> SCK 
        12 <----------> MISO
        ~11 <----------> MOSI
        ~10 <----------> RESET
        5V <----------> VCC
        GND <----------> GND







以上でArduino側の準備は終了です。
(もちろん、電源は入れたままにしておきます。)

(4)Atmel Studioの設定


「ツール」→「外部ツール」で次の3項目を設定

設定例
タイトル:ArduinoISP(ATtiny85)
コマンド:C:\Program Files (x86)\Arduino\hardware\tools\avr\bin\avrdude.exe
引数:-c avrisp -P COM6 -b 19200 -p t85 -U flash:w:$(ProjectDir)Release\$(TargetName).hex:i -U lfuse:w:0xe2:m -U hfuse:w:0xdf:m -U efuse:w:0xff:m
(COM6はArduinoが接続されているポート、t85はATtiny85、3つのfuseの値は適宜設定)
さらに、「出力ウインドウを使用」にチェックを入れます。「起動時に引数を入力」にチェックを入れると書き込み時に引数を変更できますが、かえって面倒かもしれません。

これで、「ツール」メニュー中にArduinoISP(ATtiny85)が現れます。
[注意]これは書き込む条件、チップ毎に設定する必要があります。

しかし、私の場合、これだけではconfigファイルがないというエラーが出ましたので、C:\Program Files (x86)\Arduino\hardware\tools\avr\etc中にあるavrdude.confをavrdude.exeのあるフォルダにコピーします。

(5)書き込み


Releaseモードでビルドしてhexファイルが作られましたら、「ツール」メニュー中のArduinoISP(ATtiny85)を選択するとhexファイルが書き込まれます。
Atmel Studioの出力ウインドウにメッセージが出ますので、書き込まれていることを確認できます。

[参考にしたサイト]
ArduinoISPの設定方法についてはAnalogic Intelligence Z80-MBCの作成 其の参を、
Atmel StudioへのArduinoISPの設定方法についてはシナプスのハード製作記を参考にさせていただきました。ありがとうございます。

2 件のコメント:

  1. こんばんはkabekinです。
    こちらの記事の(4)以降をAtmel Studio7で試したところ記事の手順の通りで無事ATtiny85に書込みできました。
    avrdude.exeをバッチファイルから扱う方法のいいですが統合環境からの書込みの方がスマートですね。
    活用させていただきます^^ ありがとうございました。

    返信削除
    返信
    1. kabekinさま
      ビルドしてすぐに書き込みができるのは確かに便利で快適ですね。
      統合環境と連動して使える書き込み器を所有していない方が多いと思いますので、割と普及しているArduinoが使えるのは有難いです。

      削除