5-2 システムクロック発生機能 |
ビジュアルメモリは、システムクロック発生回路として、RC発振、水晶発振の2系統の発振回路を持っています。これらの発振回路のうちいずれかをシステムクロックとして選択します。発振回路の切り換えは、プログラムにて行ないます。
それぞれの発振回路の周波数とサイクルクロックは、次のとおりです。
発振回路 | 周波数 | サイクルクロック | 用途 | 特徴 |
RC発振 | 879.236KHz | 6.284μ秒 | フラッシュメモリにアクセス用 | フラッシュメモリにアクセスする場合にこのクロックを利用します。書き込みの場合は、1/6分周に設定してください。 |
水晶発振 | 32.768KHz | 183.105μ秒 | 単体実行時に用いるクロック | 処理は遅くなりますが、電池寿命を延ばすことができます。 |
![]() RC発振は電池を多く消費するので、通常は水晶発振をシステムクロックとしてください。 RC発振は個体差があるためPWMで正しい周波数の音声を出力できません。PWMを利用する場合は水晶発振を利用してください。RC発振の発振誤差は、600KHz〜1200KHzまでです。基準は、879.236KHzとしてアプリケーションを設計してください。 |
システムクロックを制御するには、次に示す特殊機能レジスタを操作する必要があります。
OCR,PCON
システムクロック発生回路の構成は、図85のとおりです。
発振周波数32.768の水晶発振回路です。
発振周波数879.236KHzの抵抗(R)とコンデンサ(C)を使ったRC発振回路です。RC発振は、その特性上誤差が発生します。誤差の範囲は、600KHz〜1200KHzまでです。
発振制御レジスタ(OCR)のビット4とビット5によって、水晶発振回路、RC発振回路のいずれかをシステムクロックソースとします。
システムクロックセレクタで選択されたクロックソースから、システムクロック1,2を発生します。システムクロック1(S1)は、命令実行時、HALTモード時に動作します。システムクロック2(S2)は、命令実行時に動作します。
RC発振回路の発振開始/停止の制御、システムクロックソースの切り換え、およびサイクルクロックの制御を行います。
スタンバイ状態(HALTモード)を設定します。
ブロック | 状態 | |
リセット時 | HALT時 | |
RC発振回路 | 発振 | 突入時の状態 |
水晶発振回路 | 停止 | 突入時の状態 |
システムロック発生回路 | 動作 | 動作 |
![]() ハードウェアリセット直後は、自動的にRC発振がシステムクロックとなります。その後システムBIOSにより水晶発振に切り替わります。 |
シンボル | アドレス | 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発振回路停止 |
サイクルクロックをクロックソースの1/12分周とするか、1/6分周とするかを指定します。
‘1’をセットすると、サイクルクロックをクロックソースの1/6分周とします。
‘0’にリセットすると、クロックソースの1/12分周とします。
ビジュアルメモリでは、以下のように設定してください。
システムクロック | OCR7 |
RC発振 | OCR7=0/1 |
水晶発振 | OCR7=1 |
![]() 水晶発振を利用する場合は、必ず‘1’をセットしてください。 RC発振を利用する場合は、フラッシュメモリへの書き込み時を除き1/12分周(OCR7=‘0’にしてください。 |
システムクロックを選択します。ハードウェアリセット時には、自動的にRC発振になります。
OCR5 | OCR4 | システムクロック |
0 | 0 | RC発振 |
0 | 1 | 使用禁止 |
1 | 0 | 水晶発振 |
1 | 1 | 使用禁止 |
RC発振回路を動作または停止させます。
‘1’をセットすると、RC発振回路は停止します。
‘0’にリセットすると、RC発振回路は動作を開始または継続します。
![]() 負論理であることに注意してください。0で発振、1で発振停止となります。 |
シンボル | アドレス | 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モードに設定 |
ビジュアルメモリをスリープ状態にします。
‘1’をセットすると、ビジュアルメモリ専用カスタムチップはHALTモードになり、ビジュアルメモリのスリープモードになります。プログラムは、HALTを実行したアドレスで停止し、発振回路は状態を維持します。なお、システムクロック2(S2)は停止します。
HALT状態は、割り込みによって解除されます。HALT状態が解除されると、このビットは自動的にリセットされます。
‘0’にリセットしても状態は変化しません。
![]() HALTモードでは、LCDドライバ、LCD、タイマ0,1の動作は継続します。詳しくは「5.3 スリープ機能」を参照してください。 |
システムクロックに、次の3種類があります。
次の場合にシステムクロックは、このクロックになります。
なお、RC発振の周波数は、879.236KHzです。
![]() RC発振はその特性上、発振周波数に誤差があります。ビジュアルメモリでの誤差は、600KHz〜1200KHzです。 |
消費電流を低減して長時間のバックアップをしたい場合に使用する、低速処理モードです。
水晶発振回路の発振周波数は32.678KHzです。
水晶発振で動作している場合には、発振制御レジスタOCRによって、RC発振を停止させることができます。これにより、消費電流をさらに低減することが可能です。
ビジュアルメモリ専用カスタムチップは、図86の遷移図のようにHALTモードに入ります。
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] | [→] |
(C)SEGA ENTERPRISES, LTD., 1999