RL78/G23でRAMに保存したA/D変換値をCOM Port経由でPCに転送しcsvで保存したいです。

初めまして。Hibaと申します。
初めてのマイコンでRL78/G23-64p Fast Prototyping Boardを使用しています。
以下のサンプルコードを改変して、RAMに保存したA/D変換値をCOM Port経由でPCに転送しcsvで保存したく試用中です。

 サンプルコードをハードウエアデバッグすることは完了しましたが、A/D変換値を確認することができず詰まっております。
質問としましては、以下2点でございます。

①e2 studio上でRAMにに保存したA/D変換値を読む方法をご教示願いたいです?
②RAMに保存したA/D変換値をCOM Port経由でPCに転送することは可能でしょうか?

【環境】
・e2 studio(Windows11)
・ツールチェーンRenesas CCRL v1.11.00
・RL78/G23-64p Fast Prototyping Board

以上、よろしくお願いいたします。

Parents
  • Hibaさん、こんにちは。NoMaYと申します。

    > ①e2 studio上でRAMに保存したA/D変換値を読む方法をご教示願いたいです?

    質問された意図とは違った答えになっているかも知れませんけれども、アプリケーションノートの配列変数なら以下の何れかで確認出来ますよ。

    (1) 式ウィンドウ
    (2) メモリブラウザウィンドウ
    (3) (ちょっと不便ですけれども)メモリウィンドウ

    > ②RAMに保存したA/D変換値をCOM Port経由でPCに転送することは可能でしょうか?

    可能ですよ。RL78/G23-64p Fast Prototyping Board上のUART⇔USB変換IC経由でPCのTeraTerm等に出力出来ます。そのボードに関して、e2 studioで使う場合の小技等も含めて、以下のスレッドに私が試した(それなりに長大な)記録があります。また、以下のサンプルプログラムではLLVM-RL78というフリーコンパイラ+FreeRTOSを使用していますけれども、e2 studioで使う場合の小技等に関しては、CC-RLでも大差無かった筈だったと記憶しています。

    RL78/G23 Fast Prototyping Boardを買いました
    community-ja.renesas.com/cafe_rene/forums-groups/mcu-mpu/rl78/f/forum18/7087/rl78-g23-fast-prototyping-board/39350#39350

    RL78 Fast Prototyping Board+LLVMRL78+Cplusplus sample program
    community-ja.renesas.com/cafe_rene/forums-groups/beginners/f/002-2095199602/7430/rl78-fast-prototyping-board-llvmrl78-cplusplus-sample-program
     

  • NoMaYさん、こんにちは。
    ご回答ありがとうございます。以下質問したく思います。お忙しいところ申し訳ありません。
    ご紹介いただきましたサンプルプログラムの、
    UART出力
    30_UART_Printf/
    をe2 studio上でハードウエアデバッグして、e2 studio終了後にTera Termで確認しましたが、Hello Worldが表示されません。(LEDは点滅しています。ボーレートは9600、COMポートはハードウエアデバックと同じものを選択。
    )
    NoMaYさんが以下のように記述なさっておりますが、こちらは関係ありますでしょうか?

    > シリアルコンソールのサンプルプログラムはボード上のFT232RQに接続されたUART0になっていますが、同じくボード上のFT232RQを使用するCOMPort通信デバッグ機能とは競合しますので、シリアルコンソールのサンプルプログラムではCOMPort通信デバッグは出来ません。

  • Hibaさん、こんにちは。NoMaYです。

    はい、関係あります。30_UART_Printfのソースを覗いて頂くと、以下のコメントが見えると思いますが、これはArduinoソケットのD1とD0を経由してPCのTeraTerm等に出力するサンプルです。(COMPort通信デバッグ機能を使用出来るように(残しておくように)、あえてArduinoソケットのD1とD0に繋がっているUARTを使う、というサンプルだったのでした。)

    // Please do the following steps
    // 1. Change the COM Port number of USB Serial Port connected to
    //    RL78/G23-64p FPB to COM9 by using Windows Device Manager.
    // 2. Push 'Launch in Run mode' button of launch bar of e2 studio
    //    to run the program. (This step includes launching Renesas
    //    Flash Programmer V3.08. Please install it before the step.)
    // 3. This example uses MCU's UART1 (TxD1/RxD1 = Arduino's D1/D0)
    //    and the UART is configured with 9600 baud.

     
    これ以外に、10_SerialConsole_printfのソースを覗いて頂くと、以下のコメントが見えると思いますが、これがRL78/G23-64p Fast Prototyping Board上のUART⇔USB変換IC経由でPCのTeraTerm等に出力するサンプルです。

    // Please do the following steps
    // 1. Change the COM Port number of USB Serial Port connected to
    //    RL78/G23-64p FPB to COM9 by using Windows Device Manager.
    // 2. Push 'Launch in Run mode' button of launch bar of e2 studio
    //    to run the program. (This step includes launching Renesas
    //    Flash Programmer V3.08. Please install it before the step.)
    // 3. Open Terminal view of e2 studio then open terminal choosing
    //    'Serial Terminal' mode with COM9 and 2000000 baud.

     
    ごめんなさい。これを作っていた時は気付かなかったのですけれども、10_SerialConsole_printfのコメントに、RL78/G23-64p Fast Prototyping Board上のUART⇔USB変換IC経由ですよ、といった文面が欲しいところですかね。そして逆に、30_UART_Printfのコメントに、こちらはそうでは無いですよ、といった文面が欲しいところですね。すみません、、、

Reply
  • Hibaさん、こんにちは。NoMaYです。

    はい、関係あります。30_UART_Printfのソースを覗いて頂くと、以下のコメントが見えると思いますが、これはArduinoソケットのD1とD0を経由してPCのTeraTerm等に出力するサンプルです。(COMPort通信デバッグ機能を使用出来るように(残しておくように)、あえてArduinoソケットのD1とD0に繋がっているUARTを使う、というサンプルだったのでした。)

    // Please do the following steps
    // 1. Change the COM Port number of USB Serial Port connected to
    //    RL78/G23-64p FPB to COM9 by using Windows Device Manager.
    // 2. Push 'Launch in Run mode' button of launch bar of e2 studio
    //    to run the program. (This step includes launching Renesas
    //    Flash Programmer V3.08. Please install it before the step.)
    // 3. This example uses MCU's UART1 (TxD1/RxD1 = Arduino's D1/D0)
    //    and the UART is configured with 9600 baud.

     
    これ以外に、10_SerialConsole_printfのソースを覗いて頂くと、以下のコメントが見えると思いますが、これがRL78/G23-64p Fast Prototyping Board上のUART⇔USB変換IC経由でPCのTeraTerm等に出力するサンプルです。

    // Please do the following steps
    // 1. Change the COM Port number of USB Serial Port connected to
    //    RL78/G23-64p FPB to COM9 by using Windows Device Manager.
    // 2. Push 'Launch in Run mode' button of launch bar of e2 studio
    //    to run the program. (This step includes launching Renesas
    //    Flash Programmer V3.08. Please install it before the step.)
    // 3. Open Terminal view of e2 studio then open terminal choosing
    //    'Serial Terminal' mode with COM9 and 2000000 baud.

     
    ごめんなさい。これを作っていた時は気付かなかったのですけれども、10_SerialConsole_printfのコメントに、RL78/G23-64p Fast Prototyping Board上のUART⇔USB変換IC経由ですよ、といった文面が欲しいところですかね。そして逆に、30_UART_Printfのコメントに、こちらはそうでは無いですよ、といった文面が欲しいところですね。すみません、、、

Children
  • NoMaYさん。重ね重ねご返信ありがとうございます。
    内容について理解しました。
    今回私がやりたいことはご紹介いただきました10_SerialConsole_printfの方ということですね。

    以下2点追加で質問させていただきたく思います。お忙しいところ大変申し訳ありません。
    ①10_SerialConsole_printfのコメント内に、
    >This step includes launching Renesas Flash Programmer V3.08. Please install it before the step.
    と記述ありますが、Renesas Flash Programmerは必須なのでしょうか?
    10_SerialConsole_printfをe2 studiioのハードウエアデバッグで書き込んだ場合に、Tera Term上でHello Worldが表示されませんでした。Renesas Flash Programmerで書き込んだ場合と挙動が異なるのでしょうか?という意図で質問させていただいております。なお、COM Portは9にWindowsのデバイスマネージャーで設定しました。

    ②Renesas Flash Programmerが必須な場合、書き込み用のmot or hexファイルが必要となると思います。これらファイルの出力がデフォルトでされず困っております。何か設定等が間違っているのでしょうか?
    Renesas Flash Programmer V3.11.00を導入しRL78/G23ボードとの接続まではできております。e2 studioのマニュアルではHardwareDebagフォルダにmotファイルが出力される旨、記述がありますが出力されません。またNoMaYさんの別のご回答を参考にArtifact extensionをmotにしてみたのですが出力されません。
    >これは、e2 studio あるある、だったような気がします。あるバージョン以降のe2 studioで以前のバージョンのe2 studioで作成したプロジェクトを使おうとすると発生する現象だったと思います。対処方法は以下の筈です。

    発生条件

    ・ projectのpropertyのC/C++ buildのSettings-->Build Artifact-->Artifact extensionが mot になっている
       (日本語モードでは、設定-->ビルド成果物-->Artifact extension、です。)

    対処方法

    ・ Artifact extensionを mot から abs へ変更する


    以上、お忙しいところ大変恐縮でございますがよろしくお願いいたします。

  • Hibaさん、こんにちは。NoMaYです。

    > Renesas Flash Programmerで書き込んだ場合と挙動が異なるのでしょうか?という意図で質問させていただいております。

    ルネサスさんのオフィシャル案件では、RL78では(というか多分RXやRH850も)最終確認はMOTファイル等をRFP等のプログラム書き込みツールで書き込んで行って下さい、ということになっていたと思いますけれども、少なくともRL78ではデバッガで書き込んだままでも動作しました。(今しがた手元で確認しました。)

    それで少し確認したいのですけれども、LEDは点滅していますでしょうか?点滅しているのであれば、TeraTermのボーレート設定を確認して頂けませんか?10_SerialConsole_printfのボーレートは2000000bpsつまり2Mbpsです。TeraTermのボーレート設定のドロップダウンリストのボーレートの候補には用意されていませんので、2000000を手入力して頂けませんか。

    どのみちArduinoシールドと接続することはありませんので(Arduinoシールドと接続するものでは無いですので)、PCのTeraTerm等へデバッグメッセージを出力する用途として、RL78/G23-64p Fast Prototyping Board上のUART⇔USB変換ICが動作するギリギリまで高速なボーレートに設定してあります。

    > 書き込み用のmot or hexファイルが必要となると思います。これらファイルの出力がデフォルトでされず困っております。

    以下をダウンロードしてe2 studio 2022-10でビルドしてみたところ、以下のMOTファイルが生成されていました。このMOTファイルはありませんでしたでしょうか?

    r01an5523xx0101-rl78g23-adc/workspace/e2studio/r01an5523/DefaultBuild/r01an5523.mot

    RL78/G23 A/Dコンバータ (スキャン・モード) Rev.1.01 - サンプルコード
    www.renesas.com/jp/ja/document/scd/rl78g23-ad-converter-scan-mode-rev101-sample-code

    LLVM-RL78の場合、MOTファイルの拡張子はsrecになります。つまり、以下のファイルがMOTファイルになります。

    SerialConsole_printf.srec

  • NoMaYさんこんにちは。Hibaです。重ね重ねありがとうございます。
    最終的にRFPで.srecを書き込んだところ、Tera Term上でHello Worldが表示できました!
    (ただしハードウエアデバッグでは表示されませんでした。)
    ありがとうございます。やっとスタートラインに立てました。

    以下、ご指摘事項の回答でございます。

    >ルネサスさんのオフィシャル案件では、RL78では(というか多分RXやRH850も)最終確認はMOTファイル等をRFP等のプログラム書き込みツールで書き込んで行って下さい、ということになっていたと思いますけれども、少なくともRL78ではデバッガで書き込んだままでも動作しました。(今しがた手元で確認しました。)

    ご検証いただきありがとうございました。
    最終はRFP等のプログラム書き込みツールで書き込みますが、デバッガで書き込んでも動いたということですね。

    >それで少し確認したいのですけれども、LEDは点滅していますでしょうか?点滅しているのであれば、TeraTermのボーレート設定を確認して頂けませんか?10_SerialConsole_printfのボーレートは2000000bpsつまり2Mbpsです。TeraTermのボーレート設定のドロップダウンリストのボーレートの候補には用意されていませんので、2000000を手入力して頂けませんか。

    デバッグモードで書き込んだ後に、LEDは点滅しております。
    しかしTeraTermのボーレート設定に2000000を手入力しましたが、何も表示されません

    >LLVM-RL78の場合、MOTファイルの拡張子はsrecになります。つまり、以下のファイルがMOTファイルになります。

    ご教示いただきありがとうございます。
    ビルド後にSerialConsole_printf.srecの生成を確認しましたので、これをRFPで書き込みをしたところ、Hello Worldが表示されました!

  • Hibaさん、こんにちは。NoMaYです。

    うむむむ、デバッグモードで書き込んだ後(e2 studioを終了して/もしくは少なくともデバッガを切断して)LEDが点滅しているのにTeraTermに表示されない、だが、srecファイルをRFPで書いたら表示された、というのは、少々(というか、かなり)私としては困惑する状況ですけれども、今はその点はHibaさんの方では先送りするのが得策ですかね。(操作に慣れてきたら、そのうち、そういうことだったのか、と思い至ることがあるかも知れません。)

  • NoMaYさん、こんにちは。Hibaです。
    ご返信ありがとうございます。

    確かに症状が不可解で私も納得はできておりません。。。
    (デバッグモードで書き込んで表示されなかった→やけくそでとりあえずsrecファイルをRFPで書き込んだところ成功という経緯です。)
    本件は一旦先送りして、後で何かわかりましたらここに追記したく思います。