温湿度センサPmodボードUS082-HS3001EVZ(ルネサス QuickConnect IoT)ってRX SmartConfiguratorのCG Componentでは素朴に扱えない(cannot be used for it)?

こんにちは。NoMaYです。

ルネサスさんの温湿度センサPmodTMボード(ルネサス クイックコネクトIoT)を買ったのでTB-RX671で触ろうとしています。搭載されている温湿度センサHS3001のデータシートを見たところ、測定開始トリガを掛けるI2Cコマンドは以下の画面コピーのフォーマットになっていて、I2Cのデータライトなのですがデータ数が0の形になっていました。他方、RXスマートコンフィグレータが生成したCGコンポーネントのソースでは、以下の画面コピーの通り、I2C通信API関数内でデータライトのデータ数が0の場合は、何もしない、という処理になっていました。(おそらく、このエラーチェック?は後付の処理で、本来はエラーコードを返すところだけれど、既に戻り値がvoidの関数として規定されていたので、こういう処理になったのだろう、という気がします。)

何か、ひと工夫しないと扱えない、っぽい気配です、、、(だから温湿度センサなのに重厚?ミドルウェアがやたら念入りに用意されていたのかなぁ、、、)

温湿度センサHS3001のデータシートの画面コピー
www.renesas.com/jp/ja/document/dst/hs300x-datasheet


RXスマートコンフィグレータが生成したCGコンポーネントのソースの画面コピー


[関連リンク]

US082-HS3001EVZ 温湿度センサ PmodTM(ルネサス クイックコネクトIoT) 製品ページ
www.renesas.com/jp/ja/products/sensor-products/humidity-sensors/us082-hs3001evz-relative-humidity-sensor-pmod-board-renesas-quick-connect-iot

[追記]

ちなみに、TB-RX671のPmod TMタイプ6Aの標準実装のコネクタの配線ですけど、こういう配線になってました。

TB-RX671の回路図の画面コピー
www.renesas.com/jp/ja/document/sch/target-board-rx671-schematic


TB-RX671 製品ページ
www.renesas.com/jp/ja/products/microcontrollers-microprocessors/rx-32-bit-performance-efficiency-mcus/rtk5rx6710c00000bj-target-board-rx671

Parents
  • こんにちは。NoMaYです。

    RL78/G14 Fast Prototyping BoardのサンプルプログラムにPmod HYGRO (TI HDC1080)の温湿度センサを使ったものがあったことを思い出したのでダウンロードしてみました。サンプルプログラムにはPmod OLEDへの表示機能も含まれていましたが大まかに取り除いてシンプルに温湿度センサの読み出し部分だけにしてみました。そしてRL78/G14 Fast Prototyping Board+Renesas HS3001でのルネサス クイックコネクトIoT センサミドルウェアを使用したサンプルプログラムの使用ROM/RAMサイズと比較してみました。(動作未確認) 結果は以下の通りでしたが、素朴には、TI HDC1080を採用した方がお得そう、に見えてしまいますよね、、、そちらの方が少ないROM/RAMで使えそう、に見えてしまうのだから、、、う~ん、、、

    TI HDC1080温湿度センサの場合 (今回CS+にてビルド)

    PROGRAM SECTION:  000006c7 Byte(s)   1735 バイト(10進数)
    ROMDATA SECTION:  000001a9 Byte(s)    425 バイト(10進数)
    RAMDATA SECTION:  00000019 Byte(s)     25 バイト(10進数)


    Renesas HS3001温湿度センサの場合 (別スレッドから引用)

    PROGRAM SECTION:  00000d65 Byte(s)   3429 バイト(10進数)
    ROMDATA SECTION:  00000320 Byte(s)    800 バイト(10進数)
    RAMDATA SECTION:  00000060 Byte(s)     96 バイト(10進数)

     
    RL78/G14 Relative Humidity Sensor (Pmod HYGRO) Device Sample Rev.1.01 アプリケーションノート

    PDFファイル
    www.renesas.com/jp/ja/document/apn/rl78g14-relative-humidity-sensor-pmod-hygro-device-sample-rev101

    ZIPファイル
    www.renesas.com/jp/ja/document/scd/rl78g14-relative-humidity-sensor-pmod-hygro-device-sample-rev100-sample-code

    RL78/G14 Fast Prototyping Board 製品ページ
    www.renesas.com/jp/ja/products/microcontrollers-microprocessors/rl78-low-power-8-16-bit-mcus/rl78g14-fast-prototyping-board-rl78g14-fast-prototyping-board

    以下、CS+でのビルド時の画面コピーです。(デフォルト最適化 & ソースはPmod OLEDへの表示機能など取り除いた後)



    [追記]

    ちなみに、未使用の変数/関数を削除する最適化を行っても、以下の通り余りサイズは変わりませんでした。

    TI HDC1080温湿度センサの場合 (今回CS+にてビルド)

    実施前

    PROGRAM SECTION:  000006c7 Byte(s)   1735 バイト(10進数)
    ROMDATA SECTION:  000001a9 Byte(s)    425 バイト(10進数)
    RAMDATA SECTION:  00000019 Byte(s)     25 バイト(10進数)

     
    実施後

    PROGRAM SECTION:  00000652 Byte(s)   1618 バイト(10進数)
    ROMDATA SECTION:  000001a7 Byte(s)    423 バイト(10進数)
    RAMDATA SECTION:  00000017 Byte(s)     23 バイト(10進数)

     

  • こんにちは。NoMaYです。

    ちょっと好奇心から、先日の投稿にて改変してシンプルに温湿度センサの読み出し部分だけにしたRL78/G14 Fast Prototyping Boardのサンプルプログラムを、CC-RLではなくてCC-RXで、つまり、RL78(S3)命令セットではなくてRXv2(FPUあり)命令セットで、ビルドしてプログラムサイズを比較してみました。結果はRXv2(FPUあり)命令セットの方がRL78(S3)命令セットよりプログラムサイズが小さくなるようでした。

    もちろん、RL78アセンブラソースはCC-RXではアセンブル出来ませんのでビルドから除外して、また、__nearキーワードやビルトイン関数呼び出し等は少し小細工して、ビルドを無理矢理通すようにしています。あと、比較目的の為に、RL78オンチップデバッグ設定は無効にしてあります。それから、未使用の変数/関数を削除する最適化は施していません。

    [2021/10/21 14:28] プロジェクトのファイル一式を以下のzipファイルに固めました。prnファイルやlstファイルも入れました。

    RL78G14_FPB_PmodHYGRO_CCRX_RX140_20211021.zip
    RL78G14_FPB_PmodHYGRO_CCRL/
    RL78G14_FPB_PmodHYGRO_CCRX_RX140/

    数値は以下の通りです。

    CC-RLでビルドした場合

    PROGRAM SECTION:  00000629 Byte(s)   1577 バイト(10進数)
    ROMDATA SECTION:  0000009f Byte(s)
    RAMDATA SECTION:  00000019 Byte(s)

     
    CC-RXでビルドした場合

    PROGRAM SECTION:  00000480 Byte(s)   1152 バイト(10進数)
    ROMDATA SECTION:  0000040d Byte(s)
    RAMDATA SECTION:  0000001d Byte(s)

     
    以下はMAPファイルの画面コピーです。

    CC-RLでビルドした場合


    CC-RXでビルドした場合


    [追記]

    CC-RXでビルドしたものですが、以下の画面コピーの通り、割り込みルーチンもベクタに割り付けられています。



     

Reply
  • こんにちは。NoMaYです。

    ちょっと好奇心から、先日の投稿にて改変してシンプルに温湿度センサの読み出し部分だけにしたRL78/G14 Fast Prototyping Boardのサンプルプログラムを、CC-RLではなくてCC-RXで、つまり、RL78(S3)命令セットではなくてRXv2(FPUあり)命令セットで、ビルドしてプログラムサイズを比較してみました。結果はRXv2(FPUあり)命令セットの方がRL78(S3)命令セットよりプログラムサイズが小さくなるようでした。

    もちろん、RL78アセンブラソースはCC-RXではアセンブル出来ませんのでビルドから除外して、また、__nearキーワードやビルトイン関数呼び出し等は少し小細工して、ビルドを無理矢理通すようにしています。あと、比較目的の為に、RL78オンチップデバッグ設定は無効にしてあります。それから、未使用の変数/関数を削除する最適化は施していません。

    [2021/10/21 14:28] プロジェクトのファイル一式を以下のzipファイルに固めました。prnファイルやlstファイルも入れました。

    RL78G14_FPB_PmodHYGRO_CCRX_RX140_20211021.zip
    RL78G14_FPB_PmodHYGRO_CCRL/
    RL78G14_FPB_PmodHYGRO_CCRX_RX140/

    数値は以下の通りです。

    CC-RLでビルドした場合

    PROGRAM SECTION:  00000629 Byte(s)   1577 バイト(10進数)
    ROMDATA SECTION:  0000009f Byte(s)
    RAMDATA SECTION:  00000019 Byte(s)

     
    CC-RXでビルドした場合

    PROGRAM SECTION:  00000480 Byte(s)   1152 バイト(10進数)
    ROMDATA SECTION:  0000040d Byte(s)
    RAMDATA SECTION:  0000001d Byte(s)

     
    以下はMAPファイルの画面コピーです。

    CC-RLでビルドした場合


    CC-RXでビルドした場合


    [追記]

    CC-RXでビルドしたものですが、以下の画面コピーの通り、割り込みルーチンもベクタに割り付けられています。



     

Children
No Data