”かふぇルネ“はルネサス製品に関してユーザ同士が自由に会話をするツールであり、回答者はルネサス社内外の方たちとなります。ルネサス製品やソリューションに関して正式な回答をご希望の場合は、ルネサス技術サポート問合せをご使用ください。
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さん
確認できました!非常に助かりました、ありがとうございます。