• 検索結果がありません。

SLOW モード

ドキュメント内 TOSHIBA CORPORATION 2009 All Rights Reserved (ページ 47-51)

(6) SLEEP0 モード

2.3.6.4 SLOW モード

SLOW

モードは、システム制御レジスタ

2 (SYSCR2)

によって制御されます。

(1) NORMAL2

モードから

SLOW1

モードへの切り替え

SYSCR2<SYSCK>を“1”にセットします。

SYSCR2<SYSCK>を"1"にしてから、最大 2/fcgck+10/fs [s]後に、メインシステムクロック (fm)

fs/4

に切り替わります。

切り替え後、

2

マシンサイクル以上待ち、

SYSCR2<XEN>

"0"

にクリアして、高周波クロ ック用発振器を停止します。

なお、低周波クロック

(fs)

が安定して発振していない場合は、安定発振をウォーミングア ップカウンタで確認してから、上記操作を行ってください。

1) NORMAL2

モードから

SLOW1

モードへの切り替えは、必ずこの手順に従って行ってください。

2) NORMAL2

モードへ早く戻るために高周波クロックの基準クロックの発振を継続させることも可

能です。ただし、SLOWモードから

STOP

モードを起動する場合は、必ず高周波クロックの基準 クロックの発振を停止してください。

3) SYSCR2<SYSCK>を切り替えた後、必ず 2

マシンサイクル以上待ち、SYSCR2<XEN>を"0"にク リアしてください。2マシンサイクル未満でクリアするとシステムクロックリセットが発生しま す。

4)

メインシステムクロック(fm)切り替え時に、低周波用クロックの基準クロック(fs)を

4

分周したク ロックとギアクロック(fcgck)の同期を取ります。同期を取るときに、最大

10/fs

の期間

fm

が止ま ります。

Page 33

ࠡࠕࠢࡠ࠶ࠢ(fcgck)

SYSCR2<SYSCK>=0ψ1ߦߥߞߚ

޽ߣfcgck߇2࿁┙ߜ਄߇ࠅࠆߣfߪ หᦼ޽ࠊߖߩߚ߼஗ᱛߒ߹ߔޕ

fm߇஗ᱛߒߚᓟޔ2࿁ߩfs/4┙ߜ਄߇ࠅߩ

޽ߣޔfmߪfsߦಾࠅᦧࠊࠅ߹ߔޕ ૐ๟ᵄࠢࡠ࠶ࠢߩ

4ಽ๟ࠢࡠ࠶ࠢ(fs/4)

ࡔࠗࡦࠪࠬ࠹ࡓࠢࡠ࠶ࠢ

SYSCR2<SYSCK>

10/fs (max.)

図 2-12 メインシステムクロック(fm)の切り替え(fcgck から fs/4 への切り替え)

(プログラム例1) NORMAL2モードからSLOW1モードへの切り替え(高周波クロックの基準クロックにfcを使用している場合)

SET (SYSCR2).4 ;SYSCR2<SYSCK>←1

;(システムクロックを低周波の基準クロックに切り替え

;SLOW2モードに)

NOP ;2マシンサイクルのウェイト

NOP

CLR (SYSCR2).6 ;SYSCR2<XEN>←0 (高周波クロック用発振回路停止)

(プログラム例2) ウォーミングアップカウンタで低周波クロック用発振回路の安定発振の確認後、SLOW1 モードへ切り替え

(fs = 32.768kHz、ウォーミングアップ時間=約

100ms)

; #### イニシャライズルーチン ####

SET (P0FC).2 ;P0FC2←1 (P02/03を発振器として使用する)

¦

¦

LD (WUCCR), 0x02 ;WUCCR<WUCDIV>←00(分周無し)

;WUCCR<WUCSEL>←1(ソースクロックにfsを選択)

LD (WUCDR), 0x33 ;ウォーミングアップ時間をセット

;(発振子の特性で時間を決定します)

;100ms / 1.95ms = 51.2 → 切り上げて0x33

SET (EIRL).4 ;INTWUCの割り込みを許可

SET (SYSCR2).5 ;SYSCR2<XTEN>←1

;(低周波クロック発振開始&ウォーミングアップカウンタスタート)

¦

; #### ウォーミングアップカウンタ割り込みの割り込みサービスルーチン ####

PINTWUC: SET (SYSCR2).4 ;SYSCR2<SYSCK>←1

;(システムクロックを低周波クロックに切り替え)

NOP ;2マシンサイクルのウェイト

NOP

CLR (SYSCR2).6 ;SYSCR2<XEN>←0 (高周波クロック用発振回路停止)

RETI

¦

VINTWUC: DW PINTWUC ;INTWUCベクタテーブル

TMP89CM46

2.3

システムクロック制御回路

(2) SLOW1

モードから

NORMAL1

モードへの切り替え

SYSCR2<XEN>を “1” にセットして高周波クロック(fc)を発振させます。ウォーミングアッ

プカウンタで高周波クロックの基準クロックの発振が安定したことを確認した後、

SYSCR2<SYSCK>

を“

0

”にクリアします。

SYSCR2<SYSCK>

"0"

にしてから、最大

8/fs+2.5/fcgck [s]

後に、メインシステムクロック

(fm)

fcgck

に切り替わります。

切り替え後、2マシンサイクル以上待ち、SYSCR2<XTEN>を"0"にクリアして、低周波ク ロック用発振器を停止します。

なお、SLOWモードは

RESET

端子によるリセット、パワーオンリセット、電圧検出回路 によるリセットによっても解除されます。リセット状態が解除されると、ウォーミングアッ プ動作が開始されます。ウォーミングアップ状態終了後、

NORMAL1

モードとなります。

1) SLOW1

モードから

NORMAL1

モードへの切り替えは、必ずこの手順に従って行ってください。

2) SYSCR2<SYSCK>を切り替えた後、必ず 2

マシンサイクル以上待ち、SYSCR2<XTEN>を"0"にク リアしてください。2マシンサイクル未満でクリアするとシステムクロックリセットが発生しま す。

3)

メインシステムクロック(fm)の切り替え時に、低周波用クロックの基準クロック(fs)を

4

分周した クロックとギアクロック(fcgck)の同期を取ります。同期を取るときに、最大

2.5/fcgck[s]の期間 fm

が止まります。

4) P0FC0

が"0"の時、SYSCR2<XEN>を"1"に設定するとシステムクロックリセットが発生します。

5) SYSCR2<XEN>が"1"に設定されている状態で SYSCR2<XEN>に"1"を書き込んでもウォーミング

アップカウンタはソースクロックのカウントを開始しません。

ࠡࠕࠢࡠ࠶ࠢ(fcgck)

SYSCR2<SYSCK>=1ψ0ߦߥߞߚ

޽ߣfs/4߇2࿁┙ߜ਄߇ࠅࠆߣfߪ หᦼ޽ࠊߖߩߚ߼஗ᱛߒ߹ߔޕ

fm߇஗ᱛߒߚᓟޔ2࿁ߩfcgck┙ߜ਄߇ࠅߩ

޽ߣޔfmߪfcgckߦಾࠅᦧࠊࠅ߹ߔޕ ૐ๟ᵄࠢࡠ࠶ࠢߩ

4ಽ๟ࠢࡠ࠶ࠢ(fs/4)

ࡔࠗࡦࠪࠬ࠹ࡓࠢࡠ࠶ࠢ

SYSCR2<SYSCK> 2.5/fcgck(max.)

図 2-13 メインシステムクロック(fm)の切り替え(fs/4 から fcgck への切り替え)

(プログラム例) ウォーミングアップカウンタで高周波クロック用発振回路の安定を確認後、SLOW1モードから

NORMAL1

ードへの切り替え(fc = 10 MHz, ウォーミングアップ時間 = 4.0 ms)

; #### イニシャライズルーチン ####

SET (P0FC).2 ;P0FC2←1 (P02/03を発振器として使用する)

¦

¦

LD (WUCCR), 0x09 ;WUCCR<WUCDIV>←10(2分周)

;WUCCR<WUCSEL>←0(ソースクロックにfcを選択)

LD (WUCDR), 0x9D ;ウォーミングアップ時間をセット

;(周波数と発振子の特性で時間を決定します)

;4ms / 25.6μs = 156.25 → 切り上げて0x9D

SET (EIRL). 4 ;INTWUC割り込みを許可

SET (SYSCR2) .6 ;SYSCR2<XEN>←1 (高周波クロック用発振回路発振開始)

¦

; #### ウォーミングアップカウンタ割り込みの割り込みサービスルーチン ####

Page 35

PINTWUC: CLR (SYSCR2). 4 ;SYSCR2<SYSCK>←0

;(システムクロックをギアクロックに切り替え)

NOP ;2マシンサイクルのウェイト

NOP

CLR (SYSCR2). 5 ;SYSCR2<XTEN>←0 (低周波クロック用発振回路停止)

RETI

¦

VINTWUC: DW PINTWUC ;INTWUCベクタテーブル

TMP89CM46

2.3

システムクロック制御回路

ドキュメント内 TOSHIBA CORPORATION 2009 All Rights Reserved (ページ 47-51)