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

第 2 章 CPU コア

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

2.3.3 機能

と、TMP89FM42Aの内部で表

2-1

の状態になりシステムクロックリセットが発生します。クロック切り 替えの詳細については「2.3.6 動作モードの制御」を参照してください。

XIN XOUT

(a) ,

XIN XOUT

(b)

( )

XTIN XTOUT

(c)

XTIN XTOUT

(d)

( )

図 2-4 発振子の接続例

(1)

高周波クロックの基準クロック(fh)

TMP89FM42A

を高速で動作させるために使用されます。

SYSCR1<OSCSEL>を"1"に設定すると外部高周波クロック(fc)が高周波クロックの基準クロ

ック

(fh)

として使用されます。

SYSCR1<OSCSEL>

"0"

に設定すると内部高周波クロック

(fosc)

が高周波クロックの基準クロック

(fh)

として使用されます。リセット解除直後、

SYSCR1<OSCSEL>は"0"にクリアされ、内部高周波クロック(fosc)が高周波クロックの基準ク

ロック

(fh)

として使用されます。

高周波クロックの基準クロック

(fh)

を切り替えるときは、必ず内部高周波クロック

(fosc)

、 外部高周波クロック

(fc)

ともに発振している必要があります。クロックの切り替え時には、

必ず下記の手順で行ってください。

また、切り替えの途中で、外部高周波クロック(fc)と内部高周波クロック(fosc)がともに許 可される状態になりますが、この状態から「2.3.5 動作モード制御回路」で述べる動作モード の切り替えを実施しないでください。切り替えが完了した後は、使用しない方の高周波クロ ックを停止させてください。

fosc

から

fc

への切り替え

P0FC0

が"1"の状態で

SYSCR2<XEN>を"1"に設定し、外部高周波クロック(fc)の発

振を許可します。

ウォーミングアップカウンタで外部高周波クロック(fc)の発振が安定したことを確 認した後、SYSCR1<OSCSEL>を"1"に設定します。

SYSCR1<OSCSEL>を"1"にしてから、最大 2/fosc+2.5/fc [s]後に、高周波クロック

の基準クロック

(fh)

が外部高周波クロック

(fc)

に切り替わります。

切り替え後、2マシンサイクル以上待ち、SYSCR2<OSCEN>を"0"にクリアし、内 部高周波クロック

(fosc)

の発振を停止させます。高周波クロックが切り替わる前に、

SYSCR2<OSCEN>を"0"にクリアすると、システムクロックリセットが発生します。

1)

高周波クロックの基準クロック(fh)の切り替え時、ハードウェアは外部高周波クロック(fc)と内部 高周波クロック(fosc)の同期を取ります。同期を取るときに、最大

2.5 / fc [s]の期間 fh

が停止しま す。

2) SYSCR1<OSCSEL>を切り替えた後、必ず 2

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

3) SYSCR1<OSCSEL>は SYSCR2<SYSCK>が"0"のとき(NORMAL1, 2

モード中)に設定してくださ い。SYSCR2<SYSCK>が"1" (SLOW1, 2モード)のときに

SYSCR1<OSCSEL>に書き込みを行っ

ても設定値は反映されません。

4) P0FC0

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

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

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

ᄖㇱ㜞๟ᵄࠢࡠ࠶ࠢ(fc)

ౝㇱ㜞๟ᵄࠢࡠ࠶ࠢ(fosc)

㜞๟ᵄࠢࡠ࠶ࠢߩ ၮḰࠢࡠ࠶ࠢ(fh) SYSCR1<OSCSEL>

2.5 / fc (max.)

図 2-5 高周波クロックの基準クロック(fh)の切り替え(fosc から fc への切り替え)

2-2 高周波クロックの基準クロック(fh)を fosc

から

fc

に切り替える時の設定

手順 P0FC0 SYSCR2

<OSCEN> SYSCR2

<XEN> SYSCR1

<OSCSEL>

メインシステム

クロック 状態

1 0 1 0 0 fosc 高周波クロックの基準クロックのソースクロックが

foscP00 / P01ポートが入出力ポートの状態

2 1 1 0 0 fosc P00, P01ポートを発振器として使用する設定を行う

3 1 1 1 0 fosc 高周波クロック用発振回路のウォーミングアップ

4 1 1 1 1 fosc→fc 高周波クロックの基準クロックのソースクロックを

fcに切り替え中

5 1 0 1 fc 高周波クロックの基準クロックのソースクロックを

fcに切り替え終了

注) 高周波クロックの基準クロック切り替えは必ずこの手順で実施してください。

(プログラム例) P00 / P01ポートを発振器として使用する設定を行い、高周波クロックの基準クロックをfoscからfcに切り替える

(ウォーミングアップ時間 約300us@fc=8MHz)

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

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

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

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

;300us / 8us = 37.5, 切り上げて0x26

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

SET (P0FC).0 ;P0FC0 ←"1" (P00 / P01ポートを発振器として使用する)

SET (SYSCR2). 6 ;SYSCR2<XEN>←"1"

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

: :

PINTWUC: SET (SYSCR1). 3 ;SYSCR1<OSCSEL>←"1"

;(高周波クロックの基準クロックをfoscからfcに切り替え)

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

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

CLR (SYSCR2). 7 ;SYSCR2<OSCEN>←"0" ( fosc停止)

RETI

fc

から

fosc

への切り替え

SYSCR1<OSCEN>を"1"に設定し、内部高周波クロック(fosc)を許可します。

ウォーミングアップカウンタで内部高周波クロック(fosc)の発振が安定したことを 確認した後、

SYSCR1<OSCSEL>

"0"

に設定します。

SYSCR1<OSCSEL>を"0"にしてから、最大 2 / fc + 2.5 / fosc [s]後に、高周波クロッ

クの基準クロック

(fh)

が内部高周波クロック

(fosc)

に切り替わります。

切り替え後、

2

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

SYSCR2<XEN>

"0"

にクリアし、

fc

の 発振を停止させます。高周波クロックが切り替わる前に、

SYSCR2<XEN>

"0"

にク リアすると、システムクロックリセットが発生します。

1)

高周波クロックの基準クロック(fh)の切り替え時、ハードウェアは外部高周波クロック(fc)と内部 高周波クロック(fosc)の同期を取ります。同期を取るときに、最大

2.5 / fosc [s]の期間 fh

が停止し ます。

2) SYSCR1<OSCSEL>を切り替えた後、必ず 2

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

3) SYSCR1<OSCSEL>は SYSCR2<SYSCK>が"0"のとき(NORMAL1, 2

モード中)に設定してくださ い。SYSCR2<SYSCK>が"1" (SLOW1, 2モード)のときに

SYSCR1<OSCSEL>に書き込みを行っ

ても設定値は反映されません。

4) P0FC0

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

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

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

2.5 / fosc (max.) ᄖㇱ㜞๟ᵄࠢࡠ࠶ࠢ(fc)

ౝㇱ㜞๟ᵄࠢࡠ࠶ࠢ(fosc)

㜞๟ᵄࠢࡠ࠶ࠢߩ ၮḰࠢࡠ࠶ࠢ(fh) SYSCR1<OSCSEL>

図 2-6 高周波クロックの基準クロック(fh)の切り替え(fc から fosc への切り替え)

2-3

高周波クロックの基準クロック

(fh)

fc

から

fosc

に切り替える時の設定

手順 P0FC0 SYSCR2

<OSCEN>

SYSCR2

<XEN>

SYSCR1

<OSCSEL>

メインシステム

クロック 状態

1 1 0 1 fc 高周波クロックの基準クロックのソースクロックが

fcの状態

2 1 1 1 1 fc 高周波クロック用発振回路のウォーミングアップ

3 1 1 1 0 fc→fosc 高周波クロックの基準クロックのソースクロックを

foscに切り替え中

4 1 1 0 0 fosc 高周波クロックの基準クロックのソースクロックを

foscに切り替え終了

注) 高周波クロックの基準クロック切り替えは必ずこの手順で実施してください。

(プログラム例) 高周波クロックの基準クロックをfcからfoscに切り替える(ウォーミングアップ時間 約100us@fosc=5MHz)

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

;WUCCR<WUCSEL>←"00"(ソースクロックにfoscを選択)

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

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

;100us / 12.8us = 7.8, 切り上げて0x08

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

SET (SYSCR2). 7 ;SYSCR2<OSCEN>←"1"

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

: :

PINTWUC: CLR (SYSCR1). 3 ;SYSCR1<OSCSEL>←"0"

;(高周波クロックの基準クロックをfcからfoscに切り替え)

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

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

CLR (SYSCR2). 6 ;SYSCR2<XEN>←"0" ( fc停止)

RETI

(2)

低周波クロックの基準クロック(fs)

TMP89FM42A

を低速で動作させるときに使用されます。消費電力を低減させることがで

きます。

2.3.3.2

クロックギア

クロックギアは、高周波クロックの基準クロック

(fh)

を分周したギアクロック

(fcgck)

を選択し、

タイミングジェネレータに入力する回路です。

分周クロックの選択は、

CGCR<FCGCKSEL>

で行います。

CGCR<FCGCKSEL>

を切り替えてからギアクロック

(fcgck)

が切り替わるまで

2

マシンサイクル

かかります。

また、

CGCR<FCGCKSEL>

を変更した直後の

fcgck

は設定したクロック幅よりも長くなること

があります。

リセット解除直後、ギアクロック(fcgck)は高周波クロック(fh)を

4

分周したクロック(fh/4)にな ります。

2-4 ギアクロック(fcgck)

CGCR<FCGCKSEL> fcgck

00 fh / 4

01 fh / 2

10 fh

11 Reserved

注)

CGCR<FCGCKSEL>は SLOW

モード中に書き替えないでください。fcgckが正しく切り替わらないこと

があります。

2.3.3.3

タイミングジェネレータ

タイミングジェネレータは、ギアクロック(fcgck)または外部低周波クロック(fs)を

4

分周したク ロックから

CPU

コアおよび周辺回路に供給する各種システムクロックを発生する回路です。タイ ミングジェネレータの機能は、次のとおりです。

1.

メインシステムクロック

fm

生成

2.

タイマカウンタ、タイムベースタイマ等、周辺回路用クロック生成

ࡔࠗࡦࠪࠬ࠹ࡓࠢࡠ࠶ࠢಾࠅᦧ߃࿁〝 ࡑࠪࡦࠨࠗࠢ࡞ࠞ࠙ࡦ࠲

SYSCR2<SYSCK>

SYSCR1<DV9CK>

ࠡࠕࠢࡠ࠶ࠢfcgck

ࡊ࡝ࠬࠤ࡯࡜ ࠺ࡃࠗ࠳

࠮࡟ࠢ࠲

1 A

࠲ࠗࡑࠞ࠙ࡦ࠲࠲ࠗࡓࡌ࡯ࠬ࠲ࠗࡑ╬ޔ๟ㄝ࿁〝

5 4 3 2

1 6 7 8 9 101112131415161718192021

࠺ࡃࠗ࠳

B SY

ࡔࠗࡦࠪࠬ࠹ࡓࠢࡠ࠶ࠢ

fm

ૐ๟ᵄࠢࡠ࠶ࠢߩ ၮḰࠢࡠ࠶ࠢߩ 㧠ಽ๟ࠢࡠ࠶ࠢ

fs/4

図 2-7 タイミングジェネレータの構成

(1)

タイミングジェネレータの構成

タイミングジェネレータは、メインシステムクロック切り替え回路、プリスケーラ、

21

段 のデバイダおよびマシンサイクルカウンタから構成されています。

1.

メインシステムクロック切り替え回路

ギアクロック

(fcgck)

、外部低周波クロック

(fs)

4

分周したクロックから

CPU

コ アを動作させるメインシステムクロック

(fm)

用のクロックを選択する回路です。

SYSCR2<SYSCK>

"0"

にクリアするとギアクロック

(fcgck)

が選択され、

"1"

にセッ トすると外部低周波クロック(fs)を

4

分周したクロックが選択されます。

SYSCR2<SYSCK>

を変更してからメインシステムクロックが切り替わるまで、一

定の時間がかかります。メインシステムクロックが切り替わる前に切り替え元の発 振回路を停止にすると内部で表

2-1

の状態になりシステムクロックリセットが発生 します。クロック切り替えの詳細については「

2.3.6

動作モードの制御」を参照して ください。

2.

プリスケーラ、デバイダ

fcgck

を分周する回路です。分周されたクロックは、タイマカウンタ、タイムベー

スタイマ等の周辺回路に供給されます。

SYSCR1<DV9CK>、SYSCR2<SYSCK>ともに"0"のときデバイダの 9

段目への入力 クロックは

8

段目のデバイダの出力となります。

SYSCR1<DV9CK>または SYSCR2<SYSCK>が"1"のとき、デバイダの 9

段目への 入力クロックは

fs/4

となります。また、

SYSCR2<SYSCK>

"1"

のとき、プリスケー ラ、デバイダの初段から

8

段目までの出力は停止します。

なお、リセット時および

STOP

モード解除後のウォーミングアップ動作終了時に プリスケーラおよびデバイダは “0” にクリアされます。

命令の実行は、メインシステムクロック

(fm)

に同期して行われます。

命令実行の最小単位を、『マシンサイクル』と呼び、

1

マシンサイクルはメインシ ステムクロックで

1

クロックになります。

TLCS-870/C1

シリーズの命令のマシンサイクルは、

1

マシンサイクルで実行され

1

サイクル命令から

10

マシンサイクルで実行される

10

サイクル命令までの

10

種 類と、13マシンサイクルで実行される

13

サイクル命令の

1

種類で、合計

11

種類で す。

2.3.4 ウォーミングアップカウンタ

ウォーミングアップカウンタは、内部高周波クロック(fosc)、外部高周波クロック(fc)と外部低周波 クロック(fs)をカウントする回路で、ソースクロック選択回路と

3

段の分周回路、14段のカウンタか ら構成されています。

パワーオンリセット解除後に電源電圧が安定するまでの時間確保、

STOP

モードからの復帰、動作 モード遷移のときに発振回路が安定して発振するまでの時間を確保するために使用します。

S Z D C B A S

Z A B C

1 2 3 4 5 6 7 8 1 2 3 4 5 6 7 8 9 10 11 12 13 14 1 2 3

ᄖㇱ㜞๟ᵄࠢࡠ࠶ࠢ(fc)

ౝㇱ㜞๟ᵄࠢࡠ࠶ࠢ(fosc)

ᄖㇱૐ๟ᵄࠢࡠ࠶ࠢ(fs)

ࠦࡦࡄ

࡟࡯࠲

WUCDR

SYSCR2 SYSCR1

WUCCR

ࠞ࠙ࡦ࠻ࠕ࠶ࡊ⸵น㧛ਇ⸵น XEN XTEN

STOP

INTWUCഀࠅㄟߺⷐ᳞

CPUേ૞⸵น WUCSEL

2

WUCDIV WUCRST

࠙ࠜ࡯ࡒࡦࠣࠕ࠶ࡊ

ࠞ࠙ࡦ࠲೙ᓮ࿁〝

OSCEN

2 2

図 2-8 ウォーミングアップカウンタ回路

2.3.4.1

ハードウエアで発振許可する場合のウォーミングアップカウンタ動作

(1)

パワーオンリセット解除、リセット解除時

パワーオンリセット解除後、電源電圧が安定するまでの時間確保、リセット解除後の高周 波クロック用発振回路が安定して発振するまでの時間を確保するために使用します。

電源投入時、電源電圧がパワーオンリセットの解除電圧を超えるとウォーミングアップカ ウンタのリセット信号が解除されます。このとき、CPU、周辺回路はリセット状態のままで す。

リセット信号により、WUCCR<WUCSEL>は"00"、WUCCR<WUCDIV>は"11"に初期化さ れ、ウォーミングアップカウンタの入力クロックとして内部高周波クロック(fosc)が選択さ れます。

ウォーミングカウンタのリセットが解除されると、内部高周波クロック

(fosc)

がウォーミ ングアップカウンタに入力され、

14

段のカウンタは内部高周波クロック

(fosc)

のカウントを

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