Arduino Uno Rev3からATtiny-85へ書き込む

f:id:haseharu:20211101070145j:plain

Arduino Uno R3を書込装置にしてATtiny-85へ書き込む際の自分用メモ(2度目の書き込み時にはまってしまったので)。

初期設定

Arduino IDEの「File」->「Preferences」を開き、「Settings」タブの「Additional Boards Manager URLs」へ以下を追加し「OK」をクリック。

http://drazzy.com/package_drazzy.com_index.json

「Tools」->「Board」->「Boards Manager」をクリックするとBoards Managerが開くので「attinycore」と入力し検索結果から「ATTinyCore by Spance Konde」を選択しインストール。

これで、「Tools」->「Board」->「ATTinyCore」を選べるようになる。ここまでは一度、Arduino IDEで設定しておけばOK。

書き込み

2回目以降の書き込みはここから。Arduino Uno R3、ブレッドボード(小さいやつで良い)、ジャンパワイヤー6本、電解コンデンサ10μF×1個を準備。

  • Arduino Uno R3を書き込み装置にする
  • 書き込み装置にしたArduino Uno R3からATtiny-85へ書き込む

の順となる。なお、後者はジャンパワイヤ等でのArduino Uno R3とATtiny-85の接続が必要となるが、前者の作業時に後者の接続を行わず順に行う。

Arduino Uno R3を書き込み装置にする

Arduino Unoに何かをつないでいるようであれば、抜く。後述するATtiny-85への書き込み装置の準備もこの段階ではせずにArduino IDEを起動したマシンとのみ接続する。

f:id:haseharu:20211101071940j:plain

「File」->「Examples」->「11.ArduinoISP」->「ArduinoISP」のスケッチを呼び出し、Arduino Uno R3へ書き込む。「Done uploading」となったらArduino Uno R3の書き込み装置化は終了。

書き込み装置にしたArduino Uno R3からATtiny-85へ書き込む

Arduino Uno R3をArduino IDEを起動したマシンから一旦外し、以下の通りATtiny-85と接続する。
GPIOなどはデータシートのPDF2ページ目を参照。ATtiny-85自体のピン番号とGPIOの番号は違うので注意が必要。

https://akizukidenshi.com/download/ds/atmel/attiny25_attiny45_attiny85.pdf

Arduino Uno ATtiny-85
D10 1
GND 4
D11 5
D12 6
D13 7
5V 8
Reset(+)とGNDを電解コンデンサ10μFで接続


f:id:haseharu:20211101073134j:plain

あとはArduino IDEを起動したマシンとArduino Uno R3を接続し、「Tools」->「Board」->「ATTinyCore」->「ATtiny25/45/85」を選択。「Chip」->「ATtiny85」、「Clock Source」->「16Mhz」、など。

一度、「Tools」->「Burn Bootloader」を書き込み、その後、ATtiny-85へ書き込みたいソースコードを「Verify」->「Upload」->「Done Uploading」で終了。

なお、ATtiny-85のピン6番がGPIO 1となる。

ATtiny-85 Pinout
1 5
2 3
3 4
4 GND
5 0
6 1
7 2
8 VCC

ピン6番(GPIO 1)をチカチカさせるLチカコードを書き込んでHelloworld。

void setup() {
  pinMode(1, OUTPUT);
}

void loop() {
  digitalWrite(1, HIGH);
  delay(500);
  digitalWrite(1, LOW);
  delay(500);
}

f:id:haseharu:20211101075317j:plain