Re01 256KBでのオプション機能選択レジスタについて

RE01-256KBを用いて二次電池の充電をする際に、充電電圧を変更したいと考えています。サンプルコードとして、下記のものを使用しています。

バッテリメンテナンスフリーを可能とするエナジーハーベストシステムの パワーマネジメント

このドキュメント中に、下記のような記載があります。


本デバイスは、オプション機能選択レジスタ1(OFS1)の二次電池(VBAT)の充電電圧選択ビットに
よって、二次電池の充電電圧を選択可能です。本サンプルコードでは、充電電圧としてRE01 1500KB グ
ループでは3.0V(初期値)を、RE01 256KB グループでは3.1V(初期値)を選択しています。ユーザの選択
する二次電池に合わせ設定を変更してください。


このオプション機能選択レジスタ1というものが、何なのかがわからず、また変更の仕方もわからずにいます。具体的には、3.3V以上に変更したいのですが、どなたかわかる方いらっしゃいましたら、ご教示いただけませんか。よろしくお願いします。

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

    たぶん、RXマイコンのOFSと同類だと思うのですが、ハードウェアマニュアルにオプション選択レジスタの章はありませんでしたでしょうか?

    [関連リンク]

    「オプション設定メモリ」のような固定アドレスにデータを配置する方法は?
    japan.renesasrulz.com/cafe_rene/f/107_renesas_synergy_-_forum/5225/thread/

    RA6M5 CPUにてWDTを試しているがカウントがうまくいかない
    japan.renesasrulz.com/cafe_rene/f/ra/7199/ra6m5-cpu-wdt
     

  • NoMaYさん

    ご回答ありがとうございます。ハードウェアマニュアルを確認したところ、選択レジスタの章がありました!

    ただ、変更の仕方はわからずのままです。マニュアルを読み込めば、どこかに書いてあるはずですが。探してみます。

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

    > ただ、変更の仕方はわからずのままです。マニュアルを読み込めば、どこかに書いてあるはずですが。

    レジスタ(実際はフラッシュメモリの特定番地)の意味はハードウェアマニュアルにありますけど、変更方法は開発環境の話になりますのでハードウェアマニュアルには書かれていないと思います。

    また、開発環境の話といっても、GCCの一般的技法で対処する方法もありますけど、関連リンクとして挙げたスレッドの1つ目のように、GCCの話が長々と続いた後で、統合開発環境で設定出来るようになっていることが分かったので、そちらで設定しました、という顛末になるということもありますね。

  • Kinさん
    ドライバのコンフィルレーションヘッダが格納されたフォルダがあると思います。

    r_core_cfg.hなるファイルがあるのでそれを開いてください。

    L290ぐらいから以下の定義があるので、0xFFFFFFFFを設定したい値に変更するだけで設定できますよ

    /*******************************************************************************************************************//**
    * @name OFS_SECURITR_MPU_REGISTER
    **********************************************************************************************************************/
    /* @{ */
    #define SYSTEM_CFG_OFS0 (0xFFFFFFFF) /* OFS0 register */
    #define SYSTEM_CFG_OFS1 (0xFFFFFFFF) /* OFS1 register */
    #define SYSTEM_CFG_SECMPU_PC0_START (0xFFFFFFFF) /* SECMPU PC0 START */
    #define SYSTEM_CFG_SECMPU_PC0_END (0xFFFFFFFF) /* SECMPU PC0 END */
    #define SYSTEM_CFG_SECMPU_PC1_START (0xFFFFFFFF) /* SECMPU PC1 START */
    #define SYSTEM_CFG_SECMPU_PC1_END (0xFFFFFFFF) /* SECMPU PC1 END */
    #define SYSTEM_CFG_SECMPU_REGION0_START (0xFFFFFFFF) /* SECMPU REGION0 START */
    #define SYSTEM_CFG_SECMPU_REGION0_END (0xFFFFFFFF) /* SECMPU REGION0 END */
    #define SYSTEM_CFG_SECMPU_REGION1_START (0xFFFFFFFF) /* SECMPU REGION1 START */
    #define SYSTEM_CFG_SECMPU_REGION1_END (0xFFFFFFFF) /* SECMPU REGION1 END */
    #define SYSTEM_CFG_SECMPU_REGION2_START (0xFFFFFFFF) /* SECMPU REGION2 START */
    #define SYSTEM_CFG_SECMPU_REGION2_END (0xFFFFFFFF) /* SECMPU REGION2 END */
    #define SYSTEM_CFG_SECMPU_CONTROL_SETTING (0xFFFF) /* SECMPU CONTROL SETTING */
    /* @} */

  • PONSUKEさん

    確認できました!非常に助かりました、ありがとうございます。