1
1

More than 1 year has passed since last update.

VSCode + PlatformIO で ATtiny406の開発環境を準備

Last updated at Posted at 2023-08-06

VSCode + PlatformIO の用意

ATtinyはAtmelが開発したAVRと呼ばれる8bit RISCのマイコンです。
AVRの一種であることからメジャーなATtiny(ATtiny85やATtiny402など)はArduinoIDEに対応しています。
しかし本稿のターゲットとしているATtiny406はArduinoに対応していないようで利用できませんでした。
(対応していたらすみません。コメントで教えていただけると嬉しいです)
そこでVSCode + PlatformIOで開発環境を作りました。
ちなみにATtiny406をターゲットとした理由として、パッケージはFQN20のためGPIOが18本あります。
価格も100円を以下(2023/8/1時点)と安く、はんだ付けは大変ですがサイズも3mm×3mmと小さくメリットが多いです。

インストール

インストール自体はVSCodeとPlatformIOをインストールだけなので簡単です。

  1. VSCode のインストール
    下記からインストーラをダウンロードし、VSCodeをインストールします。
    https://azure.microsoft.com/ja-jp/products/visual-studio-code
  2. 拡張機能から「PlatformIO IDE」をインストールします。
    こんな感じのアイコンの機能拡張です。
    image.png

ATtiny406 でLチカをやってみる

新規プロジェクト

  1. 画像のアイコン →「Open」をクリックして、PlatformIO のポータル画面を立ち上げます。
    image.png
  2. 「New Project」をクリックします。
    image.png
  3. Wizardが表示されるので、「Board」に「ATtiny406(Microchip)」を選択して「Finish」をクリックします。
    「Name」は適当に、「Framword」は「Arduino」が自動選択されます。
    image.png
  4. こんな感じでファイルが自動生成されます。
    image.png

main.cpp

1秒ごとに点滅を繰り返すLチカを実装します。
出力ポートはPA1を想定しています。

main.cpp
#include <Arduino.h>

void setup() {
  // put your setup code here, to run once:
  pinMode(PIN_PA1, OUTPUT);
}

void loop() {
  // put your main code here, to run repeatedly:
  static uint8_t val = HIGH;
  digitalWrite(PIN_PA1, val);
  val = !val;
  delay(1000);
}

platformio.ini

platformio.iniでは、書き込みルールや動作周波数について記載します。
私はSerial UPDIでしか書き込んだことがないので、他はわかりません。
そこで本稿でもSerial UPDIで書き込みます。
また書き込み速度について遅めに設定しています。(速いと失敗しました)
CPUの周波数はboard_build.f_cpuで設定しています。(今回は1MHz)

platformio.ini
[env:ATtiny406]
platform = atmelmegaavr
board = ATtiny406
framework = arduino

board_build.f_cpu = 1000000L
board_hardware.oscillator = internal
upload_protocol = serialupdi
upload_speed = 57600

board_hardware.bod = 1.8v
board_hardware.eesave = yes
board_hardware.uart = no_bootloader
board_hardware.rstpin = reset

配線

書き込みについてはUSB-Serialアダプタを使いますが、Serial UPDIは基本的に一本のPINへ書き込むだけでOKです。
下記はスイッチサイエンスのATtiny402のボードの配線ですが、ATtiny406も一緒です。
シリアルポートのRXとTXを、マイコンのUPDIに対して下記の通り接続すればOKです。
image.png

最後に

GPIOからの読み込みや書き込みを、digitalReadやdigitalWriteを使わずに行う方法について書く予定です。
またCCLについても書いていこうと思います。
気が向いたらElecrowを使った基板発注の方法も書いていきたいです。

1
1
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
1
1