[H8-ML(3042)] Clock freq. (Was Re:外部に特定の周波数のパルスを出力する方法)
From: Shigeru Makino <mac@xxxxxxxxxxxxxx>
Date: 2003年04月30日(水)15時41分43秒
mac です。

"Hirashita" <iced@xxxxxxxxxxxxxxx> wrote:
> 外部クロック時、リセットを考えなくても安全に起動する、って事みたいですね。
> よく出来てますねぇ>PIC
> 
> ん?Static動作可能だからリセット期間中にクロック不要、って話じゃ無いですよね?

もちろん (^^;

動作中 Clock が、 fclock max 以下なら、どんなに変動したって、そ
れなりに動いて、「誤動作」することはないという話です。

それと、動作中何の前触れなしに、 Clock を止めても、クロック供給
を再開すれば、その場所から何事もなかったように動くわけですね。

H8/300H の場合は、最低クロックが規定されているので、 それ以下に
なるとレジスターの値は保証されません。 Clock 止めない Sleep なら
良いけど、 Standby Mode に移行するには、それ相応の準備が要ります
ね。

あと H8/300H には、動作中にクロック分周比を変化させられるものも
多いですが、ペリフェラル、特に ITU, SCI の周波数も同時に変わって
しまうのが、厄介な問題ですね。

実は今、そういうアプリケーションをやっているんですが、 RTOS 用の 
tick は、外部で発生させて IRQ に入れてます。 単純に ITU のコンペ
アレジスタを変えればよいと思ったら大間違いで、値を増やす分には良
いけど、減らすときに、 その時点での TCNT の値以下にしてしまった
ら、 0xffff で オーバーフローして、戻ってくるまでリセットしませ
んからねえ。

コンペアレジスタの書き換えが不必要な場合、たとえば Full Speed で
動いているとき、すべてのタイマーの分周比 (TPSC) が 1/8 で、 CPU 
Clock を 1/8 にするとき、 TPSC を 1/1 にするなら、まだいけそうで
すが、 TPSC を全部同時に変えられないので、各タイマーの位相関係が
問題になるアプリケーションではそれすらできません。

Clock を 1/8 にすれば、消費電力もほぼ、 1/8 になってくれるので、
その点では大変魅力的なのですが、 ITU , SCI を使っていると 、結局
この機能は、キー入力待ちのような、ほかにほとんどなのもしないとき
にしか、使えないんですよね。

-- mac


スレッド概略
[3036(R)](起点)
 └[3041(U)]
   └[表示中]


投稿順に移動
[←前の記事へ(P)]
[→次の記事へ(N)]


リスト表示へ
[このスレッド(T)]
[本記事の前後(L)]