ATtiny202 準備からLチカまで

SBMJOB

ATtiny202 が小さくて安くて良い!ということで物自体の購入からLチカまでやってみました。ArduinoIみたいにつかえるので便利ですよ。ガンプラに組み込んでLED光らせたりとか楽しそうなので、次の記事でガンプラ光らせます!

目次

スポンサーリンク

ATtiny202とは?

アトメル社が製造していたマイコンで、現在はマイクロチップ・テクノロジー社が買収して製造販売しています。
もっと詳しいお話は、ネットにたくさんあるので割愛しますが私は以下の点が気に入って使っています。

  • 安い
  • 小さい
  • Arduino IDEでコーディングできる
  • Codeでもコーディングできる(PlatformIO)
  • AVRシリーズとしての情報が多い

なんといってもその価格の安さが素晴らしいです。2024/07現在一つ70円で手に入り、小さくてガンプラや鉄道模型、ハンドメイド作品なんかに組み込むのが簡単です。

さすがに低価格なため、メモリーが少ないので大きなライブラリを使ったコーディングには向きませんが機能を絞って実装すればそれなりに満足できるものが出来上がると思います。

公式サイト
https://www.microchip.com/en-us/product/attiny202

Lチカに必要な物

  • Attiny202
  • ブレイクアウト基板
  • LED
  • 抵抗
  • 電源(電池)
  • ブレッドボード
  • ジャンプワイヤー
  • シリアル変換モジュールとUSBケーブル
  • PCかMac等々での開発環境

必要な情報

公式Githubのに概ね必要な情報が記載されていますが、全部読むのは面倒なので必要な箇所だけかいつまんで読めば良いかと思います。必要であればネットで検索すればでてきます。

GitHub
megaTinyCore/README.md at master · SpenceKonde/megaTinyCore Arduino core for the tinyAVR 0/1/2-series - Ones's digit 2,4,5,7 (pincount, 8,14,20,24), tens digit 0, 1, or 2 (featureset), preceded by flash in kb. Librar...

ATtiny202のデータシート
http://ww1.microchip.com/downloads/en/DeviceDoc/ATtiny202-402-AVR-MCU-with-Core-Independent-Peripherals_and-picoPower-40001969A.pdf

入手方法

Attiny202はamazonで購入するのが難しそうです。おすすめは秋葉原の秋月電子!1つ70円!
もちろんネットでも買えますし、他の電子工作系のネットネットショップでも購入できます。

あわせて読みたい
AVRマイコン ATTINY202-SSNR: 半導体 秋月電子通商-電子部品・ネット通販 電子部品,通販,販売,半導体,IC,LED,マイコン,電子工作AVRマイコン ATTINY202-SSNR秋月電子通商 電子部品通信販売

マルツオンラインでも購入可能ですが少々お高いかもしれません。

電子部品・半導体通販のマルツオン...
IC MCU 8BIT 2KB FLASH 8SOIC ATTINY202-SSF Microchip製|電子部品・半導体通販のマルツ 【ATTINY202-SSF】 IC MCU 8BIT 2KB FLASH 8SOIC 114.29円 提携先在庫数:2,439個 納期:5営業日程度 Microchip製|16:00までのご注文を翌日お届け、3,000円以上購入で送料無...

基板にすでに取り付けてあって便利な商品も秋月電子で販売されています!これ便利 百円なんでお得です

あわせて読みたい
ATTINY202DIP化キット: 半導体 秋月電子通商-電子部品・ネット通販 電子部品,通販,販売,半導体,IC,LED,マイコン,電子工作ATTINY202DIP化キット秋月電子通商 電子部品通信販売

ハンダごてはこれが便利です、一時期は入手も困難なハンダごてでしたが供給も安定したようです。


ハンダ台は必須です。これないと作業中にはんだごての置き場にこまってしまいます。とはいいつつ厚めの木の板に釘を2本打ってその間に針金を渡して自作というのもありですね。以下のリンクの商品は私も使っています。はんだこての掃除もできて重さもあって便利です。


ハンダ自体はできれば直径0.8mmと0.6mmがあればいいですね。商品リンクでは巻いてる商品ですが、ペン型のものが使いやすいと思います。


はんだ用ブローケースという入れ物に入れ替えるのもいいですね。(昨今、エコ商品としてブローケースに入れての販売ではなく、詰め替え用ハンダのように販売しているパターンが多いですね。)

あわせて読みたい
はんだ用ブローケース: 工具・工作用品 秋月電子通商-電子部品・ネット通販 電子部品,通販,販売,半導体,IC,LED,マイコン,電子工作はんだ用ブローケース秋月電子通商 電子部品通信販売

ピンアサイン

ピンアサインは本家のGithubから持ってきました。重要なのはVCC、GND、6番目のUPDIですね。コーディングの時はオレンジ色の番号かPA〜で指定していきます。

Attiny202への書き込み準備

自分がプログラムの書き込み用に使っているのはFTDIのFT232RQ実装しているシリアル変換モジュールです。

秋月電子でも販売しています。一千円は越えていますがAttiny202だけではなく他のマイコンでも使えるしすぐ壊れるものですので一つ買っておくといいでしょう。

あわせて読みたい
FT232RQ USBシリアル変換モジュールキット: 半導体 秋月電子通商-電子部品・ネット通販 電子部品,通販,販売,半導体,IC,LED,マイコン,電子工作FT232RQ USBシリアル変換モジュールキット秋月電子通商 電子部品通信販売

アマゾンならこういうのでもいいでしょう。


回路組み立て UPDIの場合

ATtiny202はUPDI接続で電源2本と通信線1本の計3本繋げるだけで書き込みができる簡単仕様なのでシリアル変換モジュールにそれをつなげて書き込みできます。

以下に資料は示しますが、frezingで作成した回路図そのままで組み立てれば問題ないと思われます。

自分は書き込み用の自作ボードで書き込んでいますが、ATtiny202素のままでSOP8ソケットを使ってのボードとATtiny202ブレイクアウト基板にピンをつけたものに書き込むボードの二種類を準備しておきました。

というのも、ATtiny202の小ささを活かして強度等は落ちますがATtiny202の足に直接半田付けして回路作成?立体ハンダ?したかったのでSOP8ソケット版も作ってみました。

関連資料

GitHub
AVR-Guidance/UPDI/jtag2updi.md at master · SpenceKonde/AVR-Guidance A guide to best practices when using the Arduino IDE to program AVR microcontrollers - SpenceKonde/AVR-Guidance
USB Serial Adapter
With internal 1-2k resistor on TX
This is the case in 90% of USB serial adapters.


Ideal:
internal resistor in adapter: 2.2k >= Ra

--------------------                                 To Target device
                DTR|                                  __________________
    internal    Rx |--------------,------------------| UPDI---\/\/---------->
  Tx---/\/\/\---Tx |-------|<|---'          .--------| Gnd    470 ohm (100 ~ 1k)
    resistor    Vcc|---------------------------------| Vcc
  typ 1-2k      CTS|                     .`          |__________________
                Gnd|--------------------'             If you make a 3-pin connector, use this pinout
--------------------

or

--------------------                                 To Target device
                DTR|                                  __________________
    internal    Rx |--------------,------------------| UPDI----------------->
  Tx---/\/\/\---Tx |-------|<|---'          .--------| Gnd
    resistor    Vcc|---------------------------------| Vcc
  typ 1-2k      CTS|                     .`          |__________________
                Gnd|--------------------'
--------------------

回路図 シリアル変換モジュール- ATtiny202

シリアル変換モジュール側の4端子とATtiny202の3端子を繋げるだけで書き込みできます。

自作DIP版・直付用書き込みボード

それぞれのボード左上のソケットにシリアル変換モジュールを差し込んで、下のピンソケット・SOP8ソケットにATtiny202をセットしてArduino IDEからブートローダーやプログラムを書き込めるようにするボードを自作しておきました。

ブレッドボードで再現してもOKです。

回路組み立て jtag2updiの場合

加筆中

Arduino IDEでAttiny202を使えるようにする

Arduino IDEでATtiny202をプログラミングするために以下の手順を踏みますが、他のマイコン(例ESP32等々)と同じ手順で行います。

STEP
Arduino公式からIDEをダウンロードする
あわせて読みたい
Software Open-source electronic prototyping platform enabling users to create interactive electronic objects.

最新のバージョンでダンロードしましょう、後述の説明は古いバージョンで記載していますが最新バージョンでも大きな差はないでしょう。

STEP
ボードマネージャ設定にURL追加

Setting→追加のボードマネージャーURL(右の小さなボタン)

表示されたウィンドウの最下部行に以下のURLを追加

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

STEP
ボードマネージャーからmegaTinyCoreをインストール

ツール→ボード→ボードマネージャを選ぶ

ボードマネージャの入力蘭に『megatiny』と入力し表示されるmegaTinyCoreの最新バージョンを選択してインストールボタンを押す

STEP
ブートローダーの書き込み(一度だけ)

ツール→ボードからATtiny4112/402/212/202を選択
ChipからATtiny202を選択

シリアルポートから接続に使うシリアルポートを選択する
接続に使うシリアル変換モジュール名が出ている場合が多いです

書き込み用のボードにシリアル変換モジュールとATtiny202をセットする

最後にブートローダーを書き込むを選択

STEP
書き込み完了を確認する

画面下部分に赤字で作業進行状況が流れるので「ブートローダーの書き込みが完了しました。」の表示を確認する。表示されずエラーになったらSTEP4までのいずれかを再確認する。完了すればプログラムの書き込みも可能になっています。

プログラミングと書き込み

STEP
スケッチ例のBlinkサンプルを雛形として使う

ファイル→スケッチ例→Blinkを選択します

STEP
サンプルコードのLED用ピンを上書きする

“LED_BUILTIN”の単語の箇所三箇所を1に書き換えます

STEP
コンパイルエラーがないことを確認する

試しに、スケッチ→検証・コンパイルを選択して コンパイルエラーがないことを確認します

STEP
ATtiny202に書き込む

書き込み機に接続していることを確認して、スケッチ→マイコンボードに書き込む を選択します

以下のサンプルコードの様に書き換えます。

/*
  Blink

  Turns an LED on for one second, then off for one second, repeatedly.

  Most Arduinos have an on-board LED you can control. On the UNO, MEGA and ZERO
  it is attached to digital pin 13, on MKR1000 on pin 6. LED_BUILTIN is set to
  the correct LED pin independent of which board is used.
  If you want to know what pin the on-board LED is connected to on your Arduino
  model, check the Technical Specs of your board at:
  https://www.arduino.cc/en/Main/Products

  modified 8 May 2014
  by Scott Fitzgerald
  modified 2 Sep 2016
  by Arturo Guadalupi
  modified 8 Sep 2016
  by Colby Newman

  This example code is in the public domain.

  https://www.arduino.cc/en/Tutorial/BuiltInExamples/Blink
*/
// the setup function runs once when you press reset or power the board
void setup() {
  // initialize digital pin LED_BUILTIN as an output.
  pinMode(1, OUTPUT);
}

// the loop function runs over and over again forever
void loop() {
  digitalWrite(1, HIGH);   // turn the LED on (HIGH is the voltage level)
  delay(1000);                       // wait for a second
  digitalWrite(1, LOW);    // turn the LED off by making the voltage LOW
  delay(1000);                       // wait for a second
}

ボードへの書き込みが完了しました。と表示されれば成功です。失敗した場合は接続やコードの再確認をしてください。

結果

下の回路図のように接続します

以下の様にLEDが点滅すれば成功です。おつかれさまでした。

スポンサーリンク

よかったらシェアしてね!
  • URLをコピーしました!
  • URLをコピーしました!

この記事を書いた人

システム開発SE・アプリ開発・デバッガー等々なんでもやる猫の下僕です。現在は凶暴猫にカタカタ動く手を狙われながらキーボードを打っています。かなりゆるい性格なのでコメントやメッセージお気軽に〜お仕事のご依頼もお気軽にぃ〜

スポンサーリンク

コメント

コメントする

CAPTCHA


目次