RenesasさんからRXマイコンの低価格Target Boardが出たのでサンプルプログラムをCSplus projectへ変換してみようと思います

こんにちは。NoMaYです。

ウェブで調べ物をしていたら、ルネサスさんからRXマイコンの低価格ボードが出たことを知りました。でも、サンプルプログラムがe2 studioプロジェクト版しか無いようなのでCS+プロジェクトに変換して後で投稿してみようと思います。(もっとも、ボードが無くて動作確認は出来ないので、MOTファイルが同一になるようにしてみるところまでですが、、、) 30米ドル程らしいので3千円ちょっとぐらいかな。

拡充を続ける32ビットマイコン「RXファミリ」を容易に導入できるターゲットボードを発売
~家電製品、ビル用および産業用オートメーション機器向けなどに、「RX65N」「RX130」「RX231」用を用意。組み込み開発のスタートを支援~
www.renesas.com/ja-jp/.../news20180219.html

Target Board for RX family 製品ページ
www.renesas.com/ja-jp/.../rx-family-target-board.html
 

  • Ayrさん、こんにちは。NoMaYです。開発環境の件、開発部門に確認して頂き有難う御座います。

    どうリプライすれば良いか1週間悩んでいたのですが、ついに妙案は思い浮かびませんでした。つまり、Made in Japanのボードですら、開発部門は、CS+で動く/動かないを確認する必要など無い、と考えているということなのですね、、、

  • NoMaY様。
    近くに詳しい人がいたので聞いてみました。
    CS+V6.01以降なら動作するそうです。つなげるときはe2 liteから電源供給しない設定にしてください。
  • こんにちは。NoMaYです。

    鈴木さん、リプライどうも有難う御座いました。動く/動かないに関しては、動くということですね。

    私は新しく買うパソコンを決めました。価格.com+DELLで週末限定のキャンペーンがあり、激安でしたので以下のノートパソコンを買ってみます。AMD製のCPUですが、HDD 1T、メモリ4G、光学ドライブ有、無線LAN有、有線LAN有、といったスペックなのに1万8千円ちょっと(税・送料は除く)という価格です。([追記] 21:33 1時間前には既に割引の半分が終了していてDELLのサイトの価格が上がっていましたが、まだ価格.comには1万8千円ちょっとの価格表示が残っている箇所もありましたけども、そちらも2万8千円ちょっとの価格表示になりました。そういう販売方法が行われていることをようやく理解しました。)

    Inspiron 15 3000 エントリー AMD E2-9000・1TB HDD搭載モデル 価格比較 - 価格.com
    kakaku.com/item/J0000026825/

    すべて ノートパソコン 価格の安い順 - 価格.com
    kakaku.com/pc/note-pc/itemlist.aspx?pdf_so=p1&pdf_pr=-40000

    ちなみに、価格アップにはなりますが、OSをWindows 10 Pro 64bitに変更することも出来るようです。

    [追記] 20:33

    私が買った時は1万1千円+1万円=2万1千円の割引でしたが、2つ目の割引は終了して現在は1万1千円の割引のみになったようです。

  • こんにちは。NoMaYです。#今更ながら昔の投稿の続きです。

    秋月電子さんで2列×23ピンのスタッキングコネクタ(本来はBeagleBoneボード向け)が販売されていることに気付いたので、RX Target Board(2列×25ピン)と組み合わせてみようと思いユニバーサル基板と一緒に購入してみました。(ピン数が合わない部分をどうするかは後で考えてみるつもりです、、、) なお、以下の写真のRX Target BoardはRX65Nのものです。

    ピンソケット 2x23 (46P) リード長10mm
    akizukidenshi.com/catalog/g/gC-08336/


    ProtoBoardユニバーサル基板
    akizukidenshi.com/catalog/g/gP-07048/


    セロハンテープで貼り付けて仮組みしたところ


    ちなみに、上記のユニバーサル基板やBeagleBoneユニバーサルプロトケープやArduino用ユニバーサル基板をRX Target Boardの横に並べると、それぞれ以下の写真のようになります。

    ProtoBoardユニバーサル基板


    BeagleBoneユニバーサルプロトケープ (良く見るとRX Target Boardとは穴の位置が僅かに違う)


    Arduino用ユニバーサル基板


    [追記] 22:00

    マルツさんで2列×25ピンのスタッキングコネクタが販売されていたことに気付きました。(ただ、ピン数比的に、少し割高感はありますが、、、) また、同サイズ(同じ?)ユニバーサル基板も販売されていました。

    ロングタイプのピンソケット 【仕様】2.54mm 25ピン×2列 H:8.5mm Dip:10.5mm
    www.marutsu.co.jp/pc/i/549439/

    PROTOBOARD - RECTANGLE 2"" SINGLE【FIT0099】 【仕様】外形寸法:3.08インチ長さ x 2.28インチ幅(78.0mm x 58.0mm)
    www.marutsu.co.jp/pc/i/27376296/

    [追記] 24:00

    さらに、2列コネクタの配線が少し楽になりそうな、以下のシール基板がマルツさんで販売されていました。

    シール基板 2.54mmピッチリボンコネクター取り出しパターン 【ICB-054】
    www.marutsu.co.jp/pc/i/8562/

    なお、商品写真が見辛かったのでサンハヤトさんのウェブサイトで確認してみました。

    シール基板 ICB-054
    www.sunhayato.co.jp/material2/index.php/item?id=520
     

  • こんにちは。NoMaYです。

    今日、かふぇルネにROS2に関する投稿があって気付いたのですが、昨日の投稿のユニバーサル基板の上に、WA-MIKANを載せて、GR-ROSEでオンボードのESP8266がRX65Nと繋がる端子と同じ端子に繋がるようにすれば、GR-ROSEのROS2が殆どそのまま(或いは無改造でも?)動くような気がして来ました。

    WA-MIKAN-NORMAL
    akizukidenshi.com/catalog/g/gK-11218/

    ただ、今のところは、Amazon FreeRTOSのRensas RXのGitHubのESP8266対応は開発途上(GR-CITRUS+WA-MIKAN+PDG2+GNURX+C++へポーティングしようとしたら結構ワーニングが出ました)ですので、GR-ROSE SDKにも取り込まれるのは、もう少し待つ必要がありそうです。(なお、他人事では無くて、ワーニング取りは私がすることになるかもしれませんが。)

    GitHubのルネサスさんのリポジトリのAmazon FreeRTOS Renesas RX GR-ROSE+ESP8266対応の昨年末のソース
    github.com/renesas-rx/amazon-freertos/tree/5b1db5d/demos/renesas/rx65n-gr-rose-uart-esp8266

    がじぇるねのGR-ROSE SDKのページ
    japan.renesasrulz.com/gr_user_forum_japanese/f/gr-rose/5195/sdk

    あと、今日、かふぇルネに投稿されていたがじぇるねのROS2は、以下ですね。(GR-ROSEのEthernet用ですね。)

    DDS-XRCE通信のデモソフトウェアを公開しました
    japan.renesasrulz.com/gr_user_forum_japanese/f/gr-rose/5563/dds-xrce/

    ちなみに、私自身はROS/ROS2のこと、分かっていませんが、、、

  • こんにちは。NoMaYです。

    今更ながらユーザーズマニュアルが昨年の夏(2018年7月)に改版されていたことに気付いたので目を通していたら、「RFPとの通信は未対応です」との記載が削除されていたことに気付きました。また、以下のようにRFPが使える旨の記載に変更されていたことにも気付きました。試してみたところ、無事にRFPと通信が成立しました。(ちなみに、初回通信時にオンボードエミュレータのファームもアップデートされたっぽいです。)

    Target Board for RX130 ユーザーズマニュアル Rev.1.01 2018.7
    www.renesas.com/jp/ja/doc/products/mpumcu/doc/rx_family/r20ut4169jj0101-rxtb.pdf

    Target Board for RX231 ユーザーズマニュアル Rev.1.01 2018.7
    www.renesas.com/jp/ja/doc/products/mpumcu/doc/rx_family/r20ut4168jj0101-rxtb.pdf

    Target Board for RX65N ユーザーズマニュアル Rev.1.01 2018.7
    www.renesas.com/jp/ja/doc/products/mpumcu/doc/rx_family/r20ut4167jj0101-rxtb.pdf

    旧(Rev.1.00 2017.10) 12頁

    5.2 USB コネクタ
    コネクタ形状はUSB mini-B で、用途はデバッグインタフェースです。...以後省略...


    新(Rev.1.01 2018.7) 12頁

    5.2 USBコネクタ
    コネクタ形状はUSB mini-Bで、用途は統合開発環境(IDE)とルネサスフラッシュプログラマ(RFP)を使用するためのインタフェースです。...以後省略...


    以下、プロジェクトを作成してブランクチェックした時の画面コピーです。(なお、RFPのメッセージ表示エリアを少し伸ばすように加工して、メッセージを一度に見られるようにしてあります。)

    プロジェクト作成




    ブランクチェック

  • こんにちは。NoMaYです。

    RFPを触っていて、オンボードエミュレータとの通信切断時に、オンボードエミュレータのリセット出力をHi-zにし、切断後も、そのままHi-zを継続する、ということが出来ることに気付きました。TBボードのマニュアルによると、USBから給電する場合、プログラムをフリーランさせるにはボードのジャンパピン(要半田付け)をショートさせてオンボードエミュレータをリセット状態にしなければならないのですが、この機能を使えば、ジャンパピンをオープンにしたまま、RFPで書き込んだ後にすぐにプログラムをフリーランさせることが出来ます。

    また、RFPには、サイレントモードというものがあり、GUIを表示することなしに、コマンドラインオプションでRFPの操作を制御することが出来るのですが、RFPの操作としてチェックサムコマンドを指定しておくと、DOSプロンプトから気軽にオンボードエミュレータのリセット出力をHi-z or Lowにすることが出来るようになります。(ただし、短時間だけLow⇔Hi-zのトグルがあります。とはいえ、マイコンはフラッシュプログラミングモードに入っていますので、ユーザプログラムは走りません。) DOSプロンプトから以外にも、Windowsショートカットを作成して、コマンドライン文字列を設定してやれば、WindowsデスクトップやWindowsツールバーに配置して、1クリック(or 1 ダブルクリック)で行えるようになります。

    他方、以前からTeraTermにTeraTerm Menuというランチャーソフトが同梱されていることに気付いていて何か機会があれば試してみようと思っていたのですが、ふと、これで試してみようという考えが思い浮かびました。そこで、以下の画面コピーのように、やってみました。そして、やって分かったのですが、RX231やRX130ではプログラムにIDコードが設定されていないとチェックサムコマンドでもフラッシュメモリが自動的/強制的に消去されます。ルネサスさんが公開しているTBボードのサンプルプログラムではIDコードが設定されていませんでしたので、サンプルプログラムを変更しましたが、その箇所も以下に書いておきました。(なお、RX65Nは少しフラッシュメモリの仕様が異なっており、IDコードを設定する必要は無さそうでしたが、どうせなので、IDコードを設定してみました。)

    ちなみに、そんなことをするよりジャンパを挿したり抜いたりした方が素早く出来るというのも確かなのですが、私のパソコンだとWindowsエクスプローラが暫く固まってしまったりとかして、あまり心地良いものでは無かったりしますので、こういったやり方を試してみました。

    RFPのエミュレータリセット出力の設定画面(本目的では速い通信速度は不要なので確実性重視で250Kbpsにしています)


    TeraTerm Menuの設定画面やメニュー画面
      

    TeraTerm Menuのドキュメントからの抜粋


    RFPのドキュメントのサイレントモードの記載
    www.renesas.com/jp/ja/doc/products/tool/doc/014/r20ut4307jj0200-rfp.pdf


    RFPの操作設定とIDコード設定の画面



    今回のRFPプロジェクトファイル一式(参考)
    rxtb_rfpproj_20190205.zip

    TerTerm Menuの設定(フォルダのパスは私の環境のものになってます)

    リスト項目: TB RX130 RES
    起動アプリ: C:\Renesas\Programming Tools\Renesas Flash Programmer V3.05\RFPV3.exe
    オプション: C:\Renesas\rfpproj\generic\e2lite-fine-res-rx100.rpj /silent

    リスト項目: TB RX130 RUN
    起動アプリ: C:\Renesas\Programming Tools\Renesas Flash Programmer V3.05\RFPV3.exe
    オプション: C:\Renesas\rfpproj\generic\e2lite-fine-run-rx100.rpj /silent

    リスト項目: TB RX231 RES
    起動アプリ: C:\Renesas\Programming Tools\Renesas Flash Programmer V3.05\RFPV3.exe
    オプション: C:\Renesas\rfpproj\generic\e2lite-fine-res-rx200.rpj /silent

    リスト項目: TB RX231 RUN
    起動アプリ: C:\Renesas\Programming Tools\Renesas Flash Programmer V3.05\RFPV3.exe
    オプション: C:\Renesas\rfpproj\generic\e2lite-fine-run-rx200.rpj /silent

    リスト項目: TB RX65N RES
    起動アプリ: C:\Renesas\Programming Tools\Renesas Flash Programmer V3.05\RFPV3.exe
    オプション: C:\Renesas\rfpproj\generic\e2lite-fine-res-rx65x.rpj /silent

    リスト項目: TB RX65N RUN
    起動アプリ: C:\Renesas\Programming Tools\Renesas Flash Programmer V3.05\RFPV3.exe
    オプション: C:\Renesas\rfpproj\generic\e2lite-fine-run-rx65x.rpj /silent

    サンプルプログラムの変更箇所(赤文字)

    RX231の場合: an-r20an0466jj0100-rxtb-rx231\Workspace\tb_rx231\src\cg_src\r_cg_vecttbl.c

    /*;0xffffffa0  ID */
        (void (*)(void))0x45ffffff,

    /*;0xffffffa4  ID */
        (void (*)(void))0xffffffff,

    /*;0xffffffa8  ID */
        (void (*)(void))0xffffffff,

    /*;0xffffffac  ID */
        (void (*)(void))0xffffffff,

    RX130の場合: an-r20an0468jj0100-rxtb-rx130\Workspace\tb_rx130\src\smc_gen\r_config\r_bsp_config.h

    /* Set your desired ID code. NOTE, leave at the default (all 0xFF's) if you do not wish to use an ID code. If you set 
       this value and program it into the MCU then you will need to remember the ID code because the debugger will ask for
       it when trying to connect. Note that the E1/E20 will ignore the ID code when programming the MCU during debugging.
       If you set this value and then forget it then you can clear the ID code by connecting up in serial boot mode using
       FDT. The ID Code is 16 bytes long. The macro below define the ID Code in 4-byte sections. */
    /* Lowest 4-byte section, address 0xFFFFFFA0. From MSB to LSB: Control Code, ID code 1, ID code 2, ID code 3. */
    #define BSP_CFG_ID_CODE_LONG_1          (0x45FFFFFF)
    /* 2nd ID Code section, address 0xFFFFFFA4. From MSB to LSB: ID code 4, ID code 5, ID code 6, ID code 7. */
    #define BSP_CFG_ID_CODE_LONG_2          (0xFFFFFFFF)
    /* 3rd ID Code section, address 0xFFFFFFA8. From MSB to LSB: ID code 8, ID code 9, ID code 10, ID code 11. */
    #define BSP_CFG_ID_CODE_LONG_3          (0xFFFFFFFF)
    /* 4th ID Code section, address 0xFFFFFFAC. From MSB to LSB: ID code 12, ID code 13, ID code 14, ID code 15. */
    #define BSP_CFG_ID_CODE_LONG_4          (0xFFFFFFFF)

    RX65Nの場合: an-r20an0464jj0100-rxtb-rx65n\Workspace\tb_rx65n\src\smc_gen\r_bsp\board\generic_rx65n\vecttbl.c

    #pragma address __OSISreg=0xFE7F5D50           /* OSIS register (ID codes) */
    const unsigned long __OSISreg[4] = {
            0xffffff45, ← 変更する場所が違うので注意
            0xffffffff,
            0xffffffff,
            0xffffffff,
    };

    [参考]

    以下、TBボードのユーザーズマニュアルの画面コピーとTBボードのジャンパピン位置の写真です。

    RX231
    www.renesas.com/jp/ja/doc/products/mpumcu/doc/rx_family/r20ut4168jj0101-rxtb.pdf




    [参考]

    以下、RX231とRX130とRX65Nのハードウェアマニュアルの画面コピーです。

    RX231
    www.renesas.com/jp/ja/doc/products/mpumcu/doc/rx_family/r20ut4168jj0101-rxtb.pdf





    RX130
    www.renesas.com/jp/ja/doc/products/mpumcu/rx100/r01uh0560jj0300-rx130.pdf

    ...以後、RX231と同様なので、省略します...

    RX65N
    www.renesas.com/jp/ja/doc/products/mpumcu/doc/rx_family/r01uh0590jj0210-rx651.pdf





    [参考]

    TeraTermプロジェクトのサイト
    ja.osdn.net/projects/ttssh2/
     

  • こんにちは。NoMaYです。

    TBボードのユーザーズマニュアルによると、以下の場合にはTBボードの部品面とハンダ面でパターンカットを行った上で外部電源で動作させるようにしないといけないのですが、外部電源を必要とするユースケースがひとつ想定外になっているような気がします。(恐らくRXマイコン学習基板という位置付けで開発されたからなのだと思いますが、、、)

    TBボードが想定している外部電源を必要とするユースケース

    (1) 評価MCUを任意の電圧で動作させる場合
    (2) USBの電流容量では不足する場合

    良くある外部電源を必要とするユースケースだと思うけれども想定外になっているもの

    (3) 近くにパソコンが無い場所で使用する場合

    そして、(3)では、機能追加やバグ修正を行おうとすると、パターンカットした箇所をリペアしてUSB接続で使えるように戻さないといけないのですが、機能追加やバグ修正の度にリペアするというのはさすがに面倒だと思います。(それより、E2Liteエミュレータを買ってしまうか、もう1枚TBボードを買ってしまうか、のが良い?) 回路図を見たところ、パターンカットした後にTBボードのオンボードエミュレータ側からVCC/GND/RESET/FINED/GND(及び5V/3.3V)を引き出せるようにピンヘッダ(又はピンソケット)を立てられるようになっていましたので、そことTBボードのマイコン側を繋ぐ経路を探して写真に書き込んでみました。幸い、VDD/GNDとRESET/FINED/GNDの2組に分けて、それぞれまとめて引き回せそうです。また、VDD/GNDの組だけでなくRESET/FINED/GNDの組も、繋ぐ先はRX231/RX130/RX65NのどのTBボードでも同じ箇所で済みます。



    [参考]

    以下、TBボードのユーザーズマニュアルの画面コピーです。また、図ではハンダ面カットパターンの様子が分かり難いですので、その部分のTBボードの写真も付けました。

    www.renesas.com/jp/ja/doc/products/mpumcu/doc/rx_family/r20ut4168jj0101-rxtb.pdf

  • こんにちは。NoMaYです。

    TBボードのサンプルプログラムを基にxxx_main.cをxxx_main.cppにしてスマートコンフィグレータが生成した関数を呼び出せるようにして動かしてみました。(Amazon FreeRTOS Renesas RX GR-ROSEのC++プロジェクトのやり方を真似ています。) プロジェクトのファイル一式は以下の通りです。なお、CC-RXはCS+プロジェクト(rcpeファイル同梱)(CS+ V8.01+CC-RX V2.03でビルド)、GNURXはe2 studioプロジェクト(e2 studio v7.30+GNURX 4.8.4.201803でビルド)、になっています。

    tb_rx65n_scfg_ccrx_cpp_csplus_20190228.zip
    tb_rx65n_scfg_gnurx_cpp_e2v730_20190228.zip
    tb_rx130_scfg_ccrx_cpp_csplus_20190228.zip
    tb_rx130_scfg_gnurx_cpp_e2v730_20190228.zip
    tb_rx231_scfg_ccrx_cpp_csplus_20190228.zip
    tb_rx231_scfg_gnurx_cpp_e2v730_20190228.zip

    以下はプロジェクトの画面コピーです。(BSPモジュールのヘッダファイルの事情でマクロ定義で無理矢理なことをやっていたり、ワーニングレベルを上げている一方でスマートコンフィグレータが生成したソースコードに対しては(CS+はカテゴリ単位で設定出来ないので諦めて)e2 studioでワーニング無しにしていたりします。)

    CC-RX CS+


    GNURX e2 studio




    今回はスマートコンフィグレータの以下の設定画面で先日の投稿と同じIDコードを設定しています。

    RX130とRX231


    RX65N

  • NoMaYさん

    シェルティです、こんにちは。
    ターゲットボードご活用ありがとうございます。

    企画者からコメントを貰ってきました。
    ---企画者コメント
     NoMaYさんのご指摘・ご推測の通りであり、他の製品にも考慮すべきユースケースですので、
     組込マイコンユーザの貴重な意見として受け止め、これからの製品仕様決定に生かしていきます。
    ---

    ここからは開発者側(正直ベース)のコメントです。
    ---開発者コメント
     ・製造原価を可能な限り下げてお客様の購入単価を下げたかった
     ・クロックと電源周りの設計はスタンドアロン動作/エミュレータ接続を見越してもう少し時間をかけるべきであった
      (早急にターゲットボードを市場投入したかった背景ありユースケースの想定が不十分だったように思う)
    ---

    今後とも情報交換させていただきますと幸いです。
    私も引き続きソフトウェア面から開発環境整備の支援をさせていただいております。

    以上です