こんにちは。梅おにぎりです。
前回は FPP モードでコンフィギュレーション時間を AS モードよりも短縮することが出来ました。
しかし、デバイスに電源を入れてからユーザモードになるまでの時間を考慮するとまだまだ短縮する術があるようです。
そもそも電源を入れてからユーザモードになるまでは以下のようなプロセスとなっています。
これまではコンフィギュレーションにかかる時間のみを短縮してきました。
今回は Power On Reset とイニシャライズにかかる時間を短縮していきます。
Power On Reset (POR)
POR に関しては先輩がまとめた記事がありますのでこちらをご覧ください。先輩の記事にも記載がありますが POR には 「Standard」 と 「Fast」 の2つのモードがあります。
それぞれのモードで POR にかかる時間が異なります。
Standard:50~200ms
Fast:3~9ms
速く POR を終わらせることができるならどんな場合でも Fast を選べばいいじゃないか、と思った梅おにぎり。
しかし Fast では各種電源も早く推奨電圧まで立ち上げなければいけません。
Standard であれば電源投入後 50msまでに各種電源を推奨電圧までに立ち上げればいいのに対して、Fast では 3ms までに立ち上げなければなりません。
POR を Fast モードで使用する際には電源立ち上げの制約が厳しくなることに注意してください。
POR モードの設定は msel ピンの処理によって変えることができます。
また、コンフィギュレーション・モードによっては POR のモードが限られてしまうこともあります。
例えば Cyclone® IV E の FPP モードであれば POR モードは Fast しか選べません。
イニシャライズ
イニシャライズに関しても先輩がまとめた記事がありますのでこちらをご覧ください。
先輩の記事にも書いてありますがイニシャライズのクロック供給源は内部オシレータと外部クロックの2種類があります。
デフォルトでは内部オシレータを使用し、3192のクロックサイクルでユーザモードに入ります。
内部オシレータの周波数は最大で 40MHz となっています。
最大で…、というわけで周波数には多少のばらつきがあります。
外部クロックでは CLKUSR ピンから最大で 40MHz のクロックを入力することが可能です。
そのため外部から安定した 40MHz のクロックを入れてあげることで内部オシレータを使用した時よりも多少はイニシャライズ時間を短縮することができます。
CLKUSR の設定方法なども先輩の記事に載っています。
まとめ
デバイスが立ち上がるまでの時間はコンフィギュレーション時間だけでなく POR 時間とイニシャライズ時間も影響します。
デバイス立ち上げ時間の短縮には POR 時間とイニシャライズ時間も考慮してください。