Skip to content

InformationSDK

朝日薫 / K.Sato edited this page Nov 6, 2024 · 52 revisions

MultiX Zinnia Product SDK [*AVR] for Arduino IDE

このソフトウェア開発キットは、主に新世代のAVRファミリ(Microchipブランド統合以降で発表されたもの)について、Arduino IDEでの開発を支援するために構成されている。 AVR-GCC/AVR-LIBC を用いて書かれた C/C++/アセンブラ プログラムを avrdude を用いて対象MCUにアップロードするまでの作業フローを提供する。

警告: Arduino互換APIは提供されない。

[MultiX Zinnia Product : WiKi]へ移動

導入方法

  • Arduino IDE の「環境設定」「追加のボードマネージャーのURL」に以下のリンクを追加
  • 「ボードマネージャー」ダイアログパネルを開き、検索欄に "multix" と入力
  • 目的のアーキテクチャを選択して「インストール」
    megaAVR / modernAVR / reduceAVR

Developer Preview

mainリポジトリがそのまま主開発ブランチで、ある程度の区切り毎にX.Y.Zブランチが記録されるスタイル。
現在活性化中なのは 0.3.n(AVR DU系統対応)

  • avrdudeAVR-GCC/LIBCは複数のSDK(アーキテクチャ別) で共有するため更新競合状態になることがある。 競合中のSDKは更新ボタンを押すとそれが残りただ1つになるまで無効化(自動削除)されるので、 その後で改めて無効になったSDKを選んで再インストールする必要がある。

対応するホストOS

  • Windows (32bit/64bit)
  • macOS (64bit)
  • Linux (主にintel系64bit)

対応AVRアーキテクチャ

現在この SDK は複数の異なる対象アーキテクチャ向けにリポジトリを分けて提供される。
ボードメニュー/サブメニュー以下の選択はそれぞれを参照のこと。

  • MultiX Zinnia Product SDK [megaAVR] ->HERE
    • megaAVR-0 と tinyAVR-0/1/2 系統。(Atmelブランド世代)
  • MultiX Zinnia Product SDK [modernAVR] ->HERE
    • AVR DA/DB/DD/EA 系統。(Microchipブランド世代)
  • MultiX Zinnia Product SDK [reduceAVR] ->HERE
    • 旧世代AVRのうち TPI方式に対応した系統。(Atmelブランド世代)
  • MultiX Zinnia UPDI4AVR Firmware Builder ->HERE
    • UPDI4AVR Firmware をサポートする [megaAVR] のサブセット。

共通基盤の AVR-GCC/AVR-LIBC toolchain は既知の AVR 8bit 系全種に対応している。
makeコマンドを別途用意すれば大抵の事はできるはず。(Windowsでも)

対象AVR

[megaAVR] tinyAVR-0/1/2

系統 pin 2KiB 4KiB 8KiB 16KiB 32KiB
tinyAVR-0
8 ATtiny202 ATtiny402
14 ATtiny204 ATtiny404 ATtiny804 ATtiny1604
20 ATtiny406 ATtiny806 ATtiny1606
24 ATtiny807 ATtiny1607
tinyAVR-1
8 ATtiny212 ATtiny412
14 ATtiny214 ATtiny414 ATtiny814 ATtiny1614
20 ATtiny416 ATtiny816 ATtiny1616 ATtiny3216
24 ATtiny417 ATtiny817 ATtiny1617 ATtiny3217
tinyAVR-2
14 ATtiny424 ATtiny824 ATtiny1624 ATtiny3224
20 ATtiny426 ATtiny826 ATtiny1626 ATtiny3226
24 ATtiny427 ATtiny827 ATtiny1627 ATtiny3227
  • Xplained mini ATtiny416 : w/o bootloader
  • Curiosity Nano ATtiny1627 : w/o bootloader

太字 は実物確認済

[megaAVR] megaAVR-0

系統 pin 8KiB 16KiB 32KiB 48KiB
megaAVR-0
28 ATmega808 ATmega1608 ATmega3208 ATmega4808
32 ATmega808 ATmega1608 ATmega3208 ATmega4808
40 ATmega4809
48 ATmega809 ATmega1609 ATmega3209 ATmega4809
  • Arduino UNO WiFi Rev.2 : w/o bootloader
  • Arduino Nano Every : w/o bootloader

太字 は実物確認済

[modernAVR] AVR DA/DB/DD/DU/EA/EB

系統 pin 8KiB 16KiB 32KiB 64KiB 128KiB
AVR_DA
28 AVR32DA28 AVR64DA28 AVR128DA28
32 AVR32DA32 AVR64DA32 AVR128DA32
48 AVR32DA48 AVR64DA48 AVR128DA48
64 AVR64DA64 AVR128DA64
AVR_DA-S
28 AVR128DA28S
32 AVR128DA32S
48 AVR128DA48S
64 AVR128DA64S
AVR_DB
28 AVR32DB28 AVR64DB28 AVR128DB28
32 AVR32DB32 AVR64DB32 AVR128DB32
48 AVR32DB48 AVR64DB48 AVR128DB48
64 AVR64DB64 AVR128DB64
AVR_DD
14 AVR16DD14 AVR32DD14 AVR64DD14
20 AVR16DD20 AVR32DD20 AVR64DD20
28 AVR16DD28 AVR32DD28 AVR64DD28
32 AVR16DD32 AVR32DD32 AVR64DD32
AVR_DU
14 AVR16DU14 AVR32DU14
20 AVR16DU20 AVR32DU20
28 AVR16DU28 AVR32DU28 AVR64DU28
32 AVR16DU32 AVR32DU32 AVR64DU32
AVR_EA
28 AVR16EA28 AVR32EA28 AVR64EA28
32 AVR16EA32 AVR32EA32 AVR64EA32
48 AVR16EA48 AVR32EA48 AVR64EA48
AVR_EB
14 AVR16EB14 AVR32EB14
20 AVR16EB20 AVR32EB20
28 AVR16EB28 AVR32EB28
32 AVR16EB32 AVR32EB32
  • Curiosity Nano ATtiny1627 : w/o bootloader
  • Curiosity Nano AVR128DB48 : w/o bootloader
  • Curiosity Nano AVR64DU32 : w/o bootloader
  • Curiosity Nano AVR64EA48 : w/o bootloader
  • Curiosity Nano AVR64EB32 : w/o bootloader

太字 は実物確認済
斜体 は今後対応予定

[reduceAVR]

  • ATtiny4 ATtiny5 ATtiny9 ATtiny10

  • ATtiny20 ATtiny40

  • ATtiny102 ATtiny104

  • Xplained Nano ATtiny104

太字 は実物確認済
斜体 は現在未対応(Variant選択なし)

toolchain の配布元について

package_multix_zinnia_index.jsonを使用して SDK をセットアップすると、以下のツールチェインも自動的に取得・インストールされる。

インストールされる版はその時点での最新版であるが、Arduino IDE ボードマネージャーでのバージョン更新は以後行われず、その時点の版で固定される。 意識的に最新版へ更新するには、これらを使用する該当 SDK を一旦全てアンインストール/全て更新しなければならない。

AVR-GCC + AVR-LIBC

AVR-GCC 本体と AVR-LIBC ライブラリは、Microchip社の一次配布元から提供されたものを使用する。 これに Microchip社提供のデバイスサポートファイル(AT Pack)の一部を統合して、二次配布元から提供される。 配布ライセンスは GPL 2.0 である。

0.3.0以降

0.2.13以降

0.2.10以降

AVRDUDE

AVRDUDE 実行バイナリは、Arduino社を一次配布元として提供される。 静的リンク化等の Arduino IDE用修正がされており、オリジナルとは必ずしも一致しない。 配布ライセンスは GPL 2.0 である。

リリース元 https://github.com/arduino/avrdude-packing/releases

0.3.0以降

0.2.6以降

関連プロジェクト

これらはこの SDKから派生、あるいは一部を構成している。

USB4AVR-USB プログラムライター

0.3.0以降では、既定のプログラムライターが UPDI4AVR-USB に更新された。 このソフトウェアは Curiosity Nano AVR64DU32 などの AVR-DUシリーズ搭載ボードに書き込むことで、UPDI、TPI、PDI 計3種のプログラミング方式をサポートする USB接続方式プログラムライターとして使用する事ができ、AVRDUDE 8.0以降からは PICKit4 (jtag3updi、jtag3tpi、jtag3pdi) 互換相当として認識される。 また専用設計の周辺回路を加えることで、UPDI と TPI の高電圧(HV)プログラミングも可能にする。

EDBG USB Bootloader for AVR-DU series (euboot)

0.3.0以降では AVR-DUシリーズ専用に、USB Bootloader (euboot) が用意された。 AVRDUDE 8.0からは EDBGプロトコルを介した jtag3updi 互換相当として認識され、全メモリ領域の読み出しと、FUSE、LOCKBIT、Boot予約領域以外の書き換えができる。 また boot_ax/dx/ex3.72 同等のスニペット拡張を持ち、自己フラッシュ領域書き換え、および BOOTROW特殊領域の書き換えを支援する。

更新履歴

  • 0.3.0

    • AVRDUDEを8.0-arduino.1に更新。
    • toolchainを7.3.0-avr8-gnu-toolchain-241029に更新。
    • AVR-DUシリーズ専用eubootを同梱。
    • AVR-DA-Sシリーズ、および AVR32EBxx シリーズのビルドに追加対応。
  • 0.2.14 (24/08/11)

    • (modernAVR/megaAVR) libraries から、TPI4AVR, UPDI4AVR submodule を除去(非標準化)
    • (modernAVR) AVR-DU系列専用 USB周辺機能に暫定対応
      • <SerialUSB.h> 基本的な USB-SERIAL通信クラス
      • <USB/CDC.h> 上記の下位実装(USB-CDC)
  • 0.2.13 (24/05/12)

    • 7.3.0-avr8-gnu-toolchain-240510に更新。
      • (modernAVR) AVR16DU14/20/28/32AVR32DU14/20/28/32 対応を追加。
      • (reduceAVR) Xplained Nano ATtiny104 に試験的対応。
  • 0.2.12 (24/04/29)

    • 動作確認済に AVR64DU28 を追加。
    • boot_ax/dx/exを 3.72 に更新。
  • 0.2.11 (24/04/13)

    • megaAVR : tinyAVR-0/1 の <peripheral.h> 定義ミスを修正、
    • modernAVR : platform.txt のタイプミス修正。
      • 動作確認済に AVR128DB28AVR64DB28 を追加。
  • 0.2.10 (23/01/16)

    • 7.3.0-avr8-gnu-toolchain-231214に更新。
      • AVR64DU28/32 に暫定対応。
      • 動作確認済に AVR64EA32AVR64EA48AVR16EB32ATtiny1627, ATtiny416 を追加。
    • Core Modules<api/UarfUART.h>を微修正。AVR_EVSYS=201修正。
    • Core Libraries の修正/追加と応用記述の追加。
      • <ReadUART.h>
      • <UrowNVM.h>
      • <FlashNVM.h>(BOOTROW 対応を追加)
    • Bootloader を FWV=3.71 に更新。
  • これ以前は公開終了

関連リンク

許諾

各構成要素はそれぞれ異なる配布ライセンスに属する。条件はそれぞれの規約に従う。

  • BSD License
    • avr-libc
  • GNU General Public License v2.0
    • avr-gcc
    • avrdude
  • MIT License
    • other original document and code