RX72N Envision Kit
RX65N Envision Kit は、かなり良く出来ていたけど、不満な部分もあった。
RX72N Envision Kit は、その「不満」の大部分が解消されて、かなり完成度が高い仕上がりとなっている。
※現状では、設計データや、インストールプログラムについての情報などがアップロードされていないのが残念ではあるが、時間が解決するものと思う。
※チップ・ワン・ストップで、4620円だった。
※ソースコードは github に公開された。
※プロジェクトは、ルネサスの統合環境、CC-RX
内容を考えると、かなりコストパフォーマンスが高い製品となっている。
開発環境の問題等もあるが、M5Stack に比べて人気が低いのは残念と思う。
何か自作アプリを作るのなら、より良い物が創れると思う。
※独自にコンパイルした、gcc-6.4.0 ベースの環境で、問題なく開発が可能。
- WiFi/Bluetooth モジュール(ESP32)
- マイクロ SD ソケット
- Ethernet (10/100)機能、RJ45 コネクタを含む
- DSP 内臓のオーディオインターフェース、クロックジェネレータ
- USB Serial インターフェース(PC とのシリアル通信機能)
- 480x272 の静電容量タッチ付き液晶
- 多目的に使える 32M の EEPROM
- ステレオマイク
- USB ホスト機能(クライアント機能も可能と思える)
- E2 Lite 相当のエミュレーター機能(Fine)
※ オーディオインターフェース、D2-41051(インターシル/ルネサス)
※クロックジェネレータ 5X35023(IDT/ルネサス)
RX マイコンのフラッグシップモデル RX72N(R5F572NNHDFB) の特徴
※ 4MB プログラムフラッシュ、暗号機能アリ、144ピンLFQFP
- コアは最大 240MHz 動作
- 高機能な液晶コントローラと、グラフィックスの描画をブーストする DRW2D エンジン
- 512K + 512K バイトの内蔵 RAM と、4MB の内蔵フラッシュメモリ
- 豊富なチャネルを持ち、高速で高精度な A/D 変換ユニット(最大 2MBPS/12bits)
- 倍精度浮動小数点命令を実行可能な RXv3 コア
- 三角関数演算ユニット
- 72 ビットのアキュムレータを持つ積和演算器、DSP 命令
- I2S インターフェース内蔵(デジタルオーディオ入出力)
ルネサス(インターシル)D2-41051
Renesas/D2-41051 Intelligent Digital Amplifier PWM Controller and Audio Processor
新規にオーディオ用として投入されたこのデバイスは、このボードにピッタシの選択なのかもしれない。
かなり多くの品種を展開する「インターシル」は「ルネサス」の傘下になり、今回のプロジェクトにピッタリなICを持っていた。
このプロセッサは、非常にユニークで、I2Sからのデジタル信号をフルデジタルで出力してスピーカーを直接駆動する事が出来る。
※最終はPWM出力なので効率が良く、構造上、一般的なオーディオ用D/A、フィルター、プリアンプが必要無い。
※ボリューム調整もフルデジタルで行える。
※単価を調べると、1個購入時でも500円程度なので、他の用途にも使いたいと思える。(マウサー調べ)
ただ、I2Cで通信して、レジスターの意味を理解して、適切なパラメータをセットする手順は複雑そうだー
※サンプルがあるかもしれないけど、まだあまり調べていない・・
※TI にも同じようなデバイスがあるが、TI よりこちらの方が機能的に優れておりコストも安い。
Wifi/Bluetooth
今回はイーサーネットが「Ready」状態なのだが、無線も最初から用意されている。
ESP32 が乗っている、速度はあまり期待出来ないが、WiFi や Bluetooth が使えると、アプリの自由度が格段に上がる。
※ソフトの構成が複雑になるので、アプリに組み込んで利用するには、相応のスキルは必要だが、FreeRTOS 下で 240MHz 動作となると、まぁ何とでもなると思える。
USB Serial
ルネサス社の仮想シリアルが載っており、PC と接続して、ターミナルソフトなどでデバッグ情報などやりとりが行える。
もちろん特定のアプリで、PC と通信する事も出来る、シリアル通信はシンプルで簡単なので、小回りが利いて便利だ。
※ルネサス社のシリアルドライバをインストールする必要があるが、FlashProgrammer V3 をインストールする時に入るようだ。
それとは別に E2 Emulator Lite の USB 接続も出来る、こちらは、ルネサス純正の統合環境なら、より洗練されたデバッグ環境を使えると思われる。
アプリ
電源を入れ、初期インストールアプリで一通り遊んでから、早速、自前のプログラムを動かしてみた。
~~まだ、回路図などが公開されていないので(ソースを調べて、どのポートがアサインされているのか調べれば良いのだが・・)、とりあえず
LED 点滅だけやってみた。~~
※ユーザー LED はパターンを見ると「P40」に接続しているようだ。
また、メインクロックは 16MHz となっている。
※これは、RX72x で新たに追加された PLL 回路を使い、Ethernet PHY 向け 25MHz を生成するのに適した周波数となる。
※ 16MHz を 1/2 にして PLL で 25 倍すると 200MHz が得られる、これを 1/8 すると 25MHz が得られる。
※自前のフレームワークでは、テンプレートで、メインクロック周波数を指定すれば、内部のクロック設定は自動で行われる。
#elif defined(SIG_RX72N)
typedef device::system_io<16'000'000> SYSTEM_IO;
typedef device::PORT<device::PORT4, device::bitpos::B0> LED;
#elif defined(SIG_RX64M)
恒例のレイトレースによるベンチマーク
※とりあえず、RXマイコン最速をマーク!(RX71Mも240MHzだけど、ポートバスでの描画の評価しかしていない)
※倍精度浮動小数点演算命令をサポートしていない状態(本格的にコンパイラをテコ入れする必要がある)
とりあえず、今日はここまで。
4月7日追記
SDHIの動作検証も行い、問題無くSDカードがアクセスできる事を確認している。
現在動作可能なサンプル
- First_sample/RX72N
- SCI_sample/RX72N
- RAYTRACER_sample/RX72N
- SDCARD_sample/RX72N
Renesas RX72N Envision Kitのページに、各種ドキュメントがアップされました。
それにより判明した事:
- デジタルオーディオは、初期設定で、48KHz の I2S を受け付けるように IPL ROM が載っている。
- 3.5mm のオーディオジャックは、インピーダンスの関係か、イヤホンのようなインピーダンスが高い物は「不可」となっているようだ。
- 「8オームのスピーカーは接続出来る」とある。
※少し残念なのは、44.1KHz 等に対応しておらず、44.1KHz の音源は 48KHz に変換して出さないといけない点・・・