asknのアイコン画像
askn 2026年08月02日作成 © MIT
セットアップや使用方法 セットアップや使用方法 Lチカ Lチカ 閲覧数 48
askn 2026年08月02日作成 © MIT セットアップや使用方法 セットアップや使用方法 Lチカ Lチカ 閲覧数 48

[modernAVR] AVR32LA32を使ってみる

[modernAVR] AVR32LA32を使ってみる

円安が酷いわ部品入手に難儀するわでメイカーフェア向けの頒布計画も棚上げしたままの昨今。それで(病気療養もあって)暫く現場を離れてるうちに、気がついたら modernAVR(8-bit AVRの近代化版)の販売品種数が、Atmel時代の旧世代AVR8を超えるんじゃないかというくらい拡充していた。なかでもMouserを回遊してて吃驚した新製品がこれ。

安ッ!

キミたち今時単価100円切るのか。こりゃ晩秋には秋月電子に並ぶんじゃない? USB2.0対応AVR DU ファミリとはまた違ったインパクトがあるな。

概要

ということで Microchip直送で [EV24D63A - AVR32LA32 Curiosity Nano] を入手して遊んでみた。まだ国内発売は始まってないが、マルツ等に入荷すれば 2104円(税別)+送料になるはずだ。

CURIOSITY NANO AVR32LA32

国内だとCuriosityシリーズ単体は MPUがなんであれ2104円(税別)かそこらなので純正Arduinoに比べると格段に安い。しかもオンボードデバッガー付き。あまりに低廉なのかRISC-V驀地なのか中華パチモノも出てこない。Microchip直販だと 1622円だが、代わりに関税と航空貨物手数料の請求書にブチ刺されるから、大量購入以外じゃ全くお薦めはしない。

QTouch用のオンボードタッチセンサー領域が搭載されてるのが Curiosity シリーズにしては珍しい。まあ基板サイズ以外のコストUP要因はないからなあコレ。だがいままでは自作するにも基板設計が面倒くさく、試すにももっぱら既製の拡張ボードで対応する他なかったモノが気軽にQTouchライブラリを試せるんだから、識者には魅力的だろう。かたやシルク印刷にミスがあってLEDとSW0が両方PF5と表記されてるが、正しくは LED=PF5、SW0=PC0 だ。PC0はハードリセットボタンには使えないので(一応 LUT1_IN0信号入力ピンなのでチャタリング除去や割込ストローブはできるが)写真ではPF6にタクトスイッチを横付けしている。またUSB-CDCにオンボード結線されているピンは、USART0_ALT4の PC1/2ペアだ。

初期状態では3.3V電圧駆動設定で、Lチカ+タッチセンサーデモが書き込まれている。USB-CDC経由115200kbpsで機能選択メニューが表示される。このプログラムのプロジェクトはまだ未公開らしい。

AVR LA ファミリ(恐らくLIN Automotiveに由来)は廉価チップかつ自動車産業が主ターゲットということもあって他品種と異なるのは;

  • 不揮発メモリ、主クロック回路、TCE計数器などは従前の AVR EB ファミリがベースだが、本製品のターゲット層には性能過剰と判断されたのか 48MHz波形生成機などで回路削減された部分がある。外囲器には EB同様 14/20/28/32ピンが用意されている。勿論 28-DIPもあるよ。(メーカー的に主力製品は VQFNだけど)
  • AVR EB ファミリベースなので、UARTが1組しかない。だからGPSやRFモデムとの連携には全くもって向いていない。まあ ATmega328P の単一UARTで鍛えられた層なら意に介さないかもしれんが。しかしEBまでの従前のUSARTとは、レジスタマップに互換性がなくてデータシートを二度見した。これは産業用RS485対応とLIN通信機能が強化・改善されたことと引き換えで、それが本製品の目玉だからだろう。いやしかしそれだったら、新旧2組混載のが良かったんじゃ…(従前のRS485制御のXDIR出力には少しクセがあって、アンドキュメントなレジスタビット設定が必要だったりした)
  • 一般動作電圧が 3.3V、最低動作電圧が 1.65V に低減。もうちょっと頑張って 1.2V まで落ちれば面白かったのに。が、5V対応の太めのプロセスルールを考慮すれば頑張った方だろうか。大人気 ARMや RISC-V生産が得意じゃない製造ラインを活用すればこその低廉価か。
  • 前述の通り QTouch 対応。入力が最大20端子あるので単純格子配線なら100ボタン分かな。直近では tinyAVR-1系統と AVR DA系統が最新だったと思うので、久しぶりの新製品、しかも安くて低消費電力。ATtiny416auto涙目。

コードサンプル

さて MPLAB X IDE はもちろん新製品にフル対応しているが、しかし当然すぎて面白くない。だいたいHALのせいで単なるLチカでも結構大きなバイナリを吐く。ということで MultiX Zinnia Product SDK [modernAVR] を AVR LAファミリ対応に拡充した。Arduino互換ブートローダーももう出来ている。ちなみにまだ対応できていない既発売済 modernAVR 系統は、航空宇宙産業用耐放射性品種 AVR Sx ファミリだけだ。(日本では需要が…ゲフン)

当然 Arduino 互換Lチカはあっさり動く。(出力バイナリは 218 byte)

void setup() { pinMode(LED_BUILTIN, OUTPUT); } void loop() { digitalWrite(LED_BUILTIN, HIGH); delay(1000); digitalWrite(LED_BUILTIN, LOW); delay(1000); }

このSDKは Arduino CLI向けにベアメタルでミニマルな素の AVR-GCC開発の場を提供するのが主軸なので万能HALや Arduino互換APIを標準では備えていないが、幾つかのマクロ関数には互換記述性がある。

だが PIT計時器割込を使ったりすれば -5mA くらい簡単に消費電力を削減できる。(258 byte)

void setup (void) { pinMode(LED_BUILTIN, OUTPUT); loop_until_bit_is_clear(RTC_PITSTATUS, RTC_CTRLBUSY_bp); RTC_PITINTCTRL = RTC_PI_bm; RTC_PITCTRLA = RTC_PITEN_bm | RTC_PERIOD_CYC32768_gc; set_sleep_mode(SLEEP_MODE_PWR_DOWN); sleep_enable(); } ISR(RTC_PIT_vect) { RTC_PITINTFLAGS = RTC_PI_bm; digitalWrite(LED_BUILTIN, TOGGLE); } void loop (void) { sleep_cpu(); }

Arduino流Blinkが CPUフルスロットルでLチカする脳筋ぶりを痛感して頂きたい。

あるいは2組の計時機能を組み合わせて 0.5Hzの PFM位相差を作り、LEDを美しくホタル明滅させてみたり。(336 byte)

void setup (void) { pinMode(LED_BUILTIN, OUTPUT); digitalWrite(LED_BUILTIN, TOGGLE); loop_until_bit_is_clear(RTC_PITSTATUS, RTC_CTRLBUSY_bp); RTC_PITINTCTRL = RTC_PI_bm; RTC_PITCTRLA = RTC_PITEN_bm | RTC_PERIOD_CYC128_gc; loop_until_bit_is_clear(RTC_STATUS, RTC_CTRLABUSY_bp); RTC_INTCTRL = RTC_OVF_bm | RTC_CMP_bm; RTC_PER = 254; RTC_CMP = 128; RTC_CTRLA = RTC_RTCEN_bm | RTC_PRESCALER_DIV1_gc | RTC_RUNSTDBY_bm; set_sleep_mode(SLEEP_MODE_STANDBY); sleep_enable(); } ISR(RTC_CNT_vect) { RTC_INTFLAGS = RTC_OVF_bm | RTC_CMP_bm; digitalWrite(LED_BUILTIN, TOGGLE); } ISR(RTC_PIT_vect) { RTC_PITINTFLAGS = RTC_PI_bm; digitalWrite(LED_BUILTIN, TOGGLE); } void loop (void) { sleep_cpu(); }

調子に乗って 512Hz 超低消費電力駆動のサンプルも載せようかと思ったが、オンボードデバッガー付きの開発ボードでは効果を実感しづらいので控えておく。そういう電子玩具向けのは、ベアチップが発売されてからで良いかな?

まとめ

毎度のことだがこの Curiosityボードは LED=PF5なのが哀しい。これに内部接続できる周辺機能出力は TCB1WO_ALT1 だけなので応用性が低い。EVOUT対応である PA7/PD2/PD7 、あるいは LUTn_OUT対応ピンのいずれかにLEDを外付けすれば単体でもっと遊べるのにね。ちなみに PF2/3はタッチセンサーパネルに繋がっているので避ける。

asknのアイコン画像
朝日薫(通名)◆KEEP TRYING, THE GOD SAVE YOU!◆悩んでる暇があったら手を動かせ◆本質的にはデバグ解析修理屋◆ソフトもハードも全部やる◆開発言語だけなら数十種は読み書き可◆最初に覚えた言語はZ80ニモニックの手書き◆主力はPerl◆
  • askn さんが 前の日曜日の15:54 に 編集 をしました。 (メッセージ: 初版)
ログインしてコメントを投稿する