ルネサスのマイコンシリーズで RA というものがあります。なんでも Renesas Advanced の略らしいですが、ARM Cortex-M23, M33, M4 を用いたマイコンらしいです。なんか色々とルネサス側は言っていますが、搭載アーキテクチャ以外に特徴が分かりませんでしたw
ざっと機能を見てみたのですが、どうやら RX ファミリの廉価版と思っていれば良さそうです。アーキテクチャこそ違いますが、(エンコーダインターフェイスが無いのは残念だが)大体の機能はあります。温度センサとかタッチセンサがついているのはいいよね。
僕が買ったマイコンのスペックはこちら。
- Renesas RA Family R7FA2A1AB3CFJ#AA0
- LQFP32 パッケージ
- 以下のスペックで700円くらい(MOUSER)〜300円くらい(Chip1Stop)って激安だよね。
- ARM Cortex-M23 CPU 搭載
- Code Flash: 256KB, Data Flash: 8KB
- RAM: 32KB
ARM Cortex-M23
こちらは ARM Cortex-M0 の後継として、TrustZone と呼ばれる技術を付加したものです。TrustZone とは IoT のためのセキュリティ技術で、バッファオーバーフロー等の脆弱性を利用した攻撃から機密情報を含んだメモリ領域を保護する技術です。
はっきり言って使い所ですとか設定方法はわかっていませんが、以下の Qiita の記事が参考になります。
Armv8-MのTrustZoneを試してみました (第一回) - Qiita
開発環境
必須の開発環境についてです。ARM だから楽に済む... と思いきや、ルネサスお得意の謎仕様で罠があります。「罠じゃねえよふざけるな!」とご存じの方は是非お教えください。
コンパイラ
いつもの arm-none-eabi-gcc でできます。スイッチとして -mcpu=cortex-m23
と指定すればよいです。また、FPU は付いていません。
書き込みソフト
「ARM だから OpenOCD でラクラク!!」......と思うじゃん?対応していないんだなこれが。
ではどうするか、ですが UART(SCI) シリアルを用いてブートローダー経由で書き込みを行います。つまりプログラマを自作するということです。概して簡単なのですが、一部ルネサス語があることによって詰まる事が多かったです。
その他注意点
メモリセキュリティ機能が罠です。Flash 領域は 0x00000000 〜 0x0003FFFF なのですが、0x400 〜 0x43B という非常に中途半端な位置にセキュリティやらコンフィグ用データがあります。そして、この値を誤ると SCI ブートローダが起動しなくなって死にます。僕は3つ死なせました。許せない......
以上、ザックリとした開発環境でした。前回の FT32 マイコン同様に連続マイコン殺人を起こしてしまっていますが、あれもこれも注意点を見やすくしっかり記載しないメーカーが悪いご愛嬌ということで、引き続き研究していきます。