(57)【要約】  【課題】  電源電圧が所定の閾値より小さい場合であっても不揮発性記憶回路への書込みを行うこと等が可能な方法等を提供する。  【解決手段】  シングルチップマイクロコンピュータ１は、パワーコントロール部２と、電源電圧検出部３と、発振部４と、ＣＰＵコア部５と、ＲＯＭ６と、ＲＡＭ７と、不揮発性記憶部８と、ペリフェラル部９とを具備する。ＣＰＵコア部５は、電源電圧の検出を行うように電源電圧検出部３に指示し、電源電圧が所定の閾値以上である場合には、書込み時間として第１の時間を設定し、そうでない場合には、書込み時間として第１の時間よりも長い第２の時間を設定する。その後、ＣＰＵコア部５は、ＥＥＰＲＯＭコントローラ１３に、設定した書込み時間でデータ書込みを行わせる。【選択図】  図２
2007042221.tif 000002
【特許請求の範囲】
【請求項１】
書込み可能な不揮発性記憶回路を具備する半導体集積回路において、前記不揮発性記憶回路への書込みを制御する方法であって、
電源電圧を検出するステップ（ａ）と、
ステップ（ａ）にて検出された電源電圧が所定の閾値以上である場合に、所定の第１の時間を前記不揮発性記憶回路への書込み時間として設定するステップ（ｂ）と、
ステップ（ａ）にて検出された電源電圧が所定の閾値より小さい場合に、前記第１の時間より長い所定の第２の時間を前記不揮発性記憶回路への書込み時間として設定するステップ（ｃ）と、
所望のデータの前記不揮発性記憶回路の所望の領域への書込み動作を、ステップ（ｂ）又はステップ（ｃ）にて設定された書込み時間で行うステップ（ｄ）と、
を具備する、不揮発性記憶回路への書込み制御方法。
【請求項２】
ステップ（ａ）にて検出された電源電圧が所定の閾値より小さい場合に、所望のデータの前記不揮発性記憶回路の所望の領域への書込みを前記第２の時間で行うことを外部に通知するステップ（ｅ）を更に具備する、請求項１記載の不揮発性記憶回路への書込み制御方法。
【請求項３】
ステップ（ｂ）及び／又はステップ（ｃ）が、クロック信号をカウントすることにより時間を計時するためのタイマ回路に所望のカウント値を書き込むことにより前記不揮発性記憶回路への書込み時間を設定し、又は前記クロック信号を発生するクロック信号発生回路に前記クロック信号の周波数を指示することにより前記不揮発性記憶回路への書込み時間を設定するステップである、請求項１又は２記載の不揮発性記憶回路への書込み制御方法。
【請求項４】
書込み可能な不揮発性記憶回路を具備する半導体集積回路において、前記不揮発性記憶回路への書込みを制御する方法であって、
前記不揮発性記憶回路内のダミー領域へのダミーデータの書込み動作を行い、又は前記不揮発性記憶回路への書込み動作における負荷と同等の負荷を有する回路を動作させるステップ（ａ）と、
ステップ（ａ）における電源電圧を検出するステップ（ｂ）と、
ステップ（ｂ）にて検出された電源電圧が所定の閾値以上である場合に、所望のデータの前記不揮発性記憶回路の所望の領域への書込み動作を行うステップ（ｃ）と、
を具備する、不揮発性記憶回路への書込み制御方法。
【請求項５】
前記回路が、前記不揮発性記憶回路の書込み時に必要な電圧を供給するための昇圧回路である、請求項４記載の不揮発性記憶回路への書込み制御方法。
【請求項６】
ステップ（ｂ）にて検出された電源電圧が所定の閾値より小さい場合に、所望のデータの前記不揮発性記憶回路の所望の領域への書込み動作を行わなかったことを外部に通知するステップ（ｄ）を更に具備する、請求項４又は５記載の不揮発性記憶回路への書込み制御方法。
【請求項７】
書込み可能な不揮発性記憶回路を具備する半導体集積回路において、前記不揮発性記憶回路への書込みを制御する方法であって、
前記不揮発性記憶回路内のダミー領域へのダミーデータの書込み動作を行い、又は前記不揮発性記憶回路への書込み動作における負荷と同等の負荷を有する回路を動作させるステップ（ａ）と、
ステップ（ａ）における電源電圧を検出するステップ（ｂ）と、
ステップ（ｂ）にて検出された電源電圧が所定の閾値以上である場合に、所定の第１の時間を前記不揮発性記憶回路への書込み時間として設定するステップ（ｃ）と、
ステップ（ｂ）にて検出された電源電圧が所定の閾値より小さい場合に、前記第１の時間より長い所定の第２の時間を前記不揮発性記憶回路への書込み時間として設定するステップ（ｄ）と、
所望のデータの前記不揮発性記憶回路の所望の領域への書込み動作を、ステップ（ｃ）又はステップ（ｄ）にて設定された書込み時間で行うステップ（ｅ）と、
を具備する、不揮発性記憶回路への書込み制御方法。
【請求項８】
ステップ（ｂ）にて検出された電源電圧が所定の閾値より小さい場合に、所望のデータの前記不揮発性記憶回路の所望の領域への書込みを前記第２の時間で行うことを外部に通知するステップ（ｆ）を更に具備する、請求項７記載の不揮発性記憶回路への書込み制御方法。
【請求項９】
ステップ（ｃ）及び／又はステップ（ｄ）が、クロック信号をカウントすることにより時間を計時するためのタイマ回路に所望のカウント値を書き込むことにより前記不揮発性記憶回路への書込み時間を設定し、又は前記クロック信号を発生するクロック信号発生回路に前記クロック信号の周波数を指示することにより前記不揮発性記憶回路への書込み時間を設定するステップである、請求項７又は８記載の不揮発性記憶回路への書込み制御方法。
【請求項１０】
書込み可能な不揮発性記憶回路を具備する半導体集積回路であって、
電源電圧を検出し、検出された電源電圧が所定の閾値以上である場合に、所定の第１の時間を前記不揮発性記憶回路への書込み時間として設定し、検出された電源電圧が所定の閾値より小さい場合に、前記第１の時間より長い所定の第２の時間を前記不揮発性記憶回路への書込み時間として設定し、所望のデータの前記不揮発性記憶回路の所望の領域への書込み動作を設定された書込み時間で行う、半導体集積回路。
【請求項１１】
書込み可能な不揮発性記憶回路を具備する半導体集積回路であって、
前記不揮発性記憶回路内のダミー領域へのダミーデータの書込み動作を行い又は前記不揮発性記憶回路への書込み動作における負荷と同等の負荷を有する回路を動作させるとともに電源電圧を検出し、検出された電源電圧が所定の閾値以上である場合に、所望のデータの前記不揮発性記憶回路の所望の領域への書込み動作を行う、半導体集積回路。
【請求項１２】
書込み可能な不揮発性記憶回路を具備する半導体集積回路であって、
前記不揮発性記憶回路内のダミー領域へのダミーデータの書込み動作を行い又は前記不揮発性記憶回路への書込み動作における負荷と同等の負荷を有する回路を動作させるとともに電源電圧を検出し、検出された電源電圧が所定の閾値以上である場合に、所定の第１の時間を前記不揮発性記憶回路への書込み時間として設定し、検出された電源電圧が所定の閾値より小さい場合に、前記第１の時間より長い所定の第２の時間を前記不揮発性記憶回路への書込み時間として設定し、所望のデータの前記不揮発性記憶回路の所望の領域への書込み動作を設定された書込み時間で行う、半導体集積回路。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、書込み可能な不揮発性記憶回路を具備する半導体集積回路における不揮発性記憶回路への書込み制御方法に関する。さらに、本発明は、そのような半導体集積回路に関する。
【背景技術】
【０００２】
従来より、ＥＥＰＲＯＭ（electrically erasable programmable read only memory）を内蔵した半導体集積回路が用いられている。
【０００３】
ＥＥＰＲＯＭは、データ書込み以外の時において、比較的低電圧で動作可能であるが、データ書込み時において、高電圧を必要とする。そのため、一般に、ＥＥＰＲＯＭは、データ書込み時に電源電圧を昇圧するための昇圧回路を内蔵している。ＥＥＰＲＯＭへのデータ書込み時には、この昇圧回路に大きな電流が流れる。
【０００４】
半導体集積回路が、バッテリから供給される電力で動作している場合、ＥＥＰＲＯＭへのデータ書込み以外の時には正常に動作するが、ＥＥＰＲＯＭへのデータ書込み時には正常に動作できず、誤動作を招いたり、ＥＥＰＲＯＭ内のデータの消失等を招いたりすることがある。これは、バッテリの内部インピーダンスが大きいため、ＥＥＰＲＯＭへのデータ書込み時に昇圧回路に大きな電流が流れると、バッテリの出力電圧すなわち半導体集積回路に供給される電源電圧が低下してしまうからである。
【０００５】
関連する技術として、下記特許文献１には、プログラミング電圧用の第１の出力および読み出し電圧用の第２の出力を発生する電源、第１の出力および第２の出力に連結され、プログラミング電圧または読み出し電圧に応答してリファレンス電圧を与える基準電源、リファレンス電圧によって駆動され、読み出し電圧が第１の所定の電圧閾値より低下するときその読み出し電圧に応答して第１の信号を生成する第１の電圧検出器、リファレンス電圧によって駆動され、プログラミング電圧が第２の所定電圧より低下するか、または第１の信号が生成されるとき、そのプログラミング電圧および第１の信号に応答して第２の信号を生成する第２の電圧検出器、電源、第１の電圧検出器および第２の電圧検出器に結合され、データおよびプログラム命令を記憶し、第１または第２の信号に応答してメモリのアクセスを制御する回路を備えるメモリ、および電源およびメモリに結合され、当該メモリ内のデータおよびプログラム命令にアクセスしてそのデータおよびプログラム命令を処理する処理ユニットを備えていることを特徴とする処理システムが掲載されている。
【０００６】
この処理システムによれば、第１または第２の準備中信号が不揮発性メモリ装置に生じる予期せぬ消去またはプログラミング動作を防ぐことができる。
【０００７】
しかしながら、この処理システムにおいては、第１または第２の準備中信号が生成された場合には、不揮発性メモリ装置へのプログラミング動作を行うことができない。
【０００８】
【特許文献１】特表平９−５０３８８０号公報（第１頁、図１）
【発明の開示】
【発明が解決しようとする課題】
【０００９】
そこで、上記の点に鑑み、本発明は、電源電圧が所定の閾値より小さい場合であっても不揮発性記憶回路への書込みを行うこと等が可能な不揮発性記憶回路への書込み制御方法を提供することを第１の目的とする。また、本発明は、そのような半導体集積回路を提供することを第２の目的とする。
【課題を解決するための手段】
【００１０】
以上の課題を解決するため、本発明の第１の観点に係る不揮発性記憶回路への書込み制御方法は、書込み可能な不揮発性記憶回路を具備する半導体集積回路において、不揮発性記憶回路への書込みを制御する方法であって、電源電圧を検出するステップ（ａ）と、ステップ（ａ）にて検出された電源電圧が所定の閾値以上である場合に、所定の第１の時間を不揮発性記憶回路への書込み時間として設定するステップ（ｂ）と、ステップ（ａ）にて検出された電源電圧が所定の閾値より小さい場合に、第１の時間より長い所定の第２の時間を不揮発性記憶回路への書込み時間として設定するステップ（ｃ）と、所望のデータの不揮発性記憶回路の所望の領域への書込み動作を、ステップ（ｂ）又はステップ（ｃ）にて設定された書込み時間で行うステップ（ｄ）とを具備する。
【００１１】
この不揮発性記憶回路への書込み制御方法において、ステップ（ａ）にて検出された電源電圧が所定の閾値より小さい場合に、所望のデータの不揮発性記憶回路の所望の領域への書込みを第２の時間で行うことを外部に通知するステップ（ｅ）を更に具備するようにしても良い。
【００１２】
また、ステップ（ｂ）及び／又はステップ（ｃ）が、クロック信号をカウントすることにより時間を計時するためのタイマ回路に所望のカウント値を書き込むことにより不揮発性記憶回路への書込み時間を設定し、又はクロック信号を発生するクロック信号発生回路にクロック信号の周波数を指示することにより不揮発性記憶回路への書込み時間を設定するステップであるようにしても良い。
【００１３】
また、本発明の第２の観点に係る不揮発性記憶回路への書込み制御方法は、書込み可能な不揮発性記憶回路を具備する半導体集積回路において、不揮発性記憶回路への書込みを制御する方法であって、不揮発性記憶回路内のダミー領域へのダミーデータの書込み動作を行い、又は不揮発性記憶回路への書込み動作における負荷と同等の負荷を有する回路を動作させるステップ（ａ）と、ステップ（ａ）における電源電圧を検出するステップ（ｂ）と、ステップ（ｂ）にて検出された電源電圧が所定の閾値以上である場合に、所望のデータの不揮発性記憶回路の所望の領域への書込み動作を行うステップ（ｃ）とを具備する。
【００１４】
この不揮発性記憶回路への書込み制御方法において、回路が、不揮発性記憶回路の書込み時に必要な電圧を供給するための昇圧回路であるようにしても良い。
【００１５】
また、ステップ（ｂ）にて検出された電源電圧が所定の閾値より小さい場合に、所望のデータの不揮発性記憶回路の所望の領域への書込み動作を行わなかったことを外部に通知するステップ（ｄ）を更に具備するようにしても良い。
【００１６】
また、本発明の第３の観点に係る不揮発性記憶回路への書込み制御方法は、書込み可能な不揮発性記憶回路を具備する半導体集積回路において、不揮発性記憶回路への書込みを制御する方法であって、不揮発性記憶回路内のダミー領域へのダミーデータの書込み動作を行い、又は不揮発性記憶回路への書込み動作における負荷と同等の負荷を有する回路を動作させるステップ（ａ）と、ステップ（ａ）における電源電圧を検出するステップ（ｂ）と、ステップ（ｂ）にて検出された電源電圧が所定の閾値以上である場合に、所定の第１の時間を不揮発性記憶回路への書込み時間として設定するステップ（ｃ）と、ステップ（ｂ）にて検出された電源電圧が所定の閾値より小さい場合に、第１の時間より長い所定の第２の時間を不揮発性記憶回路への書込み時間として設定するステップ（ｄ）と、所望のデータの不揮発性記憶回路の所望の領域への書込み動作を、ステップ（ｃ）又はステップ（ｄ）にて設定された書込み時間で行うステップ（ｅ）とを具備する。
【００１７】
この不揮発性記憶回路への書込み制御方法において、ステップ（ｂ）にて検出された電源電圧が所定の閾値より小さい場合に、所望のデータの不揮発性記憶回路の所望の領域への書込みを第２の時間で行うことを外部に通知するステップ（ｆ）を更に具備するようにしても良い。
【００１８】
また、ステップ（ｃ）及び／又はステップ（ｄ）が、クロック信号をカウントすることにより時間を計時するためのタイマ回路に所望のカウント値を書き込むことにより不揮発性記憶回路への書込み時間を設定し、又はクロック信号を発生するクロック信号発生回路にクロック信号の周波数を指示することにより不揮発性記憶回路への書込み時間を設定するステップであるようにしても良い。
【００１９】
また、本発明の第１の観点に係る半導体集積回路は、書込み可能な不揮発性記憶回路を具備する半導体集積回路であって、電源電圧を検出し、検出された電源電圧が所定の閾値以上である場合に、所定の第１の時間を不揮発性記憶回路への書込み時間として設定し、検出された電源電圧が所定の閾値より小さい場合に、第１の時間より長い所定の第２の時間を不揮発性記憶回路への書込み時間として設定し、所望のデータの不揮発性記憶回路の所望の領域への書込み動作を設定された書込み時間で行う。
【００２０】
また、本発明の第２の観点に係る半導体集積回路は、書込み可能な不揮発性記憶回路を具備する半導体集積回路であって、不揮発性記憶回路内のダミー領域へのダミーデータの書込み動作を行い又は不揮発性記憶回路への書込み動作における負荷と同等の負荷を有する回路を動作させるとともに電源電圧を検出し、検出された電源電圧が所定の閾値以上である場合に、所望のデータの不揮発性記憶回路の所望の領域への書込み動作を行う。
【００２１】
また、本発明の第３の観点に係る半導体集積回路は、書込み可能な不揮発性記憶回路を具備する半導体集積回路であって、不揮発性記憶回路内のダミー領域へのダミーデータの書込み動作を行い又は不揮発性記憶回路への書込み動作における負荷と同等の負荷を有する回路を動作させるとともに電源電圧を検出し、検出された電源電圧が所定の閾値以上である場合に、所定の第１の時間を不揮発性記憶回路への書込み時間として設定し、検出された電源電圧が所定の閾値より小さい場合に、第１の時間より長い所定の第２の時間を不揮発性記憶回路への書込み時間として設定し、所望のデータの不揮発性記憶回路の所望の領域への書込み動作を設定された書込み時間で行う。
【発明を実施するための最良の形態】
【００２２】
以下、図面を参照しながら、本発明を実施するための最良の形態について説明する。なお、同一の構成要素には同一の参照符号を付して、説明を省略する。
【００２３】
図１は、本発明の一実施形態としてのシングルチップマイクロコンピュータの概要を示す図である。本実施形態は、本発明をシングルチップマイクロコンピュータに適用したものである。
【００２４】
図１に示すように、このシングルチップマイクロコンピュータ１は、パワーコントロール部２と、電源電圧検出部３と、発振部４と、ＣＰＵ（central processing unit）コア部５と、ＲＯＭ（read only memory）６と、ＲＡＭ（random access memory）７と、不揮発性記憶部８と、ペリフェラル部９とを具備する。
【００２５】
ＣＰＵコア部２は、ＲＡＭ７を作業領域として利用しながら、ＲＯＭ６に格納されているプログラムを実行することにより、シングルチップコンピュータ１内の各部の制御を行とともに、所望の処理を実現する。
【００２６】
パワーコントロール部２は、外部（例えば、ＡＣアダプタ、バッテリ等）から電位（ここでは、ＶＤＤ及びＶＳＳ）の供給を受け、シングルチップコンピュータ１内の各部に電源電圧の供給を行う。なお、パワーコントロール部２が、異なる電源電圧をシングルチップコンピュータ１内の各部に供給することとしても良いし、単一の電源電圧をシングルチップコンピュータ１内の各部に供給することとしても良い。
【００２７】
電源電圧検出部３は、ＣＰＵコア部５の制御の下で、外部からパワーコントロール部２に供給される電源電圧及び／又はパワーコントロール部２からシングルチップコンピュータ１内の各部に供給される電源電圧の検出を行う。
【００２８】
発振部４は、ＣＰＵコア部５の制御の下で、クロック信号のシングルチップコンピュータ１内の各部への供給を行う。なお、発振部４が、異なる周波数のクロック信号をシングルチップコンピュータ１内の各部に供給することとしても良いし、単一の周波数のクロック信号をシングルチップコンピュータ１内の各部に供給することとしても良い。
【００２９】
不揮発性記憶部８は、ＥＥＰＲＯＭ（electrically erasable programmable read only memory）１１と、タイマ１２と、ＥＥＰＲＯＭコントローラ１３とを具備する。
【００３０】
ＥＥＰＲＯＭ１１は、書込み（書換えを含む）可能な不揮発性メモリである。先に説明したように、ＥＥＰＲＯＭは、データ書込み以外の時において、比較的低電圧で動作可能であるが、データ書込み時において、高電圧を必要とする。そのため、一般に、ＥＥＰＲＯＭは、データ書込み時に電源電圧を昇圧するための昇圧回路を内蔵している。これに倣い、本実施形態においても、ＥＥＰＲＯＭ１１は、パワーコントロール部２から供給される電圧を昇圧するための昇圧回路を内蔵しているものとする。
【００３１】
タイマ１２は、ＣＰＵコア部５の制御の下で、発振部４から供給されるクロック信号をカウントすることにより、時間の計時を行う。タイマ１２は、クロック信号をカウントする数を表す設定値を書き込むためのレジスタ（以下「設定値レジスタ」という）を有しており、ＣＰＵコア部５は、この設定値レジスタに所望の値を書き込むことにより、タイマ１２の計時時間を所望の時間にすることができる。
【００３２】
ＥＥＰＲＯＭコントローラ１３は、ＣＰＵコア部５の制御の下で、ＥＥＰＲＯＭ１１へのデータの書込み及びＥＥＰＲＯＭ１１からのデータの読出しを行う。
【００３３】
ペリフェラル部９は、シリアル通信コントローラ等の各種の周辺回路を含んでおり、外部とのデータの送受信等を行う。
【００３４】
次に、ＥＥＰＲＯＭ１１へのデータの書込み時におけるシングルチップマイクロコンピュータ１の第１の動作について、説明する。図２は、ＥＥＰＲＯＭ１１へのデータの書込み時におけるＣＰＵコア部５の処理を示すフローチャートである。
【００３５】
まず、ＣＰＵコア部５は、電源電圧の検出を行うように、電源電圧検出部３に指示する（ステップＳ１１）。そして、ＣＰＵコア部５は、電源電圧が所定の閾値以上であるか否かをチェックし、電源電圧が所定の閾値以上である場合には、処理をステップＳ１３に移し、電源電圧が所定の閾値以上ではない場合には、処理をステップＳ１４に移す（ステップＳ１２）。
【００３６】
先に説明したように、一般に、ＥＥＰＲＯＭは、データ書込み時に高電圧を生成するための昇圧回路を内蔵している。そして、電源電圧が所定の閾値より小さい場合には、昇圧回路の出力電圧が所定の電圧に達せず、データ書込みを正常に行うことができないことがある。しかしながら、電源電圧が閾値より小さい場合であっても、書込み時間を長くすることにより、データ書込みを正常に行うことができることがある。
【００３７】
そこで、ＣＰＵコア部５は、電源電圧が所定の閾値以上である場合には、書込み時間として標準的な第１の時間を設定する（ステップＳ１３）。
【００３８】
一方、ＣＰＵコア部５は、電源電圧が所定の閾値以上ではない場合には、書込み時間として第１の時間よりも長い第２の時間を設定する（ステップＳ１４）。なお、先に説明したように、書込み時間の設定は、タイマ１２内の設定値レジスタに所望の値を書き込むことにより、行うことができる。また、第２の時間として、例えば、第１の時間の１０倍程度の時間を設定するようにしても良い。
【００３９】
そして、ＣＰＵコア部５は、ＥＥＰＲＯＭ１１へのデータ書込みを第２の時間で行うことを外部回路に通知する（ステップＳ１５）。これにより、外部回路は、データ書込みが正常に行われない可能性があることを検知することができる。
【００４０】
その後、ＣＰＵコア部５は、ＥＥＰＲＯＭコントローラ１３に、ステップＳ１３又はステップＳ１４にて設定した書込み時間でデータ書込みを行わせる（ステップＳ１６）。
【００４１】
図３は、ステップＳ１６におけるデータ書込み動作時のタイミングチャートである。
まず、クロック信号の立ち下がりエッジである時刻ｔ１において、ＣＰＵコア部５が、ＥＥＰＲＯＭ１１を選択するためのチップセレクト信号をアクティブ（ここでは、ハイレベル）にするとともに、書込みアドレスをＥＥＰＲＯＭコントローラ１３に出力する。
【００４２】
クロック信号の次の立ち上がりエッジである時刻ｔ２において、ＣＰＵコア部５が、書込みデータをＥＥＰＲＯＭコントローラ１３に出力する。このとき、タイマ１２は、設定値レジスタ内の設定値をクロック計数用のダウンカウンタ（以下、「クロック計数カウンタ」という）にロードしている。
【００４３】
クロック信号の次の立ち下がりエッジである時刻ｔ３において、タイマ１２は、書込み開始信号を半クロック期間だけアクティブ（ここでは、ハイレベル）にする。ＥＥＰＲＯＭコントローラ１３は、クロック信号の次の立ち上がりエッジである時刻ｔ４における書込み開始信号の立ち下がりエッジを受けて、書込みビジー信号をアクティブ（ここでは、ハイレベル）にするとともに、データ書込みを開始する。
【００４４】
その後、タイマ１２は、クロック計数カウンタのダウンカウントを行う。時刻ｔ５においてクロック計数カウンタの値が「０」になると、クロック信号の次の立ち上がりエッジである時刻ｔ６において、タイマ１２は、書込み終了信号を半クロック期間だけアクティブ（ここでは、ハイレベル）にする。ＥＥＰＲＯＭコントローラ１３は、クロック信号の次の立ち下がりエッジである時刻ｔ７における書込み終了信号の立ち下がりエッジを受けて、データ書込みを終了し、クロック信号の次の立ち上がりエッジである時刻ｔ８において、書込みビジー信号をインアクティブ（ここでは、ローレベル）にする。
【００４５】
図３において、時刻ｔ４〜ｔ７の期間が、ＥＥＰＲＯＭ１１への書込み時間となる。この時間は、先に説明したように、タイマ１２の設定値レジスタ内の設定値を変更することにより、変更可能である。
【００４６】
以上説明したように、シングルチップマイクロコンピュータ１の第１の動作によれば、電源電圧が所定の閾値より小さい場合に、書込み時間として第１の時間よりも長い第２の時間を設定することにより、データ書込みを行うことができる。
【００４７】
なお、ここでは、ＣＰＵコア部５が、タイマ１２の設定値レジスタ内の設定値を変更することによりＥＥＰＲＯＭ１１への書込み時間を変更することとしているが、発振部４からタイマ１２に供給される源振クロック信号の周波数を変更するように発振部４に指示することによりＥＥＰＲＯＭ１１への書込み時間を変更することとしても良い。
【００４８】
次に、ＥＥＰＲＯＭ１１へのデータの書込み時におけるシングルチップマイクロコンピュータ１の第２の動作について、説明する。
【００４９】
図４は、ＥＥＰＲＯＭ１１へのデータの書込み時におけるＣＰＵコア部５の処理を示すフローチャートである。
【００５０】
先に説明した第１の動作（図２参照）において、電源電圧を検出する（図２のステップＳ１１参照）。しかしながら、ＥＥＰＲＯＭ１１の書込み動作以外の時（ＥＥＰＲＯＭ１１内の昇圧回路の非動作時）においては、電源電圧が所定の閾値以上であっても、ＥＥＰＲＯＭ１１の書込み動作時（ＥＥＰＲＯＭ１１内の昇圧回路の動作時）においては、消費電流が増大し、電源電圧が低下する場合がある。特に、シングルチップマイクロコンピュータ１がバッテリから電力の供給を受けている場合、バッテリの内部インピーダンスが大きいため、消費電流が増大したときに、電源電圧が低下する可能性が高い。
【００５１】
そこで、ＣＰＵコア部５は、ダミーの書込み動作を行うようにＥＥＰＲＯＭコントローラ１３に指示する（ステップＳ２１）。それとともに、ＣＰＵコア部５は、パワーコントロール部２からＥＥＰＲＯＭ１１に供給されている電源電圧の検出を行うように電源電圧検出部３に指示する（ステップＳ２２）。ここでは、ダミーの書込み動作を、ダミーのデータをＥＥＰＲＯＭ１１内のダミーのアドレスに書き込む動作とする。なお、ＥＥＰＲＯＭ１１内の昇圧回路がデータの書込みを伴わずに昇圧動作可能な機能を有する場合には、ＥＥＰＲＯＭ１１内の昇圧回路を動作させることとしても良い。さらに、ＥＥＰＲＯＭ１１内の昇圧回路と同等の負荷を有する回路を動作させることとしても良い。
【００５２】
図５は、ステップＳ２１、Ｓ２２におけるタイミングチャートである。
まず、クロック信号の立ち下がりエッジである時刻ｔ１１において、ＣＰＵコア部５が、ＥＥＰＲＯＭ１１を選択するためのチップセレクト信号をアクティブ（ここでは、ハイレベル）にするとともに、ダミーの書込みアドレスをＥＥＰＲＯＭコントローラ１３に出力する。
【００５３】
クロック信号の次の立ち上がりエッジである時刻ｔ１２において、ＣＰＵコア部５が、ダミーの書込みデータをＥＥＰＲＯＭコントローラ１３に出力する。このとき、タイマ１２は、設定値レジスタ内の設定値をクロック計数カウンタにロードしている。
【００５４】
クロック信号の次の立ち下がりエッジである時刻ｔ１３において、タイマ１２は、書込み開始信号を半クロック期間だけアクティブ（ここでは、ハイレベル）にする。ＥＥＰＲＯＭコントローラ１３は、クロック信号の次の立ち上がりエッジである時刻ｔ１４における書込み開始信号の立ち下がりエッジを受けて、書込みビジー信号をアクティブ（ここでは、ハイレベル）にするとともに、昇圧回路を動作させ、ダミーデータの書込みを開始する。
その後、タイマ１２は、クロック計数カウンタのダウンカウントを開始する。
【００５５】
また、クロック信号の次の立ち上がりエッジである時刻ｔ１５において、ＣＰＵコア部５は、電源電圧検出部３動作指示信号をアクティブ（ここでは、ハイレベル）にし、電源電圧の検出を電源電圧検出部３に行わせる。その後、ＣＰＵコア部５は、クロック信号の次の次の立ち下がりエッジである時刻ｔ１６において、電源電圧検出部３動作指示信号をインアクティブ（ここでは、ローレベル）にする。
【００５６】
時刻ｔ１７においてクロック計数カウンタの値が「０」になると、クロック信号の次の立ち上がりエッジである時刻ｔ１８において、タイマ１２は、書込み終了信号を半クロック期間だけアクティブ（ここでは、ハイレベル）にする。ＥＥＰＲＯＭコントローラ１３は、クロック信号の次の立ち下がりエッジである時刻ｔ１９における書込み終了信号の立ち下がりエッジを受けて、ダミーデータの書込みを終了し、クロック信号の次の立ち上がりエッジである時刻ｔ２０において、書込みビジー信号をインアクティブ（ここでは、ローレベル）にする。
【００５７】
図５において、時刻ｔ１４〜ｔ１９の期間が、ＥＥＰＲＯＭ１１へのダミーデータの書込み時間となる。この時間は、タイマ１２の設定値レジスタ内の設定値を変更することにより、変更可能である。
【００５８】
再び図４を参照すると、ＣＰＵコア部５は、電源電圧が所定の閾値以上であるか否かをチェックし、電源電圧が所定の閾値以上である場合には、処理をステップＳ２４に移し、電源電圧が所定の閾値以上ではない場合には、処理をステップＳ２５に移す（ステップＳ２３）。
【００５９】
そして、ＣＰＵコア部５は、電源電圧が所定の閾値以上である場合には、ＥＥＰＲＯＭコントローラ１３にデータ（ダミーデータではないデータ）の書込みを行わせる（ステップＳ２４）。なお、ステップＳ２３におけるデータ書込み動作時のタイミングチャートは、図３と同様である。
【００６０】
一方、ＣＰＵコア部５は、電源電圧が所定の閾値以上ではない場合には、データの書込みを行わなかったことを、外部回路に通知する（ステップＳ２５）。これにより、外部回路は、データ書込みが行われなかったことを検知することができる。
【００６１】
以上説明したように、シングルチップマイクロコンピュータ１の第２の動作によれば、ＥＥＰＲＯＭ１１にダミーデータの書込みを行っている間の電源電圧が所定の閾値より小さい場合に、データ書込みを行わないようにすることができる。
【００６２】
次に、ＥＥＰＲＯＭ１１へのデータの書込み時におけるシングルチップマイクロコンピュータ１の第３の動作について、説明する。
【００６３】
図６は、ＥＥＰＲＯＭ１１へのデータの書込み時におけるＣＰＵコア部５の処理を示すフローチャートである。
【００６４】
まず、ＣＰＵコア部５は、ダミーの書込み動作を行うようにＥＥＰＲＯＭコントローラ１３に指示する（ステップＳ３１）。それとともに、ＣＰＵコア部５は、パワーコントロール部２からＥＥＰＲＯＭ１１に供給されている電源電圧の検出を行うように電源電圧検出部３に指示する（ステップＳ３２）。
【００６５】
次に、ＣＰＵコア部５は、電源電圧が所定の閾値以上であるか否かをチェックし、電源電圧が所定の閾値以上である場合には、処理をステップＳ３４に移し、電源電圧が所定の閾値以上ではない場合には、処理をステップＳ３５に移す（ステップＳ３３）。
【００６６】
ＣＰＵコア部５は、電源電圧が所定の閾値以上である場合には、書込み時間として標準的な第１の時間を設定する（ステップＳ３４）。
【００６７】
一方、ＣＰＵコア部５は、電源電圧が所定の閾値以上ではない場合には、書込み時間として第１の時間よりも長い第２の時間を設定する（ステップＳ３５）。そして、ＣＰＵコア部５は、ＥＥＰＲＯＭ１１へのデータ書込みを第２の時間で行うことを外部回路に通知する（ステップＳ３６）。これにより、外部回路は、データ書込みが正常に行われない可能性があることを検知することができる。
【００６８】
その後、ＣＰＵコア部５は、ＥＥＰＲＯＭコントローラ１３に、ステップＳ３４又はステップＳ３５にて設定した書込み時間でデータ書込みを行わせる（ステップＳ３７）。なお、ステップＳ３７におけるデータ書込み動作時のタイミングチャートは、図３と同様である。
【００６９】
以上説明したように、シングルチップマイクロコンピュータ１の第３の動作によれば、ＥＥＰＲＯＭ１１にダミーデータの書込みを行っている間の電源電圧が所定の閾値より小さい場合に、書込み時間として第１の時間よりも長い第２の時間を設定することにより、データ書込みを行うことができる。
【産業上の利用可能性】
【００７０】
本発明は、書込み可能な不揮発性記憶回路を具備する半導体集積回路における不揮発性記憶回路への書込み制御方法に利用可能である。さらに、本発明は、そのような半導体集積回路に利用可能である。
【図面の簡単な説明】
【００７１】
【図１】本発明の一実施形態としてシングルチップマイクロコンピュータを示す図。
【図２】図１のＣＰＵコア部５の動作を示すフローチャート。
【図３】図１のシングルチップマイクロコンピュータ１のタイミングチャート。
【図４】図１のＣＰＵコア部５の動作を示すフローチャート。
【図５】図１のシングルチップマイクロコンピュータ１のタイミングチャート。
【図６】図１のＣＰＵコア部５の動作を示すフローチャート。
【符号の説明】
【００７２】
１  シングルチップマイクロコンピュータ、  ２  パワーコントロール部、  ３  電源電圧検出部、  ４  発振部、  ５  ＣＰＵコア部、  ６  ＲＯＭ、  ７  ＲＡＭ、  ８  不揮発性記憶部、  ９  ペリフェラル部、  １１  ＥＥＰＲＯＭ、  １２  タイマ、  １３  ＥＥＰＲＯＭコントローラ
【図１】
2007042221.tif 000003
【図２】
2007042221.tif 000004
【図３】
2007042221.tif 000005
【図４】
2007042221.tif 000006
【図５】
2007042221.tif 000007
【図６】
2007042221.tif 000008