JP5045167B2 - 発振回路及び半導体装置 - Google Patents

発振回路及び半導体装置 Download PDF

Info

Publication number
JP5045167B2
JP5045167B2 JP2007069345A JP2007069345A JP5045167B2 JP 5045167 B2 JP5045167 B2 JP 5045167B2 JP 2007069345 A JP2007069345 A JP 2007069345A JP 2007069345 A JP2007069345 A JP 2007069345A JP 5045167 B2 JP5045167 B2 JP 5045167B2
Authority
JP
Japan
Prior art keywords
circuit
output
oscillation
oscillation circuit
level
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Expired - Fee Related
Application number
JP2007069345A
Other languages
English (en)
Other versions
JP2008234046A (ja
Inventor
大 橘
学 村澤
英樹 中村
勇治 石井
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Fujitsu Semiconductor Ltd
Original Assignee
Fujitsu Semiconductor Ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Fujitsu Semiconductor Ltd filed Critical Fujitsu Semiconductor Ltd
Priority to JP2007069345A priority Critical patent/JP5045167B2/ja
Publication of JP2008234046A publication Critical patent/JP2008234046A/ja
Application granted granted Critical
Publication of JP5045167B2 publication Critical patent/JP5045167B2/ja
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Landscapes

  • Oscillators With Electromechanical Resonators (AREA)
  • Inductance-Capacitance Distribution Constants And Capacitance-Resistance Oscillators (AREA)
  • Power Sources (AREA)
  • Electronic Switches (AREA)

Description

本発明は、発振回路及び半導体装置に係り、特にクロックを生成するクロック生成回路に適した発振回路及びそのような発振回路を有する半導体装置に関する。
従来より、マイクロコントローラ(MCU)等の半導体装置(又は、半導体チップ)には、クロック生成回路を内蔵する構成のものがある。クロック生成回路は、CR発振回路或いはリングオシレータ等を有し、MCUのクロックをMCU内のCPUに供給する。水晶振動子或いはセラミック振動子を使用する発振回路は、発振回路の出力周波数が安定するまでの起動時間(又は、発振安定時間)が長いので、発振周波数精度が多少低下しても、このようにより起動時間(又は、発振安定時間)の短いCR発振回路やリングオシレータ等をクロック源として使用することが望ましい場合がある。発振回路の停止と起動を頻繁に繰り返すような応用では、発振回路の起動時の待ち時間(即ち、発振安定時間)の間の消費電力を削減することが、MCUの総合的な性能向上の観点から望ましい場合がある。
一般に、セラミック発振子や水晶発振子等の発振の鋭さを示すQ値が高い周波数制御素子を用いる発振回路では、非常に精度の高い発振が可能で、公称周波数に対する周波数偏差が小さい。しかしながら、例えば電源が印加されてから発振周波数及び発振回路の信号振幅が十分に安定するまでに要する時間(以下、発振安定時間と言う)が数十マイクロ秒から数百マイクロ秒と長い。一方、Q値が低い素子(Q値の低い周波数制御素子、抵抗、容量)を用いたCR発振回路等では、セラミック発振回路や水晶発振回路とは逆に、発振周波数精度は高くないが、発振回路の起動時の待ち時間(発振安定時間)は短い。
このような発振周波数精度及び発振安定時間が異なる発振回路を組み合わせて使用することで、総合的なシステムの性能向上を実現する各種提案が、例えば特許文献1乃至5でなされている。
図1は従来の発振回路の一例を示す回路図であり、図2は図1の発振回路の動作を説明するタイミングチャートである。図1に示す発振回路は、例えば特許文献1の図3に記載されている。
発振回路は、図1に示す如く接続されたCR発振回路CRO101、水晶又はセラミック発振回路OSC101、スイッチ回路SW102,SW103、カウンタ回路CUNT101、Dフリップフロップ回路DFF101、バッファ回路BUF101及びアンド回路AND101を有する。発振回路OSC101は、図1に示す如く接続されたスイッチ回路SW101、容量C101,C102、抵抗R101、水晶振動子又はセラミック振動子XTAL101及びインバータ回路INV101を有する。以下の説明では、便宜上、発振回路OSC101はセラミック振動子XTAL101を有するセラミック発振回路であるものとする。図1において、Vddは正の電源電圧(例えば+3V)、GNDはグランド電位(0V)、COUTはカウンタ回路CUNT101の出力、DFOはフリップフロップ回路DFF101の正の出力を、DFOXはフリップフロップ回路DFF101の負の出力、CLCNTはアンド回路AND101の出力、VDDCRはCR発振回路CRO101の電源端子への入力、NX100,NX101はセラミック発振回路OSC101の外部接続端子、OSCO1はセラミック発振回路OSC101の発振出力、OSCO2はCR発振回路CRO101の発振出力、OSCENはセラミック発振回路OSC101のイネーブル端子への入力信号、CKOは出力クロックを示す。
発振回路OSC101の起動時の待ち時間(発振安定時間)は長いが、発振周波数精度は高い。一方、CR発振回路CRO101の発振周波数精度は低いが、起動時の待ち時間(発振安定時間)は短い。図1の発振回路では、これらの特性の異なる2つの発振回路OSC101,CRO101を使用して、MCUの総合的な性能向上を図っている。
CR発振回路CRO101の起動時の待ち時間は短いので、MCUの電源投入後又はリセット後にセラミック発振回路OSC101の出力OSCO1より先にCR発振発振回路CRO101の出力OSCO2が安定する。出力OSCO1だけを使用する場合には、出力OSCO1が安定するまでは例えばMCUの処理を開始できないが、出力OSCO2をクロックとして使用することで、出力OSCO1が安定するまでの期間中も例えばMCUの処理を進めることができる。出力OSCO1が安定した後は、クロックを出力OSCO2から出力OSCO1に切り替えることで周波数精度の高い出力OSCO1をクロック源として使用することができる。
図2は、このような切り替え動作の詳細を示す。MCUの電源投入直後又はリセット時には、信号OSCENはロー(L)レベルとなっている。信号OSCENがLレベルなので、アンド回路AND101の出力CLCNTもLレベルである。出力CLCNTがLレベルなので、カウンタ回路CUNT101はクリアされ、出力COUTはLレベルである。又、カウンタ回路CUNT101は初期化される。同様に、信号OSCENがLレベルなので、Dフリップフロップ回路DFF101もクリアされ、出力DFOはLレベルである。出力DFOXは出力DFOの反転信号なので、ハイ(H)レベルである。
電源投入後又はリセット後、信号OSCENをLレベルからHレベルに変化させることで、発振回路OSC101,CRO101の動作が開始される。信号OSCENをHレベルにすると、スイッチ回路SW101がオン(ON)となってインバータ回路INV101に電源電圧Vddが供給され、セラミック発振回路OSC101が動作を始める。又、出力DFOXがHレベルになっているので、信号OSCENがHレベルであると、アンド回路AND101の出力CLCNTもHレベルになる。出力CLCNTがHレベルになると、スイッチ回路SW102がオンとなり、入力VDDCRがHレベルになってCR発振回路CRO101に電源電圧Vddが供給され、CR発振回路CRO101も動作を開始する。
スイッチ回路SW102がオンとなった後、出力OSCO2は安定する。出力OSCO2の信号振幅及び発振周波数が安定した後、出力OSCO1の信号振幅及び発振周波数が安定する。出力OSCO2が安定した後、スイッチ回路SW103により出力OSCO2が出力クロックCKOとして出力される。この出力クロックCKOを基準クロックとして、例えばMCUの動作を開始させることができる。
図2に示す例では、出力OSCO2の発振周波数が出力OSCO1の発振周波数より低い。セラミック発振回路OSC101の発振周波数精度が高いので、MCUが動作する規定の周波数に発振周波数を設定すれば良いが、CR発振回路CRO101の発振周波数精度が低いので、発振周波数が最大となった場合でもMCUが動作できるような設計としななければならない。このため、CR発振回路CRO101の発振周波数の中心値は、ある程度小さく設計しなければならない。このような事情を考慮して、出力OSCO2の発振周波数は出力OSCO1の発振周波数より低いものとして示されている。
出力OSCO1が発振を開始してある程度時間が経過すると、セラミック発振回路OSC101の信号振幅及び発振周波数が安定する。この時間の経過を知るために、カウンタ回路CUNT101で出力OSCO1をカウントする。ある規定の回数出力OSCO1がHレベルとLレベルの変化を繰り返すことで、カウンタ回路CUNT101の出力COUTがLレベルからHレベルに変化する。出力COUTがLレベルからHレベルに変化することで、フリップフロップ回路DFF101の出力DFOもLレベルからHレベルに変化する。出力DFOがLレベルからHレベルに変化することで、スイッチ回路SW103が切り替えられて、出力OSCO1が出力クロックCKOとして出力される。
出力DFOがLレベルからHレベルに変化することで、フリップフロップ回路DFF101の出力DFOXはHレベルからLレベルに変化する。出力DFOXがLレベルになることで、アンド回路AND101の出力CLCNTもLレベルになる。カウンタ回路CUNT101のクリア端子CLがLレベルになるので、カウンタ回路CUNT101は動作を停止してクリアされ、出力COUTはLレベルになる。アンド回路AND101の出力CLCNTがLレベルになることで、スイッチ回路SW102がオフ(OFF)となりCR発振回路CRO101には電源電圧Vddが供給されなくなり、CR発振回路CRO101は動作を停止する。図2において入力VDDCRがHレベルからLレベルに変化しているのは、アンド回路AND101の出力CLCNTにより電源供給が停止されることを表している。
以上説明したような構成と動作により、電源投入直後はCR発振回路CRO101の出力OSCO2を出力クロックCKOとして使用し、セラミック発振回路OSC101の出力が安定した後はセラミック発振回路OSC101の出力OSCO1を出力クロックCKOとして使用すると共にCR発振回路CRO101の動作を停止している。このように、セラミック発振回路OSC101の出力OSCO1が安定するまではCR発振回路CRO101の出力OSCO2を出力クロックCKOとして使用することでMCUの処理を進めることができ、且つ、セラミック発振回路OSC101の出力OSCO1が安定した後は発振周波数精度の高いセラミック発振回路OSC101の出力OSCO1を出力クロックCKOとして使用できる。
特開2002−314336号公報 特開2001−251140号公報 特開平10−161768号公報 特開平4−171513号公報 特開昭53−60149号公報
図1に示す発振回路では、カウンタ回路CUNT101により、セラミック発振回路OSC101の出力OSCO1をカウントして一定時間経過した後、出力クロックCKOをCR発振回路CRO101の出力OSCO2からセラミック発振回路OSC101の出力OSCO1に切り替える。MCUの電源投入後、実行すべきプログラムが大きい場合には、図1のような回路構成としても問題がないが、一般の制御用途のMCUに適用した場合、以下のような問題が発生することに本発明者らは気づいた。
例えば、スタンバイ状態(発振回路は停止しているものとする)から、割り込みによりプログラム実行が再開され(割り込みプログラムが実行され)るような場合、割り込みプログラムの規模が大きい場合には、セラミック発振回路OSC101を起動し、周波数精度の高いクロックで最高動作周波数で処理を進めた方が効率が良い。しかしながら、割り込みプログラムの規模が小さく、処理の量が小さい場合には、セラミック発振回路OSC101の出力OSCO1が安定する前に必要な処理が終了することも有り得る。このような場合には、セラミック発振回路OSC101を起動せず、CR発振回路CRO101によりクロックを供給して処理を終了させ、再びスタンバイ状態として次の割り込みを待っている状態とした方が電力効率が高い。
つまり、セラミック発振回路CRO101の出力OSCO2を使用した方が良いか否かは、一般のMCUの場合はプログラムに依存し、各種の状況で適切なクロック制御を行うには、図1の回路のようにハードウエアで一律に制御したのでは、無駄が生じることになる。
一例として、MCUがスタンバイ状態から小規模な割り込みプログラムを実行し、再びスタンバイ状態になるような場合について、図1の発振回路の動作を説明する。ここでは、CR発振回路CRO101の出力OSCO2が安定した時点で、割り込みプログラム実行が始まるものとする。CR発振回路CRO101を起動すると同時に、図1の発振回路では、セラミック発振回路OSC101も起動される。セラミック発振回路OSC101の出力OSCO1が安定する前に、割り込みプログラムの処理が終了し、MCUは再びスタンバイ状態となる。このような状況では、図1の発振回路では、使用しないセラミック発振回路OSC101を毎回起動し、セラミック発振回路OSC101の消費電力相当分を浪費することになる。
つまり、図1の発振回路では、ハードウエアの制御に基づいて、CR発振回路CRO101とセラミック発振回路OSC101を同時に起動し、クロックCKOをCR発振回路CRO101の出力OSCO2からセラミック発振回路OSC101の出力OSCO1に切り替える構成となっているので、プログラムの状況に応じて消費電力を削減する最適な制御ができないという問題があった。
そこで、本発明は、電源投入後、リセット後、スタンバイ状態からの復帰後のMCUの処理の高速化と低消費電力化を両立できる発振回路及び半導体装置を提供することを目的とする。
上記の課題は、第1の発振回路と、該第1の発振回路より長い発振安定時間を有する第2の発振回路と、該第2の発振回路の発振安定時間の経過を示す安定信号を出力する信号生成回路と、選択信号に基づいて該第1及び第2の発振回路の出力の一方を選択出力するスイッチ回路と、抑止信号に基づいて該第2の発振回路の起動を抑止する抑止回路とを備え、該第1及び第2の発振回路が同時に起動されて該スイッチ回路により該第1の発振回路の出力が選択出力された後に該第2の発振回路の出力に切り替えられるモードと、該第1の発振回路が起動されて該抑止回路により該第2の発振回路が起動されず該スイッチ回路により該第1の発振回路の出力のみが選択出力されるモードを有することを特徴とする発振回路により達成できる。
上記の課題は、第1の発振回路と、該第1の発振回路より長い発振安定時間を有する第2の発振回路と、外部からも情報を設定可能であると共に、外部より設定されている情報を参照可能な制御レジスタ部と、該第2の発振回路の発振安定時間の経過を示す安定フラグを出力して該制御レジスタ部に設定する信号生成回路と、該制御レジスタ部に設定されている選択ビットに基づいて該第1及び第2の発振回路の出力の一方を選択出力するスイッチ回路とを備え、該第1及び第2の発振回路が同時に起動されて該スイッチ回路により該第1の発振回路の出力が選択出力された後に該第2の発振回路の出力に切り替えられる第1のモードを有することを特徴とする発振回路により達成できる。
上記の課題は、クロック生成回路と、制御レジスタ部と、CPUを備えた半導体装置であって、該クロック生成回路は第1の発振回路と、該第1の発振回路より長い発振安定時間を有する第2の発振回路と、該CPUのソフトウェアからも情報を設定可能であると共に該ソフトウェアより設定されている情報を参照可能な制御レジスタ部と、該第2の発振回路の発振安定時間の経過を示す安定フラグを出力して該制御レジスタ部に設定する信号生成回路と、該制御レジスタ部に設定されている選択ビットに基づいて該第1及び第2の発振回路の出力の一方を選択出力するスイッチ回路とを備え、該半導体装置の電源投入後、リセット後又はスタンバイ状態から動作状態への復帰後に、該第1及び第2の発振回路が同時に起動されて該スイッチ回路により該第1の発振回路の出力が選択出力された後に該第2の発振回路の出力に切り替えられる第1のモードを有することを特徴とする半導体装置により達成できる。
本発明によれば、電源投入後、リセット後、スタンバイ状態からの復帰後のMCUの処理の高速化と低消費電力化を両立できる発振回路及び半導体装置を実現可能である。
本発明では、発振回路内に第1及び第2の発振回路がソフトウェアにより選択可能に設けられている。第1の発振回路は、Q値が低い素子(Q値の低い周波数制御素子、抵抗、容量)を用い、発振周波数精度は高くないが、起動時の待ち時間(発振安定時間)は比較的短い。第2の発振回路は、Q値が高い周波数制御素子を用い、非常に精度の高い発振が可能であると共に、公称周波数に対する周波数偏差が小さいが、例えば電源が印加されてから発振周波数及び信号振幅が十分に安定するまでに要する時間(発振安定時間)は例えば数十マイクロ秒から数百マイクロ秒と比較的長い。
本発明では、第1の発振回路の出力と第2の発振回路の出力を切り替えて使用するモードと、第1の発振回路の出力だけを使用して第2の発振回路を起動しないモードを選択可能である。つまり、プログラムを設計する設計者が、最適なクロック源をソフトウエアから指定することが可能であり、第1の発振回路しか使用しない場合には第2の発振回路を起動しないので、消費電力を削減することができる。
以下に、本発明の発振回路及び半導体装置の各実施例を、図3以降と共に説明する。
図3は、本発明の一実施例を示すブロック図である。図3に示すMCU1は、クロック生成回路11、CPU12及び制御レジスタ部13を有する。半導体装置を構成するMCU1は、所謂ワンチップマイコンである。クロック生成回路11は、後述する発振回路110を有し、CPU12にクロックを供給する。CPU12に供給されるクロックは、発振回路110から出力されるクロックであっても、発振回路110から出力されるクロックを基準としてクロック生成回路11内で生成されたクロックであっても良い。制御レジスタ部13は、メモリ等の各種記憶手段で構成可能であり、発振回路110の情報が発振回路110から設定可能であると共に、CPU12のソフトウェアにより参照可能であり、且つ、ソフトウェアにより情報を設定可能である。
尚、制御レジスタ部13は、クロック生成回路11内の発振回路110の一部を構成するものであっても良い。
発振回路110には、図4と共に後述するように、第1及び第2の発振回路が制御レジスタ部13を介してソフトウェアにより選択可能に設けられている。第1の発振回路は、Q値が低い素子(Q値の低い周波数制御素子、抵抗、容量)を用い、発振周波数精度は高くないが、起動時の待ち時間(発振安定時間)は比較的短い。第2の発振回路は、Q値が高い周波数制御素子を用い、非常に精度の高い発振が可能であると共に、公称周波数に対する周波数偏差が小さいが、例えば電源が印加されてから発振周波数及び信号振幅が十分に安定するまでに要する時間(発振安定時間)は例えば数十マイクロ秒から数百マイクロ秒と比較的長い。
図4は発振回路110の構成を制御レジスタ部13と共に示す回路図である。発振回路110は、図4に示す如く接続されたCR発振回路CRO1、水晶又はセラミック発振回路OSC1、スイッチ回路SW2,SW3、カウンタ回路CUNT1、Dフリップフロップ回路DFF1、バッファ回路BUF1及びアンド回路AND1,AND2,AND3を有する。アンド回路AND3は、一方の入力を反転してから他方の入力との論理積を演算する構成を有する。発振回路OSC1は、図4に示す如く接続されたスイッチ回路SW1、容量C1,C2、抵抗R1、水晶振動子又はセラミック振動子XTAL1及びインバータ回路INV1を有する。以下の説明では、便宜上、発振回路OSC1はセラミック振動子XTAL1を有するセラミック発振回路であるものとする。CR発振回路CRO1は上記第1の発振回路を構成し、セラミック発振回路OSC1は上記第2の発振回路を構成する。 アンド回路AND1、カウンタ回路CUNT1及びDフリップフロップ回路DFF1は、第2の発振回路の発振安定時間の経過を示す安定信号を出力する(即ち、OSC1安定負ラフOSFを制御レジスタ部13に設定する)信号生成回路を構成する。スイッチ回路SW3は、選択信号(即ち、制御レジスタ部13からのOS1選択ビットSOS1)に基づいて第1及び第2の発振回路の出力の一方を選択出力するスイッチ回路を構成する。又、アンド回路AND2、スイッチ回路SW1及びインバータ回路INV1は、抑止信号(即ち、制御レジスタ部13からのOSC1起動抑止ビットIHOS1)に基づいて第2の発振回路の起動を抑止する抑止回路を構成する。
図4において、Vddは正の電源電圧(例えば+3V)、GNDはグランド電位(0V)、COUTはカウンタ回路CUNT1の出力、DFOはフリップフロップ回路DFF1の正の出力を、DFOXはフリップフロップ回路DFF1の負の出力、CLCNTはアンド回路AND1の出力、VDDCRはCR発振回路CRO1の電源端子への入力、NX0,NX1はセラミック発振回路OSC1の外部接続端子、OSCO1はセラミック発振回路OSC1の発振出力、OSCO2はCR発振回路CRO1の発振出力、OSCENはセラミック発振回路OSC1に対するイネーブル信号、CKOは出力クロックを示す。更に、CSW1はスイッチ回路SW1の制御信号、CSW2はスイッチ回路SW2の制御信号、OSCCRはソフトウエアから発振回路110を切り替え制御するための制御レジスタ、OSIFは割り込み信号を発生するための割り込みフラグ、OSFはセラミック発振回路OSC1の出力が安定したことを示すフラグ、OSFIEは割り込みフラグOSIFがセットされた場合に割り込みを許可するためのビット、SOS1はソフトウエアで明示的に発振回路110をCR発振回路CRO1からセラミック発振回路OSC1に切り替えるビット、IHOS1はセラミック発振回路OSC1の起動を抑止するためのビット、IRQOSCはセラミック発振回路OSC1の出力が安定した場合に発生される割り込み信号を示す。
発振回路OSC1の起動時の待ち時間(発振安定時間)は長いが、発振周波数精度は高い。一方、CR発振回路CRO1の発振周波数精度は低いが、起動時の待ち時間(発振安定時間)は短い。図4の発振回路110では、これらの特性の異なる2つの発振回路OSC1,CRO1を使用して、MCU1の総合的な性能向上を図っている。
制御レジスタ部13には、後述するように、OSC1選択ビットSOS1、OSC1安定割り込み許可ビットOSFIE、OSC1安定フラグOSF、OSC1割り込みフラグ、OSC1起動抑止ビット等が設定される。
図1に示す従来の発振回路では、スイッチ回路SW103、カウンタ回路CUNT101及びDフリップフロップ回路DFF101を用いて、セラミック発振回路OSC101の出力OSCO1が安定した後、ハードウエアで自動的にクロックCKOをCR発振回路CRO1の出力OSCO2からセラミック発振回路OSC101の出力OSCO1に切り替えている。
これに対し、図4に示す本実施例の発振回路110では、割り込み信号と割り込みプログラムにより、MCU1に供給するクロックを、CR発振回路CRO1の出力OSCO2からセラミック発振回路OSC1の出力OSCO1に切り替える。
次に、発振回路110の動作を完全に停止したMCU1のスタンバイ状態から動作状態に復帰させ、MCU1でプログラム処理を進めることを想定して、処理の流れの概略を図5乃至図8と共に説明する。尚、MCU1の電源投入後又はリセット後の発振回路110の処理の流れも、スタンバイ状態から動作状態に復帰後の処理の流れと同様であるため、その説明は省略する。図5及び図8は発振回路110の動作を説明するタイミングチャートであり、Hはハイレベル、Lはローレベルを示す。又、図6及び図7は発振回路110の動作を説明するフローチャートである。具体的には、図6(a)及び図7はメインプログラムの処理を示し、図6(b)は割り込みプログラムの処理を示す。
ここでは説明の便宜上、MCU1はスタンバイ状態にあり、例えば割り込み信号で動作状態への復帰が始まるものとする。MCU1の動作状態への復帰が始まると、CR発振CRO1と、セラミック発振回路OSC1の起動が始まる。CR発振回路CRO1の出力OSCO2は短時間で安定するので、この出力OSCO2が発振回路110の出力クロックCKOとして出力される。この例では、出力クロックCKOがそのままMCU1のクロックとしてCPU12に供給され、図6(a)に示すようにステップS1で発振周波数精度の必要ないMCU1の処理を実行し始める。発振周波数精度の必要ないMCU1の処理の例としては、例えばMCU1内のレジスタやメモリの値の初期化等が挙げられる。尚、発振周波数精度が必要なMCU1の処理としては、例えば通信、タイマによる時間の測定、一定時間間隔でのパルスの発生等の処理が挙げられる。
CR発振回路CRO1の出力OSCO2を利用して、発振周波数精度が必要ないMCU1の処理の実行を進めておくことで、セラミック発振回路OSC1の出力OSCO1の安定を待たずにプログラムの実行を進めることができ、MCU1の処理を高速化することができる。
図6(a)に示すように、ステップS4で発振周波数精度が必要なMCU1の処理を実行する前に、セラミック発振回路CRO1の出力OSCO1が安定したことを確認するステップS2と、MCU1内のCPU12に供給されるクロックがセラミック発振回路OSC1の出力OSCO1となっていることを確認するステップS3を行う。セラミック発振回路OSC1の出力OSCO1が安定していない場合には、ステップS2の判定結果はNOであるため、出力OSCO1が安定するまでステップS2が繰り返される。出力OSCO1が安定してステップS2の判定結果がYESになり、且つ、MCU1のクロックCKOがCR発振回路CRO1の出力OSCO2からセラミック発振回路OSC1の出力OSCO1に切り替わったことが確認されてステップS3の判定結果がYESになると、ステップS4で発振周波数精度が必要なMCU1の処理を実行する。このようにプログラムを構成しておくことで、発振周波数精度が必要な処理を、CR発振回路CRO1の出力OSCO2をクロックCKOとして用いて実行することを防ぐことができる。
図6(b)は、MCU1のクロックCKOをCR発振回路CRO1の出力OSCO2からセラミック発振回路OSC1の出力OSCO1に切り替えるための割り込みプログラムの処理の概略を示す。出力OSCO1が安定することで、図4に示した割り込み信号IRQOSCが発生されるものとする。図6(b)の処理は、割り込み信号IRQOSCにより実行される割り込みプログラムとして記述されるものとする。割り込み信号IRQOSCが発生されると、この時点で、出力OSCO1が安定していることになるので、ステップS11でCPU12に供給するクロックCKOを出力OSCO2から出力OSCO1に切り替える。又、MCU1のクロックCKOを出力OSCO2から出力OSCO1に切り替えた後、ステップS12でプログラムの制御を元のプログラムの割り込みが発生した時点に戻す。
例えば、出力OSCO1が安定して割り込み信号IRQOSCが発生される時点が、発振周波数精度が必要ない処理を進めている最中だと仮定する。この場合、発振周波数精度が必要ない処理の最中に、OSC1安定割り込み(IRQOSC)が発生し、MCU1のクロックCKOはCR発振回路CRO1の出力OSCO2からセラミック発振回路OSC1の出力OSCO1に切り替えられる。発振周波数精度が必要ない処理を進めている最中であるため、クロックCKOが発振周波数精度が高いクロックに切り替わっても問題は生じない。図6(a)のステップS1は、セラミック発振回路OSC1の出力OSCO1をクロック源として発振周波数精度が必要ない処理を終わらせ、ステップS2は、出力OSCO1の安定の判定を行う。この場合、既に出力OSCO1は安定しており、又、MCU1のクロックCKOは出力OSCO1となっているので、ステップS2及びS3の判定結果はいずれもYESであり、ステップS4で発振周波数精度が必要な処理が実行される。
又、出力OSCO1が安定して割り込み信号IRQOSCが発生される時点が、発振周波数精度が必要ない処理が終わり、出力OSCO1の安定を待っている時点だと仮定する。この場合も上記の場合と同様に、出力OSCO1が安定した時点で、割り込み信号IRQOSCが発生し、割り込みプログラムによりMCU1のクロックCKOが出力OSCO2から出力OSCO1に切り替えられる。ステップS1は発振周波数精度が必要ない処理を終わらせ、その後、ステップS2及びステップS3の判定を経て、ステップS4で発振周波数精度が必要な処理が実行される。
このように、図4に示す構成を有する発振回路110によれば、割り込み信号と割り込みプログラムを用いても、図1に示す従来の発振回路の場合と同様に、CR発振回路CRO1の出力OSCO2を用いて、セラミック発振回路OSC1の出力OSCO1が安定する前にMCU1の処理を開始することできる。
又、図4に示す構成を有する発振回路110によれば、図1に示す従来の発振回路とは異なり、セラミック発振回路CRO1を使用しないようにMCU1をプログラムすることも可能である。例えば、割り込み信号に応答してMCU1がスタンバイ状態から復帰し、あるセンサの値を確認して直ちに再度スタンバイ状態に戻るような場合を想定すると、セラミック発振回路OSC1をわざわざ起動せずとも、CR発振回路CRO1を起動してごく短時間の処理さえ行えれば問題がない場合がある。このような場合には、CR発振回路CRO1だけを起動した方が発振回路110の消費電力は少なくて済み、MCU1全体としての消費電力を低減可能である。
図7は、このような場合のメインプログラムの処理を示す。予め、MCU1がスタンバイ状態から動作状態へ復帰し、処理を行う時間がごく短いことが予想される場合には、図7のような処理とすることが可能であり、このような処理とすることが望ましい。割り込み信号に応答してMCU1がスタンバイ状態から動作状態に復帰するに際して、CR発振回路CRO1の起動を開始するが、このときステップS21ではセラミック発振回路OSC1は起動しない。CR発振回路CRO1の出力OSCO2が安定した時点でCPU12に出力OSCO2をクロックCKOとして供給し、ステップS22で発振精度の必要ない処理を実行する。ステップS22の処理が終了した時点で、ステップS23ではCR発振回路CRO1の動作を停止して、再びMCU1をスタンバイ状態とする。
図1に示す従来の発振回路では、このような状況でも、セラミック発振回路が起動されるのに対して、図4に示す構成を有する発振回路110によれば、セラミック発振回路OSC1の起動を抑止するのでMCU1の低消費電力化が可能である。
次に、図4、図5及び図8を参照して、より具体的な回路接続も含めて説明する。
図1に示す従来の発振回路の場合と同様に、MCU1の電源投入直後、又は、リセット直後、又は、スタンバイ状態では、イネーブル信号OSCENはLレベルであるものとする。イネーブル信号OSCENがLレベルなので、アンド回路AND1の出力CLCNTもLレベルである。出力CLCNTがLレベルなので、カウンタ回路CUNT1はクリアされ、その出力COUTはLレベルになる。又、カウンタ回路CUNT1は初期化される。同様に、イネーブル信号OSCENがLレベルなので、Dフリップフロップ回路DFF1もクリアされ、その出力DFOはLレベルになる。出力DFOXは出力DFOの反転信号なので、Hレベルになる。OSC1起動抑止ビットIHOS1は図5に示すようにHレベルであるものとする。OSC1起動抑止ビットIHOS1がHレベルのときセラミック発振回路OSC1も起動されるものとする。
電源投入後又はリセット後、イネーブル信号OSCENをLレベルからHレベルに変化させることで、発振回路OSC1,CRO1の動作が開始される。イネーブル信号OSCENをHレベルにすると、OSC1起動抑止ビットIHOS1がHレベルなので、アンド回路AND2の出力CSW1もHレベルになる。出力CSW1がHレベルになると、スイッチ回路SW1がオンとなってインバータ回路INV1に電源電圧Vddが供給され、発振回路OSC1が動作を始める。又、出力DFOXがHレベルなので、イネーブル信号OSCENがHレベルになると、アンド回路AND1の出力CLCNTもHレベルになる。出力CLCNTがHレベルになるので、セラミック発振回路OSC1が動作を始めると、カウンタ回路CUNT1がセラミック発振回路OSC1の出力OSCO1の変化をカウントする。OSC1選択ビットSOS1は、図5に示すように、MCU1のスタンバイ状態からの復帰直後はLレベルであるものとする。OSC1選択ビットSOS1がLレベルであるため、イネーブル信号OSCENがHレベルになるとアンド回路AND3の出力CSW2がHレベルになる。アンド回路AND3の出力CSW2がHレベルになると、スイッチ回路SW2はオンとなる。スイッチ回路SW2がオンとなると、入力VDDCRがHレベルになってCR発振回路CRO1に電源電圧Vddが供給され、CR発振回路CRO1も動作を開始する。
スイッチ回路SW2がオンとなった後、ごく短い時間で、CR発振回路CRO1の出力OSCO2は出力が安定する。出力OSCO2の信号振幅及び発振周波数が安定した後、セラミック発振回路OSC1の出力OSCO1の信号振幅及び発振周波数が安定する。CR発振回路CRO1の出力OSCO2が安定した後、スイッチ回路SW3により、出力OSCO2を出力クロックCKOとして出力する。この出力クロックCKOを基準クロックとして、MCU1の動作を開始することができる。
セラミック発振回路OSC1が発振を開始してからある程度時間が経過すると、出力OSCO1の信号振幅及び発振周波数が安定する。この時間の経過を知るために、カウンタ回路CUNT1で出力OSCO1をカウントする。ある規定の回数だけ出力OSC1がHレベルとLレベルの変化を繰り返すことで、カウンタ回路CUNT1の出力COUTがLレベルからHレベルに変化する。
カウンタ回路CUNT1の出力COUTがLレベルからHレベルに変化することで、Dフリップフロップ回路DFF1の出力DFOもLレベルからHレベルに変化する。出力DFOがLレベルからHレベルに変化することで、割り込み信号のためのOSC1割り込みフラグOSIF及びセラミック発振回路OSC1の出力OSCO1が安定したことを示すOSC1安定フラグOSFがHレベルになる。このとき、予めOSC1安定割り込み許可ビットOSFIEをHレベルにしておくことで、OSC1安定割り込み信号IRQOSCが発生されるものとする。
Dフリップフロップ回路DFF1の出力DFOがLレベルからHレベルに変化することで、出力DFOXはHレベルからLレベルに変化する。出力DFOXがLレベルになることで、アンド回路AND1の出力CLCNTもLレベルになる。カウンタ回路CUNT1のクリア端子CLがLレベルになるので、カウンタ回路CUNT1は動作を停止し、クリアされる。この結果、カウンタ回路CUNT1の出力COUTはLレベルになる。
図5に示すように、OSC1安定割り込み信号IRQOSCがHレベルになることで、プログラムの制御は割り込みプログラムに移る。この割り込みプログラム中で、先ず例えばOSC1割り込みフラグOSIFをクリアする(Lレベルに書き換える)。これにより、MCU1がクロック切り替えの割り込みプログラムから元のプログラムに復帰したときに再度、クロック切り替え割り込みプログラムに制御が移ることを防げる。又、図5に示すように、OSC1安定割り込み信号IRQOSCは、例えばLレベルに戻る。一方、図5では図示を省略するが、セラミック発振回路OSC1の出力OSCO1が安定したことを示すOSC1安定フラグOSFはHレベルに保たれる。これにより、MCU1が割り込みプログラムから復帰した後も、OSC1安定フラグOSFを参照することで、セラミック発振回路OSC1の出力OSCO1が安定したか否かを判定することができる。
つまり、割り込み発生のためのOSC1割り込みフラグOSIFと、セラミック発振回路OSC1の出力OSCO1が安定したことを示すOSC1安定フラグOSFを夫々設けることで、MCU1のメインプログラムから割り込みプログラムへの制御の移動と、割り込みプログラムからメインプログラムに制御が復帰した後もセラミック発振回路OSC1の出力OSCO1が安定したか否かを判定する機能の両立が可能となる。
OSC1割り込みフラグOSIFをクリアした後、クロック切り替えのための割り込みプログラムでは、クロック切り替えのためのOSC1選択ビットSOS1をHレベルに書き換える。OSC1選択ビットSOS1がHレベルになることで、スイッチ回路SW3が切り替えられて、セラミック発振回路OSC1の出力OSCO1が出力クロックCKOとして出力される。図5に示す出力クロックCKOは、このような動作の場合の波形を示す。
又、OSC選択ビットSOS1がHレベルになると、アンド回路AND3の出力CSW2がLレベルになる。出力CSW2がLレベルになると、スイッチ回路SW2がオフとなり、CR発振回路CRO1には電源電圧Vddが供給されなくなり、CR発振回路CRO1は動作を停止する。又、入力VDDCRはLレベルになる。
以上説明したように、電源投入直後はCR発振回路CRO1によりMCU1のクロックを供給し、セラミック発振回路OSC1の出力OSCO1が安定した後は、セラミック発振回路OSC1によりMCU1のクロックを供給すると共にCR発振回路CRO1の動作を停止する。このような発振回路110の構成により、セラミック発振回路OSC1の出力OSCO1が安定する前であってもCR発振回路CRO1の出力OSCO2をMCU1のクロックとして供給することでMCU1の処理を進めることができ、且つ、セラミック発振回路OSC1の出力OSCO1が安定した後は発振周波数精度の高いセラミック発振回路OSC1の出力OSCO1をMCU1のクロックとして利用できる。
図5は、MCU1に供給するクロックをCR発振回路CRO1の出力OSCO2からセラミック発振回路OSC1の出力OSCO1に切り替える場合の発振回路110の各部での波形を示す。これに対し、図8は、CR発振回路CRO1の出力OSCO2のみを使用する場合の発振回路110の各部での波形を示す。
図8の場合、図5の場合と同様に、MCU1のスタンバイ状態ではイネーブル信号OSCENはLレベルである。MCU1のスタンバイ状態から動作状態への復帰によりCR発振回路CRO1が起動されることは、図5の場合と同様である。図5との場合異なる点は、図8ではOSC1起動抑止ビットIHOS1がLレベルになっている点である。セラミック発振回路OSC1の起動を抑止するためのOSC1起動抑止ビットIHOS1を設けてこれを予めLレベルに設定しておけば、セラミック発振回路OSC1を起動しないように制御することができる。或いは、一旦セラミック発振回路OSC1を起動し始めても、CR発振回路CRO1の出力OSCO2が安定し、MCU1が動作を始めた時点で、制御レジスタOSCCR(図4では、そのアドレスを仮に000FFFとして示す)のOSC1起動抑止ビットIHOS1にLレベルを設定することで、セラミック発振回路OSC1の起動を中止することができる。
次に、このようにセラミック発振回路OSC1の出力OSCO1を使用しない場合の発振回路110の動作を、図4及び図8と共に説明する。この場合、イネーブル信号OSCENがHレベルになりCR発振回路CRO1の出力OSCO2が安定した時点でMCU1がプログラムの実行を開始する。MCU1が動作した後、例えばOSC1起動抑止ビットIHOS1をLレベルにすると、アンド回路AND2の出力CSW1がLレベルになり、セラミック発振回路OSC1には電源電圧Vddが供給されなくなる。このため、セラミック発振回路OSC1の動作は停止し、その出力OSCO1は停止したままとなる。OSC1選択ビットSOS1は、セラミック発振回路OSC1を選択しないので、Lレベルにする。従って、CR発振回路CRO1の出力OSCO2がMCU1のクロックCKOとして供給される。図5の場合のようにOSC1選択ビットSOS1をHレベルにしないので、CR発振回路CRO1には電源電圧Vddが供給され続け、その出力OSCO2がMCU1のクロックCKOとして供給されてMCU1の処理が続けられる。
このように、本実施例では、セラミック発振回路OSC1の動作を停止してCR発振回路CRO1の出力OSCO2だけを使用することも可能になる。このため、セラミック発振回路OSC1の出力OSCO1が安定する前に必要なMCU1の処理が終了してしまうような処理の量が小さい場合には、セラミック発振回路OSC1を起動せず、CR発振回路CRO1によりクロックCKOを供給してMCU1の処理を終了させ、再びスタンバイ状態とするようなモードが可能となる。この場合、使用しないセラミック発振回路OSC1を起動しないよう制御できるので、MCU1全体としての消費電力を削減できる。
図9は、図4に示すCR発振回路CRO1の構成の一例を示す回路図である。言うまでもないが、CR発振回路CRO1の構成は、図9に示す構成に限定されるものではない。図9中、図4と同一信号には同一符号を付し、その説明は省略する。CR発振回路CRO1は、図9に示す如く接続されたナンド回路NA21、インバータ回路INV2,INV3,INV4、容量CT1、抵抗RT1、アンド回路AND4,AND5、カウンタCUNT2及びDフリップフロップ回路DFF2を有する。図9において、Vddは正の電源(例えば+3V)、COUT2はカウンタ回路CUNT2の出力、CDFO2はDフリップフロップ回路DFF2の正の出力、DFOX2はDフリップフロップ回路DFF2の負の出力、CREはCR発振回路CRO1のイネーブル制御信号(図4のアンド回路AND3の出力CSW2と略同じ働きをする信号)、NODE1乃至NODE5はノードを示す。
図10は、図9に示すCR発振回路CRO1の動作を説明するタイミングチャートである。具体的には、図10はノードNODE1乃至NODE4における信号波形を示す。イネーブル制御信号CREは、CR発振回路CRO1の動作が停止しているときはLレベルであるものとする。
イネーブル制御信号CREがLレベルのとき、ナンド回路NA21の出力(NODE1)はLレベルに固定されるので、CR発振回路CRO1は停止状態となる。イネーブル制御信号CREがHレベルになったときのナンド回路NA21、インバータ回路INV2,INV3、抵抗RT1及び容量CT1からなる回路部分の動作を説明する。
図10に示すように、ノードNODE1,NODE2,NODE3における信号波形はCMOS回路の一般的な出力波形である矩形波となる。ノードNODE4における信号波形は、ノードNODE2との容量結合により、ノードNODE2の電位変化の時刻にノードNODE4の電位がノードNODE2と同じ方向に変化し、その後緩やかにノードNODE3の電位により充放電される波形となる。
ノードNODE2において図10に示すような発振波形が得られるので、例えば図9に示すように、インバータ回路INV4を用いることによりノードNODE5において発振波形を得ることができる。カウンタ回路CUNT2、Dフリップフロップ回路DFF2及びアンド回路AND5からなる回路部分は、図4に示すカウンタ回路CUNT1、Dフリップフロップ回路DFF1及びアンド回路AND1からなる回路部分と同様に動作する。ノードNODE5における発振波形のレベルの変化をカウンタ回路CUNT2によりカウントし、規定の回数に達したところで出力COUT2がLレベルからHレベルに変化するものとする。CR発振回路CRO1を起動する前はイネーブル制御信号CREがLレベルになっているので、アンド回路AND5出力はLレベルになっており、カウンタ回路CUNT2はクリアされ、初期化されている。同様に、Dフリップフロップ回路DFF2も初期化されている。ノードNODE5における変化が規定の回数に達して、カウンタ回路CUNT2の出力COUT2がLレベルからHレベルに変化すると、Dフリップフロップ回路DFF2の出力CDFO2がHレベルに変化する。又、Dフリップフロップ回路DFF2の出力DFOX2がLレベルに変化し、カウンタ回路CUNT2はクリアされ、初期化される。Dフリップフロップ回路DFF2の出力CDFO2がHレベルになると、アンド回路AND4の出力にはノードNODE5と同相の信号が現れ、CR発振回路CRO1の出力OSCO2として出力される。
図11は、図4に示すスイッチ回路SW3の構成の一例を示す回路図である。言うまでもないが、スイッチ回路SW3の構成は、図11に示す構成に限定されるものではない。図11中、図4と同一部分には同一符号を付し、その説明は省略する。スイッチ回路SW3は、図11に示す如く接続されたインバータ回路INV5,INV6,INV7、ナンド回路NA22乃至NA25、アンド回路AND6及びDフリップフロップ回路DFF3乃至DFF6を有する。図11において、NA22O乃至NA25Oはナンド回路NA22乃至NA25の出力、DFF3O乃至DFF6OはDフリップフロップ回路DFF3乃至DFF6の出力、SELI,SELIXはセレクタ制御信号を示す。
図12は、図11に示すスイッチ回路SW3の動作を説明するタイミングチャートである。図11に示すスイッチ回路SW3は、クロックCKOをCR発振回路CRO1の出力OSCO2からセラミック発振回路OSC1の出力OSCO1に切り替える際に、Hレベルの幅(期間)、或いは、Lレベルの幅(期間)が短すぎるパルスがクロックCKOとして出力されない回路構成となっている。ここでは、説明の便宜上、MCU1のスタンバイ状態からの復帰後、発振回路CRO1,OSC1の起動を開始し、出力OSCO2,OSCO1が図12に示す状態にあるものとする。OSC1選択ビットSOS1は最初Lレベルであるものとする。OSC1選択ビットSOS1がLレベルなので、Dフリップフロップ回路DFF3乃至DFF6はクリアされている。Dフリップフロップ回路DFF5がクリアされているので、セレクタ制御信号SELIもLレベルである。
セレクタ制御信号SELIがLレベルなので、ナンド回路NA23の出力NA23OはHレベルに固定されている。又、セレクタ制御信号SELIXがHレベルなので、ナンド回路NA24の出力NA24OはCR発振回路CRO1の出力OSCO2と同相の信号となる。ナンド回路NA22,NA23,NA24はセレクタ回路として機能し、出力NA24OとしてCR発振回路CRO1の出力OSCO2又はセラミック発振回路OSC1の出力OSCO1を選択出力する。図12において、セレクタ制御信号SELIがLレベルのときに、CR発振回路CRO1の出力OSCO2とナンド回路NA24の出力NA24Oが同じ波形になっているのは、このことを表している。
OSC1選択ビットSOS1がLレベルなので、Dフリップフロップ回路DFF4の出力DFF4OはLレベルである。Dフリップフロップ回路DFF4の出力DFF4OがLレベルなので、ナンド回路NA25の出力NA25OはHレベルである。ナンド回路NA25の出力NA25OがHレベルなので、クロックCKOはナンド回路NA24の出力NA24Oと同相の信号となり、CR発振回路CRO1の出力OSCO2がMCU1のクロックCKOとして出力される。又、OSC1選択ビットSOS1がLレベルなので、Dフリップフロップ回路DFF6の出力DFF6OはLレベルである。
セラミック発振回路OSC1の出力OSCO1が安定すると、OSC1安定割り込み(IRQOSC)が発生し、割り込みプログラムによりOSC1選択ビットSOS1がHレベルに書き換えられる。図12において、OSC1選択ビットSOS1がLレベルからHレベルに変化しているのは、この割り込みプログラムによるOSC1選択ビットSOS1のLレベルからHレベルへの書き換えを表している。OSC1選択ビットSOS1がHレベルになると、DフリップフロップDFF3のD入力がHレベルになるので、クロックCKOの次の立ち上がり(即ち、出力OSCO2の次の立ち上がり)で、Dフリップフロップ回路DFF3の出力DFF3OがHレベルになる。Dフリップフロップ回路DFF4のクロック入力端子CKには、出力OSCO2をインバータ回路INV6により反転した信号が入力されるので、出力OSCO2の次の立下りでDフリップフロップ回路DFF4の出力DFF4OがHレベルになる。Dフリップフロップ回路DFF4の出力DFF4OがHレベルになると、この時点ではDフリップフロップ回路DFF6の出力DFF6OはLレベルなので、インバータ回路INV7の出力はHレベルである。インバータ回路INV7出力とDフリップフロップ回路DFF4の出力DFF4Oが同時にHレベルになると、ナンド回路NA25の出力NA25OはLレベルになる。
Dフリップフロップ回路DFF4の出力DFF4OがHレベルになった後、Dフリップフロップ回路DFF5により出力OSCO2の次の立ち上がりでセレクタ制御信号SELIがHレベルになる。セレクタ制御信号SELIがHレベルになるので、ナンド回路NA22,NA23,NA24で構成されるセレクタ回路は出力OSCO1を選択出力するようになる。図12は、セレクタ制御信号SELIがHレベルになった後、ナンド回路NA24の出力NA24Oにより出力クロックCKOが出力OSCO2から出力OSCO1に切り替えられる場合を示す。
発振回路OSC1,CRO1の出力OSCO1,OSCO2は同期して発振しているわけではないので、切り替えのタイミングによっては、Hレベルの幅又はLレベルの幅が非常に短いパルスがナンド回路NA24の出力NA24Oに現れる可能性がある。そこで、アンド回路AND6等により、この望ましくない短いパルスを除去する。図11では、セレクタ制御信号SELIがLレベルからHレベルに切り替わる時点より前に、ナンド回路NA25の出力NA25OをLレベルにして、セレクタ制御信号SELIが変化した後の出力OSCO1の立ち上がりまで、出力NA25OがLレベルを保つような回路構成が採用されている。これにより、アンド回路AND6回路により、ナンド回路NA25の出力NA25OがLレベルの期間、クロックCKOをLレベルに固定している。
図12において破線で示すように、セレクタ制御信号SELIがHレベルに変化すると、Dフリップフロップ回路DFF6のD入力もHレベルになるので、次の出力OSCO1の立ち上がりで、Dフリップフロップ回路DFF6の出力DFF6OがHレベルになる。インバータ回路INV7により、ナンド回路NA25にはLレベルの信号が供給されるので、ナンド回路NA25の出力NA25OはLレベルからHレベルに戻る。つまり、切り替え前の出力OSCO2の立下りから、切り替え後の出力OSCO1の立ち上がりまでの期間、ナンド回路NA25の出力NA25OはLレベルとなり、クロックCKOをこの期間だけLレベルに固定する。この結果、図12に示すように、出力OSCO2の波形と出力OSCO1の波形の切り替わり時に多少長いLレベル期間が挿入された波形が得られる。
図5乃至図8では、MCU1のプログラムの設計者が明示的に、CR発振回路CRO1だけ、或いは、CR発振回路CRO1とセラミック発振回路OSC1の両方を使用し、それらを切り替えて使用する場合の処理について説明した。
タイマ又はパルス発生器の時間精度が必要とされるような場合、或いは、通信が予定されていてクロックの周波数精度が必要なことが予めかっている場合には、図5及び図6と共に説明したような処理で、クロックCKOをCR発振回路CRO1の出力OSCO2からセラミック発振回路OSC1の出力OSCO1に切り替えれば良い。あるプログラムの一連の処理に発振周波数精度が必要ないことが予めわかっている場合には、図7及び図8と共に説明したような処理で、CR発振回路CRO1だけを起動してMCU1のクロックCKOを出力すれば良い。
ところが、発振周波数精度が必要ない処理を進めている最中に、外部から例えば通信を要求された場合であってもこれに対処できるようにMPUを構成しておくことが望ましい場合がある。つまり、発振周波数精度を必要としない処理を進めて、処理が終了すればCR発振回路の動作を停止し、スタンバイ状態に戻ることを想定してプログラムが構成されていたとしても、外部から非同期に例えば通信を要求される可能性があれば、通信を要求された時点でセラミック発振回路を起動できるようにMPUを構成しておくことが望ましい場合がある。
次に、発振周波数精度の必要ない処理をMCU1で進めて再びスタンバイ状態に戻ろうとしている途中で、外部の何らかの装置又はデバイスから非同期に例えば通信を要求された場合の処理を、図13と共に説明する。図13は、発振回路110の処理を説明するフローチャートであり、同図(a)はメインプログラムの処理、同図(b)は通信要求受け付け割り込みプログラムの処理、同図(c)はOSC1安定割り込みプログラムの処理を示す。このように、外部から非同期で通信が要求される可能性がある場合には、外部からの通信要求により割り込み信号を発生することで、図13のような処理を進めることが可能となる。
図13(a)では、MCU1のスタンバイ状態の解除後、ステップS31ではCR発振回路CRO1だけを起動し、セラミック発振回路OSC1の動作は停止する。ステップS32では発振周波数精度の必要ない処理を進め、処理が終了すると、ステップS33ではCR発振回路CRO1の動作を停止してMCU1を再びスタンバイ状態へ戻す。
外部から通信を要求された場合には、通信要求により割り込み信号を発生し、図13(b)の通信要求受け付け割り込みプログラムに処理が移る。ステップS41では通信要求に従って、セラミック発振回路OSC1を起動する。具体的には、OSC1起動抑止ビットIHOS1をLレベルからHレベルに書き換えて、セラミック発振回路OSC1を起動する。セラミック発振回路OSC1を起動した後、ステップS42では元のメインプログラムに処理を戻し、残りの処理を実行する。このとき、メインプログラムの処理が終了しても、通信要求を処理していないので、MCU1がスタンバイ状態に戻らないように待ち状態となるようにプログラムを構成しておく。
セラミック発振回路OSC1を起動した後、その出力OSCO1が安定するとOSC1安定割り込みIRQOSCが発生されるので、図13(c)のOSC1安定割り込みプログラムの処理で、ステップS51では例えばMCU1のクロックCKOをCR発振回路CRO1の出力OSCO2からセラミック発振回路OSC1の出力OSCO1に切り替え、ステップS52では通信要求も処理する。ステップS53ではメインプログラムに処理を戻す。
プログラムの構成の詳細は、各種の変形が可能であり、実際のハードウェア構成に適した構成を採用する必要がある。OSC1安定割り込みでは、クロックCKOをCR発振回路CRO1の出力OSCO2からセラミック発振回路OSC1の出力OSCO1に切り替え、メインプログラム中で通信を処理しても良い。この場合には、発振周波数精度が必要ない処理が終了した時点で、通信要求を処理したか否かを確認することになる。或いは、通信要求を受け付けて、まだ通信処理が終了していない時点でセラミック発振回路OSC1の出力OSCO1が安定したことを検出した場合、専用の通信実行のための割り込み信号を発生するようにして、その割り込み信号に対応したプログラムを記述しても良い。
図13と共に説明したような状況も考慮しておくことで、図4の発振回路110を使用して、セラミック発振回路OSC1とCR発振回路CRO1を、プログラムの状況で使い分けることができるようになり、セラミック発振回路OSC1の起動回数を削減することにより低消費電力化が可能となる。
以上説明したように、本実施例では、発振回路110を切り替え制御するための制御レジスタ部13に、発振回路110から設定可能でありセラミック発振回路OSC1の出力が安定したことを示すOSC1安定フラグOSFをMCU1のソフトウェアから参照可能に設けることで、ソフトウェアによりセラミック発振回路OSC1の出力が安定したか否かを判定することができるようになる。又、制御レジスタ部13に、発振回路110から設定可能であり割り込み信号を発生するためのOSC1割り込みフラグOSIFをMCU1のソフトウェアから参照可能に設けると共に、MCU1のソフトウェアから設定可能でありOSC1割り込みフラグOSIFがセットされた場合に割り込みを許可するためのOSC1安定割り込み許可ビットOSFIE及びセラミック発振回路OS1の出力が安定した場合に発生されるOSC安定割り込み信号IRQOSCを設けることで、セラミック発振回路OSC1の出力が安定した場合にOSC1安定割り込み信号IRQOSCを発生することができる。
更に、制御レジスタ部13に、MCU1のソフトウェアから設定可能であり明示的に発振回路110をCR発振回路CRO1からセラミック発振回路OSC1に切り替えるOSC1選択ビットSOS1を設け、割り込みプログラム中にこのOSC1選択ビットSOS1を設定することで、ソフトウエアでMCU1のクロックCKOをCR発振回路CRO1の出力からセラミック発振回路OSC1の出力に切り替えることができる。又、このOSC1選択ビットSOS1を設けることで、クロックCKOをCR発振回路CRO1の出力からセラミック発振回路OSC1の出力に切り替えた後、CR発振回路CRO1の動作を停止することもできる。
制御レジスタ部13に、MCU1のソフトウェアから設定可能でありセラミック発振回路OSC1の起動を抑止するためのOSC1起動抑止ビットIHOS1を設けることで、セラミック発振回路OSC1の出力を使用しない場合には、セラミック発振回路OSC1の起動を抑止することができる。
上記の如き制御レジスタ部13を設けることにより、CR発振回路CRO1の出力OSCO2とセラミック発振回路OSC1の出力OSCO1を切り替えて使用するモードと、CR発振回路CRO1の出力OSCO2だけを使用し、セラミック発振回路OSC1を起動しないモードを選択することが可能となり、CR発振回路CRO1しか使用しない場合には、セラミック発振回路OSC1を起動しないことでMCU1全体の消費電力を削減することが可能となる。
尚、本発明は、以下に付記する発明をも包含するものである。
(付記1)
第1の発振回路と、
該第1の発振回路より長い発振安定時間を有する第2の発振回路と、
該第2の発振回路の発振安定時間の経過を示す安定信号を出力する信号生成回路と、
選択信号に基づいて該第1及び第2の発振回路の出力の一方を選択出力するスイッチ回路と、
抑止信号に基づいて該第2の発振回路の起動を抑止する抑止回路とを備え、
該第1及び第2の発振回路が同時に起動されて該スイッチ回路により該第1の発振回路の出力が選択出力された後に該第2の発振回路の出力に切り替えられるモードと、
該第1の発振回路が起動されて該抑止回路により該第2の発振回路が起動されず該スイッチ回路により該第1の発振回路の出力のみが選択出力されるモードと
を有することを特徴とする発振回路。
(付記2)
該信号生成回路は、該第1の発振回路の出力をカウントして該安定信号を生成することを特徴とする付記1記載の発振回路。
(付記3)
該第1の発振回路はCR発振回路からなり、該第2の発振回路は水晶発振回路又はセラミック発振回路からなることを特徴とする付記1又は2記載の発振回路。
(付記4)
該安定信号が該信号生成回路からMCUのソフトウェアにより参照可能に設定されると共に、該ソフトウェアにより該選択信号及び該抑止信号が設定される制御レジスタ部を更に備えたことを特徴とする付記1乃至3のいずれか1項記載の発振回路。
(付記5)
第1の発振回路と、
該第1の発振回路より長い発振安定時間を有する第2の発振回路と、
外部からも情報を設定可能であると共に、外部より設定されている情報を参照可能な制御レジスタ部と、
該第2の発振回路の発振安定時間の経過を示す安定フラグを出力して該制御レジスタ部に設定する信号生成回路と、
該制御レジスタ部に設定されている選択ビットに基づいて該第1及び第2の発振回路の出力の一方を選択出力するスイッチ回路とを備え、
該第1及び第2の発振回路が同時に起動されて該スイッチ回路により該第1の発振回路の出力が選択出力された後に該第2の発振回路の出力に切り替えられる第1のモードを有することを特徴とする発振回路。
(付記6)
該制御レジスタ部に設定されている抑止信号に基づいて該第2の発振回路の起動を抑止する抑止回路を更に備え、
該第1の発振回路が起動されて該抑止回路により該第2の発振回路が起動されず該スイッチ回路により該第1の発振回路の出力のみが選択出力される第2のモードを有することを特徴とする付記5記載の発振回路。
(付記7)
該制御レジスタ部は、該外部に対する割り込み信号を発生するための割り込みフラグが該信号生成回路から設定されると共に、該割り込みフラグが設定された場合に割り込みを許可するためのビットが該外部から設定され、該第2の発振回路の発振安定時間の経過後に割り込み信号を発生することを特徴とする付記6記載の発振回路。
(付記8)
クロック生成回路と、制御レジスタ部と、CPUを備えた半導体装置であって、
該クロック生成回路は第1の発振回路と、該第1の発振回路より長い発振安定時間を有する第2の発振回路と、該CPUのソフトウェアからも情報を設定可能であると共に該ソフトウェアより設定されている情報を参照可能な制御レジスタ部と、該第2の発振回路の発振安定時間の経過を示す安定フラグを出力して該制御レジスタ部に設定する信号生成回路と、該制御レジスタ部に設定されている選択ビットに基づいて該第1及び第2の発振回路の出力の一方を選択出力するスイッチ回路とを備え、
該半導体装置の電源投入後、リセット後又はスタンバイ状態から動作状態への復帰後に、該第1及び第2の発振回路が同時に起動されて該スイッチ回路により該第1の発振回路の出力が選択出力された後に該第2の発振回路の出力に切り替えられる第1のモードを有することを特徴とする半導体装置。
(付記9)
該クロック生成回路は、該制御レジスタ部に設定されている抑止信号に基づいて該第2の発振回路の起動を抑止する抑止回路を更に備え、
該半導体装置は、該第1の発振回路が起動されて該抑止回路により該第2の発振回路が起動されず該スイッチ回路により該第1の発振回路の出力のみが選択出力される第2のモードを有することを特徴とする付記8記載の半導体装置。
(付記10)
該制御レジスタ部は、該ソフトウェアに対する割り込み信号を発生するための割り込みフラグが該信号生成回路から設定されると共に、該割り込みフラグが設定された場合に該ソフトウェアへの割り込みを許可するためのビットが該ソフトウェアから設定され、該第2の発振回路の発信安定時間の経過後に割り込み信号を発生することを特徴とする付記9記載の半導体装置。
(付記11)
該スイッチ回路の出力は、クロックとして該CPUに供給されることを特徴とする付記8乃至10のいずれか1項記載の半導体装置。
(付記12)
該制御レジスタ部は、該クロック生成回路の一部を構成することを特徴とする付記11記載の半導体装置。
以上、本発明を実施例により説明したが、本発明は上記実施例に限定されるものではなく、本発明の範囲内で種々の変形及び改良が可能であることは言うまでもない。
従来のCR発振回路とセラミック発振回路を組み合わせた発振回路の例である。 図1の回路の動作波形例である。 本発明の一実施例を示すブロック図である。 発振回路の構成を制御レジスタ部と共に示す回路図である。 発振回路の動作を説明するタイミングチャートである。 発振回路の動作を説明するフローチャートである。 発振回路の動作を説明するフローチャートである。 発振回路の動作を説明するタイミングチャートである。 CR発振回路の構成の一例を示す回路図である。 CR発振回路の動作を説明するタイミングチャートである。 スイッチ回路の構成の一例を示す回路図である。 スイッチ回路の動作を説明するタイミングチャートである。 発振回路の処理を説明するフローチャートである。
符号の説明
1 MCU
11 クロック生成回路
12 CPU
13 レジスタ部
110 発振回路
CRO1 CR発振回路
OSC1 セラミック発振回路

Claims (2)

  1. 第1の発振回路と、
    前記第1の発振回路より長い発振安定時間を有する第2の発振回路と、
    外部からも情報を設定可能であると共に、外部より設定されている情報を参照可能な制御レジスタ部と、
    前記第2の発振回路の発振安定時間の経過を示す安定フラグを出力して前記制御レジスタ部に設定する信号生成回路と、
    前記制御レジスタ部に設定されている選択ビットに基づいて前記第1及び第2の発振回路の出力の一方を選択出力するスイッチ回路と、
    前記制御レジスタ部に設定されている抑止信号に基づいて前記第2の発振回路の起動を抑止する抑止回路を備え、
    前記第1及び第2の発振回路が同時に起動されて前記スイッチ回路により前記第1の発振回路の出力が選択出力された後に前記第2の発振回路の出力に切り替えられる第1のモードと、前記第1の発振回路が起動されて前記抑止回路により前記第2の発振回路が起動を抑止され前記スイッチ回路により前記第1の発振回路の出力のみが選択出力される第2のモードを有し、
    前記信号生成回路は、前記安定フラグを前記制御レジスタ部に設定すると共に、前記外部に対する割り込み信号を発生するための割り込みフラグを前記制御レジスタ部に設定し、
    前記制御レジスタ部は、前記割り込みフラグが設定されると共に前記割り込みフラグが設定された場合に割り込みを許可するためのビットが前記外部から設定され、前記第2の発振回路の発振安定時間の経過後に割り込み信号を発生した後に前記割り込みフラグを解除することを特徴とする発振回路。
  2. クロック生成回路と、制御レジスタ部と、CPUを備えた半導体装置であって、
    前記クロック生成回路は第1の発振回路と、前記第1の発振回路より長い発振安定時間を有する第2の発振回路と、前記第2の発振回路の発振安定時間の経過を示す安定フラグを出力して前記制御レジスタ部に設定する信号生成回路と、前記制御レジスタ部に設定されている選択ビットに基づいて前記第1及び第2の発振回路の出力の一方を選択出力するスイッチ回路と、前記制御レジスタ部に設定されている抑止信号に基づいて前記第2の発振回路の起動を抑止する抑止回路を備え、
    前記制御レジスタは、前記CPUのソフトウェアからも情報を設定可能であると共に前記ソフトウェアより設定されている情報を参照可能であり、
    前記半導体装置の電源投入後、リセット後又はスタンバイ状態から動作状態への復帰後に、前記第1及び第2の発振回路が同時に起動されて前記スイッチ回路により前記第1の発振回路の出力が選択出力された後に前記第2の発振回路の出力に切り替えられる第1のモードと、前記第1の発振回路が起動されて前記抑止回路により前記第2の発振回路が起動を抑止され前記スイッチ回路により前記第1の発振回路の出力のみが選択出力される第2のモードを有し、
    前記信号生成回路は、前記安定フラグを前記制御レジスタ部に設定すると共に、前記ソフトウェアに対する割り込み信号を発生するための割り込みフラグを前記制御レジスタ部に設定し、
    前記制御レジスタ部は、前記割り込みフラグが前記信号生成回路から設定されると共に前記割り込みフラグが設定された場合に前記ソフトウェアへの割り込みを許可するためのビットが前記ソフトウェアから設定され、前記第2の発振回路の発振安定時間の経過後に割り込み信号を発生し、前記割り込みフラグを解除することを特徴とする半導体装置。
JP2007069345A 2007-03-16 2007-03-16 発振回路及び半導体装置 Expired - Fee Related JP5045167B2 (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2007069345A JP5045167B2 (ja) 2007-03-16 2007-03-16 発振回路及び半導体装置

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2007069345A JP5045167B2 (ja) 2007-03-16 2007-03-16 発振回路及び半導体装置

Publications (2)

Publication Number Publication Date
JP2008234046A JP2008234046A (ja) 2008-10-02
JP5045167B2 true JP5045167B2 (ja) 2012-10-10

Family

ID=39906785

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2007069345A Expired - Fee Related JP5045167B2 (ja) 2007-03-16 2007-03-16 発振回路及び半導体装置

Country Status (1)

Country Link
JP (1) JP5045167B2 (ja)

Families Citing this family (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2010252107A (ja) 2009-04-16 2010-11-04 Toshiba Corp 半導体集積回路装置
JP5516872B2 (ja) * 2010-04-13 2014-06-11 セイコーエプソン株式会社 Memsデバイス、電子機器
JP5660010B2 (ja) * 2011-11-21 2015-01-28 トヨタ自動車株式会社 情報処理装置、データ復帰方法
JP5774764B2 (ja) * 2014-12-15 2015-09-09 株式会社東芝 メモリ制御装置、半導体装置、システムボード、および情報処理装置
JP7173833B2 (ja) * 2018-10-30 2022-11-16 株式会社日立製作所 半導体集積回路、及び、同半導体集積回路を備えた装置

Family Cites Families (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH0511877A (ja) * 1991-07-04 1993-01-22 Nec Corp マイクロコンピユータ
JPH0772951A (ja) * 1993-09-03 1995-03-17 Mitsubishi Electric Corp 発振検出回路、発振減衰検出回路および発振制御回路
JP3906015B2 (ja) * 2000-07-12 2007-04-18 株式会社東芝 クロック周波数切り替え機能を有するlsi、計算機システム及びクロック周波数切り替え方法
KR100420116B1 (ko) * 2000-08-31 2004-03-02 삼성전자주식회사 저전력 소모 씨디엠에이 모뎀 칩 설계를 위한 프로세서클럭 발생 회로 및 클럭 발생 방법
JP2002314336A (ja) * 2001-04-13 2002-10-25 Matsushita Electric Ind Co Ltd 発振回路
JP2006279824A (ja) * 2005-03-30 2006-10-12 Matsushita Electric Ind Co Ltd 半導体集積装置

Also Published As

Publication number Publication date
JP2008234046A (ja) 2008-10-02

Similar Documents

Publication Publication Date Title
JP4750564B2 (ja) リセット信号生成回路
JP5045167B2 (ja) 発振回路及び半導体装置
JP4535170B2 (ja) マイクロコンピュータシステム
US9647670B2 (en) Oscillator with dynamic gain control
JP5774344B2 (ja) クロック信号生成回路
EP1870794A2 (en) Microcomputer with reset pin and electronic control unit with the same
JP2011199481A (ja) クロックシステム
US8902011B2 (en) Signal generating circuit for real time clock device and method thereof
KR100286155B1 (ko) 집적 회로에 내장된 발진 회로
JP4701898B2 (ja) 外部信号検出回路およびリアルタイムクロック
JP2003234947A (ja) 制御装置、電子機器及びカメラ
JP2003316469A (ja) クロック制御装置およびクロック制御方法
JPH08166834A (ja) クロック発生回路及びマイクロコンピュータ
JP5241450B2 (ja) 半導体装置及びその異常検出方法
JP2006285823A (ja) 半導体集積回路
JP4328319B2 (ja) クロック供給回路
JP5513359B2 (ja) 半導体装置及び自動車用コントロールシステム
TW201813303A (zh) 用於產生時脈之電子電路及其方法
JP2009130587A (ja) 発振回路および発振器
JP2017060120A (ja) 半導体装置および発振回路の制御方法
US6888418B2 (en) Control circuit and method for a crystal oscillator using a timer
JP7459704B2 (ja) 回路装置及びリアルタイムクロック装置
JP2002314336A (ja) 発振回路
JP2010066809A (ja) マイクロコンピュータ
JPH0818338A (ja) 発振回路

Legal Events

Date Code Title Description
A711 Notification of change in applicant

Free format text: JAPANESE INTERMEDIATE CODE: A712

Effective date: 20080729

A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20091211

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20110913

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20111109

A02 Decision of refusal

Free format text: JAPANESE INTERMEDIATE CODE: A02

Effective date: 20120104

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20120403

A911 Transfer to examiner for re-examination before appeal (zenchi)

Free format text: JAPANESE INTERMEDIATE CODE: A911

Effective date: 20120416

TRDD Decision of grant or rejection written
A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20120619

A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20120702

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20150727

Year of fee payment: 3

R150 Certificate of patent or registration of utility model

Free format text: JAPANESE INTERMEDIATE CODE: R150

S111 Request for change of ownership or part of ownership

Free format text: JAPANESE INTERMEDIATE CODE: R313113

R350 Written notification of registration of transfer

Free format text: JAPANESE INTERMEDIATE CODE: R350

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

S111 Request for change of ownership or part of ownership

Free format text: JAPANESE INTERMEDIATE CODE: R313111

R350 Written notification of registration of transfer

Free format text: JAPANESE INTERMEDIATE CODE: R350

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

LAPS Cancellation because of no payment of annual fees