元資料:2024-04 · 記事の編集日:
丹野嘉信が公開した資料をもとに、AIを補助に使って記事を構成し、説明を加えています。当時の制作内容と、記事化にあたって補足した内容を分けて記載しています。
元のスライドを読む:How to be friend with Attiny202 which is small microcontroller
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
書き込みまでの五つの手順
- 書き込み器を準備する。 Duemilanoveへjtag2updiを書き込みます。この段階の対象はArduino側です。
- 対象マイコンへの対応を追加する。 Arduino IDEにmegaTinyCoreを導入します。
- 電源とUPDIを接続する。 元の構成は5 V→VCC、GND→GND、D6→4.7 kΩ→UPDIです。これは元資料のjtag2updi構成の接続で、別の書き込み器へそのまま流用するものではありません。
- 対象チップと設定を選ぶ。 実物がATtiny202なら、チップの選択もATtiny202に合わせます。
- ATtiny202で動かすプログラムを書き込む。 「書き込み装置を使って書き込む」で、対象側へスケッチを転送します。
元資料を読むときの補足
スライド8のChip欄は「ATtiny212」となっていますが、資料の対象名はATtiny202です。この表記には不一致があるため、設定をそのまま写さず、実物の型番に合わせて選択してください。また、megaTinyCoreでブートローダーを使わない設定の場合、「ブートローダを書き込む」は主にクロックなどのヒューズ設定を反映する操作です。必ずブートローダー本体を追加する、という意味ではありません。megaTinyCoreの説明
LED点滅例のpinMode(4, OUTPUT)にある4は、Arduinoの論理ピン番号です。ICパッケージの4番端子と混同しないよう、使用するコアのピン配置図と照合します。ATtiny202/402の資料
動かないときの切り分け
| 症状 | 先に確認すること |
|---|---|
| Arduino側への転送で止まる | Arduinoのボード選択、ポート、書き込み器用スケッチ |
| 対象チップと通信できない | 対象の電源、共通GND、UPDI配線、選択した書き込み器 |
| 転送できたがLEDが点滅しない | 論理ピンと端子の対応、LEDの向き、電流制限抵抗 |
最初の目標をLED一つに絞ると、書き込み環境とアプリケーションの不具合を分けて考えられます。この記事では、当時の制作手順と設定の意味を説明しています。現在のソフトウェアと実機での再検証は行っていません。
関連する記事・取り組み
共同研究、技術検証、教材開発に関するご相談はこちら。