JP2010092194A - マイクロコントローラ - Google Patents

マイクロコントローラ Download PDF

Info

Publication number
JP2010092194A
JP2010092194A JP2008260289A JP2008260289A JP2010092194A JP 2010092194 A JP2010092194 A JP 2010092194A JP 2008260289 A JP2008260289 A JP 2008260289A JP 2008260289 A JP2008260289 A JP 2008260289A JP 2010092194 A JP2010092194 A JP 2010092194A
Authority
JP
Japan
Prior art keywords
circuit
standby
voltage
cpu
detection signal
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.)
Granted
Application number
JP2008260289A
Other languages
English (en)
Other versions
JP4464451B2 (ja
Inventor
Kimiharu Eto
公治 江藤
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.)
NEC Electronics Corp
Original Assignee
NEC Electronics Corp
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 NEC Electronics Corp filed Critical NEC Electronics Corp
Priority to JP2008260289A priority Critical patent/JP4464451B2/ja
Priority to US12/379,732 priority patent/US8151130B2/en
Publication of JP2010092194A publication Critical patent/JP2010092194A/ja
Application granted granted Critical
Publication of JP4464451B2 publication Critical patent/JP4464451B2/ja
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F1/00Details not covered by groups G06F3/00 - G06F13/00 and G06F21/00
    • G06F1/26Power supply means, e.g. regulation thereof
    • G06F1/30Means for acting in the event of power-supply failure or interruption, e.g. power-supply fluctuations

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Power Sources (AREA)
  • Microcomputers (AREA)

Abstract

【課題】スタンバイから通常動作に復帰する場合、誤動作する可能性がある。
【解決手段】本発明は、電源電圧が第1の電圧値以下のとき第1の検出信号を生成する第1の電圧検出回路と、電源電圧が第1の電圧値より低い第2の電圧値のとき第2の検出信号を生成する第2の電圧検出回路と、通常動作を行う通常動作モードと、通常動作よりも低消費電力動作するスタンバイモードを切り替える機能を有し、第1の検出信号が生成されると、通常動作モードからスタンバイモードに移行するための割り込み処理動作を行い、第2の検出信号が生成されると、割り込み処理動作に関わらず、スタンバイモードに移行する中央処理回路と、中央処理回路が、割り込み処理動作完了前に、スタンバイモードに移行したことを示す情報を記憶する第1の記憶回路と、を有するマイクロコントローラである。
【選択図】図1

Description

本発明は、マイクロコントローラに関するものである。
電圧検出機能を有するマイクロコントローラとして、特許文献1のような技術がある。特許文献1のマイクロコントローラ1は、リセット回路2と、CPU3とを有する。リセット回路2は、電圧検出用IC21、22を有している。CPU3は、レジスタ情報退避用のメモリである内部RAM31を有する。
電圧検出用IC21、22により、電源電圧VAが、所定の電圧VR以下になると、ロウレベルの割り込み信号であるNMI(ノンマスカブルインターラプト)信号VnmiをCPU3に出力する。なお、所定の電圧VRの電圧値は、マイクロコントローラ1の正常動作が可能な電圧値が設定される。また、NMI信号Vnmiはロウアクティブである。
電源電圧VAが低下すると電圧検出用IC21がロウレベルのNMI信号VnmiをCPU3へ出力する。このNMI信号VnmiをCPU3が入力すると、CPU3は、割り込みルーチンにより内部RAM31にレジスタ情報を退避させるバックアップ前処理動作を行う。その後、電源電圧VAが、電圧VRより低い電圧V1以下になった場合、電圧検出用IC22の出力信号Vstnbyをロウレベルにして、CPU3をスタンバイする。但し、上述したバックアップ前処理動作には、少なくとも内部RAM31にレジスタ情報を退避させる時間が必要であり、そのバックアップ前処理動作に必要な時間を期間Tpsとする。この期間Tpoを確保するよう、電源電圧VAを供給する電源回路の平滑コンデンサの容量の設定を行う。
以上のようにマイクロコントローラ1は、電源電圧VAが変動し、電圧VRより低い電圧になった場合、CPU3からRAM31に必要な情報を退避し、データのバックアップを行う。
特開昭62−80716号公報
ここで、マイクロコントローラ1は、電源電圧VAが所定の電圧VR以下になってから電圧V1になるまで、少なくとも期間Tpoが必要である。これは、この期間Tpoで、内部RAM31にレジスタ情報を退避させるバックアップ前処理動作を完了させる必要があるためである。そして、例えば充電等の操作により電源電圧VAが上昇した場合、マイクロコントローラ1は、期間Tpoに行ったバックアップ前処理動作により内部RAM31に保持するデータを利用することで、通常動作状態に復帰可能となる。
しかし、例えば電源回路の故障等で電源電圧VAが急速に低下し、期間Tpoが終了するまでに電圧V1以下になった場合、CPU3が行う内部RAM31にレジスタ情報を退避させるバックアップ前処理動作が完了せず、途中で終了してしまう。この場合、再び電源電圧VAが所定の電圧VR以上に上昇し、マイクロコントローラ1が通常動作モードになったとき、このバックアップした内部RAM31のデータに基づいてCPU3が動作を再開することになる。しかし、この内部RAM31保持しているデータは、上述したように途中で終了したバックアップ前処理動作に基づいており、正しいデータの値を保持していない。このため、CPU3がこの正しくないデータにより動作を再開すると、CPU3が誤動作を起こす可能性がある。
また、期間T1を十分取れるためには、電源回路にある平滑コンデンサの容量を大きくしなければならない。しかし、この場合、非常に大きな容量のコンデンサを用いることになり回路規模が増大したり、この大容量の平滑コンデンサを充電するため起動時間が長くなる問題が生じる。
本発明は、電源電圧が第1の電圧値以下に低下したとき、第1の検出信号を生成する第1の電圧検出回路と、前記電源電圧が前記第1の電圧値より低い第2の電圧値以下に低下したとき、第2の検出信号を生成する第2の電圧検出回路と、通常動作を行う通常動作モードと、通常動作よりも低消費電力で動作するスタンバイモードを切り替える機能を有し、前記第1の検出信号が生成されると、前記通常動作モードから前記スタンバイモードに移行するための割り込み処理動作を行い、前記第2の検出信号が生成されると、前記割り込み処理動作に関わらず、前記スタンバイモードに移行する中央処理回路と、前記中央処理回路が、前記割り込み処理動作完了前に、前記スタンバイモードに移行したことを示す情報を記憶する第1の記憶回路と、を有するマイクロコントローラである。
本発明にかかるマイクロコントローラによれば、通常動作モードからスタンバイモードに移行する割り込み処理動作が完了したか否かが、第1の記憶回路が記憶する情報により判定できる。よって、電源電圧が上昇し、当該マイクロコントローラが通常動作モードで動作するとき、割り込み処理動作が正確に完了していない場合にはリセット等の処理をして中央処理回路の誤作動を起こすのを防ぐことができる。
本発明にかかるマイクロコントローラは、スタンバイモードから復帰した場合の誤動作を防ぐことができる。
発明の実施の形態1
以下、本発明を適用した具体的な実施の形態1について、図面を参照しながら詳細に説明する。図1に本実施の形態1にかかるマイクロコントローラ100の構成の一例を示す。図1に示すように、マイクロコントローラ100は、電圧検出器111〜113と、割り込みコントローラ121と、スタンバイコントローラ122と、リセットコントローラ123と、CPU130と、ROM141、RAM142と、フラッシュメモリ143と、スペシャルファンクションレレジスタ144と、フラグレジスタ150と、外部リセット信号入力端子160とを有している。
CPU(中央処理回路)130は、マイクロコントローラ100が通常動作モード時には、制御プログラムや入力データに基づいて、マイクロコントローラ100内の各種処理を行う中央制御装置である。また、CPU130は、プログラムカウンタ(PC)131、プロセッサステータスワード(PSW)132等を有し、電源電圧VDDを電源として動作する。プログラムカウンタ131は、CPU130が次に実行する命令が格納されているRAM142等のアドレスを記憶する。プロセッサステータスワード132は、CPU130の現在の動作モードや演算器にオーバーフローが発生しているか等のプロセッサの状態を保持する。また、CPU130は、マイクロコントローラ100がスタンバイモード時では動作を停止する。
ここで、本実施の形態1で言うマイクロコントローラ100のスタンバイモードとは、CPU130が通常動作モードで行っていた処理動作を停止する状態をいうものとする。よって、CPU130が動作しないため、CPU命令を格納するRAM142、フラッシュメモリ143、スペシャルファンクションレレジスタ144等も動作を停止する。このことにより、マイクロコントローラ100のシステムが、ほぼ停止状態となり、マイクロコントローラ100は、低消費電力動作が可能となる。但し、このスタンバイモードでは、RAM142、スペシャルファンクションレレジスタ144等の記憶するデータは保持される。このため、RAM142、スペシャルファンクションレレジスタ144等には記憶データが破壊されないよう最低限の電力供給が行われる。但し、CPU130は、このスタンバイモード時に完全に動作停止せず、後述する割り込み信号Sig_Iやリセット信号が入力された場合は、その信号入力に応じた処理動作を行うものとする。
以後、「CPU130がスタンバイ状態にある」と表現する場合、マイクロコントローラ100がスタンバイモードであるのと同様の意味であるとし、「CPU130が通常動作モードにある」と表現する場合、マイクロコントローラ100が通常動作モードであるのと同様の意味であるとする。
なお、スタンバイモードの他の態様として、CPU130の動作クロック周波数を低下する等の動作状態としてもよい。このことにより、CPU130は、低消費電力モードへ移行し、電源電圧VDDが更に低下しても動作可能となる。このように、「スタンバイ」の定義として、電源電圧VDDが通常動作時よりも低い状態であっても、マイクロコントローラ100のシステムが誤作動を起こさない動作モードを指すものとする。
ROM141は、CPU130が処理を行うための制御プログラム等が格納されている。読み出し専用であり保持するデータの書き換え等はできない。RAM142は、CPU130により使用される主記憶装置であり、ROM141やフラッシュメモリ143等から読み出された制御プログラムやデータ等のCPU命令が展開される。CPU130は、このCPU命令に従い処理動作を行う。RAM142は、電源電圧の供給がないと記憶したデータの保持ができない。なお、上述したようにCPU130がスタンバイ状態、つまり、動作を停止した状態では、CPU命令を記憶する当該RAM142も動作を停止する。
フラッシュメモリ143は、不揮発性の記憶装置であり、電源の供給が無くても記憶した情報を保持することができる。また、情報の書き換え等が可能である。フラッシュメモリ143もRAM142同様、CPU命令やデータを記憶することが可能であり、CPU130がスタンバイ状態のとき動作を停止する。
スペシャルファンクションレレジスタ144は、CPU130の動作を決定させたり動作状態を調べたりするためのレジスタである。CPU130がスタンバイ状態のとき、同様に動作を停止する。
電圧検出器111は、電源電圧VDDをモニターし、電源電圧VDDが所定の電圧値VIに低下した場合、ハイレベルの検出信号Vdtct_Iを割り込みコントローラ121へ出力する。更に、電圧検出器111は、電源電圧VDDが所定の電圧値VI以上になった場合、ロウレベルの検出信号Vdtct_Iを割り込みコントローラ121へ出力する。この電圧VIは、例えば、CPU130がフラッシュメモリ143に対して行うデータの書き込み、読み出しに必要な電圧2.7Vより少し高電位(一例として2.9V程度)等に設定される。
割り込みコントローラ121は、ハイレベルの検出信号Vdtct_Iを入力すると、割り込み信号Sig_Iにより、CPU130に対してスタンバイ状態に移行するための割り込み処理動作を開始させる。このため、CPU130は、スタンバイ状態に移行するための割り込みルーチンをROM141もしくはRAM142等から呼び出し、その処理動作を行う。このスタンバイ状態に移行するための処理動作では、CPU130内部のプログラムカウンタ131、プロセッサステータスワード132の情報、スペシャルファンクションレジスタ144のレジスタ情報等、CPU処理動作に密接に関係する情報を、RAM142もしくはフラッシュメモリ143に退避させる等の処理が行われる(以後、この処理動作を「スタンバイ用退避処理」と称す)。なお、RAM142、フラッシュメモリ143は、退避した情報をバックアップする記憶回路(第2の記憶回路)ということもできる。
ここで、CPU130は、このスタンバイ用退避処理が完了した場合、フラグレジスタ150にマスク制御信号を出力する。もしくは、スタンバイ用退避処理が完了した場合、CPU130は、電圧検出器112に対して、動作しないように制御する動作停止信号を送ってもよい。更に、スタンバイコントローラ122に対しても動作しないように制御する動作停止信号を送ってもよい。
また、割り込みコントローラ121は、ロウレベルの検出信号Vdtct_Iを入力すると、割り込み信号Sig_Iにより、スタンバイモード下で動作を停止しているCPU130を起動させ通常動作モードへ復帰させる。このため、CPU130は、スタンバイからの復帰用の割り込みルーチンをROM141等から呼び出し、スタンバイ復帰のための処理動作を行う(以後、この処理動作を「スタンバイ復帰処理」と称す)。このスタンバイ復帰処理において、CPU130は、後述するフラグレジスタ150が記憶するフラグ「I」「S」「R」の値に応じて、上述したRAM142もしくはフラッシュメモリ143等へ退避させたデータをもとにスタンバイ直前の状態に復帰するか否かを判断する。
また、このスタンバイ復帰処理時には電源電圧VDDが電圧VI以上になっており、CPU130は通常動作モードで動作可能である。このため、CPU130は、後述するフラグレジスタ150の記憶するフラグの値をリセット、つまり「0」にするようにしてもよい。
電圧検出器112は、電源電圧VDDをモニターし、電源電圧VDDが所定の電圧値VSに低下した場合、ハイレベルの検出信号Vdtct_Sをスタンバイコントローラ122へ出力する。但し、電圧値VIとVSの関係は、VI>VSである。なお、CPU130から動作停止信号を入力している場合は、このハイレベルの検出信号Vdtct_Sを出力しない。なお、電圧検出器112は、電源電圧VDDが所定の電圧値VS以上になった場合、ロウレベルの検出信号Vdtct_Sをスタンバイコントローラ122へ出力する。
ここで、電圧VS以下の電圧では、CPU130は通常動作モードで、正常な処理動作が困難であり、誤作動を起こす可能性があるものとする。よって、上述したスタンバイ用退避処理動作中に、電源電圧VDDが電圧VS以下になると、この割り込み処理が正常に行えない可能性がある。この場合、スタンバイ用退避処理において、RAM142やフラッシュメモリ143に書き込まれる情報が正しいか否か補償されない。更にはCPU130が誤作動し、RAM142やフラッシュメモリ143の保持する他のデータを破壊する可能性もある。
スタンバイコントローラ122は、ハイレベルの検出信号Vdtct_Sを入力すると、CPU130に対して、スタンバイ信号を出力する。このスタンバイコントローラ122から出力されるスタンバイ信号により、CPU130は、強制的にスタンバイ状態に移行する。但し、既にスタンバイ用退避処理が完了している場合、既にCPU130がスタンバイ状態となっており、このスタンバイ信号は無視される。なお、CPU130から動作停止信号を入力している場合、スタンバイコントローラ122はこのスタンバイ信号を出力しない。
電圧検出器113は、電源電圧VDDをモニターし、電源電圧VDDが所定の電圧値VRに低下した場合、ハイレベルの検出信号Vdtct_Rをリセットコントローラ123へ出力する。但し、電圧値VSとVRの関係は、VS>VRである。ここで、電圧VR以下の電圧では、CPU130の動作はもちろん、RAM142やスペシャルファンクションレレジスタ144も記憶している情報の保持動作が困難であるものとする。
リセットコントローラ123は、ハイレベルの検出信号Vdtct_Rを入力するとリセット信号をCPU130へ出力する。このリセット信号によりCPU130、RAM142、後述するフラグレジスタ150等がリセットされる。つまり、マイクロコントローラ100のシステムがリセットされる。また、リセットコントローラ123は、外部リセット信号入力端子160から入力した外部リセット信号やウオッチドッグタイマ145等の信号に応じてもリセット信号をCPU130等へ出力し、リセットすることが可能である。なお、フラッシュメモリ143は不揮発性記憶装置のため、この時点では保持情報をリセットされない。しかし、上述したようにマイクロコントローラ100のシステム全体がリセットされるため、その後、マイクロコントローラ100が通常動作モードとなったとき、CPU130により、当該フラッシュメモリ143にスタンバイ用退避処理時に記憶した情報は破棄(リセット)される。
図2に電圧検出器111〜113の回路構成の一例を示す。なお、電圧検出器111〜113は、同様の構成であるため、電圧検出器111を例に説明する。電圧検出器111は、抵抗素子R301、R302と、基準電圧源303と、コンパレータ304とを有する。抵抗素子R301、R302は電源電圧VDDと接地電圧GND間に直列に接続される。抵抗素子R301、R302の中間ノードが、コンパレータ304の反転入力端子に入力される。基準電圧源303は、所定の電圧をコンパレータ304の非反転入力端子に入力する。基準電圧源303の生成する電圧は、電源電圧VDDが電圧VIになったときの抵抗素子R301、R302の中間ノードの電位と同じ電圧値とする。コンパレータ304は、反転入力端子と非反転入力端子の電圧を比較し、比較結果を出力端子から出力する。このコンパレータ304の出力信号が検出信号Vdtct_Iとなる。
このような構成により、電圧検出器111は、電源電圧VDDが電圧VI以下になるとハイレベル、つまり論理値「1」の検出信号Vdtct_Iを出力する。電圧検出器112、113も同様に、電源電圧VDDがそれぞれ電圧VS、VR以下になるとハイレベル、つまり論理値「1」の検出信号Vdtct_S、Vdtct_Rをそれぞれ出力する。
フラグレジスタ150(第1の記憶回路)は、電圧検出器111〜113の出力するそれぞれの検出信号Vdtct_I、Vdtct_S、Vdtct_Rの値に応じて、フラグ「I」「S」「R」の値を変化させ記憶する。具体的には、検出信号Vdtct_Iがハイレベルとなるとフラグ「I」の値を「0」から「1」とする。また、検出信号Vdtct_Sがハイレベルとなるとフラグ「S」の値を「0」から「1」とする。検出信号Vdtct_Rがハイレベルとなるとフラグ「R」の値を「0」から「1」とする。但し、上述したスタンバイ用退避処理が完了した場合、CPU130からのマスク制御信号が入力される。このマスク制御信号が入力されると、フラグレジスタ150は、フラグ「S」の値をマスクし、検出信号Vdtct_Sがハイレベルとなっても「1」への書き換えはできないようになる。但し、電圧検出器112がCPU130からの動作停止信号により動作停止している場合、このマスク処理は行わなくてよい。
なお、各検出信号がハイレベルになり変化したフラグの値は、各検出信号がロウレベルになっても、「0」に戻らず「1」が保持される。そして、スタンバイ状態から通常動作へ復帰したCPU130は、これらのフラグの値を確認し、その値に応じた復帰処理を行う。そして、CPU130は、マイクロコントローラ100が通常動作モードに移行後、フラグレジスタ150を初期化しフラグの値を全て「0」に戻す。
ここで、電源電圧VDDが電圧VRより低下した場合には、リセットコントローラ123により当該フラグレジスタ150もリセットされる。但し、フラグ「R」の値はリセットされず「1」を保持するものとする。また、フラグレジスタ150は、ロジック回路で構成され、低電圧下でも動作が可能であり、電源電圧VDDが電圧VRより低下しても記憶した各フラグの値を保持することができるものとする。
外部リセット信号入力端子160は、外部リセット信号を入力する。リセットコントローラ123が、この外部リセット信号を入力すると、検出電圧信号Vdtct_Rに関わらず、CPU130等にリセット信号を出力する。また、この外部リセット信号により、フラグレジスタ150がリセットされるようにしてもよい。但し、上述した動作と同様、フラグ「R」の値はリセットされず「1」を保持するものとする。
次に、本実施の形態1にかかるマイクロコントローラ100の動作について図面を参照しながら詳細に説明する。図3〜6に電源電圧VDDが低下し、再び上昇する4パターンに対する検出信号Vdtct_I、Vdtct_S、Vdtct_Rの信号波形を示す。また、フラグレジスタ150の各フラグの値を示す。
図3に示すパターンでは、時刻t1以前に、電源電圧VDDは、電圧VI以上である。このため、マイクロコントローラ100が通常動作を行い、CPU130は通常の処理動作を行っている。時刻t1に、電源電圧VDDが電圧VIより低下する。このため、電圧検出器111は、ハイレベルの検出信号Vdtct_Iを割り込みコントローラ121に出力する。また、フラグレジスタ150のフラグ「I」の値が、「0」から「1」に書き換えられる。
割り込みコントローラ121は、ハイレベルの検出信号Vdtct_Iを入力し、CPU130をスタンバイ状態にさせるための割り込み信号Sig_Iを出力する。CPU130は、この割り込み信号Sig_Iに応じて、通常動作を停止し、スタンバイ用退避処理を開始する。このスタンバイ用退避処理動作は期間Tpsを要し、時刻t2に完了してCPU130がスタンバイとなる。よって、マイクロコントローラ100がスタンバイモードとなる。
その後、電源電圧VDDは、電圧VS以下には低下せず、時刻t3に再び電圧VI以上に上昇する。このため、電圧検出器111は、ロウレベルの検出信号Vdtct_Iを割り込みコントローラ121に出力する。この割り込みコントローラ121からの割り込み信号Sig_Iに応じて、CPU130は通常動作モードへ復帰するためのスタンバイ復帰処理を開始する。このスタンバイ復帰処理において、CPU130はフラグレジスタ150のフラグ「I」「S」「R」の値を確認する。そして、フラグ「I」の値が「1」、「S」「R」の値が「0」であることを確認し、スタンバイ用退避処理でRAM142やフラッシュメモリ143に退避させた情報が正しい値で記憶されていると判定する。その後、CPU130は、RAM142やフラッシュメモリ143に退避させた情報を利用し、スタンバイの直前の状態に復帰する。また、CPU130は、マイクロコントローラ100が通常動作モードへ移行後、フラグレジスタ150をリセットする。
なお、図3の時刻t2以降で、マイクロコントローラ100がスタンバイモードになった後、電源電圧VDDが電圧VS以下に低下する場合も考えられる。この場合、時刻t2で既にCPU130がスタンバイ状態に移行完了している。このため、電源電圧VDDが電圧VS以下に低下したときに強制スタンバイは行われない。このため、マイクロコントローラ100のシステムにとって、電源電圧VDDが電圧VS以下に低下しても何ら問題がない。また、この場合では、スタンバイ用退避処理の完了後、CPU130のマスク制御信号に応じて、フラグレジスタ150はフラグ「S」の値をマスクする。よって、このフラグ「S」の値は変更されず、「0」のままとなる。この後、電源電圧VDDが電圧VIより高くなり、CPU130が通常動作モードへ復帰する場合、復帰処理において、CPU130はフラグレジスタ150のフラグ「I」の値が「1」、「S」「R」の値が「0」であることを確認し、スタンバイ用退避処理でRAM142やフラッシュメモリ143に退避させた情報が正しい値で記憶されていると判定する。
また、更に時刻t2以降で、電源電圧VDDが電圧VR以下に低下マイクロコントローラ100がスタンバイモードになった後、電源電圧VDDが電圧VR以下に低下する場合も考えられる。この場合でも、既にCPU130がスタンバイ状態に移行完了しており、電圧VR以下になるまで、フラグレジスタ150のフラグ「S」の値は「0」である。その後、電圧VR以下に低下し、電圧検出器113は、ハイレベルの検出信号Vdtct_Rをリセットコントローラ123に出力する。リセットコントローラ123は、リセット信号をCPU130に出力し、マイクロコントローラ100のシステムをリセット(RAM142等をリセット)する。また、フラグレジスタ150のフラグ「R」の値を「1」、「I」「S」の値を「0」にする。その後、電源電圧VDDが電圧VIより高くなり、CPU130が通常動作モードへ復帰する場合、スタンバイ復帰処理において、CPU130はフラグレジスタ150の記憶したフラグの値を確認する。そして、フラグ「R」の値が「1」であることを確認し、CPU130は、マイクロコントローラ100のシステムがリセットされた判定する。その後、CPU130は、フラッシュメモリ143に退避させた情報を廃棄し、マイクロコントローラ100のシステムを初期化する。
また、図4に示すパターンでは、時刻t1に電源電圧VDDが電圧VIより低下し、上述したマイクロコントローラ100のスタンバイ移行の割り込み処理が開始される。しかし、割り込み処理が完了する期間Tps内の時刻t2で再び電源電圧VDDが電圧VIより上昇する。この場合、時刻t2で、電圧検出器111は、ロウレベルの検出信号Vdtct_Iを割り込みコントローラ121に出力する。この割り込みコントローラ121からの割り込み信号Sig_Iに応じて、CPU130は、スタンバイ復帰処理を中止し、通常動作モードへ復帰する。このとき、CPU130はスタンバイへ移行していないため、通常動作モードへの復帰処理においてRAM142やフラッシュメモリ143に退避させた情報は利用しない。また、図3のパターンと同様、CPU130は、通常動作モードへ移行後、フラグレジスタ150をリセットする。
次に、図5のパターンを説明する。時刻t1以前は、図3のパターンと同様である。時刻t1に、電源電圧VDDが電圧VIより低下する。この後、図3のパターンと同様、割り込みコントローラ121からの割り込み信号Sig_Iに応じて、CPU130は通常動作を停止し、スタンバイ移行のための割り込み処理動作を開始する。しかし、図3のパターンとは異なり、スタンバイ用退避処理が完全に完了する時刻t3より前の時刻t2に電源電圧VDDが電圧VSより低下する。つまり、時刻t1から期間Tpsより短い期間T1で電源電圧VDDが電圧VSより低下する。このため、電圧検出器112は、ハイレベルの検出信号Vdtct_Sをスタンバイコントローラ122に出力する。CPU130は、スタンバイコントローラ122からのスタンバイ信号に応じて、スタンバイ用退避処理を中止し、強制的にスタンバイ状態に移行する。また、このとき、フラグレジスタ150のフラグ「S」の値が、「0」から「1」に書き換えられる。
その後、電源電圧VDDが上昇し、時刻t4に電圧VSより高くなり、時刻t5に電圧VIより高くなる。このため、時刻t5に電圧検出器111は、ロウレベルの検出信号Vdtct_Iを割り込みコントローラ121に出力する。割り込みコントローラ121は、ロウレベルの検出信号Vdtct_Iに応じた割り込み信号Sig_IをCPU130に出力する。この割り込み信号Sig_Iを入力したCPU130は、スタンバイ復帰処理を開始する。このスタンバイ復帰処理において、CPU130はフラグレジスタ150の記憶するフラグの値を確認する。そして、フラグ「I」「S」の値が「1」、「R」の値が「0」であることを確認する。このことから、CPU130は、スタンバイ用退避処理が中断されRAM142やフラッシュメモリ143に退避させた情報が正しい値で記憶されていないと判定する。その後、CPU130は、RAM142やフラッシュメモリ143に退避させた情報を廃棄し、マイクロコントローラ100のシステムを初期化する。
なお、この図5のパターンでは、電源電圧VDDが電圧VIより上昇した時点で、CPU130がスタンバイ復帰処理を開始しているが、電源電圧VDDが電圧VS以上に上昇した時点(時刻t4)で、この復帰処理を開始してもよい。
また、図6に示すパターンでは、図5のパターンと同様、スタンバイ用退避処理が完全に完了する時刻t3より前の時刻t2に電源電圧VDDが電圧VSより低下する。このため、図5のパターンと同様、CPU130は、スタンバイ用退避処理を中止し、強制的にスタンバイ状態に移行する。よって、フラグレジスタ150のフラグ「S」の値は「1」となる。そして、更に時刻t4に電源電圧VDDが電圧VRより低下する。このため、電圧検出器113は、ハイレベルの検出信号Vdtct_Rをリセットコントローラ123に出力する。また、フラグレジスタ150のフラグ「R」の値が「0」から「1」となる。
そして、リセットコントローラ123は、リセット信号をCPU130に出力しリセットする。これに応じて、CPU130内のプログラムカウンタ131、プロセッサステータスワード132等がリセットされる。更に、RAM142、スペシャルファンクションレレジスタ144等もリセットされ、マイクロコントローラ100のシステムがリセットされる。但し、フラグレジスタ150のフラグ「R」の値は、リセットされず、「1」を保持する。
その後、電源電圧VDDが上昇し、時刻t5に電圧VRより高くなり、時刻t6に電圧VSより高くなる。更に、時刻7で電源電圧VDDが電圧VIより高くなり、図5のパターンと同様、CPU130がスタンバイ復帰処理を開始する。このスタンバイ復帰処理において、CPU130はフラグレジスタ150の記憶するフラグの値を確認する。そして、フラグ「R」の値が「1」であることを確認する。このことから、CPU130は、マイクロコントローラ100のシステムがリセットされた判定する。その後、CPU130は、フラッシュメモリ143に退避させた情報を廃棄し、マイクロコントローラ100のシステムを初期化する。
ここで、図7のフローチャートを用いて、上述したマイクロコントローラ100が、スタンバイから通常動作モード動作に復帰するための手順を示す。図7に示すように、CPU130は、電源電圧VDDが電圧VI以上である場合(S101)、フラグレジスタ150が記憶するフラグの値を確認する(S102)。フラグ「R」の値が「1」であるか否か判定する(S103)。R=1である場合(S103YES)、マイクロコントローラ100のシステムを初期化する(S104)。その後、マイクロコントローラ100は、通常のシステム動作を行う(S105)。
R=1でなくR=0の場合(S103NO)、CPU130は、フラグ「S」の値が「1」であるか否か判定する(S106)。S=1である場合(S106YES)、スタンバイ用退避処理が途中で終了されたとみなし、マイクロコントローラ100のシステムを初期化する(S107)。その後、マイクロコントローラ100は、通常のシステム動作を行う(S108)。
S=1でなくS=0の場合(S106NO)、CPU130は、フラグ「I」の値が「1」であるか否か判定する(S109)。I=1である場合(S109YES)、スタンバイ用退避処理が完了したとみなし、CPU130は、RAM142等にバックアップした情報を基にスタンバイ直前の状態への復帰処理を行う(S110)。その後、マイクロコントローラ100は、通常のシステム動作を行う(S111)。
I=1でなくI=0の場合(S109NO)は、マイクロコントローラ100の電源立ち上げ初期状態であるため、CPU130は、マイクロコントローラ100のシステムを初期化する(S112)。その後、マイクロコントローラ100は、通常のシステム動作を行う(S113)。
ここで、従来のマイクロコントローラ1は、図8に示すように、時刻t1に電源電圧VAが所定の電圧VR以下になると、ロウアクティブの割り込み信号NMI信号Vnmiをロウレベルにし、CPU3が割り込みルーチンにより内部RAM31にレジスタ情報を退避させるバックアップ前処理動作を行う。ここで、このバックアップ前処理動作が完了するには、期間Tpoが必要である。このために、電源電圧VAを供給する電源回路の平滑コンデンサの容量を十分大きくし、CPU3をスタンバイさせる電圧V1以下になる期間を十分確保している。しかし、図8に示すように、電源回路の故障等により電源電圧VAが急激に低下し、期間Tpoが終了する前の時刻t2に電源電圧VAが電圧V1以下になった場合、前記バックアップ前処理動作が途中で終了し、CPU3がスタンバイとなるか、もしくは、リセットされる。時刻t1からt2の期間をT2とすると、Tpo>T2となる。期間T2では、バックアップ前処理動作が完了せず、内部RAM31にバックアップされるデータが正確である保証が得られない。
このように、マイクロコントローラ1では、バックアップ前処理動作が途中で終了すると、内部RAM31にバックアップされるデータが不完全な状態で記憶される。このため、再び電源電圧VAが所定の電圧VR以上に上昇し、マイクロコントローラ1が、この内部RAM31のデータを基に再び通常動作を行うと誤作動を起こす可能性が高い。
ここで、本実施の形態1のマイクロコントローラ100は、スタンバイ用退避処理が途中で終了されたかどうか、またはシステムがリセットされたかどうかをCPU130が判断することが可能なフラグレジスタ150を有している。このフラグレジスタ150の記憶するフラグの値をCPU130が、スタンバイから通常動作モードへの復帰処理時、もしくは、リセットから通常動作モードへの復帰処理時に確認することで、RAM142、もしくはフラッシュメモリ143にバックアップされたデータが正しいか否かが判定できる。さらに、スタンバイ用退避処理が途中で終了されたと判定した場合、またはシステムがリセットされたと判定した場合は、CPU130はバックアップされたデータを破棄し、マイクロコントローラ100を初期化する。よって、本実施の形態1のマイクロコントローラ100は、スタンバイ状態からの復帰後の誤作動を起こすことを防ぐことができる。
更に、本実施の形態1のマイクロコントローラ100は、従来のマイクロコントローラ1のように、電源回路(不図示)に対して、必要以上に大きい平滑コンデンサの容量を要求しない。
発明の実施の形態2
以下、本発明を適用した具体的な実施の形態2について、図面を参照しながら詳細に説明する。図9に本実施の形態2にかかるマイクロコントローラ200の構成の一例を示す。
図9に示すように、マイクロコントローラ200は、電圧検出器111〜113と、割り込みコントローラ121と、スタンバイコントローラ122と、リセットコントローラ123と、CPU130と、ROM141、RAM142と、フラッシュメモリ143と、スペシャルファンクションレレジスタ144と、フラグレジスタ250と、外部リセット信号入力端子160とを有している。
なお、図9に示された符号のうち、図1と同じ符号を付した構成は、図1と同じか又は類似の構成を示している。実施の形態1と異なる点はフラグレジスタ250の構成である。よって、本実施の形態2では、その部分を重点的に説明する。
フラグレジスタ250は、電圧検出器111〜113の出力するそれぞれの検出信号Vdtct_I、Vdtct_S、Vdtct_Rの値に応じて、フラグ「I」「Sm」「R」の値を変化させ記憶する。フラグ「I」の値は、実施の形態1と同様、検出信号Vdtct_Iがハイレベルになった場合、「0」から「1」に変化する。フラグ「Sm」は、検出信号Vdtct_Sがハイレベルになった場合、「0」から「1」に変化する。フラグ「Snm」は、マイクロコントローラ200のスタンバイ用退避処理が完全に完了した場合に、CPU130から出力される書き換え信号により「0」から「1」に変化する。最上位ビットの「R」は、実施の形態1と同様、検出信号Vdtct_Rがハイレベルになった場合、「0」から「1」に変化する。
なお、実施の形態1と同様、各検出信号がハイレベルになり変化したフラグの値は、各検出信号がロウレベルになっても、「0」に戻らず「1」が保持される。そして、スタンバイ状態から復帰したCPU130は、これらのフラグの値を確認し、その値に応じた復帰処理を行う。そして、CPU130は、マイクロコントローラ200が通常動作モードに移行後、フラグレジスタ250を初期化しフラグの値を全て「0」に戻す。
ここで、電源電圧VDDが電圧VRより低下した場合には、当該フラグレジスタ250もリセットされる。但し、フラグ「R」の値はリセットされず「1」を保持するものとする。また、フラグレジスタ250は、ロジック回路で構成され、低電圧下でも動作が可能であり、電源電圧VDDが電圧VRより低下しても記憶した各フラグの値を保持することができるものとする。
CPU130は、上記フラグレジスタ250の記憶したフラグの値をスタンバイから通常動作モードへの復帰処理時、もしくは、リセットから通常動作モードへの復帰処理時に確認し、RAM142、もしくはフラッシュメモリ143のバックアップデータを利用するか否かを判断する。
次に、本実施の形態2にかかるマイクロコントローラ200の動作について図面を参照しながら詳細に説明する。図10、図11、図12に電源電圧VDDが低下し、再び上昇する3パターンに対する検出信号Vdtct_I、Vdtct_S、Vdtct_Rの信号波形とフラグレジスタ250の各フラグの値を示す。
ただし、電源電圧VDDが電圧VS以下に低下しないパターン、つまり実施の形態1の図3、図4のパターンでは、フラグレジスタ250のフラグ「I」の値のみ「0」から「1」に変化し、「Sm」「Snm」「R」の値は「0」のままである。このため、マイクロコントローラ200は、基本的にマイクロコントローラ100と同様の動作となるため、説明は省略する。
図10に示すパターンでは、時刻t1以前に、電源電圧VDDは、電圧VI以上である。このため、マイクロコントローラ200が通常動作を行い、CPU130は通常の処理動作を行っている。時刻t1に、電源電圧VDDが電圧VIより低下する。このため、電圧検出器111は、ハイレベルの検出信号Vdtct_Iを割り込みコントローラ121に出力する。また、フラグレジスタ250のフラグ「I」の値が、「0」から「1」に書き換えられる。
割り込みコントローラ121は、ハイレベルの検出信号Vdtct_Iを入力し、CPU130をスタンバイ状態にさせるための割り込み信号Sig_Iを出力する。CPU130は、この割り込み信号Sig_Iに応じて、通常動作状態を停止し、スタンバイ用退避処理を開始する。このスタンバイ用退避処理の完了に期間Tps必要である。このスタンバイ用退避処理には期間Tpsを要し、時刻t2に完了する。スタンバイ用退避処理完了後、CPU130がフラグレジスタ250のフラグ「Sm」の値を、「0」から「1」に書き換える。その後、CPU130がスタンバイ状態となり、マイクロコントローラ200がスタンバイモードとなる。
時刻t3に電源電圧VDDが電圧VS以下に低下する。このため、電圧検出器112は、ハイレベルの検出信号Vdtct_Iをスタンバイコントローラ122に出力する。また、フラグレジスタ250のフラグ「Snm」の値が、「0」から「1」に書き換えられる。ここで、スタンバイ用退避処理の完了期間Tpsよりも、時刻t1からt3までの期間T2の方が長い。よって、時刻t3では、既にマイクロコントローラ200がスタンバイ状態に移行完了しており、CPU130は動作を停止している。このため、スタンバイコントローラ122からのスタンバイ信号をCPU130が受け付けない。
その後、電源電圧VDDが上昇し、時刻t4に電圧VSより高くなり、時刻t5に電圧VIより高くなる。このため、時刻t5に電圧検出器111は、ロウレベルの検出信号Vdtct_Iを割り込みコントローラ121に出力する。割り込みコントローラ121は、ロウレベルの検出信号Vdtct_Iに応じた割り込み信号Sig_IをCPU130に出力する。この割り込み信号Sig_Iを入力したCPU130は、スタンバイ状態から通常動作へ復帰するスタンバイ復帰処理を開始する。このスタンバイ復帰処理において、CPU130はフラグレジスタ250の記憶したフラグの値を確認する。そして、フラグ「I」「Sm」「Snm」の値が共に「1」、フラグ「R」の値が「0」であることを確認する。このことから、CPU130は、スタンバイ用退避処理でRAM142やフラッシュメモリ143に退避させた情報が正しい値で記憶されていると判定する。その後、CPU130は、RAM142やフラッシュメモリ143に退避させた情報を利用し、スタンバイ直前の状態に復帰する。また、CPU130は通常動作モードへ移行後、フラグレジスタ250をリセットする。
次に、図11のパターンを説明する。時刻t1以前は、図10のパターンと同様である。時刻t1に、電源電圧VDDが電圧VIより低下する。この後、図10のパターンと同様、割り込みコントローラ121からの割り込み信号Sig_Iに応じて、CPU130は通常動作を停止し、スタンバイ状態に移行するための割り込み処理動作を開始する。しかし、図10のパターンとは異なり、スタンバイ用退避処理が完了する時刻t3より前の時刻t2に電源電圧VDDが電圧VSより低下する。つまり、時刻t1から期間Tpsより短い期間T1で電源電圧VDDが電圧VSより低下する。このため、電圧検出器112は、ハイレベルの検出信号Vdtct_Sをスタンバイコントローラ122に出力する。CPU130は、スタンバイコントローラ122からのスタンバイ信号に応じて、スタンバイ用退避処理を中止し、強制的にスタンバイ状態に移行する。また、このとき、フラグレジスタ250のフラグ「Sm」の値が、「0」から「1」に書き換えられる。ここで、図10のパターンではスタンバイ用退避処理が完了し、フラグレジスタ250のフラグ「Snm」の値が「1」になっていたが、図11のパターンではスタンバイ用退避処理が完了していないため、フラグ「Snm」の値は「0」のままである。
その後、電源電圧VDDが上昇し、時刻t4に電圧VSより高くなり、時刻t5に電圧VIより高くなる。このため、時刻t5に電圧検出器111は、ロウレベルの検出信号Vdtct_Iを割り込みコントローラ121に出力する。割り込みコントローラ121は、ロウレベルの検出信号Vdtct_Iに応じた割り込み信号Sig_IをCPU130に出力する。この割り込み信号Sig_Iを入力したCPU130は、スタンバイから通常動作モードへ復帰するスタンバイ復帰処理を開始する。このスタンバイ復帰処理において、CPU130はフラグレジスタ250の記憶したフラグの値を確認する。そして、フラグ「I」「Sm」の値が共に「1」、フラグ「Snm」、「R」の値が共に「0」であることを確認する。このことから、CPU130は、スタンバイ用退避処理が中断されRAM142やフラッシュメモリ143に退避させた情報が正しい値で記憶されていないと判定する。その後、CPU130は、RAM142やフラッシュメモリ143に退避させた情報を廃棄し、マイクロコントローラ200のシステムを初期化する。
また、図12に示すパターンでは、図11のパターンと同様、スタンバイ用退避処理が完全に完了する時刻t3より前の時刻t2に電源電圧VDDが電圧VSより低下する。このため、図11のパターンと同様、CPU130は、スタンバイ用退避処理を中止し、強制的にスタンバイ状態に移行する。この時点でフラグレジスタ250のフラグ「I」「Sm」の値が「1」、フラグ「Snm」「R」の値が「1」となっている。
そして、更に時刻t4に電源電圧VDDが電圧VRより低下する。このため、電圧検出器113は、ハイレベルの検出信号Vdtct_Rをリセットコントローラ123に出力する。また、フラグレジスタ250のフラグ「R」の値が、「0」から「1」に書き換えられる。
そして、リセットコントローラ123は、リセット信号をCPU130に出力しリセットする。これに応じて、RAM142、スペシャルファンクションレレジスタ144等もリセットされ、マイクロコントローラ200のシステムがリセットされる。但し、フラグレジスタ250のフラグ「R」の値は、リセットされず、「1」を保持する。
その後、電源電圧VDDが上昇し、時刻t5に電圧VRより高くなり、時刻t6に電圧VSより高くなる。更に、時刻7で電源電圧VDDが電圧VIより高くなり、図11のパターンと同様、CPU130がスタンバイから通常動作モードへ復帰するスタンバイ復帰処理を開始する。このスタンバイ復帰処理において、CPU130はフラグレジスタ250の記憶したフラグの値を確認する。そして、フラグ「R」の値が「1」であることを確認する。このことから、CPU130は、マイクロコントローラ200のシステムがリセットされた判定する。その後、CPU130は、フラッシュメモリ143に退避させた情報を廃棄し、マイクロコントローラ200のシステムを初期化する。
なお、図10のパターンのように電源電圧VDDが電圧VSより低下する前にマイクロコントローラ200のスタンバイ用退避処理が完全に完了し、更にその後、電源電圧VDDが電圧VRより低下する場合も考えられる。この場合、電源電圧VDDが電圧VSより低下するまでにフラグレジスタ250のフラグ「Snm」の値が「1」となる。しかし、結局、電源電圧VDDが電圧VRより低下すると、フラグ「R」の値以外はリセットされ「0」となるため、その後のCPU130等の動作は図12と同様となる。よって、図を用いた詳細な説明は省略する。
ここで、図13のフローチャートを用いて、上述したマイクロコントローラ200が、スタンバイから通常動作モード動作に復帰するときのCPU130の動作手順を示す。図13に示すように、CPU130は、電源電圧VDDが電圧VI以上である場合(S201)、フラグレジスタ250の記憶したフラグの値を確認する(S202)。
フラグ「R」の値が「1」であるか否か判定する(S203)。R=1である場合(S203YES)、リセットされたとみなし、マイクロコントローラ200のシステムを初期化する(S204)。その後、マイクロコントローラ200は、通常のシステム動作を行う(S205)。
R=1でなくR=0の場合(S203NO)、CPU130は、フラグ「Sm」の値が「1」であるか否か判定する(S206)。Sm=1である場合(S206YES)、更にフラグ「Snm」の値が「1」であるか否か判定する(S207)。Snm=1である場合(S207YES)、スタンバイ用退避処理が完了したとみなし、CPU130は、RAM142等にバックアップした情報を基にスタンバイ直前の状態への復帰処理を行う(S208)。その後、マイクロコントローラ200は、通常のシステム動作を行う(S209)。
Snm=1でなくSnm=0の場合(S207NO)、スタンバイ用退避処理が途中で終了されたとみなし、マイクロコントローラ200のシステムを初期化する(S210)。その後、マイクロコントローラ200は、通常のシステム動作を行う(S211)。
一方、Sm=1でなくSm=0の場合(S206NO)、CPU130は、フラグ「I」の値が「1」であるか否か判定する(S212)。I=1である場合(S212YES)、スタンバイ用退避処理が完了したとみなし、CPU130は、RAM142等にバックアップした情報を基にスタンバイ直前の状態への復帰処理を行う(S213)。その後、マイクロコントローラ200は、通常のシステム動作を行う(S214)。
I=1でなくI=0の場合(S215NO)は、マイクロコントローラ200の電源立ち上げ初期状態であるため、CPU130は、マイクロコントローラ200のシステムを初期化する(S215)。その後、マイクロコントローラ200は、通常のシステム動作を行う(216)。
以上のように、実施の形態2のマイクロコントローラ200では、フラグレジスタ250に、電源電圧VDDが電圧VSより低下したかを示すフラグ「Sm」と、スタンバイ用退避処理が完全に完了したことを示すフラグ「Snm」を用意した。このことにより、CPU130が、スタンバイから通常動作モードへのスタンバイ復帰処理時に、フラグ「Snm」、「Sm」の値を確認することで、スタンバイ用退避処理が完了した、もしくは、スタンバイ用退避処理が途中で終了したかを判定できる。このため、単にフラグレジスタ250のフラグを書き換える処理ですみ、実施の形態1のマイクロコントローラ100のように、フラグレジスタ150に対するマスク処理動作とその機構、もしくは、電圧検出器112に対する動作停止処理とその機構を有する等の必要がない。
その後、CPU130は、フラグ「Snm」、「Sm」の値が「1」の場合、RAM142、もしくはフラッシュメモリ143にバックアップされたデータを利用し、スタンバイ直前の状態に復帰する。反対に、フラグ「Snm」の値が「0」、フラグ「Sm」が「1」の場合、CPU130はRAM142、もしくはフラッシュメモリ143にバックアップされたデータを破棄し、マイクロコントローラ200を初期化する。よって、実施の形態1と同様、マイクロコントローラ200は、スタンバイ状態からの復帰後の誤作動を起こすことを防ぐことができる。その他の効果は、実施の形態1と同様である。
なお、本発明は上記実施の形態に限られたものでなく、趣旨を逸脱しない範囲で適宜変更することが可能である。例えば、当該マイクロコントローラは1チップで構成されてもよい。
実施の形態1にかかるマイクロコントローラの構成の一例である。 実施の形態1にかかる電圧検出器の構成の一例である。 実施の形態1にかかるマイクロコントローラの動作を説明するタイミングチャートである。 実施の形態1にかかるマイクロコントローラの動作を説明するタイミングチャートである。 実施の形態1にかかるマイクロコントローラの動作を説明するタイミングチャートである。 実施の形態1にかかるマイクロコントローラの動作を説明するタイミングチャートである。 実施の形態1にかかるマイクロコントローラの通常動作モードへの復帰の手順をしめすフローチャートである。 従来技術の問題点を説明するためのタイミングチャートである。 実施の形態2にかかるマイクロコントローラの構成の一例である。 実施の形態2にかかるマイクロコントローラの動作を説明するタイミングチャートである。 実施の形態2にかかるマイクロコントローラの動作を説明するタイミングチャートである。 実施の形態2にかかるマイクロコントローラの動作を説明するタイミングチャートである。 実施の形態2にかかるマイクロコントローラの通常動作モードへの復帰の手順をしめすフローチャートである。
符号の説明
100、200 マイクロコントローラ
111〜113 電圧検出器
121 割り込みコントローラ
122 スタンバイコントローラ
123 リセットコントローラ
130 CPU
141 ROM
142 RAM
143 フラッシュメモリ
144 スペシャルファンクションレレジスタ
145 ウォッチドッグタイマ
150、250 フラグレジスタ

Claims (9)

  1. 電源電圧が第1の電圧値以下に低下したとき、第1の検出信号を生成する第1の電圧検出回路と、
    前記電源電圧が前記第1の電圧値より低い第2の電圧値以下に低下したとき、第2の検出信号を生成する第2の電圧検出回路と、
    通常動作を行う通常動作モードと、通常動作よりも低消費電力で動作するスタンバイモードを切り替える機能を有し、
    前記第1の検出信号が生成されると、前記通常動作モードから前記スタンバイモードに移行するための割り込み処理動作を行い、
    前記第2の検出信号が生成されると、前記割り込み処理動作に関わらず、前記スタンバイモードに移行する
    中央処理回路と、
    前記中央処理回路が、前記割り込み処理動作完了前に、前記スタンバイモードに移行したことを示す情報を記憶する第1の記憶回路と、
    を有するマイクロコントローラ。
  2. 第2の記憶回路を有し、
    前記割り込み処理動作は、前記中央処理回路が、前記スタンバイモードから通常動作モードに復帰するために必要な情報を、前記第2の記憶回路へバックアップする処理動作であって、
    前記第1の記憶回路の記憶する情報は、前記バックアップ処理動作の完了前に前記スタンバイモードに移行したことを示す情報である
    請求項1に記載のマイクロコントローラ。
  3. 前記電源電圧が前記第2の電圧値より低い第3の電圧値以下に低下したとき、第3の検出信号を生成する第3の電圧検出回路と、を有し、
    前記中央処理回路は、前記第3の検出信号が生成されるとリセットされる
    請求項2に記載のマイクロコントローラ。
  4. 前記第1の記憶回路は、前記第3の検出信号が生成されたことを示す情報を更に記憶する
    請求項3に記載のマイクロコントローラ。
  5. 前記第1の検出信号を入力し、前記中央処理回路に対して前記割り込み処理動作を行わせる割り込み信号を出力する割り込み制御回路と、
    前記第2の検出信号を入力し、前記中央処理回路に対して前記割り込み処理動作に関わらず、前記スタンバイモードに移行させるスタンバイ信号を出力するスタンバイ制御回路と、
    前記第3の検出信号を入力し、前記中央処理回路に対してリセットをかけるリセット信号を出力するリセット回路と、を有する
    請求項3または請求項4に記載のマイクロコントローラ。
  6. 前記第1の記憶回路は、
    前記第1の電圧検出回路が前記第1の検出信号を生成したことを示す第1の情報を記憶し、
    前記第2の電圧検出回路が前記第2の検出信号を生成したことを示す第2の情報を記憶し、
    前記中央処理回路が前記割り込み処理動作を完了させたことを示す第3の情報を記憶し、
    前記第3の電圧検出回路が前記第3の検出信号を生成したことを示す第4の情報を記憶する
    請求項3〜請求項5のいずれか1項に記載のマイクロコントローラ。
  7. 前記中央処理回路は、前記スタンバイモードから前記通常動作モードに復帰したとき、前記第1の記憶回路が、前記バックアップ処理動作の完了前に前記スタンバイモードに移行したことを示す情報を記憶している場合、前記第2の記憶回路へバックアップした情報を利用しない
    請求項2に記載のマイクロコントローラ。
  8. 前記中央処理回路は、前記スタンバイモードから前記通常動作モードに復帰したとき、前記第1の記憶回路が、前記バックアップ処理動作の完了前に前記スタンバイモードに移行したことを示す情報を記憶していない場合、前記第2の記憶回路へバックアップした情報を利用する
    請求項2に記載のマイクロコントローラ。
  9. 前記中央処理回路は、前記スタンバイモードから前記通常動作モードに復帰したとき、前記第1の記憶回路が、前記第3の検出信号が生成されたことを示す情報を記憶している場合、前記第2の記憶回路をリセットする
    請求項4に記載のマイクロコントローラ。
JP2008260289A 2008-10-07 2008-10-07 マイクロコントローラ Expired - Fee Related JP4464451B2 (ja)

Priority Applications (2)

Application Number Priority Date Filing Date Title
JP2008260289A JP4464451B2 (ja) 2008-10-07 2008-10-07 マイクロコントローラ
US12/379,732 US8151130B2 (en) 2008-10-07 2009-02-27 Plural voltage level detection upon power drop for switching to standby mode with or without complete state saving interrupt processing

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2008260289A JP4464451B2 (ja) 2008-10-07 2008-10-07 マイクロコントローラ

Publications (2)

Publication Number Publication Date
JP2010092194A true JP2010092194A (ja) 2010-04-22
JP4464451B2 JP4464451B2 (ja) 2010-05-19

Family

ID=42076729

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2008260289A Expired - Fee Related JP4464451B2 (ja) 2008-10-07 2008-10-07 マイクロコントローラ

Country Status (2)

Country Link
US (1) US8151130B2 (ja)
JP (1) JP4464451B2 (ja)

Cited By (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2014002726A (ja) * 2012-05-25 2014-01-09 Semiconductor Energy Lab Co Ltd 半導体装置およびその駆動方法
JP2014149671A (ja) * 2013-01-31 2014-08-21 Fujitsu Ten Ltd デバイス制御装置およびデバイス制御方法
JP2014209306A (ja) * 2012-09-03 2014-11-06 株式会社半導体エネルギー研究所 マイクロコントローラ
WO2016013155A1 (ja) * 2014-07-22 2016-01-28 株式会社デンソー 車両用装置及び状態遷移プログラム製品

Families Citing this family (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP5670232B2 (ja) * 2010-04-16 2015-02-18 ルネサスエレクトロニクス株式会社 データプロセッサ及びデータ処理システム
JP5584527B2 (ja) * 2010-06-21 2014-09-03 ルネサスエレクトロニクス株式会社 電圧検出システム及びその制御方法
JP5782238B2 (ja) * 2010-07-30 2015-09-24 ルネサスエレクトロニクス株式会社 電圧検出回路及びその制御方法
KR102083490B1 (ko) * 2012-08-08 2020-03-03 삼성전자 주식회사 비휘발성 메모리 장치, 이를 포함하는 메모리 시스템 및 비휘발성 메모리 장치의 커맨드 실행 제어 방법
WO2016063666A1 (ja) * 2014-10-24 2016-04-28 日立オートモティブシステムズ株式会社 半導体装置
JP6568399B2 (ja) * 2015-05-26 2019-08-28 キヤノン株式会社 情報処理装置
JP2019106053A (ja) * 2017-12-13 2019-06-27 ルネサスエレクトロニクス株式会社 半導体装置
JP2020154431A (ja) * 2019-03-18 2020-09-24 キオクシア株式会社 電子機器及び電子機器の情報記録方法
JP7380016B2 (ja) * 2019-09-27 2023-11-15 株式会社デンソーウェーブ 空調コントローラ

Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH07248858A (ja) * 1994-03-11 1995-09-26 Tec Corp 停電処理機能を有する電子機器

Family Cites Families (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPS6280716A (ja) 1985-10-03 1987-04-14 Olympus Optical Co Ltd マイクロコンピュータを備えた電子機器
JPH09261315A (ja) * 1996-03-26 1997-10-03 Aiwa Co Ltd 携帯用端末装置
JP2005243143A (ja) * 2004-02-26 2005-09-08 Pioneer Electronic Corp 情報記録装置、情報再生装置、情報記録方法及び情報記録プログラム

Patent Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH07248858A (ja) * 1994-03-11 1995-09-26 Tec Corp 停電処理機能を有する電子機器

Cited By (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2014002726A (ja) * 2012-05-25 2014-01-09 Semiconductor Energy Lab Co Ltd 半導体装置およびその駆動方法
JP2017045479A (ja) * 2012-05-25 2017-03-02 株式会社半導体エネルギー研究所 半導体装置
JP2014209306A (ja) * 2012-09-03 2014-11-06 株式会社半導体エネルギー研究所 マイクロコントローラ
JP2014149671A (ja) * 2013-01-31 2014-08-21 Fujitsu Ten Ltd デバイス制御装置およびデバイス制御方法
WO2016013155A1 (ja) * 2014-07-22 2016-01-28 株式会社デンソー 車両用装置及び状態遷移プログラム製品

Also Published As

Publication number Publication date
JP4464451B2 (ja) 2010-05-19
US8151130B2 (en) 2012-04-03
US20100088503A1 (en) 2010-04-08

Similar Documents

Publication Publication Date Title
JP4464451B2 (ja) マイクロコントローラ
JP5096131B2 (ja) 半導体記憶装置
JP2011073176A (ja) 省電力制御装置、画像形成装置、及びプログラム
JP2008097148A (ja) 情報処理装置及びデータ退避方法。
US11487343B2 (en) Semiconductor storing apparatus and flash memory operation method
US20060236084A1 (en) Method and system for providing an auxiliary bios code in an auxiliary bios memory utilizing time expiry control
US11496118B2 (en) Semiconductor device
JP2003187593A (ja) 半導体装置及び不揮発性半導体記憶装置
JP2003316664A (ja) 不揮発性半導体記憶装置
JP2003248631A (ja) メモリ制御回路及びメモリ制御方法
JP5020623B2 (ja) パワーオンシステムリセット回路
US20110307731A1 (en) Method capable of preventing erroneous data writing and computer system
JP2007206775A (ja) メモリコントローラおよびフラッシュメモリシステム
JP3832117B2 (ja) プログラマブルコントローラのバックアップデータ保護方法及びプログラマブルコントローラ
JP7048794B1 (ja) 半導体装置および動作方法
CN113724766B (zh) 半导体存储装置及快闪存储器的运行方法
CN113724767B (zh) 半导体存储装置及快闪存储器运行方法
JP4702343B2 (ja) 携帯端末装置
TWI736248B (zh) 半導體存儲裝置及快閃記憶體的運行方法
JPS6128124B2 (ja)
JP2000020498A (ja) マイクロコンピュータおよびその復帰方法
CN114356410A (zh) 安全起电方法、系统、芯片及电子设备
JP2001331325A (ja) 初期起動装置及び初期起動方法並びに記録媒体
CN111400093A (zh) 一种nvdimm的配置方法、配置装置及配置设备
JPH09282304A (ja) マイクロコンピュータ

Legal Events

Date Code Title Description
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: 20100119

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: 20100218

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

Free format text: PAYMENT UNTIL: 20130226

Year of fee payment: 3

R150 Certificate of patent or registration of utility model

Ref document number: 4464451

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150

Free format text: JAPANESE INTERMEDIATE CODE: R150

S533 Written request for registration of change of name

Free format text: JAPANESE INTERMEDIATE CODE: R313533

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

Free format text: PAYMENT UNTIL: 20130226

Year of fee payment: 3

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

Free format text: PAYMENT UNTIL: 20130226

Year of fee payment: 3

R350 Written notification of registration of transfer

Free format text: JAPANESE INTERMEDIATE CODE: R350

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

Free format text: PAYMENT UNTIL: 20140226

Year of fee payment: 4

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

S531 Written request for registration of change of domicile

Free format text: JAPANESE INTERMEDIATE CODE: R313531

R350 Written notification of registration of transfer

Free format text: JAPANESE INTERMEDIATE CODE: R350

LAPS Cancellation because of no payment of annual fees