Arduinoを扱っていると「こんなボードがあったらいいのになぁ」と思うことが多々あります。
そこで、ズバリ "ぼくのかんがえたさいきょうのあるどぅぃーの" を作ろう!という企画を気長にやって行こうかな〜と思います。
アイデアを整理
まずは脳内で渦巻く 卍最強卍 たるアイデアを整理します。
- MCUはCortex-M7
- USBポートはTypeC
- 既存OSSの資産を活用可能
大まかな柱はこの辺でしょうか。
オリジナルとは言っても、全くのゼロから始めるのも骨が折れるので、せっかく偉大な先人様方が切り拓いてくれた既存の資産は活かしたいものです。
そして、僕が今まで扱ってきたボードのうち ItsyBitsy M4 や Trinket M0 など、Adafruit社のMicrochip ATSAM MCUに馴染みが深いので、そちらに寄せて行く感じになりのかな、とふんわり思っています。
あと自分のユースケースを振り返ったとき、ボードから音を出したりアナログデバイスを接続したりと、今までMCU内蔵DACを使用する頻度が割と多かったので、DACも欲しいところです。
(ATSAMにはDACが内蔵されています)
「最強MCUならESP32があるじゃん」という声が聞こえてきそうですが、僕は 卍Cortex-M原理主義卍 なので宗教上の理由でNGです😩
構成
アイデアも出揃ったところで、実際に具体的なところを考えていきたいと思います。
MCU
まず頭脳となるMCUですが、これはCortex-M7とATSAMを条件とすると、自ずと導き出せます。
このマトリクスを見てもらえれば一目瞭然ですが、つまり候補は以下の2つに絞れます。
- ATSAMS70
- ATSAME70
V70は車載アプリケーション用途なので除外するとして、S70とE70はどちらも汎用で一見すると似通ったスペックですが、実は細かいところが違います。
ベースとなるのはS70で、それに加えてCAN通信とEthernet通信、つまるところネットワーク周りが追加されたものがE70となります。
大は小を兼ねるということで、使用するのは E70 で良い気がします。
ボード
ボードについては、第一に既存のエコシステムへしれっと溶け込めることが目的となります。
つまり寸法やピンアサインなどのフォームファクタをなるべく揃えたいです。
そこで白羽の矢が立つのは Adafruit Feather です。
実際に、Featherはエコシステムとして充分な程に成熟しており周辺機器も多いですし、僕自身も普段ありがたく使わせてもらっています。
そして何より、幸いなことにFeatherはCADデータが公開されているため、拝借して改造できれば越したことはありません。
ブートローダー
実はこれが今回のプロジェクトにおいて最大の壁かもしれません。
既にどこかしらの製品として搭載された実績のあるMCUであれば、ブートローダーは基本的に流用可能です。
現にATSAMD21は公式からサードパーティまで様々なボードに採用されているため、各メーカーが公開しているファームウェアを使用することができます。
しかし2023/01現在、僕が調べた限りではATSAME70/S70を搭載したボードはありませんでした。
まじかぁ...と思いましたが、一縷の希望が現れました。
もうAdafruit様々ですね、今後も御布施していきます🙇
これはAdafruit社製のATSAM系ボードに搭載されているブートローダーです。
元々はMicrosoftのIoTプロジェクト「PlatformIO」が起原となります。
それをAdafruitがフォークし自社製ボードへカスタマイズしたものとなります。
ではなぜこれが希望かというと、元々このブートローダーはATSAMD21しか対応していませんでした。
しかしATSAMD51/E54などの高性能なMCUが入手しやすくなり、それらを搭載したボードが登場するにつれ、当然ながらブートローダーも改良されていきました。
D21はCortex-M0+でD51/E54はM4Fです。
つまりこれは、ATSAMファミリー内であれば、ある程度は流用できることを意味しており、E70も行けるんじゃないか!?と淡い期待を抱いたわけです。
次回「半導体不足ってレベルじゃねーぞ」
さて、とりあえず方向性はざっくり決まったので、まずは部品を注文するところから始めたいと思います。
...
次回へ続く...!