電源起動の高速化

お世話になっております。entakeと申します。

R8C/1Bシリーズで、
電源ONからメイン処理が動き出すまでの時間を最速で行いたい場合、どのような方法が考えられますでしょうか?

FAQを探っていて、「スタートアップファイル(ncrt0.a30)ではRAMの初期化も行っています。リセット解除後のCPUクロックは低速オンチップオシレータの8分周のため、RAMの初期化に数十ms程度かかる場合があります。」という記述を見つけたので、RAMの初期化をメインクロックに切り替えた後に行うようにすれば良いのでは、等と考えていますが、そんなことは可能なのでしょうか??
他に何かアイデアなどありましたら是非お願い致します。

XINには、TCXO20MHzを接続し、メインクロック切り替え時の発振安定待ち時間を無くすことで、ある程度は早く動くようになりましたが、さらに高速起動を目指しています。
Parents
  • entakeさん

    スタートアップファイル(ncrt0.a30)の内容を修正して、
    ファイルの先頭にメインクロックを切り替える処理を追加すればRAMの初期化をメインで行うことができます。(アセンブラですけど)

    ちなみにメインクロックの発振安定時間を待たずに切り替えてしまうとノイズで発振が途中で止まってしまうことがあるので注意してくださいね。


    ということで、
    スタートアップの先頭でCM13ビットを“1”(XIN-XOUT端子)、CM05ビットを“0”(メインクロック発振)にしておき
    RAMの初期化を低速オンチップオシレータで行うと
    ある程度の発振安定時間が確保できるので、RAM初期化後におもむろにOCD2レジスタでメインに切り替えるのが良いと思います。
Reply
  • entakeさん

    スタートアップファイル(ncrt0.a30)の内容を修正して、
    ファイルの先頭にメインクロックを切り替える処理を追加すればRAMの初期化をメインで行うことができます。(アセンブラですけど)

    ちなみにメインクロックの発振安定時間を待たずに切り替えてしまうとノイズで発振が途中で止まってしまうことがあるので注意してくださいね。


    ということで、
    スタートアップの先頭でCM13ビットを“1”(XIN-XOUT端子)、CM05ビットを“0”(メインクロック発振)にしておき
    RAMの初期化を低速オンチップオシレータで行うと
    ある程度の発振安定時間が確保できるので、RAM初期化後におもむろにOCD2レジスタでメインに切り替えるのが良いと思います。
Children
No Data