(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ベクタテーブル