(57)【要約】【課題】周囲温度や外部電源電圧の変化による高速ＯＣＯに与える参照電圧および参照電流の変動を防止し、電源モジュールの回路面積が小さい半導体装置を提供する。【解決手段】高速ＯＣＯ１０は、参照電流および参照電圧で定まる大きさの高速クロックを出力する。温度センサ５は、高速ＯＣＯ１０の周囲温度を検出し、電圧センサ４は、高速ＯＣＯ１０の動作電圧を検出する。電源モジュール１２は、ＢＧＲを含み、ＢＧＲが出力する基準電圧に基づいて、参照電圧、参照電流、高速ＯＣＯの動作電圧を生成する。フラッシュメモリ８は、高速ＯＣＯ１０の周囲温度および動作電圧に対応する、参照電圧および参照電流のトリミングコードを定めたテーブルを記憶する。ロジック部１３は、検出された周囲温度および動作電圧に対応する参照電圧および参照電流のトリミングコードに基づいて、参照電流および参照電圧の値を調整する。【選択図】図１
2011166368.tif 000002
【特許請求の範囲】
【請求項１】
参照電流および参照電圧を受けて、前記参照電流および前記参照電圧で定まる大きさの第１の周波数のクロック信号を出力する第１のオンチップ発振器と、
前記第１のオンチップ発振器の周囲温度を検出する温度センサと、
前記第１のオンチップ発振器の動作電圧の値を検出する電圧センサと、
基準電圧を生成するレファレンス回路を含み、前記レファレンス回路が出力する基準電圧に基づいて、前記参照電圧、前記参照電流、前記第１のオンチップ発振器の動作電圧を生成する電源モジュールと、
前記第１のオンチップ発振器の周囲温度および前記第１のオンチップ発振器の動作電圧に対応する、前記参照電圧および前記参照電流のトリミングコードを定めたテーブルを記憶する記憶部と、
前記検出された周囲温度および動作電圧に対応する前記参照電圧および前記参照電流のトリミングコードを前記テーブルから読み出して、前記読み出したトリミングコードに基づいて、前記参照電流および前記参照電圧の値を調整するロジック部とを備えた、半導体装置。
【請求項２】
前記レファレンス回路は、バンドギャップにより基準電圧を生成する、請求項１記載の半導体装置。
【請求項３】
前記半導体装置は、さらに、
前記第１の周波数よりも低い第２の周波数のクロック信号を出力する第２のオンチップ発振器と、
前記第１のオンチップ発振器の出力と前記第２のオンチップ発振器の出力を受けるスイッチとを備え、
前記スイッチは、温度または電圧の少なくとも一方が変化したときには、新たなトリミングコードで前記参照電流および前記参照電圧の値が調整されている間、前記第２のオンチップ発振器の出力を出力する、請求項２記載の半導体装置。
【請求項４】
前記ロジック部は、前記スイッチが出力するクロック信号で動作する、請求項３記載の半導体装置。
【請求項５】
前記半導体装置は、さらに、
前記第２のオンチップ発振器が出力する前記第２の周波数のクロック信号で動作するウオッチドグタイマを備える、請求項３記載の半導体装置。
【請求項６】
前記電源モジュールは、さらに、前記レファレンス回路が出力する基準電圧に基づいて前記ロジック部を動作させる電圧を生成する、請求項２記載の半導体装置。
【請求項７】
スリープ時には、前記第１のオンチップ発振器が前記第１の周波数のクロック信号の出力を停止した後、前記電源モジュールが前記第１のオンチップ発振器を動作させる電源電圧の生成を停止する、請求項１記載の半導体装置。
【請求項８】
ウエイクアップ時には、前記電源モジュールが前記第１のオンチップ発振器を動作させる電源電圧の生成を再開した後、前記第１のオンチップ発振器が前記第１の周波数のクロック信号の出力を再開する、請求項１記載の半導体装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、半導体装置に関し、特にオンチップ発振器を有する半導体装置に関する。
【背景技術】
【０００２】
マイコンにおいて、クロック信号を供給するオンチップ発振器は、周囲温度や外部電源電圧の変化によって、発振周波数が変動することが知られている。
【０００３】
プロセス工程におけるテストによって、この発振周波数の変動を補償することが行なわれているが、プロセス工程のテストでは、すべての電圧条件、温度条件で実施することは困難である。また、高温領域では接合リーク、低温領域では閾値の急上昇、高電圧領域ではトランジスタの降伏現象による成分、低電圧領域ではトランジスタ動作の３極管動作化による影響等などあり、プロセス工程でのテストでは想定できない成分の影響を受けて発振周波数が変化する。
【０００４】
そのため、特許文献１〜４には、実動作時に温度変化による発振周波数の変動を補償するための技術が開示されている。
【０００５】
たとえば、特許文献１には、以下の技術が開示されている。温度検出回路５０から温度情報が供給されたとき、ＣＰＵ４０が温度情報に基づいて記憶回路６０から温度に適した制御電圧情報を読み出して制御電圧発生回路３０に供給すると、制御電圧発生回路３０は、制御電圧情報に基づいて生成し、基準クロック発生器２０は、制御電圧に基づいて所望の周波数を有する基準クロックを発生する。これにより、装置の電源立ち上げ時において周辺温度に応じた制御電圧を効率良く取得し、装置の電源立ち上げ時における基準クロックの温度特性による周波数誤差を減少することが可能となる。
【０００６】
また、特許文献２には、以下の技術が開示されている。温度補償発振回路１０は、圧電振動子４０を備えた発振回路４２と、圧電振動子４０の温度を間欠的に計測して、この計測結果をディジタル信号で出力する温度計測部２２と、温度計測部２２から出力されたディジタル信号のうちの上位ビットを入力して、ディジタル信号のうちの最下位ビットに応じて上位ビットを設定し、これをアドレス値として出力するカウンタ２８と、容量アレイ４４に設けられたスイッチのオン／オフを制御する補正値がアドレス値と１対１に対応させて保存され、カウンタ２８から入力したアドレス値に応じた補正値を読み出して出力する記憶部３０と、発振回路４２に２つ設けられ、記憶部３０から入力した補正値に基づいて容量値を設定する容量アレイ４４を備える。
【０００７】
また、特許文献３には、以下の技術が開示されている。補正間隔決定回路１２は、温度センサ１６からの検出温度に基づいて温度変化を求め、この温度変化に応じて発振回路７の発振周波数を補正する補正間隔を決定する。この補正間隔に応じた周波数のクロック信号が、選択回路１４で選択されて補償動作制御回路１５に供給される。そのクロック信号に基づき、温度−デジタル信号変換回路１７は、温度センサ１６の検出温度をディジタル信号の温度データに変換する。補正値決定回路１８は、その温度データに対応する補正値を読み出し、その補正値が補正値レジスタ１９にセットされる。補正値レジスタ６の格納内容に応じて、発振回路７のスイッチＳ１〜Ｓｎがオンオフされ、コンデンサＣ１〜Ｃｎの容量が変化する。
【０００８】
特許文献４には、以下の技術が開示されている。マイクロコンピュータのＥＥＰＲＯＭに、温度により変動するＣＲ発振回路の発振周期データを記憶しておき、ＣＰＵは、温度検出回路によって検出される温度に応じてＥＥＰＲＯＭに記憶されているデータを読み出し（ステップＳ２，Ｓ３）、決定した逓倍値をＤＰＬＬ回路に設定することで（ステップＳ４，Ｓ５）逓倍クロック信号の発振周波数を補正する。
【０００９】
また、特許文献５および特許文献６には、実動作時に、外部電源電圧の変化による発振周波数の変動を補償するための技術が開示されている。
【００１０】
特許文献５には、以下の技術が開示されている。同一基板内にプロセッサ（ＣＰＵ）と発振器（ＯＳＣ）とが集積化された集積回路であって、上記プロセッサによってロードすることができるデータレジスタ（Ｒ１）を備え、上記発振器は、上記プロセッサのためのクロックとして機能し、上記発振器は、コンデンサ（Ｃ）と、該コンデンサの充放電のための電流源とを備え、上記データレジスタは、上記コンデンサの充放電用電流の値を制御することにより、上記し張発振器の周波数の調節を制御し、上記データレジスタは、上記同一集積回路基板に設けられ且つ周波数訂正データを記憶している電気的にプログラム可能な不揮発性メモリ（Ｍ１）から上記プロサッサによってロードされる。
【００１１】
また、特許文献６には、以下の技術が開示されている。チップ内部でトリミング値を算出して不揮発性メモリに記憶し、必要に応じてトリミングデータを取り出して、リファレンスセルのＶｔレベルやオシレータの周波数を調整する。チップ毎に固有のランダムなトリミングをチップ内部で行えるので、外部装置により複数チップを同時測定している場合でも、チップ個別の制御が不要となる。このため、テスト時間・テストプログラム開発工数等のテストコストを削減でき、テストプログラム複雑化によるヒューマンエラーを低減できる。
【先行技術文献】
【特許文献】
【００１２】
【特許文献１】特開２００１−４４７５９号公報
【特許文献２】特開２００７−６７６７５号公報
【特許文献３】特開２００３−２５８５５１号公報
【特許文献４】特開２００７−１９４７１１号公報
【特許文献５】特開２００３−８４８５９号公報
【特許文献６】特開２００７−１６４８６５号公報
【発明の概要】
【発明が解決しようとする課題】
【００１３】
ところで、マイコン内には、発振器が定められた周波数のクロックを出力させるために発振器に与える参照電圧および参照電流を生成する電源モジュールが必要となる。発振器の発振周波数の変動を高精度に防止するためには、周囲温度や外部電源電圧が変化しても、変動しない参照電圧および参照電流を生成する電源モジュールが必要となるが、マイコンの回路面積が増大してしまうという問題がある。引用文献１〜６には、このような、周囲温度や外部電源電圧が変化しても変動しない参照電圧および参照電流を生成すること、および回路面積の増大を緩和するための対策が記載されていない。
【００１４】
それゆえに、本発明の目的は、周囲温度や外部電源電圧の変化による、オンチップ発振器に与える参照電圧および参照電流の変動を防止することができるととともに、電源モジュールの回路面積を小さくした半導体装置を提供することである。
【課題を解決するための手段】
【００１５】
本発明の一実施形態の半導体装置は、参照電流および参照電圧を受けて、参照電流および参照電圧で定まる大きさの第１の周波数のクロック信号を出力する第１のオンチップ発振器と、第１のオンチップ発振器の周囲温度を検出する温度センサと、第１のオンチップ発振器の動作電圧の値を検出する電圧センサと、基準電圧を生成するレファレンス回路を含み、レファレンス回路が出力する基準電圧に基づいて、参照電圧、参照電流、第１のオンチップ発振器の動作電圧を生成する電源モジュールと、第１のオンチップ発振器の周囲温度および第１のオンチップ発振器の動作電圧に対応する、参照電圧および参照電流のトリミングコードを定めたテーブルを記憶する記憶部と、検出された周囲温度および動作電圧に対応する参照電圧および参照電流のトリミングコードをテーブルから読み出して、読み出したトリミングコードに基づいて、参照電流および参照電圧の値を調整するロジック部とを備える。
【発明の効果】
【００１６】
この実施形態によれば、周囲温度や外部電源電圧の変化による、発振周波数の変動を防止することができるととともに、電源モジュールの回路面積を小さくすることができる。
【図面の簡単な説明】
【００１７】
【図１】本発明の実施形態のマイコンの構成を表わす図である。
【図２】（ａ）は、温度コードの例を表わす図である。（ｂ）は、電圧コードの例を表わす図である。
【図３】トリミングコードの例を説明するための図である。
【図４】（ａ）は、トリミングコードによる調整がなされない場合の、温度の変化に対する高速ＯＣＯが出力する高速クロックＨ＿ＣＬＫの周波数の例を表わす図である。（ｂ）は、トリミングコードによって参照電流および参照電圧が調整された後の温度の変化に対する高速クロックＨ＿ＣＬＫの周波数の例を表わす図である。
【図５】電源モジュールおよび高速ＯＣＯの構成を表わす図である。
【図６】（ａ）は、容量Ｃ０の温度依存性を表わす図である。（ｂ）は、参照電圧ＶＲＥＦＣの温度依存性を表わす図である。（ｃ）は、参照電流Ｉｃｏｎｓｔの温度依存性を表わす図である。（ｄ）は、高速クロックＨ＿ＣＬＫの発振周波数Ｆの温度依存性を表わす図である。
【図７】ＶＣＣとＶＤＤＯＣＯの相違を説明するための図である。
【図８】本発明の実施形態のマイコンにおける発振周波数の変動の補償動作の手順を表わすフローチャートである。
【図９】トリミングコードを変更するときのシーケンス例を表わす図である。
【図１０】電源投入、スリープ、およびウエイクアップのシーケンス例を表わす図である。
【発明を実施するための形態】
【００１８】
以下、本発明の実施形態について図面を参照して説明する。
（マイコンの構成）
図１は、本発明の実施形態のマイコンの構成を表わす図である。
【００１９】
図１を参照して、このマイコン（半導体装置）１は、パワーオンリセット部２と、ＬＶＤ（Low Voltage Detector）３と、電圧センサ４と、温度センサ５と、フラッシュメモリ８と、ロジック部１３と、低速ＯＣＯ(On-chip Oscillator)６と、高速ＯＣＯ１０と、スイッチＳＷと、ウオッチドグタイマ９と、通信インタフェース１１と、電源モジュール１２とを備える。
【００２０】
低速ＯＣＯ６は、低速クロックＳ＿ＣＬＫを出力する。
高速ＯＣＯ１０は、高速クロックＨ＿ＣＬＫを出力する。
【００２１】
温度センサ５は、高速ＯＣＯ１０の周囲温度を検出して、２ビットの温度コードを出力する。
【００２２】
図２（ａ）は、温度コードの例を表わす図である。
図２（ａ）を参照して、温度センサ５は、−４５℃以上２０℃未満の温度を検出したときに、温度コード「００」を出力する。温度センサ５は、−２０℃以上９０℃未満の温度を検出したときに、温度コード「０１」を出力する。温度センサ５は、９０℃以上１５０℃未満の温度を検出したときに、温度コード「１０」を出力する。
【００２３】
電圧センサ４は、高速ＯＣＯの動作電圧ＶＤＤＯＣＯの値を検出して、１ビットの電圧コードを出力する。
【００２４】
図２（ｂ）は、電圧コードの例を表わす図である。
図２（ｂ）を参照して、電圧センサ４は、１．８Ｖ以上３．６Ｖ未満の電圧ＶＤＤＯＣＯを検出したときに、電圧コード「０」を出力する。電圧センサ４は、３．６Ｖ以上５．５Ｖ未満の電圧ＶＤＤＯＣＯを検出したときに、電圧コード「１」を出力する。
【００２５】
フラッシュメモリ８は、温度コードおよび電圧コードに対応する３つのトリミングコードを定めたトリミングテーブルを記憶する。
【００２６】
図３は、トリミングコードの例を説明するための図である。
ＴＲＩＭＣＯＤＥ１［２：０］は、３ビットのトリミングコードである。ＴＲＩＭＣＯＤＥ２［４：０］は、５ビットのトリミングコードである。ＴＲＩＭＣＯＤＥ３［７：０］は、８ビットのトリミングコードである。これらのトリミングコードは、温度および／または電圧が変化しても、高速ＯＣＯ１０に供給される参照電流および参照電圧を一定に保ち、したがって高速クロックＨ＿ＣＬＫの発振周波数を一定に保つためのものである。
【００２７】
ロジック部１３は、温度センサ５から出力される温度コードと、電圧センサ４から出力される電圧コードに対応するトリミングコードをフラッシュメモリ８内のトリミングテーブルから読出す。ロジック部１３は、読み出したトリミングコードによって電源モジュール１２で生成されて高速ＯＣＯ１０に供給される参照電流および参照電圧を調整する。ロジック部１３は、ＣＰＵ（Central Processing Unit）で構成される。
【００２８】
図４（ａ）は、トリミングコードによる調整がなされない場合の、温度の変化に対する高速ＯＣＯ１０が出力する高速クロックＨ＿ＣＬＫの周波数の変化の例を表わす図である。
【００２９】
図４（ａ）に示すように、温度が変化すると、高速クロックＨ＿ＣＬＫの周波数が変化している。
【００３０】
図４（ｂ）は、トリミングコードによって参照電流および参照電圧が調整された後の温度の変化に対する高速クロックＨ＿ＣＬＫの周波数の変化の例を表わす図である。
【００３１】
図４（ｂ）に示すように、温度が変化しても、高速クロックＨ＿ＣＬＫは、ほぼ一定に保たれている。
【００３２】
スイッチＳＷは、低速ＯＣＯ６および高速ＯＣＯ１０と接続し、ロジック部１３および通信インタフェース１１に与えるクロックを低速ＯＣＯ６から出力される低速クロックＳ＿ＣＬＫにするか、高速ＯＣＯ１０から出力される高速クロックＨ＿ＣＬＫにするかを切替える。
【００３３】
ウオッチドグタイマ９は、マイコンの異常動作や暴走を検出するためのものである。ウオッチドグタイマ９は、高速な処理を必要としないため、低速ＯＣＯ６から出力される低速クロックＳ＿ＣＬＫで動作する。
【００３４】
通信インタフェース１１は、スレーブとなる装置を制御するための信号を出力する。
ロジック部１３および通信インタフェース１１は、高速な処理が必要となるため、高速ＯＣＯ１０から出力される高速クロックＨ＿ＣＬＫで動作する。
【００３５】
ＬＶＤ３は、判定電圧ＬＶＤＤＥＴ０〜ＬＶＤＤＥＴ２との比較によって、外部から供給される電圧ＶＣＣの値を検出する。
【００３６】
電源モジュール１２は、高速ＯＣＯ１０を動作させる電圧ＶＤＤＯＣＯ、高速ＯＣＯ１０に与える参照電圧ＶＲＥＦＣ、参照電流Ｉｃｏｎｓｔ、ロジック部１３および通信インタフェース１１を動作させる電圧ＶＤＤ、ＬＶＤ３での判定用の電圧ＬＶＤＤＥＴ０、ＬＶＤＤＥＴ１、ＬＶＤＤＥＴ２を生成する。
【００３７】
パワーオンリセット部２は、高速ＯＣＯ１０を動作させる電圧ＶＤＤＯＣＯが立上がったことを検出する。
【００３８】
（電源モジュールおよび高速ＯＣＯの構成）
図５は、電源モジュールおよび高速ＯＣＯの構成を表わす図である。
【００３９】
図５を参照して、ＢＧＲ（Band Gap Reference)５２は、バンドギャップにより基準電圧を生成する。ＢＧＲ５２は、ＢＧＲ５２の出力を調整するための４ビットの信号を受けるピンであるＴＲＩＭＢＧＲ［３：０］を含む。この調整は、プロセス工程でのテストで行われる。
【００４０】
アンプ５１、調整回路５３、および可変抵抗Ｒ０によって、基準電圧ＶＲＥＦが生成される。アンプ５１は、ＢＧＲ５２から出力された基準電圧を受ける。調整回路５３は、複数のＭＯＳトランジスタと可変抵抗Ｒ０との接続を調整し、その結果アンプ５１から出力される基準電圧ＶＲＥＦの値を一定値（たとえば、１．５Ｖ）に調整するための５ビットの信号を受けるピンであるＴＲＩＭＢＵＦ［４：０］を含む。この調整は、プロセス工程でのテストで行われる。
【００４１】
可変抵抗Ｒ０、および調整回路５４によって、高速ＯＣＯ１０に与える参照電圧ＶＲＥＦＣが生成される。調整回路５４は、複数のＭＯＳトランジスタと可変抵抗Ｒ０との接続を調整することによって、参照電圧ＶＲＥＦＣの値を一定値（たとえば、１．０Ｖ）に調整するための３ビットの信号ＴＲＩＭＣＯＤＥ１［２：０］を受けるピンであるＯＳＣ＿ＶＲＥＦ＿ＴＲＩＭ［２：０］を含む。ＴＲＩＭＣＯＤＥ１［２：０］は、電圧および／または温度の変動を調整するために、実動作時に、ロジック部１３から供給される。
【００４２】
調整回路５５は、ＢＧＲ５２から出力された信号の大きさを調整するための５ビットの信号を受けるピンであるＴＲＩＭＢＧＲ＿ＯＳＣ［４：０］を含む。この調整は、プロセス工程でのテストで行われる。
【００４３】
アンプ５６、調整回路５９、可変抵抗部５７、および調整回路５９によって、高速ＯＣＯ１０に与える参照電流Ｉｃｏｎｓｔが生成される。可変抵抗部５７は、参照電流Ｉｃｏｎｓｔの値を微調整するための８ビットの信号ＴＲＩＭＣＯＤＥ３［８：０］を受けるピンであるＯＣＯＩＭＵＬＥ［７：０］を含む。ＴＲＩＭＣＯＤＥ３［８：０］は、電圧および／または温度の変動を調整するために、実動作時に、ロジック部１３から供給される。調整回路５９は、カレントミラー回路と、参照電流Ｉｃｏｎｓｔの値を粗調整するための５ビットの信号ＴＲＩＭＣＯＤＥ２［４：０］を受けるピンであるＳＥＬＩＧＥＮ［４：０］を含む。ＴＲＩＭＣＯＤＥ３［４：０］は、電圧および／または温度の変動を調整するために、実動作時に、ロジック部１３から供給される。
【００４４】
アンプ５７は、基準電圧ＶＲＥＦを基にして、ロジック部１３および通信インタフェース１１を動作させる電圧ＶＤＤを生成する。
【００４５】
アンプ５８は、基準電圧ＶＲＥＦを基にして、高速ＯＣＯ１０を動作させる電圧ＶＤＤＯＣＯを生成する。
【００４６】
ＬＶＤ判定電圧生成モジュール６０は、基準電圧ＶＲＥＦを基にして、ＬＶＤ３での判定用の電圧ＬＶＤＤＥＴ０、ＬＶＤＤＥＴ１、ＬＶＤＤＥＴ２を生成する。
【００４７】
高速ＯＣＯ１０は、スイッチング回路７６、容量Ｃ０、Ｃ１、抵抗７４、比較器７２、容量７３、ＶＣＯ(voltage controlled oscillator)７１とを含む。
【００４８】
ＶＣＯ７１は、電圧（制御電圧）によって、高速クロックＨ＿ＣＬＫの発振周波数を制御する発振器である。
【００４９】
参照電流Ｉｃｏｎｓｔは、容量ノードＶＳＩＧに伝達されて、コンデンサＣ０を充電する。
【００５０】
スイッチング回路７６は、高速クロックＨ＿ＣＬＫが「Ｈ」レベルのときに、参照電流Ｉｃｏｎｓｔを容量ノードＶＳＩＧに入力させる。
【００５１】
容量ノードＶＳＩＧの電位が、参照電圧ＶＲＥＦＣに達したら、比較器７２、ＶＣＯ７１、スイッチング回路７６によってコンデンサＣ０の充電が停止される。これによって、高速クロックＨ＿ＣＬＫの周波数は、参照電流Ｉｃｏｎｓｔおよび参照電圧ＶＲＥＦＣの大きさに応じた値に設定される。
【００５２】
（温度依存性について）
次に、高速クロックＨ＿ＣＬＫの発振周波数の温度依存性について説明する。
【００５３】
図６（ａ）は、コンデンサＣ０の容量の温度依存性を表わす図である。
図６（ａ）に示すように、コンデンサＣ０の容量は、温度によって変化する。変化する割合は、±０．２７％である。
【００５４】
図６（ｂ）は、参照電圧ＶＲＥＦＣの温度依存性を表わす図である。
図６（ｂ）に示すように、容量ＶＲＥＦＣは、温度によって変化する。変化する割合は、±０．３４％である。
【００５５】
図６（ｃ）は、参照電流Ｉｃｏｎｓｔの温度依存性を表わす図である。
図６（ｃ）に示すように、参照電流Ｉｃｏｎｓｔは、温度によって変化する。変化する割合は、±２．２０％である。
【００５６】
図６（ｄ）は、高速クロックＨ＿ＣＬＫの発振周波数Ｆの温度依存性を表わす図である。
【００５７】
図６（ｄ）に示すように、高速クロックＨ＿ＣＬＫの発振周波数Ｆは、温度によって変化する。変化する割合は、±０．４５％である。高速クロックＨ＿ＣＬＫの発振周波数Ｆの変動が、参照電流Ｉｃｏｎｓｔの変動に比べて小さいのは、Ｆ＝Ｉｃｏｎｓｔ／（Ｃ０×ＶＲＥＦＣ）の関係によって、温度による参照電流Ｉｃｏｎｓｔの変動が、温度による容量Ｃ０および参照電圧ＶＲＥＦＣの変動によって相殺されるからである。
【００５８】
高速クロックＨ＿ＣＬＫの発振周波数Ｆの変動は、トリミングコードを用いた参照電流Ｉｃｏｎｓｔおよび参照電圧ＶＲＥＦＣの値の調整によって、さらに小さくなる。
【００５９】
（ＶＤＤＯＣＯの安定化）
図７は、アンプ５８が、安定して電圧ＶＤＤＯＣＯを出力することを説明するための図である。
【００６０】
図７に示すように、外部電源電圧ＶＣＣは、時刻ｔとともに変動している。アンプ５８は、外部電源電圧ＶＣＣで動作するが、アンプ５８におけるフィードバック経路によって、アンプ５８から出力される電圧ＶＤＤＯＣＯは、安定化される。
【００６１】
（発振周波数の変動の補償動作）
図８は、本発明の実施形態のマイコンにおける発振周波数の変動の補償動作の手順を表わすフローチャートである。
【００６２】
図８を参照して、ロジック部１３は、スイッチＳＷの出力を高速ＯＣＯ１０の出力である高速クロックＨ＿ＣＬＫに設定する（ステップＳ１００）。
【００６３】
ロジック部１３は、温度センサ５から出力される温度コード、および電圧センサ４から出力される電圧コードを取得する（ステップＳ１０１）。
【００６４】
次に、ロジック部１３は、取得した温度コードおよび電圧コードに対応するトリミングコードＴＲＩＭＣＯＤＥ１［２：０］、ＴＲＩＭＣＯＤＥ２［４：０］、ＴＲＩＭＣＯＤＥ３［７：０］をフラッシュメモリ８内のトリミングテーブルから読出す。ロジック部１３は、トリミングコードＴＲＩＭＣＯＤＥ１［２：０］、ＴＲＩＭＣＯＤＥ２［４：０］、ＴＲＩＭＣＯＤＥ３［７：０］の値を表わす制御信号を電源モジュール１２に出力する。電源モジュール１２は、制御信号に基づいて参照電圧ＶＲＥＦＣおよび参照電流Ｉｃｏｎｓｔの値を調整する。高速ＯＣＯ１０は、調整された参照電圧ＶＲＥＦＣおよび参照電流Ｉｃｏｎｓｔに基づいて動作する（ステップＳ１０２）。
【００６５】
次に、ロジック部１３は、所定時間Δｔが経過した後（ステップＳ１０３でＹＥＳ）、再び、温度センサ５から出力される温度コード、および電圧センサ４から出力される電圧コードを取得する（ステップＳ１０４）。
【００６６】
ロジック部１３は、取得した温度コードが前回取得した温度コードから変化したか、または取得した電圧コードが前回取得した電圧コードから変化した場合には（ステップＳ１０５でＹＥＳ）、スイッチＳＷの出力を高速ＯＣＯ１０の出力である高速クロックＨ＿ＣＬＫから低速ＯＣＯ６の出力である低速クロックＳ＿ＣＬＫに切替える（ステップＳ１０６）。
【００６７】
次に、ロジック部１３は、取得した温度コードおよび電圧コードに対応するトリミングコードＴＲＩＭＣＯＤＥ１［２：０］、ＴＲＩＭＣＯＤＥ２［４：０］、ＴＲＩＭＣＯＤＥ３［７：０］をフラッシュメモリ８内のトリミングテーブルから読出す。ロジック部１３は、トリミングコードＴＲＩＭＣＯＤＥ１［２：０］、ＴＲＩＭＣＯＤＥ２［４：０］、ＴＲＩＭＣＯＤＥ３［７：０］の値を表わす制御信号を電源モジュール１２に出力する。電源モジュール１２は、制御信号に基づいて参照電圧ＶＲＥＦＣおよび参照電流Ｉｃｏｎｓｔを調整する。高速ＯＣＯ１０は、調整された参照電圧ＶＲＥＦＣおよび参照電流Ｉｃｏｓｔに基づいて動作する（ステップＳ１０７）。
【００６８】
次に、ロジック部１３は、スイッチＳＷの出力を低速ＯＣＯ６の出力である低速クロックＳ＿ＣＬＫから高速ＯＣＯ１０の出力である高速クロックＨ＿ＣＬＫに切替える（ステップＳ１０８）。
【００６９】
（トリミングコード変更時の動作）
図９は、トリミングコードを変更するときのシーケンス例を表わす図である。
【００７０】
図９を参照して、スイッチＳＷは、通常時には、高速ＯＣＯ１０が出力する高速クロックＨ＿ＣＬＫを出力する。スイッチＳＷは、トリミングコードを変更する時には、切替えられて低速ＯＣＯ６が出力する低速クロックＳ＿ＣＬＫを出力する。その間、高速ＯＣＯ１０は、新たなトリミングコードで調整された参照電流Ｉｃｏｎｓｔおよび参照電圧ＶＲＥＦＣによって動作する。高速ＯＣＯ１０が出力する高速クロックＨ＿ＣＬＫが安定するまでの所定時間が経過した後、スイッチＳＷは、切替えられて高速ＯＣＯ１０が出力する高速クロックＨ＿ＣＬＫを出力する。
【００７１】
このように、参照電流Ｉｃｏｎｓｔおよび参照電圧ＶＲＥＦＣの調整中は、スイッチＳＷが、低速ＯＣＯ６が出力する低速クロックＳ＿ＣＬＫをロジック部１３および通信インタフェース１１に供給する。これにより、ロジック部１３および通信インタフェース１１に供給されるクロック信号にハザードが発生したり、Ｄｕｔｙがくずれたりするのを防止することができる。
【００７２】
（高速ＯＣＯを動作させる電圧）
図１０は、電源投入、スリープ、およびウエイクアップのシーケンス例を表わす図である。
【００７３】
図１０を参照して、電源モジュール１２は、外部電源電圧ＶＣＣが立上がると、高速ＯＣＯ１０を動作させる電圧ＶＤＤＯＣＯもオンに立上げる。これは、起動時にロジック部１３が自己診断などを実行できるように、高速クロックＨ＿ＣＬＫを生成する必要があるからである。
【００７４】
次に、パワーオンリセット部２は、高速ＯＣＯ１０を動作させる電圧ＶＤＤＯＣＯが立上がったことを検出し、パワーオンリセット信号ＰＯＮＲＳＴ＿Ｎを「Ｈ」レベルに活性化する。パワーオンリセット信号ＰＯＮＲＳＴ＿Ｎが「Ｈ」レベルに活性化されると、高速ＯＣＯ１０は、高速クロックＨ＿ＣＬＫの生成を開始する。
【００７５】
スリープ状態となると、パワーダウン信号ＰＷＤＮが「Ｈ」レベルとなる。パワーダウン信号ＰＷＤＮが「Ｈ」レベルとなると、まず、高速ＯＣＯ１０は、高速クロックＨ＿ＣＬＫの生成を停止する。その後、電源モジュール１２は、高速ＯＣＯ１０を動作させる電圧ＶＤＤＯＣＯを立下げる。これにより、高速ＯＣＯ１０を動作させる電圧ＶＤＤＯＣＯが立ち下がったにも係らず、不安定な高速クロックＨ＿ＣＬＫが生成されるのを防止することができる。
【００７６】
ウエイクアップ状態となると、パワーダウン信号ＰＷＤＮが「Ｌ」レベルとなる。パワーダウン信号ＰＷＤＮが「Ｌ」レベルとなると、まず、電源モジュール１２は、高速ＯＣＯ１０を動作させる電圧ＶＤＤＯＣＯを立上げる。その後、高速ＯＣＯ１０は、高速クロックＨ＿ＣＬＫの生成を再開する。これにより、高速ＯＣＯ１０を動作させる電圧ＶＤＤＯＣＯが立ち上がっていないにも係らず、不安定な高速クロックＨ＿ＣＬＫが生成されるのを防止することができる。
【００７７】
以上のように、本発明の実施形態によれば、高速ＯＣＯの周囲の温度と高速ＯＣＯ動作電圧を検出して、これらに基づいて、高速ＯＣＯに与える参照電流および参照電圧の値を調整するので、周囲温度や外部電源電圧の変化による、発振周波数の変動を防止することができる。また、高速ＯＣＯに与える参照電流および参照電圧、ロジック部を動作させる電源電圧ＶＤＤ、高速ＯＣＯを動作させる電源電圧ＶＤＤＯＣＯは、ＢＧＲで生成された基準電圧を共通に用いて生成されるので、回路の共有化を図ることができ、電源モジュールの回路面積を小さくすることができる。
【００７８】
（変形例）
本発明は、上記の実施形態に限定されるものではなく、以下のような変形例も含む。
【００７９】
（１）  トリミングコード
本発明の実施形態では、温度および／または外部電源電圧が変化しても、高速ＯＣＯ１０に供給される参照電流および参照電圧、したがって高速クロックＨ＿ＣＬＫの発振周波数を一定に保つための値にトリミングコードを設定したが、これに限定するものではない。高速クロックＨ＿ＣＬＫの発振周波数は一定値にするのではなく、発振周波数が温度および／または外部電源電圧に応じた最適な値になるように、トリミングコードの値を設定するものとしてもよい。
【００８０】
（２）  高速クロックＨ＿ＣＬＫ
本発明の実施形態では、ロジック部および通信インタフェースに高速クロックＨ＿ＣＬＫを供給するものとしたが、これら以外のマイコン内の構成要素にも高速クロックＨ＿ＣＬＫを供給するものとしてもよい。たとえば、周辺バスに高速クロックＨ＿ＣＬＫを供給するものとしてもよい。
【００８１】
今回開示された実施の形態はすべての点で例示であって制限的なものではないと考えられるべきである。本発明の範囲は上記した説明ではなくて特許請求の範囲によって示され、特許請求の範囲と均等の意味および範囲内でのすべての変更が含まれることが意図される。
【符号の説明】
【００８２】
１  マイコン、２  パワーオンリセット部、３  ＬＶＤ、４  電圧センサ、５  温度センサ、６  低速ＯＣＯ、８  フラッシュメモリ、９  ウオッチドグタイマ、１０  高速ＯＣＯ、１１  通信インタフェース、１２  電源モジュール、１３  ロジック部、５１，５６，５７，５８  アンプ、５２  ＢＧＲ、Ｒ０  可変抵抗、５７  可変抵抗部、５３，５４，５５，５９  調整回路、６０  ＬＶＤ判定電圧生成モジュール、Ｃ０，Ｃ１，７３  容量、７４  抵抗、７１  ＶＣＯ、７２  比較器、７６  スイッチング回路。
【図１】
2011166368.tif 000003
【図２】
2011166368.tif 000004
【図３】
2011166368.tif 000005
【図４】
2011166368.tif 000006
【図５】
2011166368.tif 000007
【図６】
2011166368.tif 000008
【図７】
2011166368.tif 000009
【図８】
2011166368.tif 000010
【図９】
2011166368.tif 000011
【図１０】
2011166368.tif 000012