Arduino を使ったISP

まず電子工作の練習として、FabISPを製作しておく必要があります。しかしそれに書き込むための他のISPや商用のISPを持っていなかったらどうしますか? そのような場合、ArduinoUNOを使って実施することができます!

サマリー:

  • コード
  • セットアップ
  • Makefile

Step 1 コード

まずArduino IDEをダウンロードしてください。

File > Examples > ArduinoISP配下に、ArduinoをISPにするコードがあります:

image

コードの内容です:

image

コードが確認できたら、ArduinoとFabISPを接続するための設定を発見できます。以下の部分です、(もちろんVCCは5Vに、GNDはGNDにつなぎます)

あらゆる電源を入れる前にピンの接続が正しいことをよく確認してください

// slave reset: 10:               53
// MOSI:        11:               51
// MISO:        12:               50
// SCK:         13:               52

Arduinoにコードを書き込みます。

ノート:このステップはArduinoがこれから書き込みをしようとするボードにまだ接続されていない状態でする必要があります、そうでないとエラーになります。

Step 2 セットアップ

arduinoにプログラムした後(!)に、RESETとGNDの間に10uFのコンデンサを繋いでください

なぜかというと...

これはArduinoISPスケッチをプログラムしたArduinoの特殊な使い方に関係があります。今回、Arduino(ArduinoISP)そのものにプログラムするのではなくそれを通じてターゲットボードにコードを送りたいのです。コンデンサをつけないと、arduinoはコードの再送信のために自動リセットを実行すると解釈して、FabISP用のコードをArduinoのブートローダに送信します。コンデンサをつけると、リセットパルスを吸収するので、FabISPボードにコードを送信することができます。ソース(英語)

最初に確認したコードの設定に従って、ArduinoをFabISPに接続します:

image

avrdude用のMakefileの設定

FabISPファームウェア内のMakefileでは、この設定を使ってください。 Arduino IDEを開き、[ツール]> [ポート]で確認して、dev/tty.usbmodem1411の部分に自分のUSBポートを入れてください。

AVRDUDE = avrdude -c stk500v1 -b19200 -P /dev/tty.usbmodem1411 -p $(DEVICE)

Original tutorial by:

  • Remixed/Updated by Eduardo Chamorro, Fab Lab Seoul 01.2017

  • 日本語訳 Asako Okazaki ,Fab Lab Kamakura 01.2019

Licensed under a Commons Attribution 4.0 International License