ATtinyにプログラムを書き込む方法は、Arduinoを使う方法とUSBシリアル変換器を使う方法があるようです。まず、Arduinoを使う方法を試します。
Arduino IDEからATtinyへの書き込みは、下の図のようにUSBシリアル変換を通してUPDI(Unified Program and Debug Interface)で行います。
今回は、ArduinoをUSBシリアル変換器として使うわけです。
Arduino IDEは1.8.15を使いました。(最新バージョン2.1.1では、最終段階でエラーが出てしまいました。原因はわかりません)
まず、Arduino IDEでATtinyを使えるようにするためにGitHubの
SpenceKonde/megaTinyCore というページを開きます。下の方にスクロールしていき、Installationをクリックします。ここに記載してあるmegaTinyCoreのboaed managerがある場所のURL
http://drazzy.com/package_drazzy.com_index.json
をコピーします。(GitHubに行かなくても、上のURLをコピーして使えばOKです)
これをArduino IDEで「ファイル」→「環境設定」で基本設定のダイアログを開き、「追加のボードマネージャーのURL」に貼り付け、「OK」をクリックします。
次に、「ツール」→「ボードマネージャー」でボードマネージャーを開きます。下にスクロールすると「megaTinyCore」が見えますのでインストールします。(少し時間がかかります)
これで一旦IDEを閉じ、再び立ち上げます。「ツール」→「ボード」を見ると「megaTinyCore」というボードが追加されていて、「ATtiny412/402/212/202」が選べるようになりました。
続いて、ArduinoをUPDIの書き込み器にするためのファームウェアを準備します。
ダウンロードしたファイルを解凍し出来た「jtag2updi-masuterr」というフォルダーの名前を「jtag2updi」にリネームしてドキュメントArduinoフォルダに保存します。
ここで、Arduino IDEでArduino UNOに書き込む準備をして(ボードをArduino UNOに設定し、)jtag2updiフォルダ内のjtag2updi.inoというスケッチを開き、Arduino UNOに書き込みます。(jtag2updi,inoには何も書かれていませんが、他の部分に書かれているので大丈夫です)
Arduino UNOに書き込みが終わるとArduino UNOがUPDIの書き込み器になりました。
次に、ATtiny402にブートローダを書き込みます。Arduino UNOとATtiny402の間はUPDIインターフェースで次のように配線します。
Arduino UNO ATtiny402
5V VCC(1pin)
GND GND(8pin)
D6 -- 4.7kΩ-- UPDI(6pin)
回路図です。(LチカのためのLEDがついています)
「ツール」をクリックし、開いた下のダイアログで、ChipsでATtiny402を選び、書き込み装置はjtag2updiを指定して、「ブートローダーを書き込む」をクリックします。
ブートローダの書き込みが終われば、Arduino IDEからATtinyボードのにスケッチを書き込むことができます。
LチカのスケッチをArduino IDEからATtiny402に書き込んでみます。
下の図は、ATtinyの各ピンの機能の説明です。
デジタルIO(GPIO) 2につけたLEDを点滅させてみます。
スケッチです。
書き込みが終わると赤い文字でエラーメッセージがでますが、これは無視してよいようです。
ブレッドボードです。無事LEDが1秒ごとに点滅しました。
これまでの手順は、
こちらのサイトを参考にさせていただきました。ありがとうございました。
次は、USBシリアル変換器を使った書き込みをやってみようと思います。