2023年6月にArduino UNOの新型のR4(WIFI付きは10月)が発売になりました。
プロセッサ自体が変更になる大きな改修なので、今までのUNOとの違いや使い方の基本的なことをまとめておきます。
(各ボードの写真はArduinoのHPより)
Arduino UNO の歴史
「Arduino UNO」の歴史を次の項目で解説していますが、Arduinoについての解説は以前作成しています。
「Arduino」の名前の由来や「ATmega328P」の詳細については以下をクリック!
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の陰謀?)から赤字に転落、東日本大震災では工場が被災、携帯・ゲーム機などでは主流機に関われず、コロナ禍にも工場が消失するなど(不自然な?)不運が続きましたが、自動車用のプロセッサで生き返りました。
近年は自動車以外の用途用にプロセッサを出荷すべく取り組んでいる取り組みの1つが、Arduinoへの出資でした。そして出来たのが新型 UNO です。
「 Arduino UNO R4 を買って日本企業を応援しよう!」などとは言いませんが、ルネサス社は2012年から「がじぇっとるねさすプロジェクト」を発足させて趣味の電子工作への支援も行っており、個人的には TK-80 から NEC の 98 シリーズにお世話になってた者として頑張って欲しいと思っています。
R4 の動作電圧は 5 V のままで、基板サイズや端子の位置もそのまま(微妙には違います。)なので、R3 用のシールド(増設基盤)が、ほぼそのまま使用可能です。
まだ、「Lチカ」しか試していないので偉そうなことは言えませんが、R3 までとの違いは以下のとおりです。
1 MCU が 8 bit の「ATmega328P」から 32 bit の「RA4M1」に変更された。
2 動作クロックが 16MHz から 48MHz へ
3 メモリは、プログラム用が 32kB から 256kB、データ RAM が 2 kB から 32 kB、データ ROM が 1 kB から 8 kB へ増加
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 動作電圧は 5 V、ただし I/O ピンの電流は 20 mA から 8 mA へ減少
入出力ピン
R3 のシールドとの互換性を維持するために、R4 のピン配置はほぼ以前と同じです。
追加端子は NC だった端子に「BOOT」が割り当てられました。(ブートローダ書き込み時に使用)
各ピンの機能の説明
凡例
R3:UNO R3
328:ATmega328Pのピン番号
R4:UNO R4
RA4M1のピン番号
デジタル1
R3 | 328 | 機能 | R4 | RA4M1 | 機能 |
D19 | 28 | SCL | D19 | 48 | SCL |
D18 | 27 | SDA | D18 | 47 | SDA |
AREF | 21 | AREF | |||
GND | 22 | GND | 40 | ||
D13 | 19 | D13 | 36 | SPI(SCK),LED | |
D12 | 18 | D12 | 35 | SPI(COPI) | |
D11 | 17 | D11 | 34 | SPI(CIPO),PWM | |
D10 | 16 | D10 | 37 | SPI(CS),PWM | |
D9 | 15 | D9 | 29 | PWM | |
D8 | 14 | D8 | 28 |
デジタル2
R3 | 328 | 機能 | R4 | RA4M1 | 機能 |
D7 | 13 | D7 | 41 | ||
D6 | 12 | D6 | 42 | PWM | |
D5 | 11 | D5 | 46 | CANRX,PWM | |
D4 | 6 | D4 | 45 | CANTX | |
D3 | 5 | D3 | 44 | PWM | |
D2 | 4 | D2 | 43 | ||
D1 | 3 | D1 | 30 | TXD2 | |
D0 | 2 | D0 | 31 | RXD2 |
電源
R3 | 328 | 機能 | R4 | RA4M1 | 機能 |
NC | BOOT | ||||
IOREF | IOREF | ||||
RESET | RESET | 25 | |||
+3V3 | +3V3 | ||||
+5V | 20 | +5V | 11 | ||
GND | 22 | GND | 40 | ||
GND | 22 | GND | 40 | ||
VIN | VIN |
アナログ
R3 | 328 | 機能 | R4 | RA4M1 | 機能 |
A0 | 23 | A0 | 53 | DAC | |
A1 | 24 | A1 | 64 | OPAMP+ | |
A2 | 25 | A2 | 63 | OPAMP- | |
A3 | 26 | A3 | 62 | OPAMPOUT | |
A4 | 27 | A4 | 47 | SDA | |
A5 | 28 | A5 | 48 | SCL |
Arduino UNO R4 の動作不良の対応
書き込みが出来なくなった場合
MCU のレジスタを直接触ったり、キーボード用に作ったプログラムに不具合があると動作不良で書き込みが出来なくなることがあります。
その際には、RESET スイッチを2回押す(ダブル・クリック)と LED が点滅してブート・モードに入ります。
この状態で Arduino IDE の「ツール」、「ポート」の「dfuポート」を選ぶと強制的に書き込みが出来ます。
ブートローダの書き込み
最初のうちは、色々と試しているとブートローダが壊れることもあるでしょう。
Arduino UNO R3 では、もう1台の Arduino を書き込み機にしてブートローダを書き込んでいましたが、公式HP に記載されている UNO R4 のブートローダ書き込み方法は以下のとおりです。
1 Arduino IDE のインストール先(C:\Users\◯◯\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を USB ケーブルで接続する。
4 「USB Device Tree Viewer」などの USB 端子確認ソフトを立ち上げる。
5 Arduino UNO R4 のリセットスイッチを押す。
6 接続先の USB 端子が「Arduino UNO R4」から「Renesas RA USB Boot」になるのを確認する。
7 上記プログラマでブートローダ(dfu_minima.hex)を書き込む。
(詳細手順は、以下をクリック)
コメント