TH /TannoHubYOSHINOBU TANNOEN ↗
組込み・IoT

ATtiny202の書き込み:Arduino・UPDI・ピン番号の整理

Arduino Duemilanoveを使ったATtiny202書き込みの制作記録を解説。jtag2updiとmegaTinyCoreの役割、チップ選択の不一致、論理ピン番号を整理します。

← 技術ノート一覧

元資料:2024-04 · 記事の編集日:

丹野嘉信が公開した資料をもとに、AIを補助に使って記事を構成し、説明を加えています。当時の制作内容と、記事化にあたって補足した内容を分けて記載しています。

元のスライドを読む:How to be friend with Attiny202 which is small microcontroller
当時のArduino Duemilanoveと変換ソケットを使った制作写真。
当時のArduino Duemilanoveと変換ソケットを使った制作写真。

ATtiny202への書き込みで混乱しやすいのは、「Arduinoに書き込むプログラム」と「ATtiny202に書き込むプログラム」が別だという点です。前者は書き込み器を作るための準備、後者はLED点滅など、実際に動かす処理です。

制作時に使った機材と環境

2024年の資料では、Windows 11 Pro、Arduino IDE 2.3.2、Arduino Duemilanove、ATtiny202、変換ソケット、4.7 kΩ抵抗を使っています。Duemilanoveへjtag2updiを書き込み、UPDI(Unified Program and Debug Interface)経由で対象マイコンをプログラムする構成です。元資料:スライド3〜7

書き込みまでの五つの手順

  1. 書き込み器を準備する。 Duemilanoveへjtag2updiを書き込みます。この段階の対象はArduino側です。
  2. 対象マイコンへの対応を追加する。 Arduino IDEにmegaTinyCoreを導入します。
  3. 電源とUPDIを接続する。 元の構成は5 V→VCC、GND→GND、D6→4.7 kΩ→UPDIです。これは元資料のjtag2updi構成の接続で、別の書き込み器へそのまま流用するものではありません。
  4. 対象チップと設定を選ぶ。 実物がATtiny202なら、チップの選択もATtiny202に合わせます。
  5. ATtiny202で動かすプログラムを書き込む。 「書き込み装置を使って書き込む」で、対象側へスケッチを転送します。

元資料を読むときの補足

スライド8のChip欄は「ATtiny212」となっていますが、資料の対象名はATtiny202です。この表記には不一致があるため、設定をそのまま写さず、実物の型番に合わせて選択してください。また、megaTinyCoreでブートローダーを使わない設定の場合、「ブートローダを書き込む」は主にクロックなどのヒューズ設定を反映する操作です。必ずブートローダー本体を追加する、という意味ではありません。megaTinyCoreの説明

LED点滅例のpinMode(4, OUTPUT)にある4は、Arduinoの論理ピン番号です。ICパッケージの4番端子と混同しないよう、使用するコアのピン配置図と照合します。ATtiny202/402の資料

動かないときの切り分け

症状先に確認すること
Arduino側への転送で止まるArduinoのボード選択、ポート、書き込み器用スケッチ
対象チップと通信できない対象の電源、共通GND、UPDI配線、選択した書き込み器
転送できたがLEDが点滅しない論理ピンと端子の対応、LEDの向き、電流制限抵抗

最初の目標をLED一つに絞ると、書き込み環境とアプリケーションの不具合を分けて考えられます。この記事では、当時の制作手順と設定の意味を説明しています。現在のソフトウェアと実機での再検証は行っていません。

関連する記事・取り組み

共同研究、技術検証、教材開発に関するご相談はこちら