(57)【特許請求の範囲】
【請求項１】
ＰＷＭ信号に基づいてモータを駆動する駆動回路に対し、前記ＰＷＭ信号を出力するＰＷＭ信号出力回路であって、
前記モータの回転速度に応じた周期を有するとともに論理レベルが交互に変化する速度信号に基づいて、前記速度信号が一方の論理レベル及び他方の論理レベルとなる夫々の期間を検出する検出部と、
前記検出部で検出された第１の期間より後の前記速度信号が一方の論理レベルまたは他方の論理レベルとなる第２の期間において、前記第１の期間内で前記モータのモータコイルに流れる電流を増加させた後に減少させるための前記ＰＷＭ信号を、前記速度信号の論理レベルが変化すると生成する第１生成部と、
前記第２の期間において前記速度信号の論理レベルが変化してから前記速度信号の論理レベルが次に変化するまでに前記第１の期間が経過すると、前記第１の期間が経過してから前記速度信号の論理レベルが変化するまで所定のデューティ比の前記ＰＷＭ信号を生成する第２生成部と、
を備えることを特徴とするＰＷＭ信号出力回路。
【請求項２】
請求項１に記載のＰＷＭ信号出力回路であって、
前記第１生成部は、
前記検出部で検出された前記速度信号が前記一方の論理レベルとなる第３の期間より後の、前記速度信号が前記一方の論理レベルとなる期間において、前記第３の期間内で前記モータコイルに流れる電流を増加させた後に減少させるための前記ＰＷＭ信号を、前記速度信号の論理レベルが前記一方の論理レベルとなると生成し、
前記検出部で検出された前記速度信号が前記他方の論理レベルとなる第４の期間より後の、前記速度信号が前記他方の論理レベルとなる期間において、前記第４の期間内で前記モータコイルに流れる電流を増加させた後に減少させるための前記ＰＷＭ信号を、前記速度信号の論理レベルが前記他方の論理レベルとなると生成し、
前記第３の期間は、前記第２の期間の後の期間であり、
前記第４の期間は、前記第３の期間の後の期間であること、
を特徴とするＰＷＭ信号出力回路。
【請求項３】
請求項１に記載のＰＷＭ信号出力回路であって、
前記速度信号の前記一方の論理レベルの期間と、前記速度信号の前記他方の論理レベルの期間とが等しくなるよう、前記速度信号を補正する補正部を更に備え、
前記検出部は、
前記補正部で補正された前記速度信号が前記一方の論理レベル及び前記他方の論理レベルとなる夫々の期間を検出すること、
を特徴とするＰＷＭ信号出力回路。
【請求項４】
請求項３に記載のＰＷＭ信号出力回路であって、
前記補正部は、
前記速度信号が前記一方の論理レベル及び前記他方の論理レベルとなる夫々の期間をカウントするカウンタと、
前記速度信号が前記一方の論理レベルとなる期間の第１のカウント値と、前記速度信号が前記他方の論理レベルとなる期間の第２のカウント値との差の半分の値を算出する算出部と、
前記速度信号が前記一方の論理レベルとなると、前記第１のカウント値及び前記半分の値で定まる期間だけ前記一方の論理レベルの信号を補正された前記速度信号として出力し、その後、前記第２のカウント値及び前記半分の値で定まる期間だけ前記他方の論理レベルとなる信号を補正された前記速度信号として出力する信号出力部と、
を含むことを特徴とするＰＷＭ信号出力回路。
【請求項５】
請求項１〜請求項４の何れか一項に記載のＰＷＭ信号出力回路であって、
前記第２生成部は、
前記第１の期間が経過してから前記速度信号の論理レベルが変化するまで、前記モータコイルに流れる電流がゼロとなるようなデューティ比の前記ＰＷＭ信号を生成すること、
を特徴とするＰＷＭ信号出力回路。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、ＰＷＭ信号出力回路に関する。
【背景技術】
【０００２】
モータコイルの電流を緩やかに変化させるモータ駆動回路としては、ソフトスイッチングを行うモータ駆動回路が知られている（例えば、特許文献１参照）。
【先行技術文献】
【特許文献】
【０００３】
【特許文献１】特開２００２−１８６２７５号公報
【発明の概要】
【発明が解決しようとする課題】
【０００４】
ソフトスイッチングを行うモータ駆動回路には、ＦＧ（Frequency Generator）信号がハイレベル及びローレベルとなる夫々の期間、つまりＦＧ信号のほぼ半分の周期を検出し、検出した期間においてソフトスイッチングを実行するものがある。このようなモータ駆動回路は、ＦＧ信号の論理レベルが変化する度に、検出した期間においてモータコイルに流れる電流が増加した後に減少するようモータを駆動する。  
ところで、モータの回転速度が一定の場合であっても、一般にはＦＧ信号の周期はばらつくため、モータ駆動回路がモータコイルの電流を増加させた後に減少させる期間と、実際のＦＧ信号の半周期の期間とが異なることがある。したがって、相切り替えの際にモータコイルの電流が十分小さくなるように、検出した期間においてモータコイルに流れる電流が増加した後に減少するようモータを駆動しても、結果的に相切り替えの際にモータコイルの電流が小さくならず、モータが安定に回転しないことがある。
【０００５】
本発明は上記課題を鑑みてなされたものであり、モータ駆動回路にソフトスイッチングを実行させつつモータを安定に回転させることができるＰＷＭ信号出力回路を提供することを目的とする。
【課題を解決するための手段】
【０００６】
上記目的を達成するため、本発明の一つの側面に係る、ＰＷＭ信号に基づいてモータを駆動する駆動回路に対し、前記ＰＷＭ信号を出力するＰＷＭ信号出力回路であって、前記モータの回転速度に応じた周期を有するとともに論理レベルが交互に変化する速度信号に基づいて、前記速度信号が一方の論理レベル及び他方の論理レベルとなる夫々の期間を検出する検出部と、前記検出部で検出された第１の期間より後の前記速度信号が一方の論理レベルまたは他方の論理レベルとなる第２の期間において、前記第１の期間内で前記モータのモータコイルに流れる電流を増加させた後に減少させるための前記ＰＷＭ信号を、前記速度信号の論理レベルが変化すると生成する第１生成部と、前記第２の期間において前記速度信号の論理レベルが変化してから前記速度信号の論理レベルが次に変化するまでに前記第１の期間が経過すると、前記第１の期間が経過してから前記速度信号の論理レベルが変化するまで所定のデューティ比の前記ＰＷＭ信号を生成する第２生成部と、を備える。
【発明の効果】
【０００７】
モータ駆動回路にソフトスイッチングを実行させつつモータを安定に回転させることができるＰＷＭ信号出力回路を提供することができる。
【図面の簡単な説明】
【０００８】
【図１】本発明の一実施形態であるモータ駆動ＩＣ１０の構成を示す図である。
【図２】駆動信号出力回路２４ａの構成を示す図である。
【図３】ＦＧカウンタ５１の一例を示す図である。
【図４】ＦＧカウンタ５１の動作を説明するための図である。
【図５】期間ＴＡと期間Ｔ１〜Ｔ３との関係を示す図である。
【図６】モード信号出力回路５２の一例を示す図である。
【図７】モード信号出力回路５２の動作を説明するための図である。
【図８】現在のＦＧ信号がＨレベルとなる期間と期間ＴＡとが等しい場合のＰＷＭ信号生成回路５３の動作を説明するための図である。
【図９】現在のＦＧ信号がＨレベルとなる期間が期間ＴＡより短い場合のＰＷＭ信号生成回路５３の動作を説明するための図である。
【図１０】現在のＦＧ信号がＨレベルとなる期間が期間ＴＡより長い場合のＰＷＭ信号生成回路５３の動作を説明するための図である。
【図１１】駆動電流Ｉｄｒの一例を示す図である。
【図１２】駆動信号出力回路２４ｂの構成を示す図である。
【図１３】ＰＷＭ信号生成回路２００の動作を説明するための図である。
【図１４】駆動信号出力回路２４ｃの構成を示す図である。
【図１５】擬似ＦＧ信号生成回路４００の一例を示す図である。
【図１６】擬似ＦＧ信号生成回路４００の動作を説明するための図である。
【図１７】擬似ＦＧ信号生成回路５００の一例を示す図である。
【図１８】擬似ＦＧ信号生成回路５００の動作を説明するための図である。
【発明を実施するための形態】
【０００９】
本明細書および添付図面の記載により、少なくとも以下の事項が明らかとなる。  
図１は、本発明の一実施形態であるモータ駆動ＩＣ１０の構成を示す図である。モータ駆動ＩＣ１０は、モータ１１の回転速度が、マイコン（不図示）から出力されるＰＷＭ（Pulse Width Modulation）信号ＩＮのデューティ比に応じた回転速度となるよう、モータ１１を駆動する回路である。
【００１０】
モータ駆動ＩＣ１０は、コンパレータ２０、デューティ検出回路２１、ＰＷＭ信号生成回路２２、セレクタ（ＳＥＬ）２３、駆動信号出力回路２４、Ｈブリッジ回路２５、及び端子Ａ，Ｂ，ＰＩＮ，ＣＩＮ，ＯＵＴ１，ＯＵＴ２を含んで構成される。
【００１１】
モータ１１は、例えば、冷却用のファンを回転させるための単相のファンモータである。
【００１２】
ホール素子１２は、モータ１１におけるロータ（不図示）の回転位置に応じたホール信号ＶＨ１，ＶＨ２を端子Ａ，Ｂに出力する。
【００１３】
コンパレータ２０は、ホール信号ＶＨ１，ＶＨ２のレベルを比較し、モータ１１の回転速度に応じて周期が変化するＦＧ信号を生成する。ＦＧ信号（速度信号）は、ホール信号ＶＨ１のレベルがホール信号ＶＨ２のレベルより高くなるとローレベル（以下、Ｌレベル）となり、ホール信号ＶＨ１のレベルがホール信号ＶＨ２のレベルより低くなるとハイレベル（以下、Ｈレベル）となる。
【００１４】
デューティ検出回路２１は、端子ＰＩＮを介してマイコン（不図示）から入力されるＰＷＭ信号ＩＮのＨレベルのデューティ比（以下、単にデューティ比と称する）が１００％であるか否かを検出する。具体的には、デューティ検出回路２１は、ＰＷＭ信号ＩＮの立ち上がりエッジを所定期間検出しないと、ＰＷＭ信号ＩＮのデューティ比が１００％であることを検出する。
【００１５】
ＰＷＭ信号生成回路２２は、例えば、デューティ比が９９％である所定周期のＰＷＭ信号を生成する。
【００１６】
セレクタ２３は、ＰＷＭ信号ＩＮのデューティ比が１００％であることが検出されると、Ｂ入力に入力される信号を出力し、ＰＷＭ信号ＩＮのデューティ比が１００％でないことが検出されると、Ａ入力に入力されるＰＷＭ信号ＩＮを出力する。
【００１７】
したがって、セレクタ２３からは、常にデューティ比が９９％以下のＰＷＭ信号Ｓ１が出力されることになる。なお、セレクタ２３等の回路は、デューティ比が１００％のＰＷＭ信号により駆動信号出力回路２４が誤動作することを防ぐための回路である。
【００１８】
駆動信号出力回路２４は、端子ＣＩＮを介して入力される所定周期のクロック信号ＣＬＫ１、ＦＧ信号、及びＰＷＭ信号Ｓ１に基づいて、Ｈブリッジ回路２５を制御するための駆動信号Ｖｄｒ１〜Ｖｄｒ４を出力する。
【００１９】
Ｈブリッジ回路２５（駆動回路）は、ＰＭＯＳトランジスタ４０，４１、ＮＭＯＳトランジスタ４２，４３を含んで構成される。ＰＭＯＳトランジスタ４０及びＮＭＯＳトランジスタ４２の接続点は、端子ＯＵＴ１に接続され、ＰＭＯＳトランジスタ４１及びＮＭＯＳトランジスタ４３の接続点は、端子ＯＵＴ２に接続される。そして、Ｈブリッジ回路２５の各トランジスタがオン、オフされると、モータ１１のモータコイルＬに流れる駆動電流Ｉｄｒは、端子ＯＵＴ１から端子ＯＵＴ２、または端子ＯＵＴ２から端子ＯＵＴ１へと流れる。
【００２０】
＝＝駆動信号出力回路２４ａ（第１の実施形態）について＝＝
図２は、駆動信号生成回路２４の第１の実施形態の構成を示す図である。  
駆動信号生成回路２４ａ（ＰＷＭ信号出力回路）は、ＦＧ信号の論理レベルが変化してからＦＧ信号の論理レベルが次に変化するまでの間に、駆動電流Ｉｄｒを増加させた後に減少させるための駆動信号Ｖｄｒ１〜Ｖｄｒ４を生成する回路である。駆動信号生成回路２４ａは、分周回路５０、ＦＧカウンタ５１、モード信号出力回路５２、ＰＷＭ信号生成回路５３、及びＨブリッジ制御回路５４を含んで構成される。
【００２１】
分周回路５０は、クロック信号ＣＬＫ１を例えば１２８分周したクロック信号ＣＬＫ２を生成する。
【００２２】
ＦＧカウンタ５１（検出部）は、ＦＧ信号がＨレベル及びＬレベルとなる夫々の期間ＴＡ、つまり、ＦＧ信号がほぼ半周期となる期間を検出する。
【００２３】
モード信号出力回路５２は、ＦＧカウンタ５１で検出された期間ＴＡを３つの期間Ｔ１〜Ｔ３に分割し、夫々の期間を示すモード信号ＭＯＤＥ１〜ＭＯＤＥ３を出力する。なお、期間Ｔ１は、駆動電流Ｉｄｒを段階的に増加させる期間であり、期間Ｔ２は、駆動電流Ｉｄｒを一定とする期間であり、期間Ｔ３は、駆動電流Ｉｄｒを段階的に減少させる期間である。
【００２４】
ＰＷＭ信号生成回路５３（第１及び第２生成部）は、入力されるＰＷＭ信号Ｓ１のデューティ比に応じたデューティ比を有し、所定周期のＰＷＭ信号Ｓ２を生成する。具体的には、ＰＷＭ信号生成回路５３は、デューティ比が、期間Ｔ１において段階的に増加し、期間Ｔ２においてＰＷＭ信号Ｓ１のデューティ比となり、期間Ｔ３において段階的に減少するようなＰＷＭ信号Ｓ２を生成する。つまり、ＰＷＭ信号生成回路５３は、期間ＴＡにおいて、駆動電流Ｉｄｒが増加した後に減少するようなＰＷＭ信号Ｓ２を出力する。そして、ＰＷＭ信号生成回路５３は、期間ＴＡが経過すると、例えばデューティ比０％のＰＷＭ信号Ｓ２を出力する。
【００２５】
Ｈブリッジ制御回路５４は、ＰＷＭ信号Ｓ２、ＦＧ信号に基づいて駆動信号Ｖｄｒ１〜Ｖｄｒ４を生成し、Ｈブリッジ回路２５を制御する。
【００２６】
＜＜ＦＧカウンタ５１の詳細＞＞
ＦＧカウンタ５１は、例えば、図３に示すように、エッジパルス生成回路１００、アップカウンタ１０１、レジスタ１０２，１０４、転送回路１０３を含んで構成される。
【００２７】
エッジパルス生成回路１００は、ＦＧ信号の立ち上がりエッジ、及び立下りエッジを検出し、エッジパルスＶｅ１を生成する。さらに、エッジパルス生成回路１００は、エッジパルスＶｅ１を遅延させたエッジパルスＶｅ２と、エッジパルスＶｅ２を遅延させたエッジパルスＶｅ３とを生成する。なお、エッジパルスＶｅ２，Ｖｅ３の遅延時間は、クロック信号ＣＬＫ２の周期より十分短くなるよう設計されている。
【００２８】
アップカウンタ１０１は、クロック信号ＣＬＫ２に基づいてアップカウントし、エッジパルスＶｅ２が入力されると、カウント値ｆｇ＿ｃｎｔをレジスタ１０２に格納する。また、アップカウンタ１０１のカウント値ｆｇ＿ｃｎｔは、エッジパルスＶｅ３が入力されるとリセットされる。
【００２９】
レジスタ１０２は、エッジパルスＶｅ２がカウンタ１０１に入力された際のカウンタ１０１のカウント値ｆｇ＿ｒｅｇ１を記憶する。
【００３０】
転送回路１０３は、エッジパルスＶｅ１が入力されると、レジスタ１０２に格納されたカウント値ｆｇ＿ｒｅｇ１を取得し、レジスタ１０４に格納する。
【００３１】
レジスタ１０４は、レジスタ１０２から転送されたカウント値を、カウント値ｆｇ＿ｒｅｇ０として記憶する。
【００３２】
図４は、ＦＧカウンタ５１の動作を説明するための図である。ここでは、例えば、時刻ｔ０から時刻ｔ１までの間に、アップカウンタ１０１のカウント値ｆｇ＿ｃｎｔは、“５４”まで変化することとする。そして、時刻ｔ０となると、レジスタ１０２に格納されるカウント値ｆｇ＿ｒｅｇ１は“５０”となることとする。
【００３３】
時刻ｔ１にＦＧ信号がＬレベルとなると、まず、カウント値ｆｇ＿ｒｅｇ１である“５０”は転送されて、レジスタ１０４のカウント値ｆｇ＿ｒｅｇ０は“５０”となる。そして、レジスタ１０２のカウント値ｆｇ＿ｒｅｇ１は“５４”に更新され、アップカウンタ１０１のカウント値ｆｇ＿ｃｎｔはリセットされる。つまり、時刻ｔ１にＦＧ信号がＬレベルとなると、時刻ｔ１にＦＧ信号がＬレベルとなる前に、ＦＧ信号がＬレベルの際の期間を示すカウント値ｆｇ＿ｒｅｇ０（“５０”）が出力されることになる。
【００３４】
同様に、時刻ｔ２にＦＧ信号がＨレベルとなると、時刻ｔ２にＦＧ信号がＨレベルとなる前に、ＦＧ信号がＨレベルの際の期間（時刻ｔ０〜ｔ１）を示すカウント値ｆｇ＿ｒｅｇ０（“５４”）が出力されることになる。
【００３５】
＜＜モード信号出力回路５２の詳細＞＞
モード信号出力回路５２は、例えば、図５に示すように、期間ＴＡを３つの期間Ｔ１〜Ｔ３に分割し、夫々の期間を示すモード信号ＭＯＤＥ１〜ＭＯＤＥ３を出力する。
【００３６】
モード信号出力回路５２は、図６に示すように、開始値算出回路１１０、レジスタ１１１、及びモード信号生成回路１１２を含んで構成される。
【００３７】
開始値算出回路１１０は、期間ＴＡを示すカウント値ｆｇ＿ｒｅｇ０から、期間Ｔ２、期間Ｔ３の夫々が開始される際のカウント値を算出する。具体的には、例えば、期間Ｔ１、期間Ｔ２、期間Ｔ３の比率が１：１：２となるように期間ＴＡを分割する場合、期間Ｔ２の開始を示すカウント値ＣＮＴ１は、（１／４）×ｆｇ＿ｒｅｇ０となり、期間Ｔ３の開始を示すカウント値ＣＮＴ２は、（１／２）×ｆｇ＿ｒｅｇ０となる。したがって、開始値算出回路１１０は、例えば、カウント値ｆｇ＿ｒｅｇ０を１ビット右シフトしてカウント値ＣＮＴ２を算出し、カウント値ｆｇ＿ｒｅｇ０を２ビット右シフトしてカウント値ＣＮＴ１を算出する。
【００３８】
また、開始値算出回路１１０は、モード信号ＭＯＤＥ１が出力されている際、つまり期間Ｔ１の間には、期間Ｔ２の開始を示すカウント値ＣＮＴ１をレジスタ１１１に格納する。さらに、開始値算出回路１１０は、モード信号ＭＯＤＥ２が出力されている際には、カウント値ＣＮＴ２をレジスタ１１１に格納し、モード信号ＭＯＤＥ３が出力されている際には、カウント値ｆｇ＿ｒｅｇ０をレジスタ１１１に格納する。なお、レジスタ１１１のカウント値ｍｄ＿ｒｅｇは、カウント値が格納される度に更新される。
【００３９】
モード信号生成回路１１２は、ＦＧ信号のカウント値ｆｇ＿ｃｎｔと、カウント値ｍｄ＿ｒｅｇとを比較し、比較結果に応じたモード信号を出力する。また、モード信号生成回路１１２は、エッジ信号Ｖｅ１が入力されると、つまり、カウント値ｆｇ＿ｃｎｔがゼロとなると、モード信号ＭＯＤＥ１を生成する。そして、カウント値ｆｇ＿ｃｎｔがインクリメントされて、カウント値ＣＮＴ１となると、モード信号生成回路１１２は、モード信号ＭＯＤＥ２を生成する。さらに、カウント値ｆｇ＿ｃｎｔがインクリメントされて、カウント値ＣＮＴ２となると、モード信号生成回路１１２は、モード信号ＭＯＤＥ３を生成する。
【００４０】
図７は、モード信号出力回路５２の動作を説明するための図である。なお、ここでは、カウント値ｆｇ＿ｒｅｇ０を例えば“１６”として説明する。このため、期間Ｔ２が開始する際のカウント値ＣＮＴ１は、“４”（（１／４）×ｆｇ＿ｒｅｇ０）となり、期間Ｔ３が開始する際のカウント値ＣＮＴ２は、“８” （（１／２）×ｆｇ＿ｒｅｇ０）となる。
【００４１】
まず、エッジパルスＶｅ１が出力されると、モード信号ＭＯＤＥ１が生成され、カウント値ｍｄ＿ｒｅｇとして“４”が設定される。したがって、カウント値ｆｇ＿ｃｎｔが“４”となるまでは、期間Ｔ１を示すモード信号ＭＯＤＥ１が出力される。
【００４２】
つぎに、カウント値ｆｇ＿ｃｎｔが“４”となると、モード信号はＭＯＤＥ２に変化するとともに、カウント値ｍｄ＿ｒｅｇは“８”に変更される。したがって、カウント値ｆｇ＿ｃｎｔが“８”となるまでは、期間Ｔ２を示すモード信号ＭＯＤＥ２が生成される。
【００４３】
そして、カウント値ｆｇ＿ｃｎｔが“８” となると、期間Ｔ３を示すモード信号ＭＯＤＥ３が生成される。このように、モード信号出力回路５２は、期間ＴＡを３つの期間Ｔ１〜Ｔ３に分割し、夫々の期間に応じたモード信号ＭＯＤＥ１〜ＭＯＤＥ３を出力する。
【００４４】
＜＜ＰＷＭ信号生成回路５３の詳細＞＞
ＰＷＭ信号生成回路５３は、期間検出回路６０、パルス数計算回路６１、演算回路６２、及び信号生成回路６３を含んで構成される。
【００４５】
期間検出回路６０は、入力されるＰＷＭ信号Ｓ１の周期と、ＰＷＭ信号Ｓ１の１周期におけるＨレベルの期間とを検出する。なお、期間検出回路６０は、例えば、ＦＧカウンタ５１と同様に、クロック信号ＣＬＫ１に同期してカウント値を変化させるカウンタ（不図示）を用いて、ＰＷＭ信号Ｓ１の周期等を検出する。また、期間検出回路６０は、検出したＰＷＭ信号Ｓ１の周期をカウント値ｗｃｎｔとして出力し、検出したＰＷＭ信号Ｓ１の１周期におけるＨレベルの期間をカウント値ｈｃｎｔとして出力する。
【００４６】
パルス数計算回路６１は、期間Ｔ１，Ｔ３の夫々において、ＰＷＭ信号生成回路５３が出力できるＰＷＭ信号Ｓ２のパルス数を計算する。本実施形態のＰＷＭ信号Ｓ２は、期間ＴＡをカウントする際のクロック信号ＣＬＫ２に同期して生成される。このため、パルス数計算回路６１は、期間Ｔ１に出力できるＰＷＭ信号Ｓ２のパルス数ｃｓｌｐ＿ｒｅｇ０を、期間ＴＡの全体のパルス数を示すカウント値ｆｇ＿ｒｅｇ０に、期間Ｔ１の比率を乗算して算出する。また、パルス数計算回路６１は、期間Ｔ３に出力できるＰＷＭ信号Ｓ２のパルス数ｃｓｌｐ＿ｒｅｇ２を、カウント値ｆｇ＿ｒｅｇ０に期間Ｔ３の比率を乗算して算出する。なお、このパルス数ｃｓｌｐ＿ｒｅｇ０は、ＦＧカウンタ５１における期間Ｔ１におけるカウント値ｆｇ＿ｃｎｔの変化量と等しくなり、パルス数ｃｓｌｐ＿ｒｅｇ３は、期間Ｔ３におけるカウント値ｆｇ＿ｃｎｔの変化量と等しくなる。
【００４７】
演算回路６２は、期間Ｔ１〜Ｔ３の夫々におけるＰＷＭ信号Ｓ２のデューティ比Ｄ１〜Ｄ３を、クロック信号ＣＬＫ２に同期して計算する。
【００４８】
具体的には、演算回路６２は、期間Ｔ１におけるデューティ比Ｄ１を、カウント値ｆｇ＿ｃｎｔが変化する毎に下記の式（１）に基づいて計算する。  
Ｄ１＝（ｄｕｔｙ／ｃｓｌｐ＿ｒｅｇ０）×ｆｇ＿ｃｎｔ・・・（１）
なお、ここで、ｄｕｔｙ＝ｈｃｎｔ／ｗｃｎｔである。式（１）から明らかなように、期間Ｔ１が開始し、カウント値ｆｇ＿ｃｎｔがインクリメントされるとデューティＤ１は増加する。また、式（１）において、“ｃｓｌｐ＿ｒｅｇ０”は、期間Ｔ１が終了するまでのカウント値ｆｇ＿ｃｎｔの変化量である。したがって、期間Ｔ１が終了すると、デューティ比Ｄ１は、Ｄ１＝ｄｕｔｙとなる。
【００４９】
また、演算回路６２は、期間Ｔ２におけるデューティ比Ｄ２を、式（２）に基づいて算出する。  
Ｄ２＝ｄｕｔｙ・・・（２）
さらに、演算回路６２は、期間Ｔ３におけるデューティ比Ｄ３を、カウント値ｆｇ＿ｃｎｔが変化する毎に式（３）に基づいて算出する。  
Ｄ３＝ｄｕｔｙ−（ｄｕｔｙ／ｃｓｌｐ＿ｒｅｇ２）×（ｆｇ＿ｃｎｔ−ＣＮＴ２）
・・・（３）
【００５０】
なお、カウント値ＣＮＴ２は、期間Ｔ３が開始される際のカウント値ｆｇ＿ｃｎｔの値であり、例えば（１／２）×ｆｇ＿ｒｅｇ０である。このため、カウント値ｆｇ＿ｃｎｔがインクリメントされると、デューティ比Ｄ３は低下する。さらに、式（３）において、“ｃｓｌｐ＿ｒｅｇ２”は、期間Ｔ３が終了するまでのカウント値ｆｇ＿ｃｎｔの変化量である。したがって、カウント値ｆｇ＿ｃｎｔがｆｇ＿ｒｅｇ０となると、デューティ比Ｄ３は、Ｄ３＝０となる。
【００５１】
ところで、期間Ｔ３は、過去にＦＧカウンタ５１に入力されたＦＧ信号に基づいて算出された期間であり、カウント値ｆｇ＿ｃｎｔは、現在ＦＧカウンタ５１に入力されているＦＧ信号のカウント値である。このため、例えば、期間Ｔ３が終了しても、モード信号ＭＯＤＥ３が出力され続け、カウント値ｆｇ＿ｃｎｔはインクリメントされ続けることがある。このような場合、カウント値ｆｇ＿ｃｎｔはインクリメントされ続けるため、デューティＤ３は、負の値になってしまう。そこで、演算回路６２は、例えば、デューティＤ３の計算結果が負の値となると、デューティ比Ｄ３として“０”を出力する。
【００５２】
つまり、式（３）の値が負となると、
Ｄ３＝０・・・（４）
となる。  
なお、演算回路６２は、式（１）、（３）の計算を実行する際には、計算精度を向上させるために、デューティ比を示す値（ｈｃｎｔ／ｗｃｎｔ）と、カウント値ｆｇ＿ｃｎｔとの積を除算処理の前に行っている。
【００５３】
信号生成回路６３は、演算回路６２で得られたデューティ比Ｄ１〜Ｄ３のＰＷＭ信号Ｓ２を、クロック信号ＣＬＫ２に同期して生成する。
【００５４】
ここで、図８〜図１０を参照しつつ、信号生成回路６３で生成されるＰＷＭ信号Ｓ２の波形の一例について説明する。
【００５５】
図８は、現在ＦＧカウンタ５１に入力されているＦＧ信号がＨレベル、またはＬレベルとなる期間（第２の期間）と、過去に検出された期間ＴＡ（第１の期間，第３の期間，第４の期間）とが等しい場合の一例である。また、図９は、現在ＦＧカウンタ５１に入力されているＦＧ信号がＨレベル、またはＬレベルとなる期間が、期間ＴＡより短い場合の一例であり、図１０は、現在ＦＧカウンタ５１に入力されているＦＧ信号がＨレベル、またはＬレベルとなる期間が、期間ＴＡより長い場合の一例である。
【００５６】
なお、ここでは、図７の場合と同様に、期間ＴＡを示すカウント値ｆｇ＿ｒｅｇ０を例えば“１６”とし、期間Ｔ２が開始する際のカウント値ＣＮＴ１を“４”（（１／４）×ｆｇ＿ｒｅｇ０）とし、期間Ｔ３が開始する際のカウント値ＣＮＴ２を“８” （（１／２）×ｆｇ＿ｒｅｇ０）とする。このため、“ｃｓｌｐ＿ｒｅｇ０”は“４”となり、“ｃｓｌｐ＿ｒｅｇ２”は“８”となる。さらに、ｄｕｔｙ＝ｈｃｎｔ／ｗｃｎｔ＝４０％であることとする。
【００５７】
まず、現在のＦＧ信号がＨレベルとなる期間が、期間ＴＡと等しい場合、つまり、現在のＦＧがＨレベルとなる期間におけるカウント値ｆｇ＿ｃｎｔが“１６”となる場合について、図８を参照しつつ説明する。
【００５８】
期間Ｔ１におけるデューティ比Ｄ１は、前述の式（１）の各変数に値を代入することにより、式（５）に示すようになる。  
Ｄ１＝（４０／４）×ｆｇ＿ｃｎｔ・・・（５）
したがって、まず、カウント値ｆｇ＿ｃｎｔが“０”〜“４”となるまで、デューティ比Ｄ１は段階的に増加する。また、カウント値ｆｇ＿ｃｎｔがインクリメントして“４”となると、期間Ｔ２が開始される。期間Ｔ２におけるデューティ比Ｄ２は、式（２）から明らかなように一定（４０％）である。
【００５９】
そして、カウント値ｆｇ＿ｃｎｔがインクリメントして“８”となると、期間Ｔ３が開始される。期間Ｔ３におけるデューティ比Ｄ３は、式（３）の各変数に値を代入することにより、式（６）に示すようになる。  
Ｄ３＝４０−（４０／８）×（ｆｇ＿ｃｎｔ−８）・・・（６）
したがって、カウント値ｆｇ＿ｃｎｔが“９”〜“１６”となるまで、デューティ比Ｄ３は段階的に減少する。このように、ＰＷＭ信号Ｓ２のデューティ比は徐々に増加して一定となり、その後、徐々に減少する。
【００６０】
つぎに、現在のＦＧ信号がＨレベルとなる期間が、期間ＴＡより短い場合、つまり、現在のＦＧがＨレベルとなる期間におけるカウント値ｆｇ＿ｃｎｔが、例えば“１３”（＜ “ｆｇ＿ｒｅｇ０＝１６”）である場合について、図９を参照しつつ説明する。なお、ここでは、時刻ｔ１０にＦＧ信号がＨレベルとなり、カウント値ｆｇ＿ｃｎｔが“１３”になった後の時刻ｔ１１にＦＧ信号がＬレベルとなることとする。また、カウント値ｆｇ＿ｃｎｔが“０”から“１３”までの期間（時刻ｔ１０〜ｔ１１までの間）の波形については、図８と同様であるため説明は省略する。
【００６１】
時刻ｔ１０にＦＧ信号がＬレベルとなると、つまり、ＦＧ信号の論理レベルが変化すると、カウント値ｆｇ＿ｃｎｔはリセットされ、モード信号ＭＯＤＥ１が出力される。このため、時刻ｔ１１においては、デューティ比Ｄ３からデューティ比Ｄ１へと変化する。したがって、時刻ｔ１１となると、再度時刻ｔ１０と同様にデューティ比が変化することになる。
【００６２】
さらに、現在のＦＧ信号がＨレベルとなる期間が、期間ＴＡより長い場合、つまり、現在のＦＧがＨレベルとなる期間におけるカウント値ｆｇ＿ｃｎｔが、例えば“１８”（＞ “ｆｇ＿ｒｅｇ０＝１６”）である場合について、図１０を参照しつつ説明する。なお、ここでは、時刻ｔ２０にＦＧ信号がＨレベルとなり、カウント値ｆｇ＿ｃｎｔが“１８”になった後の時刻ｔ２２にＦＧ信号がＬレベルとなることとする。また、カウント値ｆｇ＿ｃｎｔが“０”から“１６”までの期間（時刻ｔ２０〜ｔ２１までの間）の波形については、図８と同様であるため説明は省略する。
【００６３】
時刻ｔ２１にカウント値ｆｇ＿ｃｎｔが“１６”となった後は、カウント値ｆｇ＿ｃｎｔはインクリメントされ“１７”となる。カウント値ｆｇ＿ｃｎｔが“１７”のデューティ比Ｄ３は、式（６）に“１７”が代入された式（７）で得られる。  
Ｄ３＝４０−（４０／８）×（１７−８）
＝−５（＜０）・・・（７）
【００６４】
この結果、デューティ比Ｄ３は負の値となるため、前述の式（４）から、デューティ比Ｄ３としては“０”が出力されることになる。また、カウント値ｆｇ＿ｃｎｔがインクリメントされ“１８”となった場合も同様である。そして、時刻ｔ２２にＦＧ信号がＬレベルになると、カウント値ｆｇ＿ｃｎｔはリセットされるとともに、モード信号ＭＯＤＥ１が出力されるため、時刻２０における動作が繰り返される。
【００６５】
＜＜Ｈブリッジ制御回路５４の詳細＞＞
Ｈブリッジ制御回路５４は、ＰＷＭ信号Ｓ２、及びＦＧ信号に基づいて駆動信号Ｖｄｒ１〜Ｖｄｒ４を生成し、Ｈブリッジ回路２５を制御する。
【００６６】
Ｈブリッジ制御回路５４は、ＦＧ信号がＨレベルの場合、駆動電流Ｉｄｒが端子ＯＵＴ１から端子ＯＵＴ２へと流れるようにＨブリッジ回路２５を制御する。具体的には、Ｈブリッジ制御回路５４は、例えば、ＮＭＯＳトランジスタ４３をオンし、ＰＭＯＳトランジスタ４１、及びＮＭＯＳトランジスタ４２をオフするとともに、ＰＭＯＳトランジスタ４０をＰＷＭ信号Ｓ２に基づいてスイッチングする。
【００６７】
一方、Ｈブリッジ制御回路５４は、ＦＧ信号がＬレベルの場合、駆動電流Ｉｄｒが端子ＯＵＴ２から端子ＯＵＴ１へと流れるようにＨブリッジ回路２５を制御する。具体的には、Ｈブリッジ制御回路５４は、例えばＮＭＯＳトランジスタ４２をオンし、ＰＭＯＳトランジスタ４０、及びＮＭＯＳトランジスタ４３をオフするとともに、ＰＭＯＳトランジスタ４１をＰＷＭ信号Ｓ２に基づいてスイッチングする。
【００６８】
図１１は、Ｈブリッジ制御回路５４に、デューティ比が０％〜４０％まで変化するＰＷＭ信号Ｓ２が入力された場合の駆動電流Ｉｄｒの変化を示す図である。なお、ここでは、例えば、時刻ｔ３０〜時刻ｔ３１までの期間は期間ＴＡと同じであり、時刻ｔ３１〜時刻ｔ３２までの期間は期間ＴＡより短く、時刻ｔ３３〜時刻ｔ３５までの期間は期間ＴＡより長いこととする。
【００６９】
例えば、時刻ｔ３０から時刻ｔ３１においては、ＰＷＭ信号Ｓ２のデューティ比が段階的に高くなると、駆動電流Ｉｄｒは徐々に増加し、ＰＷＭ信号Ｓ２のデューティ比が一定となると、駆動信号Ｉｄｒの変化も抑制される。そして、ＰＷＭ信号Ｓ２のデューティ比が段階的に低くなると、駆動電流Ｉｄｒは徐々に減少する。なお、ここでは、端子ＯＵＴ１から端子ＯＵＴ２へと流れる電流を正の電流としている。したがって、ＰＷＭ信号Ｓ２のデューティ比に応じて緩やかに変化する駆動電流Ｉｄｒが流れることになる。
【００７０】
また、時刻ｔ３１〜時刻ｔ３２においては、ＦＧ信号がＬレベルとなるため、時刻ｔ３０〜時刻ｔ３１の間に流れる電流と同様の駆動電流Ｉｄｒが負の方向に流れる。ただし、この期間は期間ＴＡよりも短いため、時刻ｔ３２にＦＧ信号の論理レベルが変化し相切り替えが起こる。このような場合であっても、時刻ｔ３２となると、ＰＷＭ信号Ｓ２のデューティ比は再び増加する。したがって、相切り替えが起こった時刻ｔ３２の後において、確実に駆動電流Ｉｄｒを増加させることができる。
【００７１】
時刻ｔ３３〜時刻ｔ３５においては、ＦＧ信号がＨレベルとなるため、時刻ｔ３０〜時刻ｔ３１の間に流れる電流と同様の駆動電流Ｉｄｒが正の方向に流れる。なお、この期間は期間ＴＡより長いため、時刻ｔ３４から相切り替えが起きる時刻ｔ３５までは、デューティ比がゼロのＰＷＭ信号Ｓ２が出力され続ける。したがって、相切り替えが起きるまでは、確実に駆動電流Ｉｄｒをゼロにすることができる。
【００７２】
このように、本実施形態では、駆動電流Ｉｄｒを緩やかに変化させるとともに、相切り替えが発生すると確実に駆動電流Ｉｄｒを増加させ後に、駆動電流Ｉｄｒを減少させることができる。
【００７３】
＝＝駆動信号出力回路２４ｂ（第２の実施形態）について＝＝
図１２は、駆動信号生成回路２４の第２の実施形態の構成を示す図である。なお、図２と図１２とで同一の符号の付されたブロックは同じである。
【００７４】
図１２の駆動信号生成回路２４ｂ（ＰＷＭ信号出力回路）では、ＰＷＭ信号生成回路５３の代わりに、ＰＷＭ信号生成回路２００が用いられている。
【００７５】
ＰＷＭ信号生成回路２００（第１及び第２生成部）は、入力されるＰＷＭ信号Ｓ１と同期したＰＷＭ信号Ｓ３を生成する回路であり、期間検出回路６０、パルス数カウンタ３００、演算回路３１０、及び信号生成回路３２０を含んで構成される。なお、期間検出回路６０は、図２に示したブロックと同様であるため説明は省略する。
【００７６】
パルス数カウンタ３００は、期間Ｔ１，Ｔ３の夫々に入力されるＰＷＭ信号Ｓ１のパルス数をカウントする。そして、パルス数カウンタ３００は、期間Ｔ１にカウントされるＰＷＭ信号Ｓ１のパルス数を、“ａｓｌｐ＿ｒｅｇ０”とし、期間Ｔ３にカウントされるＰＷＭ信号Ｓ１のパルス数を、“ａｓｌｐ＿ｒｅｇ２”として演算回路３１０に出力する。なお、“ａｓｌｐ＿ｒｅｇ０”は、期間Ｔ１におけるパルス数カウンタ３００のカウント値ｓｌｐ＿ｃｎｔの変化量であり、“ａｓｌｐ＿ｒｅｇ２” は、期間Ｔ３におけるパルス数カウンタ３００のカウント値ｓｌｐ＿ｃｎｔの変化量である。
【００７７】
また、パルス数カウンタ３００は、例えば、エッジパルスＶｅ１が入力されるとリセットされ、ＭＯＤＥ信号３が入力されるとカウント値ｓｌｐ＿ｃｎｔとして“１”が設定される。
【００７８】
演算回路３１０は、期間Ｔ１〜Ｔ３の夫々におけるＰＷＭ信号Ｓ３の１周期におけるＨレベルの期間Ｈ１〜Ｈ３を、ＰＷＭ信号Ｓ１に同期して計算する。
【００７９】
具体的には、演算回路３１０は、期間Ｔ１におけるＨレベルの期間Ｈ１を、カウント値ｓｌｐ＿ｃｎｔが変化する毎に下記の式（８）に基づいて計算する。  
Ｈ１＝（ｈｃｎｔ／ａｓｌｐ＿ｒｅｇ０）×ｓｌｐ＿ｃｎｔ・・・（８）
式（８）から明らかなように、期間Ｔ１が開始し、カウント値ｓｌｐ＿ｃｎｔがインクリメントされるとＨレベルの期間Ｈ１は増加する。また、式（８）において、“ａｓｌｐ＿ｒｅｇ０”は、期間Ｔ１が終了するまでのカウント値ｓｌｐ＿ｃｎｔの変化量である。したがって、期間Ｔ１が終了すると、Ｈレベルの期間Ｈ１は、Ｈ１＝ｈｃｎｔとなる。
【００８０】
また、演算回路３１０は、期間Ｔ２におけるＨレベルの期間Ｈ２を、式（９）に基づいて算出する。  
Ｈ２＝ｈｃｎｔ・・・（９）
さらに、演算回路３１０は、期間Ｔ３におけるＨレベルの期間Ｈ３を、カウント値ｓｌｐ＿ｃｎｔが変化する毎に式（１０）に基づいて算出する。  
Ｈ３＝ｈｃｎｔ−（ｈｃｎｔ／ａｓｌｐ＿ｒｅｇ２）×（ｓｌｐ＿ｃｎｔ）
・・・（１０）
このため、カウント値ｓｌｐ＿ｃｎｔがインクリメントされると、Ｈレベルの期間Ｈ３は低下する。さらに、式（１０）において、“ａｓｌｐ＿ｒｅｇ２”は、期間Ｔ３が終了するまでのカウント値ｓｌｐ＿ｃｎｔの変化量である。したがって、カウント値ｓｌｐ＿ｃｎｔが、期間Ｔ３が終了する際のａｓｌｐ＿ｒｅｇ２となると、Ｈレベルの期間Ｈ３は、Ｈ３＝０となる。
【００８１】
ただし、図２の回路と同様に、モード信号ＭＯＤＥ３が出力され続け、カウント値ｓｌｐ＿ｃｎｔはインクリメントされ続けることがある。このような場合、カウント値ｓｌｐ＿ｃｎｔはインクリメントされ続けるため、Ｈレベルの期間Ｈ３は、負の値になってしまう。そこで、演算回路６２は、例えば、Ｈレベルの期間Ｈ３の計算結果が負の値となると、Ｈレベルの期間Ｈ３として“０”を出力する。  
つまり、式（１０）の値が負となると、
Ｈ３＝０・・・（１１）
となる。
【００８２】
なお、演算回路３１０は、式（８）、（１０）の計算を実行する際には、計算精度を向上させるために、Ｈレベルの期間を示す値ｈｃｎｔと、カウント値ｓｌｐ＿ｃｎｔとの積を除算処理の前に行っている。
【００８３】
信号生成回路３２０は、期間Ｔ１〜Ｔ３の夫々で計算されたＨレベルの期間Ｈ１〜Ｈ３のＰＷＭ信号Ｓ３を、ＰＷＭ信号Ｓ１に同期して生成する。
【００８４】
ここで、図１３を参照しつつ、信号生成回路３２０で生成されるＰＷＭ信号Ｓ３の波形の一例について説明する。なお、ここでは、期間Ｔ１におけるＰＷＭ信号Ｓ１のパルス数 “ａｓｌｐ＿ｒｅｇ０”を“４”とし、期間Ｔ３におけるＰＷＭ信号Ｓ１のパルス数“ａｓｌｐ＿ｒｅｇ２”を“８”とする。また、ＰＷＭ信号Ｓ１のＨレベルの期間を示すカウント値“ｈｃｎｔ”は、“８０”であり、１周期の期間を示すカウント値“ｗｃｎｔ”は、“１６０”であることとする。つまり、ＰＷＭ信号Ｓ１のデューティ比は５０％である。
【００８５】
さらに、ここでは、実際にＦＧ信号がＨレベルとなる期間は、期間ＴＡと同じであることとする。
【００８６】
まず、期間Ｔ１におけるＨレベルの期間Ｈ１は、前述の式（８）の各変数に値を代入することにより、式（１２）に示すようになる。  
Ｈ１＝（８０／４）×ｓｌｐ＿ｃｎｔ・・・（１２）
したがって、まず、カウント値ｓｌｐ＿ｃｎｔが“０”〜“４”となるまで、Ｈレベルの期間Ｈ１は段階的に増加する。また、期間Ｔ２におけるＨレベルの期間Ｈ２は、式（９）から明らかなように一定“８０”である。
【００８７】
そして、期間Ｔ３が開始されると、期間Ｔ３におけるＨレベルの期間Ｈ３は、式（１０）の各変数に値を代入することにより、式（１３）に示すようになる。  
Ｈ３＝８０−（（８０／８）×ｓｌｐ＿ｃｎｔ）・・・（１３）
このため、カウント値ｓｌｐ＿ｃｎｔが“１”〜“８”となるまで、Ｈレベルの期間Ｈ３は段階的に減少する。また、ＰＷＭ信号Ｓ３及びＰＷＭ信号Ｓ１の周期は等しいため、Ｈレベルの期間Ｈ１〜Ｈ３が変化すると、ＰＷＭ信号Ｓ３のデューティ比も、同様に変化する。この結果、ＰＷＭ信号Ｓ３のデューティ比は徐々に増加して一定（５０％）となり、その後、徐々に減少する。
【００８８】
なお、例えば、実際にＦＧ信号がＨレベルとなる期間が期間ＴＡより短い場合は前述した図９と同様になり、実際にＦＧ信号がＨレベルとなる期間が期間ＴＡより長い場合は前述した図１０と同様になるため詳細な説明は省略する。このように、図１２に示す駆動信号生成回路２４ｂを用いた場合も、図２に示す駆動信号生成回路２４ａを用いた場合と同様に駆動電流Ｉｄｒが変化する。
【００８９】
＝＝駆動信号出力回路２４ｃ（第３の実施形態）について＝＝
図１４は、駆動信号生成回路２４の第３の実施形態の構成を示す図である。なお、図２と図１４とで同一の符号の付されたブロックは同じである。図１４の駆動信号出力回路２４ｃおいては、駆動信号出力回路２４ａに対し、擬似ＦＧ信号生成回路４００が追加されている。
【００９０】
＜＜擬似ＦＧ信号生成回路の第１の実施形態＞＞
擬似ＦＧ信号生成回路４００（補正部）は、入力されるＦＧ信号のＨレベルの期間と、Ｌレベルの期間とが等しくなるようＦＧ信号を補正し、信号ｆｋｆｇとして出力する回路である。擬似ＦＧ信号生成回路４００は、図１５に示すように、アップカウンタ４１０、レジスタ４１１，４１２、演算回路４１３、及び信号生成回路４１４を含んで構成される。
【００９１】
アップカウンタ４１０は、ＦＧ信号がＨレベルとなる期間、及びＦＧ信号がＬレベルとなる期間をカウントする。また、アップカウンタ４１０は、ＦＧ信号がＬレベルとなる期間のカウント値をレジスタ４１１に格納し、ＦＧ信号がＨレベルとなる期間のカウント値をレジスタ４１２に格納する。
【００９２】
レジスタ４１１には、ＦＧ信号がＬレベルとなる期間をカウント値ｒｅｇ＿ａ（第１のカウント値）として記憶し、レジスタ４１２は、ＦＧ信号がＨレベルとなる期間をカウント値ｒｅｇ＿ｂ（第２のカウント値）として記憶する。
【００９３】
演算回路４１３（算出部）は、例えば、ＦＧ信号がＨレベルからＬレベルとなり、レジスタ４１２に格納されるカウント値ｒｅｇ＿ｂが更新されると、カウント値ｒｅｇ＿ａと、カウント値ｒｅｇ＿ｂとの差ｄｅｌ＿ｆｇ（＝ｒｅｇ＿ａ−ｒｅｇ＿ｂ）の半分の値ｐｈａｓｅ＿ａを算出する。
【００９４】
信号生成回路４１４（信号出力部）は、例えば、ＦＧ信号がＬレベルからＨレベルとなると、カウント値ｒｅｇ＿ｂ及び値ｐｈａｓｅ＿ａに基づいた期間だけ、クロック信号ＣＬＫ２に同期してＨレベルの信号ｆｋｆｇを出力する。具体的には、差ｄｅｌ＿ｆｇが負の場合、つまり、カウント値ｒｅｇ＿ａがカウント値ｒｅｇ＿ｂより小さい場合、カウント値ｒｅｇ＿ｂから値ｐｈａｓｅ＿ａを減算した値の期間だけ、Ｈレベルの信号ｆｋｆｇを出力する。一方、差ｄｅｌ＿ｆｇが正の場合、つまり、カウント値ｒｅｇ＿ａがカウント値ｒｅｇ＿ｂより大きい場合、カウント値ｒｅｇ＿ｂに値ｐｈａｓｅ＿ａを加算した値の期間だけ、Ｈレベルの信号ｆｋｆｇを出力する。
【００９５】
また、信号生成回路４１４は、Ｈレベルの信号ｆｋｆｇを出力した後は、カウント値ｒｅｇ＿ａ及び値ｐｈａｓｅ＿ａに基づいた期間だけ、クロック信号ＣＬＫ２に同期してＬレベルの信号ｆｋｆｇを出力する。具体的には、カウント値ｒｅｇ＿ａがカウント値ｒｅｇ＿ｂより小さい場合、カウント値ｒｅｇ＿ａに値ｐｈａｓｅ＿ａを加算した値の期間だけ、Ｌレベルの信号ｆｋｆｇを出力する。一方、カウント値ｒｅｇ＿ａがカウント値ｒｅｇ＿ｂより大きい場合、カウント値ｒｅｇ＿ａから値ｐｈａｓｅ＿ａを減算した値の期間だけ、Ｌレベルの信号ｆｋｆｇを出力する。この結果、ＦＧ信号がＨレベルとなる度に、Ｈレベルとなった後にＬレベルとなる信号ｆｋｆｇが出力される。
【００９６】
図１６は、擬似ＦＧ信号生成回路４００で生成される信号ｆｋｆｇについて説明するための図である。例えば、時刻ｔ１００となった後に、ＦＧ信号がＬレベルとなる期間を示すカウント値ｒｅｇ＿ａが更新され、カウント値ｒｅｇ＿ａが“５０”となる。また、時刻ｔ１０１となった後に、ＦＧ信号がＨレベルとなる期間を示すカウント値ｒｅｇ＿ｂが更新され、カウント値ｒｅｇ＿ｂが“５４”となる。さらに、時刻ｔ１０１にＦＧ信号がＨレベルからＬレベルとなり、カウント値ｒｅｇ＿ｂが更新されると、差ｄｅｌ＿ｆｇ（“−４”）と、値ｐｈａｓｅ＿ａ（“−２”）が算出される。そして、時刻ｔ１０２に、ＦＧ信号がＬレベルからＨレベルとなると、Ｈレベルの信号ｆｋｆｇがカウント値“５２（＝５４−２）”の期間だけ出力され、その後、Ｌレベルの信号ｆｋｆｇがカウント値“５２（＝５０＋２）”の期間だけ出力される。このように、擬似ＦＧ信号生成回路４００は、ＦＧ信号がＨレベルとなる度に、Ｈレベルの期間と、Ｌレベルの期間とが等しくなる信号ｆｋｆｇを出力する。
【００９７】
そして、図１４に示す駆動信号出力回路２４ｃにおけるＰＷＭ信号生成回路５３は、Ｈレベルの期間と、Ｌレベルの期間とが等しい信号ｆｋｆｇに基づいてＰＷＭ信号Ｓ２を生成することになる。この結果、モータコイルＬの駆動電流Ｉｄｒが正の方向に流れる期間は、負の方向に流れる期間と等しくなる。
【００９８】
＜＜擬似ＦＧ信号生成回路の第２の実施形態＞＞
図１７に示す擬似ＦＧ信号生成回路５００は、擬似ＦＧ信号生成回路４００と同様に、ＦＧ信号を補正した信号ｆｋｆｇを出力する回路である。
【００９９】
擬似ＦＧ信号生成回路５００（補正部）は、アップカウンタ５１０、レジスタ５１１、演算回路５１２、及び信号生成回路５１３を含んで構成される。
【０１００】
アップカウンタ５１０は、ＦＧ信号がＨレベルからＬレベルになると、ＦＧ信号がＨレベルとなる期間をレジスタ５１１に格納し、ＦＧ信号がＬレベルからＨレベルになると、ＦＧ信号がＬレベルとなる期間をレジスタ５１１に格納する。
【０１０１】
レジスタ５１１には、ＦＧ信号がＨレベルとなる期間、及びＦＧ信号がＬレベルとなる期間の夫々をカウント値ｒｅｇ＿ｃとして記憶する。
【０１０２】
演算回路５１２（算出部）は、例えばＦＧ信号がＨレベルとなった際に更新される前のカウント値ｒｅｇ＿ｃ（１周期前のＦＧ信号のＨレベルの期間を示すカウント値）と、更新された後のカウント値ｒｅｇ＿ｃ（１周期前のＦＧ信号のＬレベルの期間を示すカウント値）とを取得する。そして、演算回路５１２は、更新前後のカウント値ｒｅｇ＿ｃの差ｄｅｌ＿ｆｇ（更新前のカウント値−更新後のカウント値）の半分の値ｐｈａｓｅ＿ａを算出する。
【０１０３】
信号生成回路５１３（信号出力部）は、例えばＦＧ信号がＨレベルからＬレベルとなると、ＦＧ信号がＬレベルとなった際に更新される前のカウント値ｒｅｇ＿ｃ（１周期前のＦＧ信号のＬレベルの期間を示すカウント値）と、値ｐｈａｓｅ＿ａとに基づいた期間だけ、クロック信号ＣＬＫ２に同期してＬレベルの信号ｆｋｆｇを出力する。
【０１０４】
具体的には、差ｄｅｌ＿ｆｇが正の場合、ＦＧ信号がＬレベルとなった際に更新される前のカウント値ｒｅｇ＿ｃに値ｐｈａｓｅ＿ａを加算した値の期間だけ、Ｌレベルの信号ｆｋｆｇを出力する。一方、差ｄｅｌ＿ｆｇが負の場合、ＦＧ信号がＬレベルとなった際に更新される前のカウント値ｒｅｇ＿ｃから値ｐｈａｓｅ＿ａを減算した値の期間だけ、Ｌレベルの信号ｆｋｆｇを出力する。
【０１０５】
また、信号生成回路４１４は、Ｌレベルの信号ｆｋｆｇを出力した後は、ＦＧ信号がＬレベルとなって更新された後のカウント値ｒｅｇ＿ｃ（１周期前のＦＧ信号のＨレベルの期間を示すカウント値）と、値ｐｈａｓｅ＿ａとに基づいた期間だけ、クロック信号ＣＬＫ２に同期してＨレベルの信号ｆｋｆｇを出力する。具体的には、差ｄｅｌ＿ｆｇが正の場合、ＦＧ信号がＬレベルとなって更新された後のカウント値ｒｅｇ＿ｃから値ｐｈａｓｅ＿ａを減算した値の期間だけ、Ｈレベルの信号ｆｋｆｇを出力する。一方、差ｄｅｌ＿ｆｇが負の場合、ＦＧ信号がＬレベルとなって更新された後のカウント値ｒｅｇ＿ｃに値ｐｈａｓｅ＿ａを加算した値の期間だけ、Ｈレベルの信号ｆｋｆｇを出力する。
【０１０６】
図１８は、擬似ＦＧ信号生成回路５００で生成される信号ｆｋｆｇについて説明するための図である。例えば、時刻ｔ２００となった後には、ＦＧ信号がＨレベルとなる期間を示すカウント値ｒｅｇ＿ｃが更新され、カウント値ｒｅｇ＿ｃが“５４”となる。
【０１０７】
また、時刻ｔ２０１となった後には、ＦＧ信号がＬレベルとなる期間を示すカウント値ｒｅｇ＿ｃが更新され、カウント値ｒｅｇ＿ｃは“５０”となる。なお、時刻２０１にＦＧ信号がＬレベルからＨレベルとなる際には、差ｄｅｌ＿ｆｇ（“４”）と、値ｐｈａｓｅ＿ａ（“２”）が算出される。そして、時刻ｔ２０２に、ＦＧ信号がＨレベルからＬレベルとなると、Ｌレベルの信号ｆｋｆｇがカウント値“５２（＝５０＋２）”の期間だけ出力され、その後、Ｈレベルの信号ｆｋｆｇがカウント値“５２（＝５４−２）”の期間だけ出力される。このように、擬似ＦＧ信号生成回路４００は、ＦＧ信号がＬレベルとなる度にＬレベルの期間と、Ｈレベルの期間とが等しくなる信号ｆｋｆｇを出力する。このため、例えば、図１４に示す駆動信号出力回路２４ｃにおいて、擬似ＦＧ信号生成回路４００の代わりに擬似ＦＧ信号生成回路５００を用いた場合であっても、擬似ＦＧ信号生成回路４００を用いた場合と同様の効果を得ることができる。
【０１０８】
以上、本実施形態のモータ駆動ＩＣ１０について説明した。例えば駆動信号出力回路２４ａでは、ＦＧ信号の論理レベルが変化してから、次にＦＧ信号の論理レベルが変化するまでの間に、デューティ比が増加した後に減少するＰＷＭ信号Ｓ２が常に生成される。このため、駆動信号出力回路２４ａは、モータ駆動ＩＣ１０にソフトスイッチングを実行させつつ、モータ１１を安定に回転させることができる。
【０１０９】
また、モータ１１の回転速度が一定の場合であっても、一般的には、ＦＧ信号がＨレベルとなる期間と、ＦＧ信号がＬレベルとなる期間は正確には一致しない。しかしながら、例えば、図１６に例示するように、ＦＧ信号がＨレベルとなる期間及びＬレベルとなる期間の夫々はほぼ一定となる。駆動信号出力回路２４ａは、過去のＦＧ信号のＨレベルの期間に基づいて、ＦＧ信号がＨレベルとなっている期間におけるＰＷＭ信号Ｓ２を生成し、過去のＦＧ信号のＬレベルの期間に基づいて、ＦＧ信号がＬレベルとなっている期間におけるＰＷＭ信号Ｓ２を生成している。したがって、より安定にモータ１１を回転させることが可能となる。
【０１１０】
また、信号ｆｋ＿ｆｇに基づいてＰＷＭ信号Ｓ２が生成された場合、この結果、モータコイルＬの駆動電流Ｉｄｒが正の方向に流れる期間は、負の方向に流れる期間にほぼ等しくなる。したがって、より安定にモータ１１を回転させることができる。
【０１１１】
また、信号ｆｋ＿ｆｇは、アップカウンタ４１０等により生成されているため、信号ｆｋ＿ｆｇのＨレベルの期間と、信号ｆｋ＿ｆｇのＬレベルの期間を精度良く一致させることができる。
【０１１２】
また、過去に検出された期間ＴＡよりも、現在ＰＷＭ信号Ｓ２を生成している期間が長くなると、デューティ比が“０”（所定のデューティ比）のＰＷＭ信号Ｓ２が出力される。したがって、相切り替えが起きる前に確実に駆動電流Ｉｄｒをゼロとすることができる。
【０１１３】
なお、上記実施例は本発明の理解を容易にするためのものであり、本発明を限定して解釈するためのものではない。本発明は、その趣旨を逸脱することなく、変更、改良され得ると共に、本発明にはその等価物も含まれる。
【０１１４】
例えば、擬似ＦＧ信号生成回路４００を駆動信号出力回路２４ｂに用いても、駆動信号出力回路２４ｃと同様の効果を得ることができる。
【符号の説明】
【０１１５】
１０  モータ駆動ＩＣ
１１  モータ
１２  ホール素子
２０  コンパレータ
２１  デューティ検出回路
２２，５３，２００  ＰＷＭ信号生成回路
２３  セレクタ（ＳＥＬ）
２４  駆動信号出力回路
２５  Ｈブリッジ回路
４０，４１  ＰＭＯＳトランジスタ
４２，４３  ＮＭＯＳトランジスタ
５０  分周回路
５１  ＦＧカウンタ
５２  モード信号出力回路
５４  Ｈブリッジ制御回路
６０  期間検出回路
６１  パルス数計算回路
６２，３１０，４１３，５１２  演算回路
６３，３２０，４１４，５１３  信号生成回路
１００  エッジパルス生成回路
１０１，４１０，５１０  アップカウンタ
１０２，１０４，１１１，４１１，４１２，５１１  レジスタ
１０３  転送回路
１１０  開始値算出回路
１１２  モード信号生成回路
１２１，３２０  停止信号生成回路
３００  パルス数カウンタ
４００，５００  擬似ＦＧ信号生成回路
【図１】
0005977933.tif 000002
【図２】
0005977933.tif 000003
【図３】
0005977933.tif 000004
【図４】
0005977933.tif 000005
【図５】
0005977933.tif 000006
【図６】
0005977933.tif 000007
【図７】
0005977933.tif 000008
【図８】
0005977933.tif 000009
【図９】
0005977933.tif 000010
【図１０】
0005977933.tif 000011
【図１１】
0005977933.tif 000012
【図１２】
0005977933.tif 000013
【図１３】
0005977933.tif 000014
【図１４】
0005977933.tif 000015
【図１５】
0005977933.tif 000016
【図１６】
0005977933.tif 000017
【図１７】
0005977933.tif 000018
【図１８】
0005977933.tif 000019