Arduino UNO R4の解析
当サイトはArduino UNO R4に関して,ルネサスエレクトロニクス社製のマイコンRA4M1シリーズやルネサスエレクトロニクス社製マイコン用のArduino APIのソースコードなど,低レイヤーから解析を行うことで,脱初心者を目指す人のための学習ページです.
そのために,そもそもArduino IDEやArduino APIの使い方がわからない,という初心者の方には少々難しい内容です.
初心者の方は,まずはArduino本家のWebページであるArduino APIやArduino UNO R4 MinimaやAruino UNO R4 WiFi,各種書籍やWebサイトなど様々なコンテンツで学習し、Arduino APIを使ってセンサーの値を読み取ったりモーターを動かしてみましょう.
当サイトは,ArduinoのArduino IDEやArduino APIなどの基礎は知っているけど,もう少し中身を知りたい脱初心者を目指す方のため学習ページです.
Arduino APIってラッパーなの?
Arduino APIのソースコードってどういうこと?
そもそも,マイコンRA4M1シリーズなんて意識していなかった...
マイコンRA4M1シリーズのマニュアルの読み方なんてわからないよ...
クロックなんて意識していないよ...
といった方は,ぜひ,当サイトを読み,Arduino Uno R4をマイコンRA4M1やArduino APIのソースコードなどの低レイヤーからいじってみて下さい!
参考文献
ルネサスエレクトロニクス社製のマイコンRA4M1の「マニュアル-ハードウェア 」の「Renesas RA4M1グループ ユーザーズマニュアル ハードウェア編」
マニュアルをダウンロードするには,RA4M1のドキュメントから「Renesas RA4M1グループ ユーザーズマニュアル ハードウェア編」をクリックしてください.
クリック後に,マニュアルが変更された場合のメール通知の有無について聞かれるため,お好きな方を設定してから「Confirm」をクリックすればPDFファイルで読めるはずです.
マイコンRA4M1のマニュアルーハードウェアを片手にArduino UNO R4とマイコンRA4M1を読み解いていきましょう!ルネサス社製マイコン用のArduino APIのソースコード( 特にanalogReadのソースコード ).
Arduinoはオープンソース・オープンハードウェアを掲げており,このソースコードはMITライセンスです.
その一方で,本サイトでは特に扱いませんがArduino IDEのソースコードはAGPL-3.0ライセンスで,強いコピーレフトのオープンソースですので,お気をつけください.Arduino APIのコア(共通)部分であるArduinoCore-APIのソースコードも変数や型を確認するために利用します.ArduinoCore-APIはLGPL-2.1ライセンスのため,Arduino IDEのソースコードと同じくコピーレフトのオープンソースですので,お気を付けください.
コンテンツ:
クロック周波数とレジスタ
ここでは,マイコンRA4M1のクロック周波数の紹介とArduino IDEからレジスタのいじって分周比を変更する方法を紹介しています.
特に,皆さんが自力でルネサス社製のマイコンRA4M1の「Renesas RA4M1グループ ユーザーズマニュアル ハードウェア編」を読み,自力でArduino IDEからレジスタを設定できるようになれること,を筆者自身に課したこの章の目標として強く意識して書きました.
また,2章への布石として,Arduino UNO R4におけるArduino APIのanalogReadのクロック数の推察も行っています.
ここの見どころは,Arduino UNO R4におけるArduino APIのanalogReadの主たる時間がA/D変換ではない!ということをクロック周波数と分周比の関係から推察しています.
まずはここから勉強していきましょう!analogReadのソースコードを読んでみよう!
Arduino APIに含まれるanalogReadがルネサスエレクトロニクス社製のマイコンRA4M1を積んだArduino UNO R4では,どんなプログラムになっているか,紐解いていきます.(工事中)
用語:
本サイトで使うブレやすい用語の定義をします.
Arduino UNO R4: 本家Webページに倣い「Uno」ではなく「UNO」と書きます.Arduinoの特にハードウェアを指します.
Arduino IDE: Arduinoの統合開発環境を意味します.特に本サイトではプログラムを書くエディタや出力結果を表示させるシリアルモニターを指す際にも使います.
ルネサス社.正式にはルネサスエレクトロニクス株式会社ですが,長いため,本サイトではルネサス社と略して呼びます.
マイコンRA4M1シリーズ.ルネサス社のWebサイトにはRA4M1グループと表記されていますが,日本人にはシリーズのほうがなじみ深いため,本サイトではグループではなく,あえてシリーズと呼んでいます.また,Arduino UNO R4に搭載されているマイコンはRA4M1シリーズの型番R7FA4M1AB3CFMですが,一般的にRA4M1マイコンと呼ばれることが多いので,本サイトでも,RA4M1マイコンとも呼びます.
分周: ある(クロック)周波数を 1/n 倍して新たな(クロック)周波数を作成すること.このときの整数nを「分周 n」と本サイトでは書きます.
分周比: 分周の比の値を「分周比 1/n」と本サイトでは書きます.
数学的には,「比は1:n」という表記が正しいですが,本サイトでは「分周比の値」を略して「分周比」と書きます.
文献によっては「分周比 n」と書く場合もありますが,本サイトでは「比」を尊重して,せめて1/nと書きます.