### 5-2　システムクロック発生機能

ビジュアルメモリは、システムクロック発生回路として、RC発振、水晶発振の2系統の発振回路を持っています。これらの発振回路のうちいずれかをシステムクロックとして選択します。発振回路の切り換えは、プログラムにて行ないます。

それぞれの発振回路の周波数とサイクルクロックは、次のとおりです。

発振回路 | 周波数 | サイクルクロック | 用途 | 特徴
RC発振 | 879.236KHz | 6.284μ秒 | フラッシュメモリにアクセス用 | フラッシュメモリにアクセスする場合にこのクロックを利用します。書き込みの場合は、1/6分周に設定してください。
水晶発振 | 32.768KHz | 183.105μ秒 | 単体実行時に用いるクロック | 処理は遅くなりますが、電池寿命を延ばすことができます。

RC発振は電池を多く消費するので、通常は水晶発振をシステムクロックとしてください。 RC発振は個体差があるためPWMで正しい周波数の音声を出力できません。PWMを利用する場合は水晶発振を利用してください。RC発振の発振誤差は、600KHz〜1200KHzまでです。基準は、879.236KHzとしてアプリケーションを設計してください。

####

5-2-1　機能

- 命令実行動作の基本となるシステムクロックを発生します。
- システムクロックを水晶発振、RC発振の2系統からプログラムで選択できます。
- ベースタイマーのクロックを発生します。
- プログラムからRC発振を停止させることができます。
- HALTモード時にも動作する回路ブロックの動作の基本となるシステムクロック1（S1）と、HALTモード時に動作を停止する回路ブロックのクロックであるシステムクロック2（S2）を発生します。

システムクロックを制御するには、次に示す特殊機能レジスタを操作する必要があります。

OCR，PCON

####

5-2-2　回路構成

システムクロック発生回路の構成は、図85のとおりです。

##### ■水晶発振回路　……　(1)

発振周波数32.768の水晶発振回路です。

##### ■RC発振回路　……　(2)

発振周波数879.236KHzの抵抗（R）とコンデンサ（C）を使ったRC発振回路です。RC発振は、その特性上誤差が発生します。誤差の範囲は、600KHz〜1200KHzまでです。

##### ■システムクロックセレクタ　……　(3)

発振制御レジスタ（OCR）のビット4とビット5によって、水晶発振回路、RC発振回路のいずれかをシステムクロックソースとします。

##### ■システムクロック発生回路　……　(4)

システムクロックセレクタで選択されたクロックソースから、システムクロック1，2を発生します。システムクロック1（S1）は、命令実行時、HALTモード時に動作します。システムクロック2（S2）は、命令実行時に動作します。

##### ■発振制御レジスタ（OCR）　……　(5)

RC発振回路の発振開始/停止の制御、システムクロックソースの切り換え、およびサイクルクロックの制御を行います。

##### ■パワー制御レジスタ（PCON）　……　(6)

スタンバイ状態（HALTモード）を設定します。

▽ システムクロック発生回路ブロック図(図85)

#### リセット，HALT時の各ブロック状態

▽ スタンバイ時の各ブロックの状態(表14)

ブロック | 状態
リセット時 | HALT時
RC発振回路 | 発振 | 突入時の状態
水晶発振回路 | 停止 | 突入時の状態
システムロック発生回路 | 動作 | 動作

ハードウェアリセット直後は、自動的にRC発振がシステムクロックとなります。その後システムBIOSにより水晶発振に切り替わります。

####

5-2-3　関連レジスタ

#### 発振制御レジスタ（OCR）

シンボル | アドレス | R/W | ビット7 | ビット6 | ビット5 | ビット4 | ビット3 | ビット2 | ビット1 | ビット0
OCR | 10EH | R/W | OCR7 | − | OCR5 | OCR4 | − | − | OCR1 | −
リセット時 | 0 | H | 0 | 0 | H | H | 0 | 0

ビット名 | 機能
0CR7（ビット7） | システムロック発生回路制御
0：サイクルタイム源は発振周波数の1/12 1：サイクルタイム源は発振周波数の1/6
0CR5（ビット5） 0CR4（ビット4） | システムロック選択
0CR5 | 0CR4 | システムロック
0 0 1 1 | 0 1 0 1 | RC発振 使用禁止 水晶発振 使用禁止 リセット時／H0LD解除時：RC発振
0CR1（ビット1） | RC発振回路制御
0：RC発振回路動作開始／動作中 1：RC発振回路停止

##### ■OCR7（ビット7）：システムクロック発生回路制御

サイクルクロックをクロックソースの1/12分周とするか、1/6分周とするかを指定します。

‘1’をセットすると、サイクルクロックをクロックソースの1/6分周とします。

‘0’にリセットすると、クロックソースの1/12分周とします。

ビジュアルメモリでは、以下のように設定してください。

システムクロック | OCR7
RC発振 | OCR7=0/1
水晶発振 | OCR7=1

水晶発振を利用する場合は、必ず‘1’をセットしてください。 RC発振を利用する場合は、フラッシュメモリへの書き込み時を除き1/12分周（OCR7＝‘0’にしてください。

##### ■OCR5〜4（ビット5〜4）：システムクロック選択

システムクロックを選択します。ハードウェアリセット時には、自動的にRC発振になります。

OCR5 | OCR4 | システムクロック
0 | 0 | RC発振
0 | 1 | 使用禁止
1 | 0 | 水晶発振
1 | 1 | 使用禁止

##### ■OCR1（ビット1）：RC発振回路制御

RC発振回路を動作または停止させます。

‘1’をセットすると、RC発振回路は停止します。

‘0’にリセットすると、RC発振回路は動作を開始または継続します。

負論理であることに注意してください。0で発振、1で発振停止となります。

#### パワー制御レジスタ（PCON）

シンボル | アドレス | R/W | ビット7 | ビット6 | ビット5 | ビット4 | ビット3 | ビット2 | ビット1 | ビット0
PCON | 107H | R/W | − | − | − | − | − | − | − | PCON0
リセット時 | H | H | H | H | H | H | 0 | 0

ビット名 | 機能
PC0N0（ビット0） | HALTモード制御
0： 1：HALTモードに設定

##### ■PCON0（ビット0）：HALTモード制御

ビジュアルメモリをスリープ状態にします。

‘1’をセットすると、ビジュアルメモリ専用カスタムチップはHALTモードになり、ビジュアルメモリのスリープモードになります。プログラムは、HALTを実行したアドレスで停止し、発振回路は状態を維持します。なお、システムクロック2（S2）は停止します。

HALT状態は、割り込みによって解除されます。HALT状態が解除されると、このビットは自動的にリセットされます。

‘0’にリセットしても状態は変化しません。

HALTモードでは、LCDドライバ、LCD、タイマ0，1の動作は継続します。詳しくは「5.3　スリープ機能」を参照してください。

####

5-2-4　システムクロックの動作モード

システムクロックに、次の3種類があります。

##### ■RC発振

次の場合にシステムクロックは、このクロックになります。

なお、RC発振の周波数は、879.236KHzです。

RC発振はその特性上、発振周波数に誤差があります。ビジュアルメモリでの誤差は、600KHz〜1200KHzです。

- ハードウェアリセット時
- 電源投入時（電池交換時）

##### ■水晶発振

消費電流を低減して長時間のバックアップをしたい場合に使用する、低速処理モードです。

水晶発振回路の発振周波数は32.678KHzです。

水晶発振で動作している場合には、発振制御レジスタOCRによって、RC発振を停止させることができます。これにより、消費電流をさらに低減することが可能です。

ビジュアルメモリ専用カスタムチップは、図86の遷移図のようにHALTモードに入ります。

▽ クロック動作モード遷移図(図86)

RC OSC | ： | RC発振回路 | SUB | ： | 水晶発振周波数
SUB OSC | ： | 水晶発振回路 | PCON0 | ： | パワー制御レジスタビット0 （HALT制御）
S1 | ： | システムクロック1 | OCR1 | ： | 発振制御レジスタビット1
S2 | ： | システムクロック2 | OCR4 | ： | 発振制御レジスタビット4
RC | ： | RC発振周波数 | OCR5 | ： | 発振制御レジスタビット5

システムクロックを停止状態の水晶発振に切り換える場合は、水晶発振回路が安定するのを待ってください。水晶発振回路（32.768KHz）の発振安定時間は、約200μ秒です。

[←] | [INDEX] | [→]