「シン・Arduino UNO R4 を作ろう」プロジェクト

まず初めに、各方面に怒られると怖いのでプロジェクト・タイトルの説明(言い訳)です。
・「シン」は、庵野秀明氏に対するリスペクトです。
・「Arduino UNO」の名称は、Arduino.cc に帰属します。
・このプロジェクトは、David Johnson-Davies氏による「RA4M1 Nano Board」にヒントを得て開始しました。

このプロジェクトを開始した理由

2023年6月に Arduino UNO R4 が販売開始され、1年が経過しようとしています。
その間、このボードについて色々と調べてみました。

使っている MCU は、ルネサス社(国産です。)の「RA4M1」が採用されました。
今までの UNO は「ATmega328P」が採用されていましたが、今後も継続して「RA4M1」が採用されて UNO R5、UNO R6 と続いていくなら(日本人としては)大歓迎です。

ところが、実際に Arduino UNO R4 を触っていると、いくつかの不満が出てきました。

Arduino を作っている側としては、このボードでマイコンの基本を学んでもらって、組み込みなどは別の設計のボードを使ってもらうという設計思想なのかもしれませんが、日曜電子工作を楽しむ身としては購入したボードで何かしらの実用的な物を作りたいと考えます。

例えば、Arduino UNO R4 に使われている「RA4M1」には時計に使える「RTC」機能が内蔵されていますが、外部水晶振動子が付いていないので1日の誤差が10分以上あり、電池で時間をバックアップする機能もMinimaでは使えなくなっています。

そのほかにも「RA4M1」には、キーボードを作れたり、自動車の色々な情報を取得したり、音声認識など色々な機能がありますが、Arduino UNO R4 そのままでは本来の機能が使えません。

誰かが改良型の UNO R4 を作ってくれることを期待していました。
すると、いくつかの互換機が出てきましたが、(私のわがままな)不満を解消してくれるボードは出てきていません。
(Arduino UNO R4 の互換機をまとめた記事は、以下をご覧ください。)

この記事を書いた後、4月2日に秋月電子さんから「RA4M1マイコン R7FA4M1AB3CFM実装基板」が発売されました。(値段も MCU 単体で買うより安い800円です。)
変換基板で 2.54 mm ピッチにしてくれて、64ピン全てが出力されています。何かに組み込むだけなら、これを使えば済んでしまいます。
(秋月電子の変換基板)

それでも、このブログの趣旨どおり、やりたいことを、それ、やってみよう!
実際に、アマチュアが作れるものかは分かりませんが、夢見ることは自由ですよね?

要求する性能

基本的には、Arduino UNO R4 Minima を拡張する形で進めます。
欲しい機能は、以下のとおりです。

・MCU の持っている機能は、すべて使いたい
・可能な限りの数の入出力端子を確保
・外部水晶振動子(メインとサブ)
・バッテリ・バックアップ
・自作機器へ組み込み可能な小型化

現在発売されている Arduino UNO R4 は、68.85 mm x 53.34 mm と何かに組み込むには難しい大きさです。これにバッテリを付けると手の中に納まる機器を作るのは難しいです。

そこで、Arduino シリーズで組み込みに適した Arduino Nano サイズを目指します。
このサイズにまとめるのは、David Johnson-Davies氏が「RA4M1 Nano Board」という形で実物を作られているので、非現実的な話ではないと思います。

比較検討

何かをするには、まずは資料を集めて比較検討が必要です。
Arduino UNO R4 と互換機、Arduino NANO R3 などを調べてみます。

Arduino Nano

Arduino Nano の端子図
最終的な端子の配置は後で決めるとして、基本的にはこのサイズを目指します。

今後の比較検討のために、上図を簡略化してピン番号を入れた図を作りました。
(公式の資料ではピン番号の設定はありませんが、便宜上仮に付けています。)

他の互換機の比較

すでに数種類のArduino UNO R4 互換機が出荷されているので、それで機能が満足できれば問題なかったのですが、それぞれ一長一短です。

トラッキングコアボード

WeAct社 トラッキングコアボード(WeActStudio.RA4M1_64Pin_CoreBoard)です。
このボードは、一番理想に近いのですが、
・サイズが少し大きい
・メインクロックが 16 MHz

というところが気になります。
メインクロックは、 12 MHz のはずなのですが、クロックアップしているのでしょうか?

FLINT ProMicro R4

FLINT 社の FLINT ProMicro R4 は、Pro Microサイズで、組み込みには最適なのですが、
・外部水晶振動子が2つとも搭載されていない。
・バッテリバックアップ端子がない
・入出力端子が少ない

RA4M1 Nano Board

David Johnson-Davies氏が開発された RA4M1 Nano Board も、素晴らしいボードです。
しかし、
・外部水晶振動子が2つとも搭載されていない。
・バッテリバックアップ端子がない
・入出力端子が少ない
・ボードのデータのみで実物は販売されていない。

R7FA4M1AB3CFM実装基板

秋月電子さんから販売が開始された「RA4M1マイコン R7FA4M1AB3CFM実装基板」です。
全ての機能を使うには最高のボードですが、 MCU 以外をすべて自分で用意する必要があります。

Arduino UNO R4

次に、Arduino UNO R4 の端子図です。
(公式の資料ではピン番号の設定はありませんが、便宜上仮に付けています。)

64 pin の RA4M1

使用する MCU は、Arduino Nano 用の ATmega328P ではなく、Arduino UNO R4 に使われている 64 ピンの RA4M1 です。

この MCU で使用できる主要な機能は、以下のとおりです。
(残念ながら、音声認識の機能は、100 ピンの MCU でないと使用できません。)

オペアンプ

コンパレータ

SPIインターフェース

I2Cインターフェース

クロックアウト

PWM出力

CAN(車載機器通信用)

SWD端子(デバッグ用インターフェース)

上記以外に必要な端子として、
・VBATT:RCT(時計機能)のバッテリ・バックアップ端子
があります。

他に、キーボード・マウスを実現する HID 機能などがありますが、通常の入出力端子があれば動作します。(実際にキーボードを作ろうと思っても Arduino UNO の入出力端子数では、全く足りないでしょうが。)

Nano と RA4M1

Arduino Nano のピン配置を Arduino UNO R4 で使われている RA4M1 に当てはめると、このようになります。
なお、「MCU Pin」は RA4M1 のピン番号、「No.」は RA4M1 の I/O ポート番号です。

端子の細部

仮に付けた Pin 番号の 25 ピンと 26 ピンは Nano の独自の拡張端子なので、Arduino UNO R4 には対応する端子がありません。
そこで、現在の所は空白としておきます。

4 ピン(GND) は 29 ピンに同じものがあり、3 ピン(RESET)は、28 ピンに 同じ端子があるので、別の端子に流用出来そうです。

さらに、今まで Arduino Nano を使っていて気になっていたことがあります。
最外周にある4つの穴です。
組み込むためのネジ穴なのかもしれませんが、通常はピンソケットに差し込めば、しっかりと固定できるので使ったことがありません。
ここに端子を増設すると、何か不具合が発生するのでしょうか?
今回は、個人的なプロジェクトなので、拡張端子として使ってみます。

最後に、これは賛否両論があると思いますが、 3.3 V の端子です。
Arduino UNO WiFi は、レギュレータで 3.3 V を作っていますが、 UNO R4 Minima では、RA4M1 で生成した 3.3 V を使っています。
これでは、外付けの部品で 3.3 V を使っていて、何かあったら MCU ごと壊れてしまいます。
そこで、今回は 3.3 V はボード内で生成しないことにします。(必要ならば、外部で作成します。)

これで、9本の拡張端子が確保できました。

この端子へ割り振る優先順は、こんな感じでしょうか?
・Boot 端子:ブートローダを書き込むのに必須の、Arduino UNO R4 で追加された端子です。
・VBAT 端子:RTC(時計機能)のバッテリ・バックアップ用端子です。
・1つのI2C、SPI、CAN、クロックアウトなど
・2つ目のI2C、SPI(可能ならば)
・可能な限り多くの PWM
・基板上に余裕があれば、SWD用端子

欲しい機能をどう盛り込むか

まず、Arduino UNO R4 で、 RA4M1 の端子がどのように使われているか確認します。

以下は、すでに用途が決まっていて、好きに使えない端子です。
P500 と P213 の各機能は、他の端子で同じ機能があるので問題ないですが、P012 と P013 のオペアンプは他に替えが利かないのに、なぜ、これの端子をLED用に選んだのか不思議です。

前の項目で調べた色々な機能が、どの程度 Nano サイズのボードに盛り込めるかを確認します。
(空き端子は薄オレンジ色にしています。中身は仮に配置しています。)

接続できなかった端子

色々と配置してみて、入れられなかった端子です。(後で入れ替えるかもしれません。)
( P012 と P013 のオペアンプ用の端子は、LEDに使われていますが、記載していません。)

この中で、ピン番号は異なりますが、すでにボードに配置済みの端子で同じ機能を持っているものは薄オレンジ色にしています。

つまり、PWM 機能の GTIOC6A、GTIOC6B と SWD 機能の送受信端子以外は、主要な機能が盛り込めたようです。

PWM は沢山入れられたので1チャンネル程度はあきらめがつきますが、SWD(デバッグ用インターフェース)の送受信端子がないのはちょっと不満です。
どれかと入れ替えできないかな?

部品の配置

Arduino Nano の ATmega328P は32ピンの TQFP なので、パッケージは 5 mm 角ですが、 64 ピンの RA4M1 は 10 mm 角で倍のサイズです。
そのため、Arduino Nano サイズのボードには、斜めに乗せることが出来ません。

USBコネクタは、Typc-C を使います。
その他に、表面には以下の部品を乗せます。
・メインとサブの水晶振動子
・リセットスイッチ
・動作確認、送受信、電源の各LED
・電源レギュレータ
・SWD コネクタ(可能なら)

これらを乗せた完成予想図です。

電源レギュレータは表側には乗らなそうなので、裏に移動します。

こうやって図にすると、MCU から出す配線が端子との間に通るのか、今から心配になってきました。

プロジェクトと基板の名称

「シン・Arduino UNO R4」などと言う名前では、この後の試作に支障が出そうなので、このプロジェクトと製作物に別の名前を付けます。
気持ち的には Nano サイズで UNO R4 相当の機能なので「Arduino Nano R4」と名乗りたいところですが、 Arduino Nano は登録商標だと思われるので、別の名前を考えました。

「RA4M1」を使ったテストボードなので、「RA4M1 テストボードなの。」英語表記は「RA4M1 Test Board Nano.」とします。(何かまずかったら教えてください。)

次回は、 KiCad を使って実際に配線図とプリント基板を作ってみます。

コメント