(57)【要約】【課題】本発明は、発振回路及び半導体装置に関し、電源投入後、リセット後、スタンバイ状態からの復帰後のＭＣＵの処理の高速化と低消費電力化を両立することを目的とする。【解決手段】第１の発振回路と、第１の発振回路より長い発振安定時間を有する第２の発振回路と、第２の発振回路の発振安定時間の経過を示す安定信号を出力する信号生成回路と、選択信号に基づいて第１及び第２の発振回路の出力の一方を選択出力するスイッチ回路と、抑止信号に基づいて第２の発振回路の起動を抑止する抑止回路とを備え、第１及び第２の発振回路が同時に起動されてスイッチ回路により第１の発振回路の出力が選択出力された後に第２の発振回路の出力に切り替えられるモードと、第１の発振回路が起動されて抑止回路により第２の発振回路が起動されずスイッチ回路により第１の発振回路の出力のみが選択出力されるモードを有するように構成する。【選択図】図４
2008234046.tif 000002
【特許請求の範囲】
【請求項１】
第１の発振回路と、
該第１の発振回路より長い発振安定時間を有する第２の発振回路と、
該第２の発振回路の発振安定時間の経過を示す安定信号を出力する信号生成回路と、
選択信号に基づいて該第１及び第２の発振回路の出力の一方を選択出力するスイッチ回路と、
抑止信号に基づいて該第２の発振回路の起動を抑止する抑止回路とを備え、
該第１及び第２の発振回路が同時に起動されて該スイッチ回路により該第１の発振回路の出力が選択出力された後に該第２の発振回路の出力に切り替えられるモードと、
該第１の発振回路が起動されて該抑止回路により該第２の発振回路が起動されず該スイッチ回路により該第１の発振回路の出力のみが選択出力されるモードと
を有することを特徴とする発振回路。
【請求項２】
第１の発振回路と、
該第１の発振回路より長い発振安定時間を有する第２の発振回路と、
外部からも情報を設定可能であると共に、外部より設定されている情報を参照可能な制御レジスタ部と、
該第２の発振回路の発振安定時間の経過を示す安定フラグを出力して該制御レジスタ部に設定する信号生成回路と、
該制御レジスタ部に設定されている選択ビットに基づいて該第１及び第２の発振回路の出力の一方を選択出力するスイッチ回路とを備え、
該第１及び第２の発振回路が同時に起動されて該スイッチ回路により該第１の発振回路の出力が選択出力された後に該第２の発振回路の出力に切り替えられる第１のモードを有することを特徴とする発振回路。
【請求項３】
該制御レジスタ部に設定されている抑止信号に基づいて該第２の発振回路の起動を抑止する抑止回路を更に備え、
該第１の発振回路が起動されて該抑止回路により該第２の発振回路が起動されず該スイッチ回路により該第１の発振回路の出力のみが選択出力される第２のモードを有することを特徴とする請求項２記載の発振回路。
【請求項４】
該制御レジスタ部は、該外部に対する割り込み信号を発生するための割り込みフラグが該信号生成回路から設定されると共に、該割り込みフラグが設定された場合に割り込みを許可するためのビットが該外部から設定され、該第２の発振回路の発振安定時間の経過後に割り込み信号を発生することを特徴とする請求項３記載の発振回路。
【請求項５】
クロック生成回路と、制御レジスタ部と、ＣＰＵを備えた半導体装置であって、
該クロック生成回路は第１の発振回路と、該第１の発振回路より長い発振安定時間を有する第２の発振回路と、該ＣＰＵのソフトウェアからも情報を設定可能であると共に該ソフトウェアより設定されている情報を参照可能な制御レジスタ部と、該第２の発振回路の発振安定時間の経過を示す安定フラグを出力して該制御レジスタ部に設定する信号生成回路と、該制御レジスタ部に設定されている選択ビットに基づいて該第１及び第２の発振回路の出力の一方を選択出力するスイッチ回路とを備え、
該半導体装置の電源投入後、リセット後又はスタンバイ状態から動作状態への復帰後に、該第１及び第２の発振回路が同時に起動されて該スイッチ回路により該第１の発振回路の出力が選択出力された後に該第２の発振回路の出力に切り替えられる第１のモードを有することを特徴とする半導体装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、発振回路及び半導体装置に係り、特にクロックを生成するクロック生成回路に適した発振回路及びそのような発振回路を有する半導体装置に関する。
【背景技術】
【０００２】
従来より、マイクロコントローラ（ＭＣＵ）等の半導体装置（又は、半導体チップ）には、クロック生成回路を内蔵する構成のものがある。クロック生成回路は、ＣＲ発振回路或いはリングオシレータ等を有し、ＭＣＵのクロックをＭＣＵ内のＣＰＵに供給する。水晶振動子或いはセラミック振動子を使用する発振回路は、発振回路の出力周波数が安定するまでの起動時間（又は、発振安定時間）が長いので、発振周波数精度が多少低下しても、このようにより起動時間（又は、発振安定時間）の短いＣＲ発振回路やリングオシレータ等をクロック源として使用することが望ましい場合がある。発振回路の停止と起動を頻繁に繰り返すような応用では、発振回路の起動時の待ち時間（即ち、発振安定時間）の間の消費電力を削減することが、ＭＣＵの総合的な性能向上の観点から望ましい場合がある。
【０００３】
一般に、セラミック発振子や水晶発振子等の発振の鋭さを示すＱ値が高い周波数制御素子を用いる発振回路では、非常に精度の高い発振が可能で、公称周波数に対する周波数偏差が小さい。しかしながら、例えば電源が印加されてから発振周波数及び発振回路の信号振幅が十分に安定するまでに要する時間（以下、発振安定時間と言う）が数十マイクロ秒から数百マイクロ秒と長い。一方、Ｑ値が低い素子（Ｑ値の低い周波数制御素子、抵抗、容量）を用いたＣＲ発振回路等では、セラミック発振回路や水晶発振回路とは逆に、発振周波数精度は高くないが、発振回路の起動時の待ち時間（発振安定時間）は短い。
【０００４】
このような発振周波数精度及び発振安定時間が異なる発振回路を組み合わせて使用することで、総合的なシステムの性能向上を実現する各種提案が、例えば特許文献１乃至５でなされている。
【０００５】
図１は従来の発振回路の一例を示す回路図であり、図２は図１の発振回路の動作を説明するタイミングチャートである。図１に示す発振回路は、例えば特許文献１の図３に記載されている。
【０００６】
発振回路は、図１に示す如く接続されたＣＲ発振回路ＣＲＯ１０１、水晶又はセラミック発振回路ＯＳＣ１０１、スイッチ回路ＳＷ１０２，ＳＷ１０３、カウンタ回路ＣＵＮＴ１０１、Ｄフリップフロップ回路ＤＦＦ１０１、バッファ回路ＢＵＦ１０１及びアンド回路ＡＮＤ１０１を有する。発振回路ＯＳＣ１０１は、図１に示す如く接続されたスイッチ回路ＳＷ１０１、容量Ｃ１０１，Ｃ１０２、抵抗Ｒ１０１、水晶振動子又はセラミック振動子ＸＴＡＬ１０１及びインバータ回路ＩＮＶ１０１を有する。以下の説明では、便宜上、発振回路ＯＳＣ１０１はセラミック振動子ＸＴＡＬ１０１を有するセラミック発振回路であるものとする。図１において、Ｖｄｄは正の電源電圧（例えば＋３Ｖ）、ＧＮＤはグランド電位（０Ｖ）、ＣＯＵＴはカウンタ回路ＣＵＮＴ１０１の出力、ＤＦＯはフリップフロップ回路ＤＦＦ１０１の正の出力を、ＤＦＯＸはフリップフロップ回路ＤＦＦ１０１の負の出力、ＣＬＣＮＴはアンド回路ＡＮＤ１０１の出力、ＶＤＤＣＲはＣＲ発振回路ＣＲＯ１０１の電源端子への入力、ＮＸ１００，ＮＸ１０１はセラミック発振回路ＯＳＣ１０１の外部接続端子、ＯＳＣＯ１はセラミック発振回路ＯＳＣ１０１の発振出力、ＯＳＣＯ２はＣＲ発振回路ＣＲＯ１０１の発振出力、ＯＳＣＥＮはセラミック発振回路ＯＳＣ１０１のイネーブル端子への入力信号、ＣＫＯは出力クロックを示す。
【０００７】
発振回路ＯＳＣ１０１の起動時の待ち時間（発振安定時間）は長いが、発振周波数精度は高い。一方、ＣＲ発振回路ＣＲＯ１０１の発振周波数精度は低いが、起動時の待ち時間（発振安定時間）は短い。図１の発振回路では、これらの特性の異なる２つの発振回路ＯＳＣ１０１，ＣＲＯ１０１を使用して、ＭＣＵの総合的な性能向上を図っている。
【０００８】
ＣＲ発振回路ＣＲＯ１０１の起動時の待ち時間は短いので、ＭＣＵの電源投入後又はリセット後にセラミック発振回路ＯＳＣ１０１の出力ＯＳＣＯ１より先にＣＲ発振発振回路ＣＲＯ１０１の出力ＯＳＣＯ２が安定する。出力ＯＳＣＯ１だけを使用する場合には、出力ＯＳＣＯ１が安定するまでは例えばＭＣＵの処理を開始できないが、出力ＯＳＣＯ２をクロックとして使用することで、出力ＯＳＣＯ１が安定するまでの期間中も例えばＭＣＵの処理を進めることができる。出力ＯＳＣＯ１が安定した後は、クロックを出力ＯＳＣＯ２から出力ＯＳＣＯ１に切り替えることで周波数精度の高い出力ＯＳＣＯ１をクロック源として使用することができる。
【０００９】
図２は、このような切り替え動作の詳細を示す。ＭＣＵの電源投入直後又はリセット時には、信号ＯＳＣＥＮはロー（Ｌ）レベルとなっている。信号ＯＳＣＥＮがＬレベルなので、アンド回路ＡＮＤ１０１の出力ＣＬＣＮＴもＬレベルである。出力ＣＬＣＮＴがＬレベルなので、カウンタ回路ＣＵＮＴ１０１はクリアされ、出力ＣＯＵＴはＬレベルである。又、カウンタ回路ＣＵＮＴ１０１は初期化される。同様に、信号ＯＳＣＥＮがＬレベルなので、Ｄフリップフロップ回路ＤＦＦ１０１もクリアされ、出力ＤＦＯはＬレベルである。出力ＤＦＯＸは出力ＤＦＯの反転信号なので、ハイ（Ｈ）レベルである。
【００１０】
電源投入後又はリセット後、信号ＯＳＣＥＮをＬレベルからＨレベルに変化させることで、発振回路ＯＳＣ１０１，ＣＲＯ１０１の動作が開始される。信号ＯＳＣＥＮをＨレベルにすると、スイッチ回路ＳＷ１０１がオン（ＯＮ）となってインバータ回路ＩＮＶ１０１に電源電圧Ｖｄｄが供給され、セラミック発振回路ＯＳＣ１０１が動作を始める。又、出力ＤＦＯＸがＨレベルになっているので、信号ＯＳＣＥＮがＨレベルであると、アンド回路ＡＮＤ１０１の出力ＣＬＣＮＴもＨレベルになる。出力ＣＬＣＮＴがＨレベルになると、スイッチ回路ＳＷ１０２がオンとなり、入力ＶＤＤＣＲがＨレベルになってＣＲ発振回路ＣＲＯ１０１に電源電圧Ｖｄｄが供給され、ＣＲ発振回路ＣＲＯ１０１も動作を開始する。
【００１１】
スイッチ回路ＳＷ１０２がオンとなった後、出力ＯＳＣＯ２は安定する。出力ＯＳＣＯ２の信号振幅及び発振周波数が安定した後、出力ＯＳＣＯ１の信号振幅及び発振周波数が安定する。出力ＯＳＣＯ２が安定した後、スイッチ回路ＳＷ１０３により出力ＯＳＣＯ２が出力クロックＣＫＯとして出力される。この出力クロックＣＫＯを基準クロックとして、例えばＭＣＵの動作を開始させることができる。
【００１２】
図２に示す例では、出力ＯＳＣＯ２の発振周波数が出力ＯＳＣＯ１の発振周波数より低い。セラミック発振回路ＯＳＣ１０１の発振周波数精度が高いので、ＭＣＵが動作する規定の周波数に発振周波数を設定すれば良いが、ＣＲ発振回路ＣＲＯ１０１の発振周波数精度が低いので、発振周波数が最大となった場合でもＭＣＵが動作できるような設計としななければならない。このため、ＣＲ発振回路ＣＲＯ１０１の発振周波数の中心値は、ある程度小さく設計しなければならない。このような事情を考慮して、出力ＯＳＣＯ２の発振周波数は出力ＯＳＣＯ１の発振周波数より低いものとして示されている。
【００１３】
出力ＯＳＣＯ１が発振を開始してある程度時間が経過すると、セラミック発振回路ＯＳＣ１０１の信号振幅及び発振周波数が安定する。この時間の経過を知るために、カウンタ回路ＣＵＮＴ１０１で出力ＯＳＣＯ１をカウントする。ある規定の回数出力ＯＳＣＯ１がＨレベルとＬレベルの変化を繰り返すことで、カウンタ回路ＣＵＮＴ１０１の出力ＣＯＵＴがＬレベルからＨレベルに変化する。出力ＣＯＵＴがＬレベルからＨレベルに変化することで、フリップフロップ回路ＤＦＦ１０１の出力ＤＦＯもＬレベルからＨレベルに変化する。出力ＤＦＯがＬレベルからＨレベルに変化することで、スイッチ回路ＳＷ１０３が切り替えられて、出力ＯＳＣＯ１が出力クロックＣＫＯとして出力される。
【００１４】
出力ＤＦＯがＬレベルからＨレベルに変化することで、フリップフロップ回路ＤＦＦ１０１の出力ＤＦＯＸはＨレベルからＬレベルに変化する。出力ＤＦＯＸがＬレベルになることで、アンド回路ＡＮＤ１０１の出力ＣＬＣＮＴもＬレベルになる。カウンタ回路ＣＵＮＴ１０１のクリア端子ＣＬがＬレベルになるので、カウンタ回路ＣＵＮＴ１０１は動作を停止してクリアされ、出力ＣＯＵＴはＬレベルになる。アンド回路ＡＮＤ１０１の出力ＣＬＣＮＴがＬレベルになることで、スイッチ回路ＳＷ１０２がオフ（ＯＦＦ）となりＣＲ発振回路ＣＲＯ１０１には電源電圧Ｖｄｄが供給されなくなり、ＣＲ発振回路ＣＲＯ１０１は動作を停止する。図２において入力ＶＤＤＣＲがＨレベルからＬレベルに変化しているのは、アンド回路ＡＮＤ１０１の出力ＣＬＣＮＴにより電源供給が停止されることを表している。
【００１５】
以上説明したような構成と動作により、電源投入直後はＣＲ発振回路ＣＲＯ１０１の出力ＯＳＣＯ２を出力クロックＣＫＯとして使用し、セラミック発振回路ＯＳＣ１０１の出力が安定した後はセラミック発振回路ＯＳＣ１０１の出力ＯＳＣＯ１を出力クロックＣＫＯとして使用すると共にＣＲ発振回路ＣＲＯ１０１の動作を停止している。このように、セラミック発振回路ＯＳＣ１０１の出力ＯＳＣＯ１が安定するまではＣＲ発振回路ＣＲＯ１０１の出力ＯＳＣＯ２を出力クロックＣＫＯとして使用することでＭＣＵの処理を進めることができ、且つ、セラミック発振回路ＯＳＣ１０１の出力ＯＳＣＯ１が安定した後は発振周波数精度の高いセラミック発振回路ＯＳＣ１０１の出力ＯＳＣＯ１を出力クロックＣＫＯとして使用できる。
【特許文献１】特開２００２−３１４３３６号公報
【特許文献２】特開２００１−２５１１４０号公報
【特許文献３】特開平１０−１６１７６８号公報
【特許文献４】特開平４−１７１５１３号公報
【特許文献５】特開昭５３−６０１４９号公報
【発明の開示】
【発明が解決しようとする課題】
【００１６】
図１に示す発振回路では、カウンタ回路ＣＵＮＴ１０１により、セラミック発振回路ＯＳＣ１０１の出力ＯＳＣＯ１をカウントして一定時間経過した後、出力クロックＣＫＯをＣＲ発振回路ＣＲＯ１０１の出力ＯＳＣＯ２からセラミック発振回路ＯＳＣ１０１の出力ＯＳＣＯ１に切り替える。ＭＣＵの電源投入後、実行すべきプログラムが大きい場合には、図１のような回路構成としても問題がないが、一般の制御用途のＭＣＵに適用した場合、以下のような問題が発生することに本発明者らは気づいた。
【００１７】
例えば、スタンバイ状態（発振回路は停止しているものとする）から、割り込みによりプログラム実行が再開され（割り込みプログラムが実行され）るような場合、割り込みプログラムの規模が大きい場合には、セラミック発振回路ＯＳＣ１０１を起動し、周波数精度の高いクロックで最高動作周波数で処理を進めた方が効率が良い。しかしながら、割り込みプログラムの規模が小さく、処理の量が小さい場合には、セラミック発振回路ＯＳＣ１０１の出力ＯＳＣＯ１が安定する前に必要な処理が終了することも有り得る。このような場合には、セラミック発振回路ＯＳＣ１０１を起動せず、ＣＲ発振回路ＣＲＯ１０１によりクロックを供給して処理を終了させ、再びスタンバイ状態として次の割り込みを待っている状態とした方が電力効率が高い。
【００１８】
つまり、セラミック発振回路ＣＲＯ１０１の出力ＯＳＣＯ２を使用した方が良いか否かは、一般のＭＣＵの場合はプログラムに依存し、各種の状況で適切なクロック制御を行うには、図１の回路のようにハードウエアで一律に制御したのでは、無駄が生じることになる。
【００１９】
一例として、ＭＣＵがスタンバイ状態から小規模な割り込みプログラムを実行し、再びスタンバイ状態になるような場合について、図１の発振回路の動作を説明する。ここでは、ＣＲ発振回路ＣＲＯ１０１の出力ＯＳＣＯ２が安定した時点で、割り込みプログラム実行が始まるものとする。ＣＲ発振回路ＣＲＯ１０１を起動すると同時に、図１の発振回路では、セラミック発振回路ＯＳＣ１０１も起動される。セラミック発振回路ＯＳＣ１０１の出力ＯＳＣＯ１が安定する前に、割り込みプログラムの処理が終了し、ＭＣＵは再びスタンバイ状態となる。このような状況では、図１の発振回路では、使用しないセラミック発振回路ＯＳＣ１０１を毎回起動し、セラミック発振回路ＯＳＣ１０１の消費電力相当分を浪費することになる。
【００２０】
つまり、図１の発振回路では、ハードウエアの制御に基づいて、ＣＲ発振回路ＣＲＯ１０１とセラミック発振回路ＯＳＣ１０１を同時に起動し、クロックＣＫＯをＣＲ発振回路ＣＲＯ１０１の出力ＯＳＣＯ２からセラミック発振回路ＯＳＣ１０１の出力ＯＳＣＯ１に切り替える構成となっているので、プログラムの状況に応じて消費電力を削減する最適な制御ができないという問題があった。
【００２１】
そこで、本発明は、電源投入後、リセット後、スタンバイ状態からの復帰後のＭＣＵの処理の高速化と低消費電力化を両立できる発振回路及び半導体装置を提供することを目的とする。
【課題を解決するための手段】
【００２２】
上記の課題は、第１の発振回路と、該第１の発振回路より長い発振安定時間を有する第２の発振回路と、該第２の発振回路の発振安定時間の経過を示す安定信号を出力する信号生成回路と、選択信号に基づいて該第１及び第２の発振回路の出力の一方を選択出力するスイッチ回路と、抑止信号に基づいて該第２の発振回路の起動を抑止する抑止回路とを備え、該第１及び第２の発振回路が同時に起動されて該スイッチ回路により該第１の発振回路の出力が選択出力された後に該第２の発振回路の出力に切り替えられるモードと、該第１の発振回路が起動されて該抑止回路により該第２の発振回路が起動されず該スイッチ回路により該第１の発振回路の出力のみが選択出力されるモードを有することを特徴とする発振回路により達成できる。
【００２３】
上記の課題は、第１の発振回路と、該第１の発振回路より長い発振安定時間を有する第２の発振回路と、外部からも情報を設定可能であると共に、外部より設定されている情報を参照可能な制御レジスタ部と、該第２の発振回路の発振安定時間の経過を示す安定フラグを出力して該制御レジスタ部に設定する信号生成回路と、該制御レジスタ部に設定されている選択ビットに基づいて該第１及び第２の発振回路の出力の一方を選択出力するスイッチ回路とを備え、該第１及び第２の発振回路が同時に起動されて該スイッチ回路により該第１の発振回路の出力が選択出力された後に該第２の発振回路の出力に切り替えられる第１のモードを有することを特徴とする発振回路により達成できる。
【００２４】
上記の課題は、クロック生成回路と、制御レジスタ部と、ＣＰＵを備えた半導体装置であって、該クロック生成回路は第１の発振回路と、該第１の発振回路より長い発振安定時間を有する第２の発振回路と、該ＣＰＵのソフトウェアからも情報を設定可能であると共に該ソフトウェアより設定されている情報を参照可能な制御レジスタ部と、該第２の発振回路の発振安定時間の経過を示す安定フラグを出力して該制御レジスタ部に設定する信号生成回路と、該制御レジスタ部に設定されている選択ビットに基づいて該第１及び第２の発振回路の出力の一方を選択出力するスイッチ回路とを備え、該半導体装置の電源投入後、リセット後又はスタンバイ状態から動作状態への復帰後に、該第１及び第２の発振回路が同時に起動されて該スイッチ回路により該第１の発振回路の出力が選択出力された後に該第２の発振回路の出力に切り替えられる第１のモードを有することを特徴とする半導体装置により達成できる。
【発明の効果】
【００２５】
本発明によれば、電源投入後、リセット後、スタンバイ状態からの復帰後のＭＣＵの処理の高速化と低消費電力化を両立できる発振回路及び半導体装置を実現可能である。
【発明を実施するための最良の形態】
【００２６】
本発明では、発振回路内に第１及び第２の発振回路がソフトウェアにより選択可能に設けられている。第１の発振回路は、Ｑ値が低い素子（Ｑ値の低い周波数制御素子、抵抗、容量）を用い、発振周波数精度は高くないが、起動時の待ち時間（発振安定時間）は比較的短い。第２の発振回路は、Ｑ値が高い周波数制御素子を用い、非常に精度の高い発振が可能であると共に、公称周波数に対する周波数偏差が小さいが、例えば電源が印加されてから発振周波数及び信号振幅が十分に安定するまでに要する時間（発振安定時間）は例えば数十マイクロ秒から数百マイクロ秒と比較的長い。
【００２７】
本発明では、第１の発振回路の出力と第２の発振回路の出力を切り替えて使用するモードと、第１の発振回路の出力だけを使用して第２の発振回路を起動しないモードを選択可能である。つまり、プログラムを設計する設計者が、最適なクロック源をソフトウエアから指定することが可能であり、第１の発振回路しか使用しない場合には第２の発振回路を起動しないので、消費電力を削減することができる。
【００２８】
以下に、本発明の発振回路及び半導体装置の各実施例を、図３以降と共に説明する。
【実施例】
【００２９】
図３は、本発明の一実施例を示すブロック図である。図３に示すＭＣＵ１は、クロック生成回路１１、ＣＰＵ１２及び制御レジスタ部１３を有する。半導体装置を構成するＭＣＵ１は、所謂ワンチップマイコンである。クロック生成回路１１は、後述する発振回路１１０を有し、ＣＰＵ１２にクロックを供給する。ＣＰＵ１２に供給されるクロックは、発振回路１１０から出力されるクロックであっても、発振回路１１０から出力されるクロックを基準としてクロック生成回路１１内で生成されたクロックであっても良い。制御レジスタ部１３は、メモリ等の各種記憶手段で構成可能であり、発振回路１１０の情報が発振回路１１０から設定可能であると共に、ＣＰＵ１２のソフトウェアにより参照可能であり、且つ、ソフトウェアにより情報を設定可能である。
【００３０】
尚、制御レジスタ部１３は、クロック生成回路１１内の発振回路１１０の一部を構成するものであっても良い。
【００３１】
発振回路１１０には、図４と共に後述するように、第１及び第２の発振回路が制御レジスタ部１３を介してソフトウェアにより選択可能に設けられている。第１の発振回路は、Ｑ値が低い素子（Ｑ値の低い周波数制御素子、抵抗、容量）を用い、発振周波数精度は高くないが、起動時の待ち時間（発振安定時間）は比較的短い。第２の発振回路は、Ｑ値が高い周波数制御素子を用い、非常に精度の高い発振が可能であると共に、公称周波数に対する周波数偏差が小さいが、例えば電源が印加されてから発振周波数及び信号振幅が十分に安定するまでに要する時間（発振安定時間）は例えば数十マイクロ秒から数百マイクロ秒と比較的長い。
【００３２】
図４は発振回路１１０の構成を制御レジスタ部１３と共に示す回路図である。発振回路１１０は、図４に示す如く接続されたＣＲ発振回路ＣＲＯ１、水晶又はセラミック発振回路ＯＳＣ１、スイッチ回路ＳＷ２，ＳＷ３、カウンタ回路ＣＵＮＴ１、Ｄフリップフロップ回路ＤＦＦ１、バッファ回路ＢＵＦ１及びアンド回路ＡＮＤ１，ＡＮＤ２，ＡＮＤ３を有する。アンド回路ＡＮＤ３は、一方の入力を反転してから他方の入力との論理積を演算する構成を有する。発振回路ＯＳＣ１は、図４に示す如く接続されたスイッチ回路ＳＷ１、容量Ｃ１，Ｃ２、抵抗Ｒ１、水晶振動子又はセラミック振動子ＸＴＡＬ１及びインバータ回路ＩＮＶ１を有する。以下の説明では、便宜上、発振回路ＯＳＣ１はセラミック振動子ＸＴＡＬ１を有するセラミック発振回路であるものとする。ＣＲ発振回路ＣＲＯ１は上記第１の発振回路を構成し、セラミック発振回路ＯＳＣ１は上記第２の発振回路を構成する。  アンド回路ＡＮＤ１、カウンタ回路ＣＵＮＴ１及びＤフリップフロップ回路ＤＦＦ１は、第２の発振回路の発振安定時間の経過を示す安定信号を出力する（即ち、ＯＳＣ１安定負ラフＯＳＦを制御レジスタ部１３に設定する）信号生成回路を構成する。スイッチ回路ＳＷ３は、選択信号（即ち、制御レジスタ部１３からのＯＳ１選択ビットＳＯＳ１）に基づいて第１及び第２の発振回路の出力の一方を選択出力するスイッチ回路を構成する。又、アンド回路ＡＮＤ２、スイッチ回路ＳＷ１及びインバータ回路ＩＮＶ１は、抑止信号（即ち、制御レジスタ部１３からのＯＳＣ１起動抑止ビットＩＨＯＳ１）に基づいて第２の発振回路の起動を抑止する抑止回路を構成する。
【００３３】
図４において、Ｖｄｄは正の電源電圧（例えば＋３Ｖ）、ＧＮＤはグランド電位（０Ｖ）、ＣＯＵＴはカウンタ回路ＣＵＮＴ１の出力、ＤＦＯはフリップフロップ回路ＤＦＦ１の正の出力を、ＤＦＯＸはフリップフロップ回路ＤＦＦ１の負の出力、ＣＬＣＮＴはアンド回路ＡＮＤ１の出力、ＶＤＤＣＲはＣＲ発振回路ＣＲＯ１の電源端子への入力、ＮＸ０，ＮＸ１はセラミック発振回路ＯＳＣ１の外部接続端子、ＯＳＣＯ１はセラミック発振回路ＯＳＣ１の発振出力、ＯＳＣＯ２はＣＲ発振回路ＣＲＯ１の発振出力、ＯＳＣＥＮはセラミック発振回路ＯＳＣ１に対するイネーブル信号、ＣＫＯは出力クロックを示す。更に、ＣＳＷ１はスイッチ回路ＳＷ１の制御信号、ＣＳＷ２はスイッチ回路ＳＷ２の制御信号、ＯＳＣＣＲはソフトウエアから発振回路１１０を切り替え制御するための制御レジスタ、ＯＳＩＦは割り込み信号を発生するための割り込みフラグ、ＯＳＦはセラミック発振回路ＯＳＣ１の出力が安定したことを示すフラグ、ＯＳＦＩＥは割り込みフラグＯＳＩＦがセットされた場合に割り込みを許可するためのビット、ＳＯＳ１はソフトウエアで明示的に発振回路１１０をＣＲ発振回路ＣＲＯ１からセラミック発振回路ＯＳＣ１に切り替えるビット、ＩＨＯＳ１はセラミック発振回路ＯＳＣ１の起動を抑止するためのビット、ＩＲＱＯＳＣはセラミック発振回路ＯＳＣ１の出力が安定した場合に発生される割り込み信号を示す。
【００３４】
発振回路ＯＳＣ１の起動時の待ち時間（発振安定時間）は長いが、発振周波数精度は高い。一方、ＣＲ発振回路ＣＲＯ１の発振周波数精度は低いが、起動時の待ち時間（発振安定時間）は短い。図４の発振回路１１０では、これらの特性の異なる２つの発振回路ＯＳＣ１，ＣＲＯ１を使用して、ＭＣＵ１の総合的な性能向上を図っている。
【００３５】
制御レジスタ部１３には、後述するように、ＯＳＣ１選択ビットＳＯＳ１、ＯＳＣ１安定割り込み許可ビットＯＳＦＩＥ、ＯＳＣ１安定フラグＯＳＦ、ＯＳＣ１割り込みフラグ、ＯＳＣ１起動抑止ビット等が設定される。
【００３６】
図１に示す従来の発振回路では、スイッチ回路ＳＷ１０３、カウンタ回路ＣＵＮＴ１０１及びＤフリップフロップ回路ＤＦＦ１０１を用いて、セラミック発振回路ＯＳＣ１０１の出力ＯＳＣＯ１が安定した後、ハードウエアで自動的にクロックＣＫＯをＣＲ発振回路ＣＲＯ１の出力ＯＳＣＯ２からセラミック発振回路ＯＳＣ１０１の出力ＯＳＣＯ１に切り替えている。
【００３７】
これに対し、図４に示す本実施例の発振回路１１０では、割り込み信号と割り込みプログラムにより、ＭＣＵ１に供給するクロックを、ＣＲ発振回路ＣＲＯ１の出力ＯＳＣＯ２からセラミック発振回路ＯＳＣ１の出力ＯＳＣＯ１に切り替える。
【００３８】
次に、発振回路１１０の動作を完全に停止したＭＣＵ１のスタンバイ状態から動作状態に復帰させ、ＭＣＵ１でプログラム処理を進めることを想定して、処理の流れの概略を図５乃至図８と共に説明する。尚、ＭＣＵ１の電源投入後又はリセット後の発振回路１１０の処理の流れも、スタンバイ状態から動作状態に復帰後の処理の流れと同様であるため、その説明は省略する。図５及び図８は発振回路１１０の動作を説明するタイミングチャートであり、Ｈはハイレベル、Ｌはローレベルを示す。又、図６及び図７は発振回路１１０の動作を説明するフローチャートである。具体的には、図６（ａ）及び図７はメインプログラムの処理を示し、図６（ｂ）は割り込みプログラムの処理を示す。
【００３９】
ここでは説明の便宜上、ＭＣＵ１はスタンバイ状態にあり、例えば割り込み信号で動作状態への復帰が始まるものとする。ＭＣＵ１の動作状態への復帰が始まると、ＣＲ発振ＣＲＯ１と、セラミック発振回路ＯＳＣ１の起動が始まる。ＣＲ発振回路ＣＲＯ１の出力ＯＳＣＯ２は短時間で安定するので、この出力ＯＳＣＯ２が発振回路１１０の出力クロックＣＫＯとして出力される。この例では、出力クロックＣＫＯがそのままＭＣＵ１のクロックとしてＣＰＵ１２に供給され、図６（ａ）に示すようにステップＳ１で発振周波数精度の必要ないＭＣＵ１の処理を実行し始める。発振周波数精度の必要ないＭＣＵ１の処理の例としては、例えばＭＣＵ１内のレジスタやメモリの値の初期化等が挙げられる。尚、発振周波数精度が必要なＭＣＵ１の処理としては、例えば通信、タイマによる時間の測定、一定時間間隔でのパルスの発生等の処理が挙げられる。
【００４０】
ＣＲ発振回路ＣＲＯ１の出力ＯＳＣＯ２を利用して、発振周波数精度が必要ないＭＣＵ１の処理の実行を進めておくことで、セラミック発振回路ＯＳＣ１の出力ＯＳＣＯ１の安定を待たずにプログラムの実行を進めることができ、ＭＣＵ１の処理を高速化することができる。
【００４１】
図６（ａ）に示すように、ステップＳ４で発振周波数精度が必要なＭＣＵ１の処理を実行する前に、セラミック発振回路ＣＲＯ１の出力ＯＳＣＯ１が安定したことを確認するステップＳ２と、ＭＣＵ１内のＣＰＵ１２に供給されるクロックがセラミック発振回路ＯＳＣ１の出力ＯＳＣＯ１となっていることを確認するステップＳ３を行う。セラミック発振回路ＯＳＣ１の出力ＯＳＣＯ１が安定していない場合には、ステップＳ２の判定結果はＮＯであるため、出力ＯＳＣＯ１が安定するまでステップＳ２が繰り返される。出力ＯＳＣＯ１が安定してステップＳ２の判定結果がＹＥＳになり、且つ、ＭＣＵ１のクロックＣＫＯがＣＲ発振回路ＣＲＯ１の出力ＯＳＣＯ２からセラミック発振回路ＯＳＣ１の出力ＯＳＣＯ１に切り替わったことが確認されてステップＳ３の判定結果がＹＥＳになると、ステップＳ４で発振周波数精度が必要なＭＣＵ１の処理を実行する。このようにプログラムを構成しておくことで、発振周波数精度が必要な処理を、ＣＲ発振回路ＣＲＯ１の出力ＯＳＣＯ２をクロックＣＫＯとして用いて実行することを防ぐことができる。
【００４２】
図６（ｂ）は、ＭＣＵ１のクロックＣＫＯをＣＲ発振回路ＣＲＯ１の出力ＯＳＣＯ２からセラミック発振回路ＯＳＣ１の出力ＯＳＣＯ１に切り替えるための割り込みプログラムの処理の概略を示す。出力ＯＳＣＯ１が安定することで、図４に示した割り込み信号ＩＲＱＯＳＣが発生されるものとする。図６（ｂ）の処理は、割り込み信号ＩＲＱＯＳＣにより実行される割り込みプログラムとして記述されるものとする。割り込み信号ＩＲＱＯＳＣが発生されると、この時点で、出力ＯＳＣＯ１が安定していることになるので、ステップＳ１１でＣＰＵ１２に供給するクロックＣＫＯを出力ＯＳＣＯ２から出力ＯＳＣＯ１に切り替える。又、ＭＣＵ１のクロックＣＫＯを出力ＯＳＣＯ２から出力ＯＳＣＯ１に切り替えた後、ステップＳ１２でプログラムの制御を元のプログラムの割り込みが発生した時点に戻す。
【００４３】
例えば、出力ＯＳＣＯ１が安定して割り込み信号ＩＲＱＯＳＣが発生される時点が、発振周波数精度が必要ない処理を進めている最中だと仮定する。この場合、発振周波数精度が必要ない処理の最中に、ＯＳＣ１安定割り込み（ＩＲＱＯＳＣ）が発生し、ＭＣＵ１のクロックＣＫＯはＣＲ発振回路ＣＲＯ１の出力ＯＳＣＯ２からセラミック発振回路ＯＳＣ１の出力ＯＳＣＯ１に切り替えられる。発振周波数精度が必要ない処理を進めている最中であるため、クロックＣＫＯが発振周波数精度が高いクロックに切り替わっても問題は生じない。図６（ａ）のステップＳ１は、セラミック発振回路ＯＳＣ１の出力ＯＳＣＯ１をクロック源として発振周波数精度が必要ない処理を終わらせ、ステップＳ２は、出力ＯＳＣＯ１の安定の判定を行う。この場合、既に出力ＯＳＣＯ１は安定しており、又、ＭＣＵ１のクロックＣＫＯは出力ＯＳＣＯ１となっているので、ステップＳ２及びＳ３の判定結果はいずれもＹＥＳであり、ステップＳ４で発振周波数精度が必要な処理が実行される。
【００４４】
又、出力ＯＳＣＯ１が安定して割り込み信号ＩＲＱＯＳＣが発生される時点が、発振周波数精度が必要ない処理が終わり、出力ＯＳＣＯ１の安定を待っている時点だと仮定する。この場合も上記の場合と同様に、出力ＯＳＣＯ１が安定した時点で、割り込み信号ＩＲＱＯＳＣが発生し、割り込みプログラムによりＭＣＵ１のクロックＣＫＯが出力ＯＳＣＯ２から出力ＯＳＣＯ１に切り替えられる。ステップＳ１は発振周波数精度が必要ない処理を終わらせ、その後、ステップＳ２及びステップＳ３の判定を経て、ステップＳ４で発振周波数精度が必要な処理が実行される。
【００４５】
このように、図４に示す構成を有する発振回路１１０によれば、割り込み信号と割り込みプログラムを用いても、図１に示す従来の発振回路の場合と同様に、ＣＲ発振回路ＣＲＯ１の出力ＯＳＣＯ２を用いて、セラミック発振回路ＯＳＣ１の出力ＯＳＣＯ１が安定する前にＭＣＵ１の処理を開始することできる。
【００４６】
又、図４に示す構成を有する発振回路１１０によれば、図１に示す従来の発振回路とは異なり、セラミック発振回路ＣＲＯ１を使用しないようにＭＣＵ１をプログラムすることも可能である。例えば、割り込み信号に応答してＭＣＵ１がスタンバイ状態から復帰し、あるセンサの値を確認して直ちに再度スタンバイ状態に戻るような場合を想定すると、セラミック発振回路ＯＳＣ１をわざわざ起動せずとも、ＣＲ発振回路ＣＲＯ１を起動してごく短時間の処理さえ行えれば問題がない場合がある。このような場合には、ＣＲ発振回路ＣＲＯ１だけを起動した方が発振回路１１０の消費電力は少なくて済み、ＭＣＵ１全体としての消費電力を低減可能である。
【００４７】
図７は、このような場合のメインプログラムの処理を示す。予め、ＭＣＵ１がスタンバイ状態から動作状態へ復帰し、処理を行う時間がごく短いことが予想される場合には、図７のような処理とすることが可能であり、このような処理とすることが望ましい。割り込み信号に応答してＭＣＵ１がスタンバイ状態から動作状態に復帰するに際して、ＣＲ発振回路ＣＲＯ１の起動を開始するが、このときステップＳ２１ではセラミック発振回路ＯＳＣ１は起動しない。ＣＲ発振回路ＣＲＯ１の出力ＯＳＣＯ２が安定した時点でＣＰＵ１２に出力ＯＳＣＯ２をクロックＣＫＯとして供給し、ステップＳ２２で発振精度の必要ない処理を実行する。ステップＳ２２の処理が終了した時点で、ステップＳ２３ではＣＲ発振回路ＣＲＯ１の動作を停止して、再びＭＣＵ１をスタンバイ状態とする。
【００４８】
図１に示す従来の発振回路では、このような状況でも、セラミック発振回路が起動されるのに対して、図４に示す構成を有する発振回路１１０によれば、セラミック発振回路ＯＳＣ１の起動を抑止するのでＭＣＵ１の低消費電力化が可能である。
【００４９】
次に、図４、図５及び図８を参照して、より具体的な回路接続も含めて説明する。
【００５０】
図１に示す従来の発振回路の場合と同様に、ＭＣＵ１の電源投入直後、又は、リセット直後、又は、スタンバイ状態では、イネーブル信号ＯＳＣＥＮはＬレベルであるものとする。イネーブル信号ＯＳＣＥＮがＬレベルなので、アンド回路ＡＮＤ１の出力ＣＬＣＮＴもＬレベルである。出力ＣＬＣＮＴがＬレベルなので、カウンタ回路ＣＵＮＴ１はクリアされ、その出力ＣＯＵＴはＬレベルになる。又、カウンタ回路ＣＵＮＴ１は初期化される。同様に、イネーブル信号ＯＳＣＥＮがＬレベルなので、Ｄフリップフロップ回路ＤＦＦ１もクリアされ、その出力ＤＦＯはＬレベルになる。出力ＤＦＯＸは出力ＤＦＯの反転信号なので、Ｈレベルになる。ＯＳＣ１起動抑止ビットＩＨＯＳ１は図５に示すようにＨレベルであるものとする。ＯＳＣ１起動抑止ビットＩＨＯＳ１がＨレベルのときセラミック発振回路ＯＳＣ１も起動されるものとする。
【００５１】
電源投入後又はリセット後、イネーブル信号ＯＳＣＥＮをＬレベルからＨレベルに変化させることで、発振回路ＯＳＣ１，ＣＲＯ１の動作が開始される。イネーブル信号ＯＳＣＥＮをＨレベルにすると、ＯＳＣ１起動抑止ビットＩＨＯＳ１がＨレベルなので、アンド回路ＡＮＤ２の出力ＣＳＷ１もＨレベルになる。出力ＣＳＷ１がＨレベルになると、スイッチ回路ＳＷ１がオンとなってインバータ回路ＩＮＶ１に電源電圧Ｖｄｄが供給され、発振回路ＯＳＣ１が動作を始める。又、出力ＤＦＯＸがＨレベルなので、イネーブル信号ＯＳＣＥＮがＨレベルになると、アンド回路ＡＮＤ１の出力ＣＬＣＮＴもＨレベルになる。出力ＣＬＣＮＴがＨレベルになるので、セラミック発振回路ＯＳＣ１が動作を始めると、カウンタ回路ＣＵＮＴ１がセラミック発振回路ＯＳＣ１の出力ＯＳＣＯ１の変化をカウントする。ＯＳＣ１選択ビットＳＯＳ１は、図５に示すように、ＭＣＵ１のスタンバイ状態からの復帰直後はＬレベルであるものとする。ＯＳＣ１選択ビットＳＯＳ１がＬレベルであるため、イネーブル信号ＯＳＣＥＮがＨレベルになるとアンド回路ＡＮＤ３の出力ＣＳＷ２がＨレベルになる。アンド回路ＡＮＤ３の出力ＣＳＷ２がＨレベルになると、スイッチ回路ＳＷ２はオンとなる。スイッチ回路ＳＷ２がオンとなると、入力ＶＤＤＣＲがＨレベルになってＣＲ発振回路ＣＲＯ１に電源電圧Ｖｄｄが供給され、ＣＲ発振回路ＣＲＯ１も動作を開始する。
【００５２】
スイッチ回路ＳＷ２がオンとなった後、ごく短い時間で、ＣＲ発振回路ＣＲＯ１の出力ＯＳＣＯ２は出力が安定する。出力ＯＳＣＯ２の信号振幅及び発振周波数が安定した後、セラミック発振回路ＯＳＣ１の出力ＯＳＣＯ１の信号振幅及び発振周波数が安定する。ＣＲ発振回路ＣＲＯ１の出力ＯＳＣＯ２が安定した後、スイッチ回路ＳＷ３により、出力ＯＳＣＯ２を出力クロックＣＫＯとして出力する。この出力クロックＣＫＯを基準クロックとして、ＭＣＵ１の動作を開始することができる。
【００５３】
セラミック発振回路ＯＳＣ１が発振を開始してからある程度時間が経過すると、出力ＯＳＣＯ１の信号振幅及び発振周波数が安定する。この時間の経過を知るために、カウンタ回路ＣＵＮＴ１で出力ＯＳＣＯ１をカウントする。ある規定の回数だけ出力ＯＳＣ１がＨレベルとＬレベルの変化を繰り返すことで、カウンタ回路ＣＵＮＴ１の出力ＣＯＵＴがＬレベルからＨレベルに変化する。
【００５４】
カウンタ回路ＣＵＮＴ１の出力ＣＯＵＴがＬレベルからＨレベルに変化することで、Ｄフリップフロップ回路ＤＦＦ１の出力ＤＦＯもＬレベルからＨレベルに変化する。出力ＤＦＯがＬレベルからＨレベルに変化することで、割り込み信号のためのＯＳＣ１割り込みフラグＯＳＩＦ及びセラミック発振回路ＯＳＣ１の出力ＯＳＣＯ１が安定したことを示すＯＳＣ１安定フラグＯＳＦがＨレベルになる。このとき、予めＯＳＣ１安定割り込み許可ビットＯＳＦＩＥをＨレベルにしておくことで、ＯＳＣ１安定割り込み信号ＩＲＱＯＳＣが発生されるものとする。
【００５５】
Ｄフリップフロップ回路ＤＦＦ１の出力ＤＦＯがＬレベルからＨレベルに変化することで、出力ＤＦＯＸはＨレベルからＬレベルに変化する。出力ＤＦＯＸがＬレベルになることで、アンド回路ＡＮＤ１の出力ＣＬＣＮＴもＬレベルになる。カウンタ回路ＣＵＮＴ１のクリア端子ＣＬがＬレベルになるので、カウンタ回路ＣＵＮＴ１は動作を停止し、クリアされる。この結果、カウンタ回路ＣＵＮＴ１の出力ＣＯＵＴはＬレベルになる。
【００５６】
図５に示すように、ＯＳＣ１安定割り込み信号ＩＲＱＯＳＣがＨレベルになることで、プログラムの制御は割り込みプログラムに移る。この割り込みプログラム中で、先ず例えばＯＳＣ１割り込みフラグＯＳＩＦをクリアする（Ｌレベルに書き換える）。これにより、ＭＣＵ１がクロック切り替えの割り込みプログラムから元のプログラムに復帰したときに再度、クロック切り替え割り込みプログラムに制御が移ることを防げる。又、図５に示すように、ＯＳＣ１安定割り込み信号ＩＲＱＯＳＣは、例えばＬレベルに戻る。一方、図５では図示を省略するが、セラミック発振回路ＯＳＣ１の出力ＯＳＣＯ１が安定したことを示すＯＳＣ１安定フラグＯＳＦはＨレベルに保たれる。これにより、ＭＣＵ１が割り込みプログラムから復帰した後も、ＯＳＣ１安定フラグＯＳＦを参照することで、セラミック発振回路ＯＳＣ１の出力ＯＳＣＯ１が安定したか否かを判定することができる。
【００５７】
つまり、割り込み発生のためのＯＳＣ１割り込みフラグＯＳＩＦと、セラミック発振回路ＯＳＣ１の出力ＯＳＣＯ１が安定したことを示すＯＳＣ１安定フラグＯＳＦを夫々設けることで、ＭＣＵ１のメインプログラムから割り込みプログラムへの制御の移動と、割り込みプログラムからメインプログラムに制御が復帰した後もセラミック発振回路ＯＳＣ１の出力ＯＳＣＯ１が安定したか否かを判定する機能の両立が可能となる。
【００５８】
ＯＳＣ１割り込みフラグＯＳＩＦをクリアした後、クロック切り替えのための割り込みプログラムでは、クロック切り替えのためのＯＳＣ１選択ビットＳＯＳ１をＨレベルに書き換える。ＯＳＣ１選択ビットＳＯＳ１がＨレベルになることで、スイッチ回路ＳＷ３が切り替えられて、セラミック発振回路ＯＳＣ１の出力ＯＳＣＯ１が出力クロックＣＫＯとして出力される。図５に示す出力クロックＣＫＯは、このような動作の場合の波形を示す。
【００５９】
又、ＯＳＣ選択ビットＳＯＳ１がＨレベルになると、アンド回路ＡＮＤ３の出力ＣＳＷ２がＬレベルになる。出力ＣＳＷ２がＬレベルになると、スイッチ回路ＳＷ２がオフとなり、ＣＲ発振回路ＣＲＯ１には電源電圧Ｖｄｄが供給されなくなり、ＣＲ発振回路ＣＲＯ１は動作を停止する。又、入力ＶＤＤＣＲはＬレベルになる。
【００６０】
以上説明したように、電源投入直後はＣＲ発振回路ＣＲＯ１によりＭＣＵ１のクロックを供給し、セラミック発振回路ＯＳＣ１の出力ＯＳＣＯ１が安定した後は、セラミック発振回路ＯＳＣ１によりＭＣＵ１のクロックを供給すると共にＣＲ発振回路ＣＲＯ１の動作を停止する。このような発振回路１１０の構成により、セラミック発振回路ＯＳＣ１の出力ＯＳＣＯ１が安定する前であってもＣＲ発振回路ＣＲＯ１の出力ＯＳＣＯ２をＭＣＵ１のクロックとして供給することでＭＣＵ１の処理を進めることができ、且つ、セラミック発振回路ＯＳＣ１の出力ＯＳＣＯ１が安定した後は発振周波数精度の高いセラミック発振回路ＯＳＣ１の出力ＯＳＣＯ１をＭＣＵ１のクロックとして利用できる。
【００６１】
図５は、ＭＣＵ１に供給するクロックをＣＲ発振回路ＣＲＯ１の出力ＯＳＣＯ２からセラミック発振回路ＯＳＣ１の出力ＯＳＣＯ１に切り替える場合の発振回路１１０の各部での波形を示す。これに対し、図８は、ＣＲ発振回路ＣＲＯ１の出力ＯＳＣＯ２のみを使用する場合の発振回路１１０の各部での波形を示す。
【００６２】
図８の場合、図５の場合と同様に、ＭＣＵ１のスタンバイ状態ではイネーブル信号ＯＳＣＥＮはＬレベルである。ＭＣＵ１のスタンバイ状態から動作状態への復帰によりＣＲ発振回路ＣＲＯ１が起動されることは、図５の場合と同様である。図５との場合異なる点は、図８ではＯＳＣ１起動抑止ビットＩＨＯＳ１がＬレベルになっている点である。セラミック発振回路ＯＳＣ１の起動を抑止するためのＯＳＣ１起動抑止ビットＩＨＯＳ１を設けてこれを予めＬレベルに設定しておけば、セラミック発振回路ＯＳＣ１を起動しないように制御することができる。或いは、一旦セラミック発振回路ＯＳＣ１を起動し始めても、ＣＲ発振回路ＣＲＯ１の出力ＯＳＣＯ２が安定し、ＭＣＵ１が動作を始めた時点で、制御レジスタＯＳＣＣＲ（図４では、そのアドレスを仮に０００ＦＦＦとして示す）のＯＳＣ１起動抑止ビットＩＨＯＳ１にＬレベルを設定することで、セラミック発振回路ＯＳＣ１の起動を中止することができる。
【００６３】
次に、このようにセラミック発振回路ＯＳＣ１の出力ＯＳＣＯ１を使用しない場合の発振回路１１０の動作を、図４及び図８と共に説明する。この場合、イネーブル信号ＯＳＣＥＮがＨレベルになりＣＲ発振回路ＣＲＯ１の出力ＯＳＣＯ２が安定した時点でＭＣＵ１がプログラムの実行を開始する。ＭＣＵ１が動作した後、例えばＯＳＣ１起動抑止ビットＩＨＯＳ１をＬレベルにすると、アンド回路ＡＮＤ２の出力ＣＳＷ１がＬレベルになり、セラミック発振回路ＯＳＣ１には電源電圧Ｖｄｄが供給されなくなる。このため、セラミック発振回路ＯＳＣ１の動作は停止し、その出力ＯＳＣＯ１は停止したままとなる。ＯＳＣ１選択ビットＳＯＳ１は、セラミック発振回路ＯＳＣ１を選択しないので、Ｌレベルにする。従って、ＣＲ発振回路ＣＲＯ１の出力ＯＳＣＯ２がＭＣＵ１のクロックＣＫＯとして供給される。図５の場合のようにＯＳＣ１選択ビットＳＯＳ１をＨレベルにしないので、ＣＲ発振回路ＣＲＯ１には電源電圧Ｖｄｄが供給され続け、その出力ＯＳＣＯ２がＭＣＵ１のクロックＣＫＯとして供給されてＭＣＵ１の処理が続けられる。
【００６４】
このように、本実施例では、セラミック発振回路ＯＳＣ１の動作を停止してＣＲ発振回路ＣＲＯ１の出力ＯＳＣＯ２だけを使用することも可能になる。このため、セラミック発振回路ＯＳＣ１の出力ＯＳＣＯ１が安定する前に必要なＭＣＵ１の処理が終了してしまうような処理の量が小さい場合には、セラミック発振回路ＯＳＣ１を起動せず、ＣＲ発振回路ＣＲＯ１によりクロックＣＫＯを供給してＭＣＵ１の処理を終了させ、再びスタンバイ状態とするようなモードが可能となる。この場合、使用しないセラミック発振回路ＯＳＣ１を起動しないよう制御できるので、ＭＣＵ１全体としての消費電力を削減できる。
【００６５】
図９は、図４に示すＣＲ発振回路ＣＲＯ１の構成の一例を示す回路図である。言うまでもないが、ＣＲ発振回路ＣＲＯ１の構成は、図９に示す構成に限定されるものではない。図９中、図４と同一信号には同一符号を付し、その説明は省略する。ＣＲ発振回路ＣＲＯ１は、図９に示す如く接続されたナンド回路ＮＡ２１、インバータ回路ＩＮＶ２，ＩＮＶ３，ＩＮＶ４、容量ＣＴ１、抵抗ＲＴ１、アンド回路ＡＮＤ４，ＡＮＤ５、カウンタＣＵＮＴ２及びＤフリップフロップ回路ＤＦＦ２を有する。図９において、Ｖｄｄは正の電源（例えば＋３Ｖ）、ＣＯＵＴ２はカウンタ回路ＣＵＮＴ２の出力、ＣＤＦＯ２はＤフリップフロップ回路ＤＦＦ２の正の出力、ＤＦＯＸ２はＤフリップフロップ回路ＤＦＦ２の負の出力、ＣＲＥはＣＲ発振回路ＣＲＯ１のイネーブル制御信号（図４のアンド回路ＡＮＤ３の出力ＣＳＷ２と略同じ働きをする信号）、ＮＯＤＥ１乃至ＮＯＤＥ５はノードを示す。
【００６６】
図１０は、図９に示すＣＲ発振回路ＣＲＯ１の動作を説明するタイミングチャートである。具体的には、図１０はノードＮＯＤＥ１乃至ＮＯＤＥ４における信号波形を示す。イネーブル制御信号ＣＲＥは、ＣＲ発振回路ＣＲＯ１の動作が停止しているときはＬレベルであるものとする。
【００６７】
イネーブル制御信号ＣＲＥがＬレベルのとき、ナンド回路ＮＡ２１の出力（ＮＯＤＥ１）はＬレベルに固定されるので、ＣＲ発振回路ＣＲＯ１は停止状態となる。イネーブル制御信号ＣＲＥがＨレベルになったときのナンド回路ＮＡ２１、インバータ回路ＩＮＶ２，ＩＮＶ３、抵抗ＲＴ１及び容量ＣＴ１からなる回路部分の動作を説明する。
【００６８】
図１０に示すように、ノードＮＯＤＥ１，ＮＯＤＥ２，ＮＯＤＥ３における信号波形はＣＭＯＳ回路の一般的な出力波形である矩形波となる。ノードＮＯＤＥ４における信号波形は、ノードＮＯＤＥ２との容量結合により、ノードＮＯＤＥ２の電位変化の時刻にノードＮＯＤＥ４の電位がノードＮＯＤＥ２と同じ方向に変化し、その後緩やかにノードＮＯＤＥ３の電位により充放電される波形となる。
【００６９】
ノードＮＯＤＥ２において図１０に示すような発振波形が得られるので、例えば図９に示すように、インバータ回路ＩＮＶ４を用いることによりノードＮＯＤＥ５において発振波形を得ることができる。カウンタ回路ＣＵＮＴ２、Ｄフリップフロップ回路ＤＦＦ２及びアンド回路ＡＮＤ５からなる回路部分は、図４に示すカウンタ回路ＣＵＮＴ１、Ｄフリップフロップ回路ＤＦＦ１及びアンド回路ＡＮＤ１からなる回路部分と同様に動作する。ノードＮＯＤＥ５における発振波形のレベルの変化をカウンタ回路ＣＵＮＴ２によりカウントし、規定の回数に達したところで出力ＣＯＵＴ２がＬレベルからＨレベルに変化するものとする。ＣＲ発振回路ＣＲＯ１を起動する前はイネーブル制御信号ＣＲＥがＬレベルになっているので、アンド回路ＡＮＤ５出力はＬレベルになっており、カウンタ回路ＣＵＮＴ２はクリアされ、初期化されている。同様に、Ｄフリップフロップ回路ＤＦＦ２も初期化されている。ノードＮＯＤＥ５における変化が規定の回数に達して、カウンタ回路ＣＵＮＴ２の出力ＣＯＵＴ２がＬレベルからＨレベルに変化すると、Ｄフリップフロップ回路ＤＦＦ２の出力ＣＤＦＯ２がＨレベルに変化する。又、Ｄフリップフロップ回路ＤＦＦ２の出力ＤＦＯＸ２がＬレベルに変化し、カウンタ回路ＣＵＮＴ２はクリアされ、初期化される。Ｄフリップフロップ回路ＤＦＦ２の出力ＣＤＦＯ２がＨレベルになると、アンド回路ＡＮＤ４の出力にはノードＮＯＤＥ５と同相の信号が現れ、ＣＲ発振回路ＣＲＯ１の出力ＯＳＣＯ２として出力される。
【００７０】
図１１は、図４に示すスイッチ回路ＳＷ３の構成の一例を示す回路図である。言うまでもないが、スイッチ回路ＳＷ３の構成は、図１１に示す構成に限定されるものではない。図１１中、図４と同一部分には同一符号を付し、その説明は省略する。スイッチ回路ＳＷ３は、図１１に示す如く接続されたインバータ回路ＩＮＶ５，ＩＮＶ６，ＩＮＶ７、ナンド回路ＮＡ２２乃至ＮＡ２５、アンド回路ＡＮＤ６及びＤフリップフロップ回路ＤＦＦ３乃至ＤＦＦ６を有する。図１１において、ＮＡ２２Ｏ乃至ＮＡ２５Ｏはナンド回路ＮＡ２２乃至ＮＡ２５の出力、ＤＦＦ３Ｏ乃至ＤＦＦ６ＯはＤフリップフロップ回路ＤＦＦ３乃至ＤＦＦ６の出力、ＳＥＬＩ，ＳＥＬＩＸはセレクタ制御信号を示す。
【００７１】
図１２は、図１１に示すスイッチ回路ＳＷ３の動作を説明するタイミングチャートである。図１１に示すスイッチ回路ＳＷ３は、クロックＣＫＯをＣＲ発振回路ＣＲＯ１の出力ＯＳＣＯ２からセラミック発振回路ＯＳＣ１の出力ＯＳＣＯ１に切り替える際に、Ｈレベルの幅（期間）、或いは、Ｌレベルの幅（期間）が短すぎるパルスがクロックＣＫＯとして出力されない回路構成となっている。ここでは、説明の便宜上、ＭＣＵ１のスタンバイ状態からの復帰後、発振回路ＣＲＯ１，ＯＳＣ１の起動を開始し、出力ＯＳＣＯ２，ＯＳＣＯ１が図１２に示す状態にあるものとする。ＯＳＣ１選択ビットＳＯＳ１は最初Ｌレベルであるものとする。ＯＳＣ１選択ビットＳＯＳ１がＬレベルなので、Ｄフリップフロップ回路ＤＦＦ３乃至ＤＦＦ６はクリアされている。Ｄフリップフロップ回路ＤＦＦ５がクリアされているので、セレクタ制御信号ＳＥＬＩもＬレベルである。
【００７２】
セレクタ制御信号ＳＥＬＩがＬレベルなので、ナンド回路ＮＡ２３の出力ＮＡ２３ＯはＨレベルに固定されている。又、セレクタ制御信号ＳＥＬＩＸがＨレベルなので、ナンド回路ＮＡ２４の出力ＮＡ２４ＯはＣＲ発振回路ＣＲＯ１の出力ＯＳＣＯ２と同相の信号となる。ナンド回路ＮＡ２２，ＮＡ２３，ＮＡ２４はセレクタ回路として機能し、出力ＮＡ２４ＯとしてＣＲ発振回路ＣＲＯ１の出力ＯＳＣＯ２又はセラミック発振回路ＯＳＣ１の出力ＯＳＣＯ１を選択出力する。図１２において、セレクタ制御信号ＳＥＬＩがＬレベルのときに、ＣＲ発振回路ＣＲＯ１の出力ＯＳＣＯ２とナンド回路ＮＡ２４の出力ＮＡ２４Ｏが同じ波形になっているのは、このことを表している。
【００７３】
ＯＳＣ１選択ビットＳＯＳ１がＬレベルなので、Ｄフリップフロップ回路ＤＦＦ４の出力ＤＦＦ４ＯはＬレベルである。Ｄフリップフロップ回路ＤＦＦ４の出力ＤＦＦ４ＯがＬレベルなので、ナンド回路ＮＡ２５の出力ＮＡ２５ＯはＨレベルである。ナンド回路ＮＡ２５の出力ＮＡ２５ＯがＨレベルなので、クロックＣＫＯはナンド回路ＮＡ２４の出力ＮＡ２４Ｏと同相の信号となり、ＣＲ発振回路ＣＲＯ１の出力ＯＳＣＯ２がＭＣＵ１のクロックＣＫＯとして出力される。又、ＯＳＣ１選択ビットＳＯＳ１がＬレベルなので、Ｄフリップフロップ回路ＤＦＦ６の出力ＤＦＦ６ＯはＬレベルである。
【００７４】
セラミック発振回路ＯＳＣ１の出力ＯＳＣＯ１が安定すると、ＯＳＣ１安定割り込み（ＩＲＱＯＳＣ）が発生し、割り込みプログラムによりＯＳＣ１選択ビットＳＯＳ１がＨレベルに書き換えられる。図１２において、ＯＳＣ１選択ビットＳＯＳ１がＬレベルからＨレベルに変化しているのは、この割り込みプログラムによるＯＳＣ１選択ビットＳＯＳ１のＬレベルからＨレベルへの書き換えを表している。ＯＳＣ１選択ビットＳＯＳ１がＨレベルになると、ＤフリップフロップＤＦＦ３のＤ入力がＨレベルになるので、クロックＣＫＯの次の立ち上がり（即ち、出力ＯＳＣＯ２の次の立ち上がり）で、Ｄフリップフロップ回路ＤＦＦ３の出力ＤＦＦ３ＯがＨレベルになる。Ｄフリップフロップ回路ＤＦＦ４のクロック入力端子ＣＫには、出力ＯＳＣＯ２をインバータ回路ＩＮＶ６により反転した信号が入力されるので、出力ＯＳＣＯ２の次の立下りでＤフリップフロップ回路ＤＦＦ４の出力ＤＦＦ４ＯがＨレベルになる。Ｄフリップフロップ回路ＤＦＦ４の出力ＤＦＦ４ＯがＨレベルになると、この時点ではＤフリップフロップ回路ＤＦＦ６の出力ＤＦＦ６ＯはＬレベルなので、インバータ回路ＩＮＶ７の出力はＨレベルである。インバータ回路ＩＮＶ７出力とＤフリップフロップ回路ＤＦＦ４の出力ＤＦＦ４Ｏが同時にＨレベルになると、ナンド回路ＮＡ２５の出力ＮＡ２５ＯはＬレベルになる。
【００７５】
Ｄフリップフロップ回路ＤＦＦ４の出力ＤＦＦ４ＯがＨレベルになった後、Ｄフリップフロップ回路ＤＦＦ５により出力ＯＳＣＯ２の次の立ち上がりでセレクタ制御信号ＳＥＬＩがＨレベルになる。セレクタ制御信号ＳＥＬＩがＨレベルになるので、ナンド回路ＮＡ２２，ＮＡ２３，ＮＡ２４で構成されるセレクタ回路は出力ＯＳＣＯ１を選択出力するようになる。図１２は、セレクタ制御信号ＳＥＬＩがＨレベルになった後、ナンド回路ＮＡ２４の出力ＮＡ２４Ｏにより出力クロックＣＫＯが出力ＯＳＣＯ２から出力ＯＳＣＯ１に切り替えられる場合を示す。
【００７６】
発振回路ＯＳＣ１，ＣＲＯ１の出力ＯＳＣＯ１，ＯＳＣＯ２は同期して発振しているわけではないので、切り替えのタイミングによっては、Ｈレベルの幅又はＬレベルの幅が非常に短いパルスがナンド回路ＮＡ２４の出力ＮＡ２４Ｏに現れる可能性がある。そこで、アンド回路ＡＮＤ６等により、この望ましくない短いパルスを除去する。図１１では、セレクタ制御信号ＳＥＬＩがＬレベルからＨレベルに切り替わる時点より前に、ナンド回路ＮＡ２５の出力ＮＡ２５ＯをＬレベルにして、セレクタ制御信号ＳＥＬＩが変化した後の出力ＯＳＣＯ１の立ち上がりまで、出力ＮＡ２５ＯがＬレベルを保つような回路構成が採用されている。これにより、アンド回路ＡＮＤ６回路により、ナンド回路ＮＡ２５の出力ＮＡ２５ＯがＬレベルの期間、クロックＣＫＯをＬレベルに固定している。
【００７７】
図１２において破線で示すように、セレクタ制御信号ＳＥＬＩがＨレベルに変化すると、Ｄフリップフロップ回路ＤＦＦ６のＤ入力もＨレベルになるので、次の出力ＯＳＣＯ１の立ち上がりで、Ｄフリップフロップ回路ＤＦＦ６の出力ＤＦＦ６ＯがＨレベルになる。インバータ回路ＩＮＶ７により、ナンド回路ＮＡ２５にはＬレベルの信号が供給されるので、ナンド回路ＮＡ２５の出力ＮＡ２５ＯはＬレベルからＨレベルに戻る。つまり、切り替え前の出力ＯＳＣＯ２の立下りから、切り替え後の出力ＯＳＣＯ１の立ち上がりまでの期間、ナンド回路ＮＡ２５の出力ＮＡ２５ＯはＬレベルとなり、クロックＣＫＯをこの期間だけＬレベルに固定する。この結果、図１２に示すように、出力ＯＳＣＯ２の波形と出力ＯＳＣＯ１の波形の切り替わり時に多少長いＬレベル期間が挿入された波形が得られる。
【００７８】
図５乃至図８では、ＭＣＵ１のプログラムの設計者が明示的に、ＣＲ発振回路ＣＲＯ１だけ、或いは、ＣＲ発振回路ＣＲＯ１とセラミック発振回路ＯＳＣ１の両方を使用し、それらを切り替えて使用する場合の処理について説明した。
【００７９】
タイマ又はパルス発生器の時間精度が必要とされるような場合、或いは、通信が予定されていてクロックの周波数精度が必要なことが予めかっている場合には、図５及び図６と共に説明したような処理で、クロックＣＫＯをＣＲ発振回路ＣＲＯ１の出力ＯＳＣＯ２からセラミック発振回路ＯＳＣ１の出力ＯＳＣＯ１に切り替えれば良い。あるプログラムの一連の処理に発振周波数精度が必要ないことが予めわかっている場合には、図７及び図８と共に説明したような処理で、ＣＲ発振回路ＣＲＯ１だけを起動してＭＣＵ１のクロックＣＫＯを出力すれば良い。
【００８０】
ところが、発振周波数精度が必要ない処理を進めている最中に、外部から例えば通信を要求された場合であってもこれに対処できるようにＭＰＵを構成しておくことが望ましい場合がある。つまり、発振周波数精度を必要としない処理を進めて、処理が終了すればＣＲ発振回路の動作を停止し、スタンバイ状態に戻ることを想定してプログラムが構成されていたとしても、外部から非同期に例えば通信を要求される可能性があれば、通信を要求された時点でセラミック発振回路を起動できるようにＭＰＵを構成しておくことが望ましい場合がある。
【００８１】
次に、発振周波数精度の必要ない処理をＭＣＵ１で進めて再びスタンバイ状態に戻ろうとしている途中で、外部の何らかの装置又はデバイスから非同期に例えば通信を要求された場合の処理を、図１３と共に説明する。図１３は、発振回路１１０の処理を説明するフローチャートであり、同図（ａ）はメインプログラムの処理、同図（ｂ）は通信要求受け付け割り込みプログラムの処理、同図（ｃ）はＯＳＣ１安定割り込みプログラムの処理を示す。このように、外部から非同期で通信が要求される可能性がある場合には、外部からの通信要求により割り込み信号を発生することで、図１３のような処理を進めることが可能となる。
【００８２】
図１３（ａ）では、ＭＣＵ１のスタンバイ状態の解除後、ステップＳ３１ではＣＲ発振回路ＣＲＯ１だけを起動し、セラミック発振回路ＯＳＣ１の動作は停止する。ステップＳ３２では発振周波数精度の必要ない処理を進め、処理が終了すると、ステップＳ３３ではＣＲ発振回路ＣＲＯ１の動作を停止してＭＣＵ１を再びスタンバイ状態へ戻す。
【００８３】
外部から通信を要求された場合には、通信要求により割り込み信号を発生し、図１３（ｂ）の通信要求受け付け割り込みプログラムに処理が移る。ステップＳ４１では通信要求に従って、セラミック発振回路ＯＳＣ１を起動する。具体的には、ＯＳＣ１起動抑止ビットＩＨＯＳ１をＬレベルからＨレベルに書き換えて、セラミック発振回路ＯＳＣ１を起動する。セラミック発振回路ＯＳＣ１を起動した後、ステップＳ４２では元のメインプログラムに処理を戻し、残りの処理を実行する。このとき、メインプログラムの処理が終了しても、通信要求を処理していないので、ＭＣＵ１がスタンバイ状態に戻らないように待ち状態となるようにプログラムを構成しておく。
【００８４】
セラミック発振回路ＯＳＣ１を起動した後、その出力ＯＳＣＯ１が安定するとＯＳＣ１安定割り込みＩＲＱＯＳＣが発生されるので、図１３（ｃ）のＯＳＣ１安定割り込みプログラムの処理で、ステップＳ５１では例えばＭＣＵ１のクロックＣＫＯをＣＲ発振回路ＣＲＯ１の出力ＯＳＣＯ２からセラミック発振回路ＯＳＣ１の出力ＯＳＣＯ１に切り替え、ステップＳ５２では通信要求も処理する。ステップＳ５３ではメインプログラムに処理を戻す。
【００８５】
プログラムの構成の詳細は、各種の変形が可能であり、実際のハードウェア構成に適した構成を採用する必要がある。ＯＳＣ１安定割り込みでは、クロックＣＫＯをＣＲ発振回路ＣＲＯ１の出力ＯＳＣＯ２からセラミック発振回路ＯＳＣ１の出力ＯＳＣＯ１に切り替え、メインプログラム中で通信を処理しても良い。この場合には、発振周波数精度が必要ない処理が終了した時点で、通信要求を処理したか否かを確認することになる。或いは、通信要求を受け付けて、まだ通信処理が終了していない時点でセラミック発振回路ＯＳＣ１の出力ＯＳＣＯ１が安定したことを検出した場合、専用の通信実行のための割り込み信号を発生するようにして、その割り込み信号に対応したプログラムを記述しても良い。
【００８６】
図１３と共に説明したような状況も考慮しておくことで、図４の発振回路１１０を使用して、セラミック発振回路ＯＳＣ１とＣＲ発振回路ＣＲＯ１を、プログラムの状況で使い分けることができるようになり、セラミック発振回路ＯＳＣ１の起動回数を削減することにより低消費電力化が可能となる。
【００８７】
以上説明したように、本実施例では、発振回路１１０を切り替え制御するための制御レジスタ部１３に、発振回路１１０から設定可能でありセラミック発振回路ＯＳＣ１の出力が安定したことを示すＯＳＣ１安定フラグＯＳＦをＭＣＵ１のソフトウェアから参照可能に設けることで、ソフトウェアによりセラミック発振回路ＯＳＣ１の出力が安定したか否かを判定することができるようになる。又、制御レジスタ部１３に、発振回路１１０から設定可能であり割り込み信号を発生するためのＯＳＣ１割り込みフラグＯＳＩＦをＭＣＵ１のソフトウェアから参照可能に設けると共に、ＭＣＵ１のソフトウェアから設定可能でありＯＳＣ１割り込みフラグＯＳＩＦがセットされた場合に割り込みを許可するためのＯＳＣ１安定割り込み許可ビットＯＳＦＩＥ及びセラミック発振回路ＯＳ１の出力が安定した場合に発生されるＯＳＣ安定割り込み信号ＩＲＱＯＳＣを設けることで、セラミック発振回路ＯＳＣ１の出力が安定した場合にＯＳＣ１安定割り込み信号ＩＲＱＯＳＣを発生することができる。
【００８８】
更に、制御レジスタ部１３に、ＭＣＵ１のソフトウェアから設定可能であり明示的に発振回路１１０をＣＲ発振回路ＣＲＯ１からセラミック発振回路ＯＳＣ１に切り替えるＯＳＣ１選択ビットＳＯＳ１を設け、割り込みプログラム中にこのＯＳＣ１選択ビットＳＯＳ１を設定することで、ソフトウエアでＭＣＵ１のクロックＣＫＯをＣＲ発振回路ＣＲＯ１の出力からセラミック発振回路ＯＳＣ１の出力に切り替えることができる。又、このＯＳＣ１選択ビットＳＯＳ１を設けることで、クロックＣＫＯをＣＲ発振回路ＣＲＯ１の出力からセラミック発振回路ＯＳＣ１の出力に切り替えた後、ＣＲ発振回路ＣＲＯ１の動作を停止することもできる。
【００８９】
制御レジスタ部１３に、ＭＣＵ１のソフトウェアから設定可能でありセラミック発振回路ＯＳＣ１の起動を抑止するためのＯＳＣ１起動抑止ビットＩＨＯＳ１を設けることで、セラミック発振回路ＯＳＣ１の出力を使用しない場合には、セラミック発振回路ＯＳＣ１の起動を抑止することができる。
【００９０】
上記の如き制御レジスタ部１３を設けることにより、ＣＲ発振回路ＣＲＯ１の出力ＯＳＣＯ２とセラミック発振回路ＯＳＣ１の出力ＯＳＣＯ１を切り替えて使用するモードと、ＣＲ発振回路ＣＲＯ１の出力ＯＳＣＯ２だけを使用し、セラミック発振回路ＯＳＣ１を起動しないモードを選択することが可能となり、ＣＲ発振回路ＣＲＯ１しか使用しない場合には、セラミック発振回路ＯＳＣ１を起動しないことでＭＣＵ１全体の消費電力を削減することが可能となる。
【００９１】
尚、本発明は、以下に付記する発明をも包含するものである。
（付記１）
第１の発振回路と、
該第１の発振回路より長い発振安定時間を有する第２の発振回路と、
該第２の発振回路の発振安定時間の経過を示す安定信号を出力する信号生成回路と、
選択信号に基づいて該第１及び第２の発振回路の出力の一方を選択出力するスイッチ回路と、
抑止信号に基づいて該第２の発振回路の起動を抑止する抑止回路とを備え、
該第１及び第２の発振回路が同時に起動されて該スイッチ回路により該第１の発振回路の出力が選択出力された後に該第２の発振回路の出力に切り替えられるモードと、
該第１の発振回路が起動されて該抑止回路により該第２の発振回路が起動されず該スイッチ回路により該第１の発振回路の出力のみが選択出力されるモードと
を有することを特徴とする発振回路。
（付記２）
該信号生成回路は、該第１の発振回路の出力をカウントして該安定信号を生成することを特徴とする付記１記載の発振回路。
（付記３）
該第１の発振回路はＣＲ発振回路からなり、該第２の発振回路は水晶発振回路又はセラミック発振回路からなることを特徴とする付記１又は２記載の発振回路。
（付記４）
該安定信号が該信号生成回路からＭＣＵのソフトウェアにより参照可能に設定されると共に、該ソフトウェアにより該選択信号及び該抑止信号が設定される制御レジスタ部を更に備えたことを特徴とする付記１乃至３のいずれか１項記載の発振回路。
（付記５）
第１の発振回路と、
該第１の発振回路より長い発振安定時間を有する第２の発振回路と、
外部からも情報を設定可能であると共に、外部より設定されている情報を参照可能な制御レジスタ部と、
該第２の発振回路の発振安定時間の経過を示す安定フラグを出力して該制御レジスタ部に設定する信号生成回路と、
該制御レジスタ部に設定されている選択ビットに基づいて該第１及び第２の発振回路の出力の一方を選択出力するスイッチ回路とを備え、
該第１及び第２の発振回路が同時に起動されて該スイッチ回路により該第１の発振回路の出力が選択出力された後に該第２の発振回路の出力に切り替えられる第１のモードを有することを特徴とする発振回路。
（付記６）
該制御レジスタ部に設定されている抑止信号に基づいて該第２の発振回路の起動を抑止する抑止回路を更に備え、
該第１の発振回路が起動されて該抑止回路により該第２の発振回路が起動されず該スイッチ回路により該第１の発振回路の出力のみが選択出力される第２のモードを有することを特徴とする付記５記載の発振回路。
（付記７）
該制御レジスタ部は、該外部に対する割り込み信号を発生するための割り込みフラグが該信号生成回路から設定されると共に、該割り込みフラグが設定された場合に割り込みを許可するためのビットが該外部から設定され、該第２の発振回路の発振安定時間の経過後に割り込み信号を発生することを特徴とする付記６記載の発振回路。
（付記８）
クロック生成回路と、制御レジスタ部と、ＣＰＵを備えた半導体装置であって、
該クロック生成回路は第１の発振回路と、該第１の発振回路より長い発振安定時間を有する第２の発振回路と、該ＣＰＵのソフトウェアからも情報を設定可能であると共に該ソフトウェアより設定されている情報を参照可能な制御レジスタ部と、該第２の発振回路の発振安定時間の経過を示す安定フラグを出力して該制御レジスタ部に設定する信号生成回路と、該制御レジスタ部に設定されている選択ビットに基づいて該第１及び第２の発振回路の出力の一方を選択出力するスイッチ回路とを備え、
該半導体装置の電源投入後、リセット後又はスタンバイ状態から動作状態への復帰後に、該第１及び第２の発振回路が同時に起動されて該スイッチ回路により該第１の発振回路の出力が選択出力された後に該第２の発振回路の出力に切り替えられる第１のモードを有することを特徴とする半導体装置。
（付記９）
該クロック生成回路は、該制御レジスタ部に設定されている抑止信号に基づいて該第２の発振回路の起動を抑止する抑止回路を更に備え、
該半導体装置は、該第１の発振回路が起動されて該抑止回路により該第２の発振回路が起動されず該スイッチ回路により該第１の発振回路の出力のみが選択出力される第２のモードを有することを特徴とする付記８記載の半導体装置。
（付記１０）
該制御レジスタ部は、該ソフトウェアに対する割り込み信号を発生するための割り込みフラグが該信号生成回路から設定されると共に、該割り込みフラグが設定された場合に該ソフトウェアへの割り込みを許可するためのビットが該ソフトウェアから設定され、該第２の発振回路の発信安定時間の経過後に割り込み信号を発生することを特徴とする付記９記載の半導体装置。
（付記１１）
該スイッチ回路の出力は、クロックとして該ＣＰＵに供給されることを特徴とする付記８乃至１０のいずれか１項記載の半導体装置。
（付記１２）
該制御レジスタ部は、該クロック生成回路の一部を構成することを特徴とする付記１１記載の半導体装置。
【００９２】
以上、本発明を実施例により説明したが、本発明は上記実施例に限定されるものではなく、本発明の範囲内で種々の変形及び改良が可能であることは言うまでもない。
【図面の簡単な説明】
【００９３】
【図１】従来のＣＲ発振回路とセラミック発振回路を組み合わせた発振回路の例である。
【図２】図１の回路の動作波形例である。
【図３】本発明の一実施例を示すブロック図である。
【図４】発振回路の構成を制御レジスタ部と共に示す回路図である。
【図５】発振回路の動作を説明するタイミングチャートである。
【図６】発振回路の動作を説明するフローチャートである。
【図７】発振回路の動作を説明するフローチャートである。
【図８】発振回路の動作を説明するタイミングチャートである。
【図９】ＣＲ発振回路の構成の一例を示す回路図である。
【図１０】ＣＲ発振回路の動作を説明するタイミングチャートである。
【図１１】スイッチ回路の構成の一例を示す回路図である。
【図１２】スイッチ回路の動作を説明するタイミングチャートである。
【図１３】発振回路の処理を説明するフローチャートである。
【符号の説明】
【００９４】
１      ＭＣＵ
１１      クロック生成回路
１２      ＣＰＵ
１３      レジスタ部
１１０      発振回路
ＣＲＯ１      ＣＲ発振回路
ＯＳＣ１      セラミック発振回路
【図１】
2008234046.tif 000003
【図２】
2008234046.tif 000004
【図３】
2008234046.tif 000005
【図４】
2008234046.tif 000006
【図５】
2008234046.tif 000007
【図６】
2008234046.tif 000008
【図７】
2008234046.tif 000009
【図８】
2008234046.tif 000010
【図９】
2008234046.tif 000011
【図１０】
2008234046.tif 000012
【図１１】
2008234046.tif 000013
【図１２】
2008234046.tif 000014
【図１３】
2008234046.tif 000015