第 2 章 CPU コア
2.3 システムクロック制御回路
2.3.3 機能
2.3.3.1
クロックジェネレータクロック ジェネレータは、CPUコアおよび周辺回路に供給されるシステムクロックの基準とな るクロックを発生する回路です。
高周波クロック用発振回路と低周波クロック用発振回路の
2
つの発振回路を内蔵しています。発振回路端子はポート
P0
と兼用です。ポートとして使用するときの設定は、"第9
章 入出力ポ ート"
を参照してください。P00
、P01
ポートを高周波クロック用発振回路(XIN
、XOUT
端子)
として使用するときには、P0FC0
を"1"
に設定した後にSYSCR2<XEN>
を"1"
に設定します。P02、P03
ポートを低周波クロック用発振回路(XTIN、XTOUT端子)として使用するときには、P0FC2
を"1"に設定した後にSYSCR2<XTEN>を"1"に設定します。
高周波クロック用発振回路によるクロック(fc), 低周波クロック用発振回路によるクロック(fs) は、それぞれ
XIN, XOUT
端子, XTIN, XTOUT
端子に発振子を接続することにより容易に得られま す。また、外部発振器からのクロックを入力することもできます。この場合、
XIN, XTIN
端子から クロックを入力し、XOUT, XTOUT端子は開放します。高周波クロック用発振回路、低周波クロック用発振回路の発振許可/停止、ポートとの切り替 えは、ソフトウエアとハードウエアにより制御されます。
TMP89CM46
2.3
システムクロック制御回路ハードウエアによる制御はリセット解除と「2.3.5 動作モード制御回路」で述べる
STOP
モード への遷移時に動作モード制御回路で制御されます。注) 基本クロックを外部で直接モニタする機能はハードウエア的には用意されていませんが、割り込み禁止 状態, ウォッチドッグタイマの
Disable
状態でプログラムによってポートに一定周波数のパルス (例えば クロック出力) を出力させ、これをモニタすることにより調節を行うことができます。発振周波数の調整 が必要なシステムでは、あらかじめ調整用プログラムを作成しておく必要があります。ソフトウエアによる発振許可/停止により
CPU
コアのデッドロックを防ぐため、メインシステ ムクロックとして選択されているクロックと SYSCR2<XEN>、SYSCR2<XTEN>、P0ポートの機 能制御レジスタP0FC0
の値の組み合わせにより、内部要因リセットが発生します。表
2-1 発振許可レジスタの組み合わせ禁止条件
P0FC0 SYSCR2
<XEN> SYSCR2
<XTEN> SYSCR2
<SYSCK> 状態
Don't Care 0 0 Don’t Care すべての発振回路が停止
Don’t Care Don’t Care 0 1 メインシステムクロックに低周波クロック(fs)が選択されて
いるが低周波クロック用発振回路が停止
Don’t Care 0 Don’t Care 0 メインシステムクロックに高周波クロック(fc)が選択されて
いるが高周波クロック用発振回路が停止
0 1 Don’t Care Don’t Care 高周波クロック用発振回路を発振許可にしているがポートを
汎用ポートとして使用する設定になっている
注)
SYSCR2<SYSCK>を変更してからメインシステムクロックが切り替わるまで、一定の時間がかかりま
す。メインシステムクロックが切り替わる前に切り替え元の発振回路を停止にすると、TMP89CM46の 内部で表
2-1
の状態になりシステムクロックリセットが発生します。クロック切り替えの詳細について は「2.3.6 動作モードの制御」を参照してください。XIN XOUT
(a) ,
XIN XOUT
(b)
( )
XTIN XTOUT
(c)
XTIN XTOUT
(d)
( )
図 2-4 発振子の接続例
2.3.3.2
クロックギアクロックギアは、高周波クロック
(fc)
を分周したギアクロック(fcgck)
を選択し、タイミングジェ ネレータに入力する回路です。分周クロックの選択は、
CGCR<FCGCKSEL>
で行います。CGCR<FCGCKSEL>を切り替えてからギアクロック(fcgck)が切り替わるまで 2
マシンサイクルかかります。
また、CGCR<FCGCKSEL>を変更した直後の
fcgck
は設定したクロック幅よりも長くなること があります。リセット解除直後、ギアクロック(fcgck)は高周波クロック(fc)を
4
分周したクロック(fc/4)になり ます。Page 17
表
2-2 ギアクロック(fcgck)
CGCR<FCGCKSEL> fcgck
00 fc / 4
01 fc / 2
10 fc
11 Reserved
注)
CGCR<FCGCKSEL>は SLOW
モード中に書き替えないでください。fcgckが正しく切り替わらないことがあります。
2.3.3.3
タイミングジェネレータタイミングジェネレータは、ギアクロック(fcgck)または低周波クロック(fs)を
4
分周したクロッ クからCPU
コアおよび周辺回路に供給する各種システムクロックを発生する回路です。タイミン グジェネレータの機能は、次のとおりです。1.
メインシステムクロックfm
生成2.
タイマカウンタ、タイムベースタイマ等、周辺回路用クロック生成ࡔࠗࡦࠪࠬ࠹ࡓࠢࡠ࠶ࠢಾࠅᦧ߃࿁〝 ࡑࠪࡦࠨࠗࠢ࡞ࠞ࠙ࡦ࠲
SYSCR2<SYSCK>
SYSCR1<DV9CK>
ࠡࠕࠢࡠ࠶ࠢfcgck
ࡊࠬࠤ ࠺ࡃࠗ࠳
ࠢ࠲
A
࠲ࠗࡑࠞ࠙ࡦ࠲࠲ࠗࡓࡌࠬ࠲ࠗࡑ╬ޔㄝ࿁〝
࠺ࡃࠗ࠳
B SY
ࡔࠗࡦࠪࠬ࠹ࡓࠢࡠ࠶ࠢ
fm
ૐᵄࠢࡠ࠶ࠢߩ ၮḰࠢࡠ࠶ࠢߩ 㧠ಽࠢࡠ࠶ࠢ
fs/4
図 2-5 タイミングジェネレータの構成
(1)
タイミングジェネレータの構成タイミングジェネレータは、メインシステムクロック切り替え回路、プリスケーラ、
21
段 のデバイダおよびマシンサイクルカウンタから構成されています。1.
メインシステムクロック切り替え回路ギアクロック(fcgck)、低周波クロック(fs)を
4
分周したクロックからCPU
コアを 動作させるメインシステムクロック(fm)
用のクロックを選択する回路です。SYSCR2<SYSCK>
を"0"
にクリアするとギアクロック(fcgck)
が選択され、"1"
にセッ トすると低周波クロック(fs)
を4
分周したクロックが選択されます。SYSCR2<SYSCK>
を変更してからメインシステムクロックが切り替わるまで、一定の時間がかかります。メインシステムクロックが切り替わる前に切り替え元の発 振回路を停止にすると内部で表
2-1
の状態になりシステムクロックリセットが発生 します。クロック切り替えの詳細については「2.3.6 動作モードの制御」を参照してTMP89CM46
2.3
システムクロック制御回路2.
プリスケーラー、デバイダfcgck
を分周する回路です。分周されたクロックは、タイマカウンタ、タイムベースタイマ等の周辺回路に供給されます。
SYSCR1<DV9CK>
、SYSCR2<SYSCK>
ともに"0"
のときデバイダの9
段目への入力 クロックは8
段目のデバイダの出力となります。SYSCR1<DV9CK>または SYSCR2<SYSCK>が"1"のとき、デバイダの 9
段目への 入力クロックはfs/4
となります。また、SYSCR2<SYSCK>が"1"のとき、プリスケー ラ、デバイダの初段から8
段目までの出力は停止します。なお、リセット時および
STOP
モード解除後のウォーミングアップ動作終了時に プリスケーラおよびデバイダは“0”
にクリアされます。3.
マシンサイクル命令の実行は、メインシステムクロック(fm)に同期して行われます。
命令実行の最小単位を、『マシンサイクル』と呼び、1マシンサイクルはメインシ ステムクロックで
1
クロックになります。TLCS-870/C1
シリーズの命令のマシンサイクルは、1マシンサイクルで実行される
1
サイクル命令から10
マシンサイクルで実行される10
サイクル命令までの10
種 類と、13マシンサイクルで実行される13
サイクル命令の1
種類で、合計11
種類で す。2.3.4 ウォーミングアップカウンタ
ウォーミングアップカウンタは、高周波クロック
(fc)
と低周波クロック(fs)
をカウントする回路で、ソースクロック選択回路と
3
段の分周回路、14段のカウンタから構成されています。パワーオンリセット解除後に電源電圧が安定するまでの時間確保、STOPモードからの復帰、動作 モード遷移のときに発振回路が安定して発振するまでの時間を確保するために使用します。
S Z D C B A S
AZ B 㜞ᵄࠢࡠ࠶ࠢ↪
⊒ᝄ࿁〝ࠢࡠ࠶ࠢ(fc) ૐᵄࠢࡠ࠶ࠢ↪
⊒ᝄ࿁〝ࠢࡠ࠶ࠢ(fs)
ࠦࡦࡄ
࠲
WUCDR
SYSCR2 SYSCR1
WUCCR
ࠞ࠙ࡦ࠻ࠕ࠶ࡊ⸵น㧛ਇ⸵น XEN XTEN
STOP
INTWUCഀࠅㄟߺ
CPUേ⸵น WUCSEL WUCDIV WUCRST
࠙ࠜࡒࡦࠣࠕ࠶ࡊ
ࠞ࠙ࡦ࠲ᓮ࿁〝
図 2-6 ウォーミングアップカウンタ回路
Page 19
2.3.4.1
ハードウエアで発振許可する場合のウォーミングアップカウンタ動作(1)
パワーオンリセット解除、リセット解除時パワーオンリセット解除後、電源電圧が安定するまでの時間確保、リセット解除後の高周 波クロック用発振回路が安定して発振するまでの時間を確保するために使用します。
電源投入時、電源電圧がパワーオンリセットの解除電圧を超えるとウォーミングアップカ ウンタのリセット信号が解除されます。このとき、CPU、周辺回路はリセット状態のままで す。
リセット信号により、
WUCCR<WUCSEL>
は"0"
、WUCCR<WUCDIV>
は"11"
に初期化さ れ、ウォーミングアップカウンタの入力クロックとして高周波クロック(fc)
が選択されます。ウォーミングカウンタのリセットが解除されると、高周波クロック
(fc)
がウォーミングア ップカウンタに入力され、14段のカウンタは高周波クロック(fc)のカウントを開始します。ウォーミングアップカウンタの上位
8
ビットとWUCDR
の一致でカウントを停止し、CPU
、周辺回路のリセットが解除されます。WUCDR
は、リセット解除時に0x66
に初期化されるため、ウォーミングアップ時間は0x66×2
9/fc[s]となります。
注) ウォーミングアップカウンタの入力クロックは発振回路から出力されるクロックが使用されます。
発振回路が安定するまでの期間は発振周波数が安定しないため、ウォーミングアップ時間には誤差 を含みます。
(2) STOP
モードからの解除時STOP
モードからの解除のとき、ハードウエアでの発振許可から発振が安定するまでの時 間を確保するために使用します。分周回路の入力クロックは、
WUCCR<WUCSEL>
とは関係なく、STOP
モードを起動した ときにメインシステムクロック発生に使用されていたクロックを発生するクロック(高周波 クロック(fc)
または低周波クロック(fs))
が選択されます。STOP
モードを起動する前に、あらかじめ、ウォーミングアップカウンタへの入力クロッ クの分周比をWUCCR<WUCDIV>で選択し、WUCDR
でウォーミングアップ時間を設定しま す。STOP
モードが解除されると、14段のカウンタは分周回路で選択された入力クロックのカ ウントを開始します。カウンタの上位
8
ビットとWUCDR
の一致でカウントを停止するとともに、STOPモード を起動した次の命令から動作を再開します。STOPモード起動時の メインシステムクロック
生成クロック
WUCCR
<WUCSEL>
WUCCR
<WUCDIV>
カウンタへの
入力クロック ウォーミングアップ時間
fc Don’t Care
00 fc 26 / fc ~ 255 x 26 / fc 01 fc / 2 27 / fc ~255 x 27 / fc 10 fc / 22 28 / fc ~ 255 x 28 / fc 11 fc / 23 29 / fc ~ 255 x 29 / fc
fs Don't Care
00 fs 26 / fs ~ 255 x 26 / fs 01 fs / 2 27 / fs ~255 x 27 / fs 10 fs / 22 28 / fs ~ 255 x 28 / fs 11 fs / 23 29 / fs ~ 255 x 29 / fs