Arduino UNO R4 その1

2023年6月にArduino UNOの新型のR4(WIFI付きは10月)が発売になりました。
プロセッサ自体が変更になる大きな改修なので、今までのUNOとの違いや使い方の基本的なことをまとめておきます。
(各ボードの写真はArduinoのHPより)

Arduino UNOの歴史

Arduino UNO

最初のArduino UNOからUNO R3までは、外観はほとんど同じです。
もちろん互換性があり、基本的な動作に違いはありません。
MCUには8 bitのAVRである「ATmega328P」が使用されています。
USB部分は「ATMEGA8U2」が使用されていて、初期型の基盤には基盤に対して平行に取り付けられています。

Arduino UNO R2

R2になって改修された部分は以下のとおりです。

1 DTRライン(ATmega328PのPD7 Pin13)に1 KΩのプルダウン抵抗が追加
2 USBチップ横にICSP用のヘッダ端子が追加
3 USBチップ横に「JP2」用のパッドが追加(基本型ではNCだったPB4,5,6,7用)
4 USBチップが45度傾いて取り付け

Arduino UNO R3

現在流通しているArduino UNOはR3です。
ここで、色々な部分が変更されていますが、基本的な互換性は維持されています。

1 USBチップが「ATMEGA16U2」に変更
2 RESETラインのプルアップ抵抗に並列にダイオードが追加
3 RESETスイッチの位置が変更
4 上部の左側コネクタに、I2C用にSDAとSCL用の端子が、下部の左側コネクタにIOREF(AREF)が追加
5  USBチップが基盤に対して平行に戻る

Arduino UNO R4

MCUがルネサス社の「RA4M1」(32 bit)に変更されました。
ルネサスエレクトロニクス株式会社は、三菱電機と日立製作所の半導体部門で出来たルネサス テクノロジにNECの半導体部門が合流してできた日本の会社です。
バブル期(1980年代)には、それぞれの企業が世界一(インテルなどより上)で数兆円規模の売上を誇っていましたが、色々な失敗(DARPAの陰謀?)から赤字に転落、東日本大震災では工場が被災、携帯・ゲーム機などでは主流機に関われず、コロナ禍にも工場が消失するなど(不自然な?)不運が続いたが、自動車用のプロセッサで生き返りました。
近年はそれ以外の用途用にプロセッサを出荷すべく取り組んでいるのが、Arduinoへの出資でした。そして出来たのが新型UNOです。
「Arduino UNO R4を買って日本企業を応援しよう!」などとは言いませんが、ルネサス社は2012年から「がじぇっとるねさすプロジェクト」を発足させて趣味の電子工作への支援も行っており、個人的にはTK-80からNECの98シリーズにお世話になってた者として頑張って欲しいと思っています。

R4の動作電圧は5Vのままで、基板サイズや端子の位置もそのまま(微妙には違います。)なので、R3用のシールド(増設基盤)がほぼそのまま使用可能です。
まだ、「Lチカ」しか試していないので偉そうなことは言えませんが、R3までとの違いは以下のとおりです。

1 MCUが8 bitの「ATmega328P」から32 bitの「RA4M1」に変更された
2 動作クロックが16MHzから48MHzへ
3 メモリは、プログラム用が32kBから256kB、データRAMが2kBから32kB、データROMが1kBから8kBへ増加
4 入力電圧が7~12Vが、6~24Vへ拡大
5 USB端子が、でかいType-BからやっとType-Cになりました。
6 HIDをサポートするのでキーボードなどが簡単に作成できます。
7 入出力端子が改良され、A/Dコンバータは10ビットから14ビットに、D/AコンバータとOPアンプが追加
8 CANバスやRTC(リアル・タイム・クロック)が追加
9 USBポートと共用だったUARTが独立
10 動作電圧は5V、ただしI/Oピンの電流は20mAから8mAへ減少

入出力ピン

R3のシールドとの互換性を維持するために、R4のピン配置はほぼ以前と同じです。
NC端子に「BOOT」が割り当てられました。(ブートローダ書き込み時に使用)

各ピンの細部
(R3:UNO R3,
328:ATmega328Pのピン番号
R4:UNO R4
RA4M1のピン番号)

デジタル1

R3328機能R4RA4M1機能
D1928SCLD1948SCL
D1827SDAD1847SDA
AREF21AREF
GND22GND40
D1319D1336SPI(SCK),LED
D1218D1235SPI(COPI)
D1117D1134SPI(CIPO),PWM
D1016D1037SPI(CS),PWM
D915D929PWM
D814D828

デジタル2

R3328機能R4RA4M1機能
D713D741
D612D642PWM
D511D546CANRX,PWM
D46D445CANTX
D35D344PWM
D24D243
D13D130TXD2
D02D031RXD2

電源

R3328機能R4RA4M1機能
NCBOOT
IOREFIOREF
RESETRESET25
+3V3+3V3
+5V20+5V11
GND22GND40
GND22GND40
VINVIN

アナログ

R3328機能R4RA4M1機能
A023A053DAC
A124A164OPAMP+
A225A263OPAMP-
A326A362OPAMPOUT
A427A447SDA
A528A548SCL
Arduino UNO R3のピン(ArduinoのHPより)
Arduino UNO R4のピン(ArduinoのHPより)

Arduino UNO R4の動作不良の対応

書き込みが出来なくなった場合

MCUのレジスタを直接触ったり、キーボードなどのプログラムに不具合があると動作不良で書き込みが出来なくなることがあります。
その際には、RESETスイッチを2回押す(ダブル・クリック)とLEDが点滅してブート・モードに入ります。この状態で「Arduino IDE」の「ツール」、「ポート」の「dfuポート」を選ぶと強制的に書き込みが出来ます。

ブートローダの不良

色々と試しているとブートローダが壊れることもあるでしょう。
Arduino UNO R3では、他のArduinoを書き込み機にしてブートローダを書き込んでいましたが、公式HPのブートローダ書き込み方法は以下のとおりです。

1 Arduino IDEのインストール先(C:\Users\YourWindowsUserName\AppData\Local\Arduino15\packages\arduino\hardware\ renesas_uno\1.X\bootloaders\UNO_R4)にある「dfu_minima.hex」を使用する。
2 ルネサス社の「Flash Programmer」をダウンロードしてインストール

2024年1月8日修正
(誤り)
3 新設の「BOOT」端子を「GND」に短絡してから、パソコンとArduino UNO R4をケーブルで接続し、上記プログラマでブートローダ(dfu_minima.hex)を書き込む。
(まだ手元にArduino UNO R4が1つしかないので、実際には試していません。)

(正)
3 新設の「BOOT」端子を「GND」に短絡してから、パソコンとArduino UNO R4をケーブルで接続する。
4 「USB Device Tree Viewer」などのUSB端子確認ソフトを立ち上げる。
5 Arduino UNO R4のリセットスイッチを押す。
6 接続先のUSB端子が「Arduino UNO R4」から「Renesas RA USB Boot」になるのを確認する。
7 上記プログラマでブートローダ(dfu_minima.hex)を書き込む。
(詳細手順は、以下をクリック)

コメント