GR-SAKURA
GR-KURUMI
GR-COTTON
GR-CITRUS
GR-PEACH
GR-KAEDE
GR-ADZUKI
GR-LYCHEE
GR-ROSE
GR-MANGO(*)
SNShield
Web Compiler
IDE for GR
TOPPERS関連
女子美コラボ
その他
※プロデューサミーティング中
作り方使い方資料
イベント関連
作品記事
体験記事
ライブラリ
ツール
その他・過去ファイル
オプションバイトへの設定も必要みたいですが、何かWDT使用例とか有りますか?
あぁ、もしかしてベクターテーブルのoptを書き換えればいい感じか。
『RL78/G13 ユーザーズマニュアル ハードウェア編』の「第10章 ウォッチドッグ・タイマ」を見ると RL78/G13 のウォッチドッグ・タイマは 15kHz 誤差±15% の低速オンチップ・オシレータで動作し、タイマーがオーバーフローしてリセットが掛かるまでの時間を低速オンチップ・オシレータの 64, 128, 256, 512, 2048, 8192, 16384, 65536 いづれかの周期で発生するようオプション・バイトで設定するようなっており、AVR のようなライブラリ関数の形は難しいようです。
また、GR-KURUMI のライブラリでは gr_common/RLduino78/portable/e2studio/RL78/vector_table.c でオプションバイトの 1バイト目が 0xef となっており
const unsigned char Option_Bytes[] __attribute__ ((section (".opt"))) = { 0xef, 0xff, 0xe8, 0x85 };
WDTON(000c0H の ビット4)が 0 ということなのでこの辺りの設定も必要ですね。
とりあえず作ってみましたが、GR-KURUMI の起動後、setup() が実行されるのに 1秒近く掛かり、あんま短いウォッチドッグは使いものにならない感じです。
> GR-KURUMI の起動後、setup() が実行されるのに 1秒近く掛かり、
gr_common/RLduino78/cores/RLduino78_timer.c の中の init_system_clock() で、
for (i = 0; i < WAIT_XT1_CLOCK; i++) { NOP(); // XT1発振回路の安定化待ち }
としている箇所が極端に遅く、474ms の設定ではこの安定化待ち処理でウォッチドッグが働いてしまうようです。
NOP の代わりにウォッチドッグを叩く命令を入れることで短い時間の設定でもウォッチドッグが動作するようなりました。
XT1 の安定待ちに 1秒近く時間を取るのは間違ってる気がしますが、gr_common/include/RLduino78_mcu_depend.h での
#define WAIT_XT1_CLOCK 1850000
の根拠が知りたいですね。
『RX600、RX700シリーズサブクロック回路のデザインガイド』
https://www.renesas.com/ja-jp/doc/products/mpumcu/apn/rx/002/r01an1187jj0110_rx63n.pdf
若干条件が違うがやはり 1秒か。
Fujitaさん
SSP-T7-FLを使ったG14の評価ボード(QB-R5F104PJ-TB)での実績では、200msecくらいあればよさそうですけれども、参考スレッド「サブクロックの発振安定時間 (発振開始時間)」
電圧とか温度とかロットとか色々な要素でのワーストケースを考えると、秒オーダーほしいですね。
QB-R5F104PJ-TBのUM V1.00にはSSP-T7-Fと書いてありますけど、使っているC4C5の容量的にKURUMIと同じ「SSP-T7-FL 3.7pF」の誤記かと思います。
Kirinさん、参考になります。
『RL78/G13 ユーザーズマニュアル ハードウェア編』の「第5章 クロック発生回路」にも
7. XT1 発振回路は低消費電力を実現するために,増幅度が低い回路になっています。設計の際は,次の点に注意してください。 ・端子や回路基板には寄生容量が含まれています。したがって実際に使用する回路基板にて発振評価を行い,問題がないことを確認してください。
とありますが、結局、実物で評価を行いマージンを考慮して値を決定する以外ないみたいですね。それ以前の話として、KURUMI のライブラリの実装では XT1 の安定待ちはタイマー等を基準にしておらずコンパイラの生成するコード依存となっており宜しくない感じですが。
GR-KURUMI とその他 RL78 系のライブラリが統合した際にフォルダとファイルの構成が変わったのでそれに対応しました。
# つか標準のライブラリに取り込まれなかった WDT なんて需要あるんだろうか?
がじぇっとるねさすさんの
というお考えは相容れるものではなくコード提供という行為にももはや意義は感じないのですが、吐き出した唾は呑み込めないのと同様でこちらで公開したコードを取り消すこともありません。公開したコードは自由に使用して下さって構いません。
> いただいたソースのライセンス付記はどうしましょうかね?
wriring.c とそれに依存したヘッダファイルのライセンスが異なるのもナンセンスなので同じ LGPL 2.1 でお願いします。