(57)【要約】【課題】ショートブレーキを適切にかけることが可能な駆動回路を提供する。【解決手段】第１検出回路４１０はクロック信号ＣＬＫにもとづき、ロータの目標位置を示す位置指令値Ｐ＿ＴＧＴ、目標回転数を示す速度指令値Ｖ＿ＴＧＴ、を生成する。第２検出回路４２０は、エンコーダからのパルス信号ＥＮ＿Ａ，ＥＮ＿Ｂにもとづき、ロータの現在位置を示す位置検出値Ｐ＿ＦＢ、現在の回転速度を示す速度検出値Ｖ＿ＦＢ、を生成する。フィードバックコントローラ３３０は、位置検出値Ｐ＿ＦＢが位置指令値Ｐ＿ＴＧＴに近づくように、トルク指令値Ｔ＿ＲＥＦを生成する。ブレーキコントローラ４３０は、位置検出値Ｐ＿ＦＢが位置指令値Ｐ＿ＴＧＴより大きく、かつトルク指令値Ｔ＿ＲＥＦが負であるときに、ショートブレーキを掛ける。【選択図】図１３
2019088062.tif 000002
【特許請求の範囲】
【請求項１】
上位コントローラからのクロック信号とエンコーダからのパルス信号に応じてＤＣモータを駆動する駆動回路であって、
前記クロック信号にもとづき、前記ＤＣモータのロータの目標位置を示す位置指令値を生成する第１検出回路と、
前記パルス信号にもとづき、前記ロータの現在位置を示す位置検出値を生成する第２検出回路と、
前記位置検出値が前記位置指令値に近づくように、トルク指令値を生成するフィードバックコントローラと、
（i）前記位置検出値が前記位置指令値より大きく、かつ（ii）前記トルク指令値が負であるときに、ショートブレーキを掛けるブレーキコントローラと、
を備えることを特徴とする駆動回路。
【請求項２】
前記第１検出回路は、前記クロック信号にもとづき前記ロータの目標回転数を示す速度指令値を生成し、
前記第２検出回路は、前記パルス信号にもとづき前記ロータの現在の回転速度を示す速度検出値を生成し、
前記ブレーキコントローラは、（i）（ii）に加えて、かつ（iii）前記速度検出値が前記速度指令値より大きいときに、ショートブレーキを掛けることを特徴とする請求項１に記載の駆動回路。
【請求項３】
前記第１検出回路は、前記クロック信号に含まれるエッジの個数を積算し、前記位置指令値を生成し、
前記第２検出回路は、前記パルス信号のパルスの個数を積算し、前記位置検出値を生成することを特徴とする請求項１または２に記載の駆動回路。
【請求項４】
前記第１検出回路は、前記クロック信号の周期にもとづいて前記速度指令値を生成し、
前記第２検出回路は、前記パルス信号の周期にもとづいて前記速度検出値を生成することを特徴とする請求項２に記載の駆動回路。
【請求項５】
前記フィードバックコントローラは、前記位置検出値と前記位置指令値の差分である位置誤差値を入力とするＰＩ（比例積分）制御器を含み、
前記ＰＩ制御器の出力が、前記トルク指令値であることを特徴とする請求項１から４のいずれかに記載の駆動回路。
【請求項６】
前記第１検出回路、前記第２検出回路、前記フィードバックコントローラ、前記ブレーキコントローラは、ロジック回路で構成されることを特徴とする請求項１から５のいずれかに記載の駆動回路。
【請求項７】
前記トルク指令値に応じたデューティ比を有するＰＷＭ（Pulse Width Modulation）信号を生成するパルス幅変調器をさらに備えることを特徴とする請求項１から６のいずれかに記載の駆動回路。
【請求項８】
ホールセンサからの相補的なホール信号を比較するホールコンパレータと、
前記ＰＷＭ信号と、前記ホールコンパレータの出力と、にもとづいて駆動信号を生成する通電ロジックと、
をさらに備えることを特徴とする請求項７に記載の駆動回路。
【請求項９】
前記ＤＣモータを駆動するインバータを制御するプリドライバをさらに備えることを特徴とする請求項１から８のいずれかに記載の駆動回路。
【請求項１０】
ひとつの半導体基板に集積化されることを特徴とする請求項１から９のいずれかに記載の駆動回路。
【請求項１１】
ＤＣモータと、
前記ＤＣモータを駆動するインバータを含むドライバと、
前記ドライバを制御する請求項１から１０のいずれかに記載の駆動回路と、
を備えることを特徴とする電子機器。
【請求項１２】
ＤＣモータの駆動方法であって、
上位コントローラからのクロック信号にもとづき、前記ＤＣモータのロータの目標位置を示す位置指令値を生成するステップと、
エンコーダからのパルス信号にもとづき、前記ロータの現在位置を示す位置検出値を生成するステップと、
前記位置検出値が前記位置指令値に近づくように、トルク指令値を生成するステップと、
前記トルク指令値に応じた電力を前記ＤＣモータに供給するステップと、
前記位置検出値が前記位置指令値より大きく、かつ前記トルク指令値が負であるときに、ショートブレーキを掛けるステップと、
を備えることを特徴とする駆動方法。
【請求項１３】
前記パルス信号にもとづき、前記ロータの現在の回転速度を示す速度検出値を生成するステップと、
前記クロック信号にもとづき、前記ロータの目標回転数を示す速度指令値を生成するステップと、
をさらに備え、
前記位置検出値が前記位置指令値より大きく、かつ前記トルク指令値が負であり、かつ前記速度検出値が前記速度指令値より大きいときにショートブレーキを掛けることを特徴とする請求項１２に記載の駆動方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、ＤＣモータの駆動回路に関する。
【背景技術】
【０００２】
制御対象を位置決めするためにステッピングモータが用いられる。ステッピングモータの制御には、クロック信号（パルスレート信号）が用いられ、入力したクロック信号のパルス数に比例して、モータをオープンループで回転させることができ、またクロック信号を停止した状態では、モータを静止させることができる。こうした制御の容易性から、プリンタやファクシミリ、スキャナ、複合機などのＯＡ機器、あるいは産業機器においては、ステッピングモータが多く用いられている。
【０００３】
ところが、ステッピングモータは、静止状態においても、コイルが通電し続けるため、消費電力が大きくなるという問題がある。近年、ＯＡ機器をはじめとするさまざまなアプリケーションにおいて、低消費電力化が求められているが、ステッピングモータの消費電力が、ＯＡ機器の低消費電力化を妨げる一因となっている。
【０００４】
ブラシレスＤＣモータは制御が複雑であるが、消費電力が小さいという特徴を有する。したがって今後、低消費電力化が求められるアプリケーションでは、ステッピングモータをＤＣモータに置換していくことが求められる。
【０００５】
図１は、ＤＣモータを備えるモータ駆動システムのブロック図である。このモータ駆動システムでは、従来のステッピングモータと同様に、クロック信号を利用した制御インタフェースで、ＤＣモータを制御する。モータ駆動システム１００Ｒは、ＤＣモータ１０２、上位コントローラ１０４、ドライバ１０６およびモータ制御装置９００を備える。上位コントローラ１０４は、たとえばマイコンやＣＰＵ（Central Processing Unit）であり、ＤＣモータ１０２のロータの位置を指示するクロック信号ＣＫを生成する。モータ制御装置９００もまたＣＰＵやマイコンで構成され、ソフトウェア制御によって、クロック信号をＤＣモータの駆動に適合したＰＷＭ信号に変換する。ドライバ１０６は、三相インバータを含み、ＰＷＭ信号にもとづいてＤＣモータ１０２を駆動する。このようなシステムは、たとえば特許文献１に記載される。
【先行技術文献】
【特許文献】
【０００６】
【特許文献１】特許第５４８７９１０号公報
【発明の概要】
【発明が解決しようとする課題】
【０００７】
ＤＣモータの制動方法として、ショートブレーキが知られている。ショートブレーキは、ＤＣモータのコイル端同士をショートし、回転エネルギーを電気エネルギーに変換するものであり、強い制動力を得ることができ、急減速させることができる。しかしながら、上位コントローラからの急減速指示にもとづいて、直ちにショートブレーキをかけると、位置超過、速度の過低下などが発生する要因となる。
【０００８】
本発明は係る課題に鑑みてなされたものであり、そのある態様の例示的な目的のひとつは、ステッピングモータを駆動するためのクロック信号にもとづいてＤＣモータを駆動するシステムにおいて、ショートブレーキを適切にかけることが可能な駆動回路、駆動方法の提供にある。
【課題を解決するための手段】
【０００９】
本発明のある態様は、上位コントローラからのクロック信号とエンコーダからのパルス信号に応じてＤＣモータを駆動する駆動回路に関する。駆動回路は、クロック信号にもとづきロータの目標位置を示す位置指令値を生成する第１検出回路と、パルス信号にもとづきロータの現在位置を示す位置検出値を生成する第２検出回路と、位置検出値が位置指令値に近づくように、トルク指令値を生成するフィードバックコントローラと、位置検出値が位置指令値より大きく、かつトルク指令値が負であるときに、ショートブレーキを掛けるブレーキコントローラと、を備える。
【００１０】
なお、以上の構成要素の任意の組み合わせや本発明の構成要素や表現を、方法、装置、システムなどの間で相互に置換したものもまた、本発明の態様として有効である。
【発明の効果】
【００１１】
本発明のある態様によれば、ショートブレーキを適切なタイミングでかけることができる。
【図面の簡単な説明】
【００１２】
【図１】ＤＣモータを備えるモータ駆動システムのブロック図である。
【図２】実施の形態に係る駆動ＩＣを備えるモータ駆動システムのブロック図である。
【図３】駆動ＩＣの構成を示すブロック図である。
【図４】ロジック回路の基本構成を示すブロック図である。
【図５】誤差検出器の動作を説明する図である。
【図６】図６（ａ）〜（ｃ）は、位置指令値生成部の構成例を示すブロック図である。
【図７】回転制御モードと保持モードの切り替えをサポートする駆動ＩＣのブロック図である。
【図８】駆動ＩＣの構成例を示すブロック図である。
【図９】図８の駆動ＩＣのモードの移行を説明するタイムチャートである。
【図１０】変形例４に係る駆動ＩＣの一部のブロック図である。
【図１１】休止モードをサポートする駆動ＩＣの一部のブロック図である。
【図１２】図１１の駆動ＩＣの休止モードへの移行を説明する図である。
【図１３】ショートブレーキ機能を備える駆動ＩＣの一部のブロック図である。
【図１４】ブレーキコントローラのブロック図である。
【図１５】図１５（ａ）、（ｂ）は、ブレーキコントローラの動作を説明する図である。
【図１６】クロック信号ＣＬＫの周波数ｆＣＫの波形図である。
【図１７】モータ駆動システムの始動時のモータの回転数を示す図である。
【図１８】電子ギアの機能を説明する図である。
【図１９】電子ギアの機能を備える駆動ＩＣのブロック図である。
【図２０】電子ギアの機能を備える駆動ＩＣのブロック図である。
【図２１】モータ駆動システムを備える電子機器を示す図である。
【発明を実施するための形態】
【００１３】
（実施の形態の概要）
本明細書に開示される一実施の形態は、モータ駆動回路に関する。モータ駆動回路は、上位コントローラからのクロック信号とエンコーダからのパルス信号に応じてＤＣモータを駆動する。駆動回路は、クロック信号にもとづきロータの目標位置を示す位置指令値を生成する第１検出回路と、パルス信号にもとづきロータの現在位置を示す位置検出値を生成する第２検出回路と、位置検出値が位置指令値に近づくように、トルク指令値を生成するフィードバックコントローラと、位置検出値が位置指令値より大きく、かつトルク指令値が負であるときに、ショートブレーキを掛けるブレーキコントローラと、を備える。
【００１４】
この態様によると、位置超過かつトルク指令が負であることを条件として、ブレーキを掛けることにより、ロータを適切に停止させることができる。
【００１５】
第１検出回路は、クロック信号にもとづきロータの目標回転数を示す速度指令値を生成してもよい。第２検出回路は、パルス信号にもとづきロータの現在の回転速度を示す速度検出値を生成してもよい。ブレーキコントローラは、（i）（ii）に加えて、かつ（iii）速度検出値が速度指令値より大きいときに、ショートブレーキを掛けてもよい。
【００１６】
位置超過、トルク指令が負に加えて、速度超過を条件としてブレーキを掛けることにより、さらに適切に停止させることができる。
【００１７】
なおモータの回転方向を、ＣＷ（時計回り）、ＣＣＷ（反時計回り）で切りかえ可能なプラットフォームにおいては、指示される回転方向を正として、位置超過判定、速度超過判定、トルクの正負判定を扱えばよい。
【００１８】
第１検出回路は、クロック信号に含まれるエッジの個数を積算し、位置指令値を生成し、第２検出回路は、パルス信号のパルスの個数を積算し、位置検出値を生成してもよい。
【００１９】
第１検出回路は、クロック信号の周期にもとづいて速度指令値を生成し、第２検出回路は、パルス信号の周期にもとづいて速度検出値を生成してもよい。
【００２０】
フィードバックコントローラは、位置検出値と位置指令値の差分である位置誤差値を入力とするＰＩ（比例積分）制御器を含んでもよい。ＰＩ制御器の出力が、トルク指令値であってもよい。
【００２１】
第１検出回路、第２検出回路、フィードバックコントローラ、ブレーキコントローラは、ロジック回路で構成されてもよい。これらをロジック回路で構成することにより、マイコンやＣＰＵなどのプロセッサが不要となるため、コストを下げることができる。
【００２２】
駆動回路は、トルク指令値に応じたデューティ比を有するＰＷＭ（Pulse Width Modulation）信号を生成するパルス幅変調器をさらに備えてもよい。
【００２３】
駆動回路は、ホールセンサからの相補的なホール信号を比較するホールコンパレータと、ＰＷＭ信号と、ホールコンパレータの出力と、にもとづいて駆動信号を生成する通電ロジックと、をさらに備えてもよい。駆動回路は、ＤＣモータを駆動するインバータを制御するプリドライバをさらに備えてもよい。
【００２４】
駆動回路は、ひとつの半導体基板に一体集積化されてもよい。「一体集積化」とは、回路の構成要素のすべてが半導体基板上に形成される場合や、回路の主要構成要素が一体集積化される場合が含まれ、回路定数の調節用に一部の抵抗やキャパシタなどが半導体基板の外部に設けられていてもよい。回路を１つのチップ上に集積化することにより、回路面積を削減することができるとともに、回路素子の特性を均一に保つことができる。
【００２５】
（実施の形態）
以下、本発明を好適な実施の形態をもとに図面を参照しながら説明する。各図面に示される同一または同等の構成要素、部材、処理には、同一の符号を付するものとし、適宜重複した説明は省略する。また、実施の形態は、発明を限定するものではなく例示であって、実施の形態に記述されるすべての特徴やその組み合わせは、必ずしも発明の本質的なものであるとは限らない。
【００２６】
本明細書において、「部材Ａが、部材Ｂと接続された状態」とは、部材Ａと部材Ｂが物理的に直接的に接続される場合や、部材Ａと部材Ｂが、電気的な接続状態に影響を及ぼさず、あるいは機能を阻害しない他の部材を介して間接的に接続される場合も含む。
【００２７】
同様に、「部材Ｃが、部材Ａと部材Ｂの間に設けられた状態」とは、部材Ａと部材Ｃ、あるいは部材Ｂと部材Ｃが直接的に接続される場合のほか、電気的な接続状態に影響を及ぼさず、あるいは機能を阻害しない他の部材を介して間接的に接続される場合も含む。
【００２８】
図２は、実施の形態に係る駆動ＩＣ２００を備えるモータ駆動システム１００のブロック図である。モータ駆動システム１００は、駆動ＩＣ２００に加えて、ＤＣモータ１０２、上位コントローラ１０４、ドライバ１０６、ホールセンサ１１０Ｕ〜１１０Ｗ、エンコーダ１１２を備える。各信号の名称と、それが入出力されるピン（端子）、配線には同じ符号を付す。本実施の形態において駆動対象は三相ＤＣモータである。
【００２９】
上位コントローラ１０４はマイコンやＣＰＵ、ＡＳＩＣ（Application Specified IC）、ＦＰＧＡ（Field Programmable Gate Array）などであり、ＤＣモータ１０２のロータの目標位置（以下、単にモータの位置ともいう）を示すクロック信号ＣＬＫを生成する。また上位コントローラ１０４は、モータの回転方向を指示する方向指示信号（ＣＷ＿ＣＣＷ信号）を生成する。これらの信号は、駆動ＩＣ２００の対応するピンＣＬＫ，ＣＷ＿ＣＣに入力される。たとえばＣＷ＿ＣＣＷ信号のローは第１方向（たとえば時計回り）の回転指示であり、ハイは第２方向の回転指示（たとえば反時計回り）である。
【００３０】
ドライバ１０６は三相インバータおよびシャント抵抗ＲＳを含む。三相インバータの各相の出力電圧ＶＵ〜ＶＷは、駆動ＩＣ２００のフィードバックピン（Ｕ〜Ｗ）に入力される。シャント抵抗ＲＳは、三相インバータに流れる電流の経路上に設けられ、電流に比例した電圧降下（検出電圧）が発生する。シャント抵抗ＲＳの電圧降下（電流検出信号）ＶＣＬは、駆動ＩＣ２００のＲＣＬ（過電流検出電圧入力）ピンに入力される。電流検出信号ＶＣＬは、たとえばパルスバイパルスの電流制限（Current Limit）に用いることができる。
【００３１】
ホールセンサ１１０Ｕ〜１１０Ｗは、ロータの位置に応じた三相のホール信号ＨＵＰ，ＨＵＮ，ＨＶＰ，ＨＶＮ，ＨＷＰ，ＨＷＮを生成する。これらの信号は、駆動ＩＣ２００の対応するピンに入力される。
【００３２】
ホールセンサ１１０Ｕ〜１１０Ｗには、駆動ＩＣ２００および外付けのトランジスタＱ１や抵抗Ｒ１１，Ｒ１２によって生成されるホールバイアス信号ＶＨＢが供給される。
【００３３】
エンコーダ１１２は、ロータの位置に関する情報（絶対位置、相対位置もしくは変位量）を示すパルス信号（Ａ相パルス信号ＥＮ＿ＡとＢ相パルス信号ＥＮ＿Ｂ）を生成する。これらのパルス信号は、駆動ＩＣ２００の対応するピンに入力される。
【００３４】
駆動ＩＣ２００は、ＣＬＫ信号、ＣＷ＿ＣＣＷ信号、ホール信号ＨＵＰ〜ＨＷＮ、パルス信号ＥＮ＿Ａ，ＥＮ＿Ｂにもとづいて、ドライバ１０６を制御するためのゲート信号を生成し、ＵＨ，ＶＨ，ＷＨ，ＵＬ，ＶＬ，ＷＬピンから出力する。
【００３５】
ドライバ１０６のハイサイドトランジスタはＮチャンネルであり、ゲート駆動のために、電源電圧ＶＣＣより高い電圧が必要である。駆動ＩＣ２００はチャージポンプを内蔵しており、ＣＰ１，ＣＰ２およびＶＧピンには、外付けのキャパシタが接続される。
【００３６】
駆動ＩＣ２００は、ハードウェア、すなわちロジック回路やアナログ回路の組み合わせで構成される。本明細書における「ロジック回路で構成される」とはＣＰＵやマイコンなどのようにソフトウェア制御が不要なアーキテクチャであることを意味する。
【００３７】
また駆動ＩＣ２００の電源（ＶＣＣ）ピンには電源電圧が供給され、接地（ＧＮＤ）ピンは接地される。
【００３８】
図３は、駆動ＩＣ２００の構成を示すブロック図である。駆動ＩＣ２００は、複数の入力バッファＢＵＦ１〜ＢＵＦ４、ホールコンパレータＨＣＭＰＵ〜ＨＣＭＰＷ、ロジック回路３００、プリドライバ２５０、電源回路群２６０、保護回路２８０を備える。
【００３９】
複数の入力バッファＢＵＦはそれぞれ、対応するピンに入力される信号をハイ、ロー２値化する。Ｕ相のホールコンパレータＨＣＭＰＵは、ＨＵＰピンとＨＵＮピンに入力される同じＵ相のホール信号ＨＵＰ，ＨＵＮを比較する。Ｖ相、Ｗ相のホールコンパレータＨＨＣＭＰＶ，ＨＣＭＰＷも同様である。入力バッファＢＵＦおよびホールコンパレータＨＣＭＰの出力は、ロジック回路３００に入力される。
【００４０】
電源回路群２６０は、外付けの部品（図２のトランジスタＱ１１、抵抗Ｒ１１，Ｒ１２）とともにホールバイアス回路を構成するオペアンプ２６２、基準電圧源２６４を含む。ホールバイアス電圧ＶＨＢは、以下の電圧レベルに安定化される。
ＶＨＢ＝ＶＲＥＦ×（１＋Ｒ１１／Ｒ１２）
【００４１】
チャージポンプ２６６は、ＣＰピン、ＣＮピン、ＶＧピンを介して外付けのキャパシタ（図２のＣ１１，Ｃ１２）接続される。チャージポンプ２６６には入力電圧として、電源電圧ＶＣＣが供給される。チャージポンプ２６６は、電源電圧ＶＣＣを昇圧し、ＶＧピンに昇圧された高電圧ＶＧを生成する。高電圧ＶＧは、プリドライバ２５０に供給され、後段のハイサイドのトランジスタ（図２のドライバ１０６の上側アーム）の駆動に用いられる。
【００４２】
電源回路２６８はデジタル回路用の電源電圧ＶＲＥＧＤ（たとえば１．５Ｖ）を生成し、ロジック回路３００に供給する。電源回路２７０はアナログ回路用の電源電圧ＶＲＥＧ（たとえば５Ｖ）を生成し、ロジック回路３００およびプリドライバ２５０に供給する。
【００４３】
保護回路２８０は、さまざまな保護回路を含む。ＴＳＤ（Thermal Shut Down）回路２８２は、過熱状態を検出する。ＵＶＬＯ（Under Voltage Lock Out）回路２８４は、電源電圧ＶＣＣの低い状態を検出する。ＯＶＬＯ（Over Voltage Lock Out）回路２８６は、電源電圧ＶＣＣの過電圧状態を検出する。各回路の出力（検出信号）は、直接的に、あるいはＯＲゲートを介して間接的に、ロジック回路３００に入力される。
【００４４】
オシレータ２８８は、システムクロックＣＫＳＹＳを生成し、ロジック回路３００に供給する。
【００４５】
過電流検出回路２９０は、ＲＣＬピンに入力される検出電圧ＶＣＬにもとづく過電流保護のために設けられる。ＯＣＰ（Over Current Protection）コンパレータ２９２は、検出電圧ＶＣＬをしきい値ＶＴＨと比較し、ＶＣＬ＞ＶＴＨとなると、ＯＣＰ信号をアサート（たとえばハイ）する。ＯＣＰ信号は、ロジック回路３００に供給される。
【００４６】
ロジック回路３００は、ホールコンパレータＨＣＭＰや入力バッファＢＵＦの出力にもとづいて、駆動ＩＣ２００の後段に接続されるドライバ（三相インバータ）１０６の駆動信号を生成する。また、各異常状態における保護処理を実行する。たとえばＯＣＰ信号がアサートされると、パルスバイパルスの過電流保護をかける。保護回路２８０において異常が検出されると、モータの駆動を停止する。
【００４７】
プリドライバ２５０は、ロジック回路３００からの駆動信号およびＵ，Ｖ，Ｗピンにフィードバックされる各相のコイル端電圧ＶＵ，ＶＶ，ＶＷにもとづいて、後段のドライバ１０６を駆動する。コイル端電圧ＶＵ，ＶＶ，ＶＷは、ドライバ１０６のハイサイドトランジスタのゲート信号のローレベルの生成に使用される。
【００４８】
以上が駆動ＩＣ２００のブロック図である。続いて、ロジック回路３００の構成を説明する。
【００４９】
図４は、ロジック回路３００の基本構成を示すブロック図である。ロジック回路３００は、主として、誤差検出器３１０、フィードバックコントローラ３３０、駆動信号生成部３４０を備える。
【００５０】
誤差検出器３１０は、エンコーダからのパルス信号ＥＮ＿Ａ，ＥＮ＿Ｂと、上位コントローラからのクロック信号ＣＫのパルス数の積算値との差分にもとづいて、ロータの目標位置と現在位置の誤差を示す位置誤差値ＥＲＲを生成する。
【００５１】
誤差検出器３１０は、位置指令値生成部３１２、位置検出値生成部３１４、減算器３１６を含む。位置指令値生成部３１２は、クロック信号ＣＬＫおよびＣＷ＿ＣＣＷ信号にもとづいて、ロータの目標位置を示すターゲット値ＴＧＴを生成する。より詳しくは、位置指令値生成部３１２は、クロック信号ＣＬＫのポジエッジ（および／またはネガエッジ、以下、単にエッジという）の個数の積算値を生成する。
【００５２】
位置検出値生成部３１４は、エンコーダ１１２からのパルス信号ＥＮ＿Ａ，ＥＮ＿Ｂにもとづいて、ロータの現在位置を示すフィードバック値ＦＢを生成する。減算器３１６は、ターゲット値ＴＧＴとフィードバック値ＦＢの差分を生成する。
【００５３】
フィードバックコントローラ３３０は、位置誤差値ＥＲＲの値がゼロに近づくように、制御指令値ＲＥＦを生成する。たとえばフィードバックコントローラ３３０は、ＰＩ（Proportional Integral）制御器を含むことができる。制御指令値ＲＥＦは、モータのトルク指令値であってもよい。
【００５４】
駆動信号生成部３４０は、指令値ＲＥＦに応じた駆動信号ＳＵＨ，ＳＵＬ，ＳＶＨ，ＳＶＬ，ＳＷＨ，ＳＷＬを生成する。たとえば駆動信号生成部３４０は、パルス幅変調器３４２と、通電ロジック３４４を含む。パルス幅変調器３４２は、制御指令値ＲＥＦに応じたデューティ比を有するＰＷＭ（Pulse Width Modulation）信号を生成する。
【００５５】
通電ロジック３４４は、ＣＷ＿ＣＣＷ信号にもとづいて回転方向を決定する。また通電ロジック３４４は、ホールコンパレータＨＣＭＰＵ〜ＨＣＭＰＷにもとづいて、駆動対象の相（駆動相）を切りかえる（転流制御）。通電方式は特に限定されないが、たとえば１２０度通電制御（矩形波駆動）を採用することができる。そのほか、１８０度通電制御（正弦波駆動）などの別の方式を採用してもよい。
【００５６】
通電ロジック３４４はＰＷＭ信号に応じて、駆動信号ＳＵＨ，ＳＵＬ，ＳＶＨ，ＳＶＬ，ＳＷＨ，ＳＷＬのいずれかを変調する。ＰＷＭ制御の方式は限定されないが、たとえばローサイ側の駆動信号ＳＵＬ，ＳＶＬ，ＳＷＬの論理を固定し、ハイサイドの駆動信号ＳＵＨ，ＳＶＨ，ＳＷＨの論理をＰＷＭ信号にもとづいて変調してもよい。反対に、ローサイドの駆動信号を変調してもよいし、両方を変調してもよい。
【００５７】
通電ロジック３４４は、ＯＣＰ信号にもとづいて、パルスバイパルスの電流制限をかけてもよい。具体的には、ＯＣＰ信号がアサートされると、通電中のトランジスタがターンオフするように駆動信号ＳＵＨ〜ＳＷＨ，ＳＵＬ〜ＳＷＬを変化させる。
【００５８】
パルス幅変調器３４２、通電ロジック３４４の構成は、従来のＤＣモータの駆動回路のそれらと同様でよく、公知技術を用いればよい。
【００５９】
図５は、誤差検出器３１０の動作を説明する図である。この例では、ＣＷ＿ＣＣＷ信号をローとしている。クロック信号ＣＬＫのエッジが発生する度に、ターゲット値ＴＧＴが１増加し、その結果、位置誤差値ＥＲＲは１増加する。また、パルス信号ＥＮ＿ＡとＥＮ＿Ｂの組み合わせによってフィードバック値ＦＢが変化し、その結果、位置誤差値ＥＲＲが減少または増加する。
【００６０】
図６（ａ）〜（ｃ）は、位置指令値生成部３１２の構成例を示すブロック図である。図６（ａ）の位置指令値生成部３１２は、クロック信号ＣＬＫのエッジを検出するエッジ検出回路３２０、エッジごとにカウントアップ／カウントダウンするカウンタ３２２を含む。回転方向を指示するＣＷ＿ＣＣＷ信号は、カウンタ３２２のカウントアップ、カウントダウンの選択に用いられる。カウンタ３２２の出力が、ターゲット値ＴＧＴとなる。
【００６１】
図６（ｂ）の位置指令値生成部３１２は、演算器３２４、メモリ（レジスタ）３２５、オペコードセレクタ３２６を含む。演算器３２４は、少なくとも加算演算Ａ＋Ｂと、減算演算Ａ−Ｂが、オペコード（ＯＰＥＣＯＤＥ）に応じて切りかえ可能である。入力Ａには、メモリ３２５の値（位置誤差値ＥＲＲ）が入力され、入力Ｂには固定値１が入力される。オペコードセレクタ３２６は、クロック信号ＣＬＫのエッジが検出されるたびに、オペコードを発行する。オペコードは、ＣＷ＿ＣＣＷが第１レベルのときに加算、ＣＷ＿ＣＣＷ信号が第２レベルのときに減算となる。これによりメモリ３２６には、クロック信号ＣＬＫのエッジの個数を積算した値が格納され、これはターゲット値ＴＧＴを表す。
【００６２】
図６（ｃ）の位置指令値生成部３１２は、セレクタ３２７、加算器３２８、メモリ３２９を含む。セレクタ３２０には、値１と−１が入力されており、ＣＷ＿ＣＣＷの値に応じた一方を選択する。加算器３２８はクロック信号ＣＬＫのエッジに応じて動作し、セレクタ３２０の出力と、メモリ３２９の値を加算し、加算結果によりメモリ３２９の値を更新する。これによりメモリ３２６には、クロック信号ＣＬＫのエッジの個数を積算した値が格納され、これはターゲット値ＴＧＴを表す。
【００６３】
以上がロジック回路３００の構成である。
【００６４】
実施の形態に係る駆動ＩＣ２００を用いることにより、従来のシステムにおけるマイコンやＣＰＵ（図１の９００）が不要となるため、ステッピングモータを安価にＤＣモータに置き換えることができ、システムの消費電力を低減という利点を享受できる。
【００６５】
続いて、駆動ＩＣ２００のさらなる特徴を説明する。
【００６６】
（回転制御モードと保持モード）
図７は、回転制御モードと保持モードの切り替えをサポートする駆動ＩＣ２００Ｄのブロック図である。
【００６７】
駆動ＩＣ２００Ｄは、誤差検出器３１０、フィードバックコントローラ３３０、駆動信号生成部３４０に加えて、モード判定部４７０を備える。誤差検出器３１０、フィードバックコントローラ３３０、駆動信号生成部３４０の基本的な機能、動作については、図４を参照してすでに説明した。
【００６８】
誤差検出器３１０は、位置指令値生成部３１２、位置検出値生成部３１４、減算器３１６を含む。位置指令値生成部３１２は、クロック信号ＣＬＫにもとづき、ロータの目標位置を示す位置指令値Ｐ＿ＴＧＴを生成する。位置指令値Ｐ＿ＴＧＴは、図４における位置指令値ＴＧＴに相当する。
【００６９】
位置検出値生成部３１４は、エンコーダからのパルス信号ＥＮ＿Ａ，ＥＮ＿Ｂにもとづき、ロータの現在位置を示す位置検出値Ｐ＿ＦＢを生成する。位置検出値Ｐ＿ＦＢは、図４のフィードバック値ＦＢに相当する。
【００７０】
位置指令値Ｐ＿ＴＧＴおよび位置検出値Ｐ＿ＦＢは、減算器３１６に入力され、位置誤差値ＥＲＲが生成される。
【００７１】
フィードバックコントローラ３３０は、位置検出値Ｐ＿ＦＢが位置指令値Ｐ＿ＴＧＴに近づくように、すなわち位置誤差値ＥＲＲがゼロに近づくように、トルク指令値Ｔ＿ＲＥＦを生成する。トルク指令値Ｔ＿ＲＥＦは、図４における指令値ＲＥＦに相当する。トルク指令値Ｔ＿ＲＥＦは、駆動信号生成部３４０に供給される。
【００７２】
駆動ＩＣ２００Ｄは、回転制御モードと保持モードが切りかえ可能に構成される。フィードバックコントローラ３３０の制御特性は、回転制御モードと保持モードで異なる。
【００７３】
上述のように、フィードバックコントローラ３３０はＰＩ（Proportional Integral）制御器を含むことができる。回転制御モードと保持モードでは、比例ゲインＫＰと積分ゲインＫＩの少なくとも一方、好ましくは両方が異なる。
【００７４】
典型的には、保持モードにおける比例ゲインＫＰは、回転制御モードにおける比例ゲインＫＰと等しいか、それより小さい。また保持モードにおける積分ゲインＫＩは、回転制御モードにおける積分ゲインＫＩと等しいか、それより小さい。
【００７５】
モード判定部４７０は、クロック信号ＣＫの入力状態にもとづいて、回転制御モードと保持モードを判定する。モード判定部４７０は、クロック信号ＣＬＫの無入力状態が所定時間持続すると、回転制御モードから保持モードに移行する。また、保持モードにおいてクロック信号ＣＬＫのエッジを検出すると、直ちに回転制御モードに移行する。
【００７６】
以上が駆動ＩＣ２００Ｄの基本構成である。駆動ＩＣ２００Ｄによれば、回転制御モードでは、クロック信号ＣＬＫにもとづく回転指令に対する追従性を重視した制御パラメータを与え、保持モードでは、追従性ではなく、安定性を重視した制御パラメータを与えることで、ＤＣモータをステッピングモータのように駆動することが可能となる。
【００７７】
回転制御モードと保持モードが切り替わる際には、ＰＩコントローラにおける積分値をゼロリセットすることが好ましい。これにより制御パラメータ切りかえにともなう不要振動の誘起、安定化時間の長期化を抑制できる。
【００７８】
さらに回転制御モードと保持モードとで、駆動信号生成部３４０（通電ロジック３４４）の動作、すなわち駆動信号の生成方法が異なっていてもよい。
【００７９】
たとえば駆動信号生成部３４０は、回転制御モードにおいては、ＣＷ＿ＣＣＷ信号に応じて回転方向を決定し、トルク指令値Ｔ＿ＲＥＦが正である場合に、トルク指令値Ｔ＿ＲＥＦに応じたデューティ比で、ＤＣモータをＰＷＭ駆動する。トルク指令値Ｔ＿ＲＥＦが負である場合には、ドライバ１０６をハイインピーダンスとし、空転制御を行う。
【００８０】
また駆動信号生成部３４０は、保持モードにおいては、ＣＷ＿ＣＣＷ信号に関わらず、トルク指令値Ｔ＿ＲＥＦの符号（正負）に応じて、回転方向を決定する。これによりより正確にロータの位置を固定することができる。
【００８１】
図８は、駆動ＩＣ２００Ｄの構成例を示すブロック図である。たとえばモード判定部４７０は、カウンタ４７２、ステートマシン４７４を含む。カウンタ４７２はクロック信号ＣＬＫの無入力状態の持続時間を測定し、無入力時間が所定時間τ１を超えるとタイムアップ信号ＴＩＭＥＵＰ１をアサート（たとえばハイ）する。
【００８２】
カウンタ４７２の構成は特に限定されないが、たとえばクロック信号ＣＬＫのポジエッジによってリセットされるフリーランカウンタで構成してもよい。カウンタ４７２は、カウント値が判定時間τ１に対応するしきい値ＴＨ１に達すると（オーバーフロー）、タイムアップ信号ＴＩＭＥＵＰ１をアサートする。
【００８３】
ステートマシン４７４は、タイムアップ信号ＴＩＭＥＵＰ１のアサートに応答して保持モードに移行する。またステートマシン４７４は、保持モードにおいてクロック信号ＣＬＫのエッジを検出すると、直ちに回転制御モードに移行する。
【００８４】
フィードバックコントローラ３３０は、第１コントローラ３３２、第２コントローラ３３４、セレクタ３３６を含む。第１コントローラ３３２は回転制御モードに関連し、トルク指令値Ｔ＿ＲＥＦ１を生成する。第２コントローラ３３４は、保持モードに関連し、トルク指令値Ｔ＿ＲＥＦ２を生成する。上述のように、第１コントローラ３３２と第２コントローラ３３４は、比例ゲイン、積分ゲインの少なくとも一方が異なっている。
【００８５】
セレクタ３３６は、トルク指令値Ｔ＿ＲＥＦ１，Ｔ＿ＲＥＦ２を受け、現在のモードに応じた一方を選択し、トルク指令値Ｔ＿ＲＥＦとして後段の駆動信号生成部３４０に供給する。
【００８６】
またステートマシン４７４は、モードの遷移ごとにリセット信号ＲＥＳＥＴを出力する。
第１コントローラ３３２、第２コントローラ３３４は、リセット信号ＲＥＳＥＴに応答して、積分値をゼロリセットする。
【００８７】
第１コントローラ３３２は保持モードの間、停止しておいてもよいし、動作し続けてもよい。また第２コントローラ３３４は、回転制御モードの間に、停止しておいてもよいし動作し続けてもよい。
【００８８】
図８に示すように、２系統のコントローラ３３２，３３４を設けることで、回転制御モードと保持モードとをシームレスに切り替えることができる。
【００８９】
図９は、図８の駆動ＩＣ２００Ｄのモードの移行を説明するタイムチャートである。クロック信号ＣＬＫが入力される間、回転制御モードが選択されており、第１コントローラ３３２が生成するトルク指令値Ｔ＿ＲＥＦ１にもとづいてＤＣモータが制御される。
【００９０】
カウンタ４７２は、駆動ＩＣ２００Ｄに内蔵されるオシレータが生成する内部クロックＣＫＳＹＳを利用して、フリーランしている。クロック信号ＣＬＫが停止すると、カウンタ４７２がリセットされずにカウントアップし続ける。時刻ｔ１にカウント値がしきい値ＴＨ１に達すると、タイムアップ信号ＴＩＭＥＵＰ１がアサートされて、保持モードに移行する。
【００９１】
保持モードでは、第２コントローラ３３４が生成するトルク指令値Ｔ＿ＲＥＦ２にもとづいてＤＣモータが制御される。
【００９２】
時刻ｔ２に、上位コントローラからクロック信号ＣＬＫが再入力されると、回転制御モードに戻り、第１コントローラ３３２が生成するトルク指令値Ｔ＿ＲＥＦ１にもとづいてＤＣモータが制御される。
【００９３】
回転制御モードと保持モードの切りかえに関する変形例を説明する。
【００９４】
（変形例１）
回転制御モードと保持モードとで、ＰＩ制御器のゲインを切りかえる場合を説明したが、その限りでない。たとえば回転制御モードと保持モードとで、制御の方式（Ｐ制御、ＰＩ制御、ＰＩＤ制御）が異なっていてもよい。
【００９５】
（変形例２）
回転制御モードと保持モードとで、演算周期（ΔＴ）が異なっていてもよい。すなわち保持モードでは、演算周期ΔＴを長くし、回転制御モードでは演算周期ΔＴを短くしてもよい。
【００９６】
（変形例３）
駆動ＩＣ２００Ｄが、後述の休止モードをサポートし、後述のカウンタ４５０（図１１）が設けられる場合、カウンタ４７２はカウンタ４５０と兼用とすることができる。また、カウンタ４７２における判定時間τ１は、カウンタ４５０における判定時間τ２と同一か、それより短く設定される。
【００９７】
（変形例４）
図１０は、変形例４に係る駆動ＩＣ２００Ｄの一部のブロック図である。この変形例では、フィードバックコントローラ３３０は、単一のＰＩコントローラ３３８を含む。ＰＩコントローラ３３８の比例ゲインＫＰと積分ゲインＫＩは、回転制御モード用の値ＫＰ１，ＫＩ１と、保持モード用の値ＫＰ２，ＫＩ２が別々に用意され、モード判定部４７０が指示するモードに応じた値のセットが、ＰＩコントローラ３３８にロードされ、ゲインが変更される。またＰＩコントローラ３３８の積分値を保持するメモリ３３９の値は、モード判定部４７０が生成するリセット信号ＲＥＳＥＴに応じてゼロとなる。
【００９８】
（変形例５）
クロック信号ＣＬＫの有無によってモードを切り替えたがその限りでない。上位コントローラから駆動ＩＣ２００Ｄに対して、モードを指示する信号を与え、この信号に応じてモードを切り替えてもよい。
【００９９】
（休止モード）
図１１は、休止モードをサポートする駆動ＩＣ２００Ｃの一部のブロック図である。駆動ＩＣ２００Ｃは、誤差検出器３１０、フィードバックコントローラ３３０、駆動信号生成部３４０に加えて、カウンタ４５０、休止モード判定部４６０を備える。誤差検出器３１０、フィードバックコントローラ３３０、駆動信号生成部３４０の主な機能、動作については、図４を参照してすでに説明した。
【０１００】
誤差検出器３１０は、位置指令値生成部３１２、位置検出値生成部３１４、減算器３１６を含む。位置指令値生成部３１２は、クロック信号ＣＬＫにもとづき、ロータの目標位置を示す位置指令値Ｐ＿ＴＧＴを生成する。位置指令値Ｐ＿ＴＧＴは、図４における位置指令値ＴＧＴに相当する。
【０１０１】
位置検出値生成部３１４は、エンコーダからのパルス信号ＥＮ＿Ａ，ＥＮ＿Ｂにもとづき、ロータの現在位置を示す位置検出値Ｐ＿ＦＢを生成する。位置検出値Ｐ＿ＦＢは、図４のフィードバック値ＦＢに相当する。
【０１０２】
位置指令値Ｐ＿ＴＧＴおよび位置検出値Ｐ＿ＦＢは、減算器３１６に入力され、位置誤差値ＥＲＲが生成される。
【０１０３】
フィードバックコントローラ３３０は、位置検出値Ｐ＿ＦＢが位置指令値Ｐ＿ＴＧＴに近づくように、すなわち位置誤差値ＥＲＲがゼロに近づくように、トルク指令値Ｔ＿ＲＥＦを生成する。トルク指令値Ｔ＿ＲＥＦは、図４における指令値ＲＥＦに相当する。トルク指令値Ｔ＿ＲＥＦは、駆動信号生成部３４０に供給される。
【０１０４】
ＤＣモータを回転させる必要がない状況では、上位コントローラからのクロック信号ＣＬＫが停止する。そこで駆動ＩＣ２００Ｃは、クロック信号ＣＬＫの無入力状態が所定時間（判定時間τ２という）持続したことを条件として、少なくとも一部の回路ブロックの動作が停止する休止モードに移行する。判定時間は、レジスタを利用して設定可能としてもよい。
【０１０５】
カウンタ４５０は、クロック信号ＣＬＫを受け、クロック信号ＣＬＫの無入力状態が判定時間τ２持続すると、タイムアップ信号ＴＩＭＥＵＰ２をアサート（たとえばハイ）する。カウンタ４５０は、クロック信号ＣＬＫの無入力状態の検出以外の目的で設けられたカウンタを流用してもよい。
【０１０６】
カウンタ４５０の構成は特に限定されないが、たとえばクロック信号ＣＬＫのポジエッジによってリセットされるフリーランカウンタで構成してもよい。カウンタ４５０は、カウント値が判定時間に対応するしきい値ＴＨ２に達すると（オーバーフロー）、タイムアップ信号ＴＩＭＥＵＰ２をアサートする。
【０１０７】
休止モード判定部４６０は、タイムアップ信号ＴＩＭＥＵＰ２のアサートを条件のひとつとして、休止モードに移行する。
【０１０８】
図１２は、休止モードへの移行を説明するタイムチャートである。カウンタ４５０は、駆動ＩＣ２００Ｃに内蔵されるオシレータが生成する内部クロックＣＫＳＹＳを利用して、フリーランしている。クロック信号ＣＬＫが停止すると、カウンタ４５０がリセットされずにカウントアップし続ける。時刻ｔ１にカウント値がしきい値ＴＨに達すると、タイムアップ信号ＴＩＭＥＵＰ２がアサートされて、休止モードに移行する。
【０１０９】
駆動ＩＣ２００Ｃを用いることで、ＤＣモータの停止を維持すべき状態において、駆動ＩＣ２００Ｃの消費電力を低減できる。
【０１１０】
休止モードでは、カウンタ４５０を停止することができる。カウンタ４５０をフリーランし続けると無駄な電力を消費するところ、一旦、休止モードに移行した後は、クロック信号ＣＬＫの無入力状態を測定する必要がないため、カウンタ４５０を停止させることで消費電力を低減できる。
【０１１１】
休止モードの間、システムクロックＣＫＳＹＳが使用されない場合、システムクロックＣＫＳＹＳを生成するオシレータ（図２のオシレータ２８８）をさらに停止することができる。
【０１１２】
また、ＤＣモータの停止が持続した状態で、フィードバックコントローラ３３０や駆動信号生成部３４０を休止せずに、サーボをかけ続けると無駄な電力が消費する。そこで駆動ＩＣ２００Ｃは、休止モードにおいて、ＤＣモータへの通電を停止するとよい。この場合、フィードバックコントローラ３３０や駆動信号生成部３４０を停止することでさらに消費電力を低減できる。
【０１１３】
なお、ＤＣモータに外力が加わるようなアプリケーションでは、サーボを切った状態で外力が加わると、ロータが回転してしまい、位置指令値Ｐ＿ＴＧＴが示す目標位置からずれる場合がある。この場合には、目標位置に戻すようにＤＣモータを駆動する必要がある。そこで、休止モード判定部４６０は、位置誤差値ＥＲＲを監視し、クロック信号ＣＬＫの無入力状態が所定時間持続したことに加えて、位置誤差値ＥＲＲがゼロであることを条件として、休止モードに移行してもよい。休止モードの間、トルクを発生する必要がない状況では、フィードバックコントローラ３３０や駆動信号生成部３４０をさらに停止することができる。
位置誤差値ＥＲＲがゼロである場合には、それ以上、ＤＣモータを駆動する必要は無いため、カウンタに加えて、その他の不要な回路ブロックを停止することが可能となる。
【０１１４】
一実施例においては、クロック信号ＣＬＫが無入力であり、かつ位置誤差値ＥＲＲがゼロの状態が所定時間持続した場合に、休止モードに移行してもよい。
【０１１５】
一実施例においては、クロック信号ＣＬＫが無入力の状態が第１時間持続した後、位置誤差値ＥＲＲゼロである期間に、休止モードとなってもよい。
【０１１６】
一実施例においては、クロック信号ＣＬＫが無入力の状態が第１時間持続し、その後、位置誤差値ＥＲＲがゼロの状態が第２時間持続すると、休止モードに移行してもよい。
【０１１７】
一実施例において、休止モード判定部４６０は、位置誤差値ＥＲＲに加えて、またはそれに代えて、トルク指令値Ｔ＿ＲＥＦを監視してもよい。位置誤差値ＥＲＲのゼロが持続すると、やがてトルク指令値Ｔ＿ＲＥＦもゼロとなる。そこで、休止モード判定部４６０は、トルク指令値Ｔ＿ＲＥＦを監視し、クロック信号ＣＬＫの無入力状態が所定時間持続したことに加えて、トルク指令値Ｔ＿ＲＥＦがゼロであることを条件として、休止モードに移行して、フィードバックコントローラ３３０、駆動信号生成部３４０を停止してもよい。
【０１１８】
一実施例においては、クロック信号ＣＬＫが無入力であり、かつトルク指令値Ｔ＿ＲＥＦがゼロの状態が所定時間持続した場合に、休止モードに移行し、フィードバックコントローラ３３０、駆動信号生成部３４０を停止する。
【０１１９】
一実施例においては、クロック信号ＣＬＫが無入力の状態が第１時間持続した後、トルク指令値Ｔ＿ＲＥＦがゼロである期間中に、フィードバックコントローラ３３０、駆動信号生成部３４０を停止してもよい。
【０１２０】
一実施例においては、クロック信号ＣＬＫが無入力の状態が第１時間持続し、その後、トルク指令値Ｔ＿ＲＥＦがゼロの状態が第２時間持続すると、フィードバックコントローラ３３０、駆動信号生成部３４０を停止してもよい。
【０１２１】
一実施例において、トルク指令値Ｔ＿ＲＥＦと位置誤差値ＥＲＲの両方がゼロであることを条件として、休止モードに移行してもよい。
【０１２２】
また休止モードの間、フィードバックコントローラ３３０、駆動信号生成部３４０に加えて、誤差検出器３１０を停止してもよい。これによりさらに消費電力を低減できる。
【０１２３】
図１１には図示しないが、駆動ＩＣ２００Ｃは、クロック信号ＣＬＫの周波数（周期）にもとづいて速度指令値を検出する回路（図１３の速度指令値生成部４１４）や、エンコーダからのパルス信号ＥＮ＿Ａ，ＥＮ＿Ｂの周波数（周期）にもとづいて、現在のモータの回転速度を検出する回路（図１３の速度検出値生成部４２４）が設けられる場合もある。この場合には、休止モード中、これらの検出回路を停止してもよい。
【０１２４】
続いて、休止モードから通常モードへの復帰を説明する。
駆動ＩＣ２００Ｃは、休止モードにおいて、クロック信号ＣＬＫの入力が検出されると直ちに通常のモードに復帰してもよい。
【０１２５】
また駆動ＩＣ２００Ｃは、位置誤差値ＥＲＲあるいはトルク指令値Ｔ＿ＲＥＦが非ゼロとなってことを条件として、直ちに通常のモードに復帰してもよい。
【０１２６】
復帰に際しては、速度指令値とトルク指令値の少なくとも一方を、任意の値にリセット可能とすることが望ましい。これにより、復帰直後における回転速度やトルクを自由に決めることができ、ＤＣモータを円滑に再始動させることができる。
【０１２７】
（ショートブレーキ）
図１３は、ショートブレーキ機能を備える駆動ＩＣ２００Ｂの一部のブロック図である。駆動ＩＣ２００Ｂは、誤差検出器３１０Ｂ、フィードバックコントローラ３３０、駆動信号生成部３４０に加えて、ブレーキコントローラ４３０を備える。誤差検出器３１０、フィードバックコントローラ３３０、駆動信号生成部３４０の主な機能、動作については、図４を参照してすでに説明した。
【０１２８】
誤差検出器３１０Ｂは、第１検出回路４１０、第２検出回路４２０、減算器３１６を含む。第１検出回路４１０は、クロック信号ＣＬＫにもとづき、ロータの目標位置を示す位置指令値Ｐ＿ＴＧＴと、ロータの目標回転数を示す速度指令値Ｖ＿ＴＧＴと、を生成する。位置指令値Ｐ＿ＴＧＴは、図４における位置指令値ＴＧＴに相当する。速度指令値Ｖ＿ＴＧＴは、クロック信号ＣＬＫの周波数に比例し、言い換えればクロック信号ＣＬＫの周期に反比例する。
【０１２９】
第２検出回路４２０は、エンコーダからのパルス信号ＥＮ＿Ａ，ＥＮ＿Ｂにもとづき、ロータの現在位置を示す位置検出値Ｐ＿ＦＢと、ロータの現在の回転速度を示す速度検出値Ｖ＿ＦＢと、を生成する。位置検出値Ｐ＿ＦＢは、図４において単にフィードバック値ＦＢとして示される。速度検出値Ｖ＿ＦＢは、パルス信号ＥＮ＿Ａ，ＥＮ＿Ｂの周波数に比例し、言い換えればパルス信号ＥＮ＿Ａ，ＥＮ＿Ｂの周期に反比例する。
【０１３０】
位置指令値Ｐ＿ＴＧＴおよび位置検出値Ｐ＿ＦＢは、減算器３１６に入力され、位置誤差値ＥＲＲが生成される。また位置指令値Ｐ＿ＴＧＴおよび位置検出値Ｐ＿ＦＢは、速度指令値Ｖ＿ＴＧＴおよび速度検出値Ｖ＿ＦＢとともに、ブレーキコントローラ４３０に供給される。
【０１３１】
フィードバックコントローラ３３０は、位置検出値Ｐ＿ＦＢが位置指令値Ｐ＿ＴＧＴに近づくように、すなわち位置誤差値ＥＲＲがゼロに近づくように、トルク指令値Ｔ＿ＲＥＦを生成する。トルク指令値Ｔ＿ＲＥＦは、図４における指令値ＲＥＦに相当する。トルク指令値Ｔ＿ＲＥＦは、駆動信号生成部３４０に供給されるとともに、ブレーキコントローラ４３０にも供給される。
【０１３２】
ブレーキコントローラ４３０は、位置検出値Ｐ＿ＦＢ、位置指令値Ｐ＿ＴＧＴ、速度検出値Ｖ＿ＦＢ、速度指令値Ｖ＿ＴＧＴ、トルク指令値Ｔ＿ＲＥＦにもとづいて、ブレーキ制御を行う。
【０１３３】
具体的には、位置検出値Ｐ＿ＦＢが位置指令値Ｐ＿ＴＧＴより大きく（すなわち位置超過）、速度検出値Ｖ＿ＦＢが速度指令値Ｖ＿ＴＧＴより大きく（すなわち速度超過）、かつトルク指令値Ｔ＿ＲＥＦが負であるときに、ブレーキ信号ＢＲＡＫＥをアサート（たとえばハイレベル）し、駆動信号生成部３４０にショートブレーキをかけるように指示する。
【０１３４】
ショートブレーキの条件がすべて成立しない場合、すなわちトルクが負であるが、位置超過が発生していない場合には、ドライバ１０６の出力をハイインピーダンスとする（空転制御）。
【０１３５】
ブレーキをかける条件は以下の３つである。
（条件１）  位置超過  Ｐ＿ＦＢ＞Ｐ＿ＴＧＴ
（条件２）  速度超過  Ｖ＿ＦＢ＞Ｖ＿ＴＧＴ
（条件３）  Ｔ＿ＲＥＦ＜０
【０１３６】
なお、マージンを考慮して、条件を以下のように定めてもよい。
（条件１）  位置超過  Ｐ＿ＦＢ＞Ｐ＿ＴＧＴ＋ΔＰ
（条件２）  速度超過  Ｖ＿ＦＢ＞Ｖ＿ＴＧＴ＋ΔＶ
（条件３）  Ｔ＿ＲＥＦ＜−ΔＴ
ΔＰ，ΔＶ，ΔＴはマージンである。
【０１３７】
図１４は、ブレーキコントローラ４３０のブロック図である。ブレーキコントローラ４３０は、位置超過判定部４３２、速度超過判定部４３４、負トルク判定部４３６および論理ゲート４３８を含んでもよい。
【０１３８】
位置超過判定部４３２は、条件１が満たされると、位置超過信号Ｓ１をアサート（たとえばハイ）する。速度超過判定部４３４は、条件２が満たされると、速度超過信号Ｓ２をアサートする。負トルク判定部４３６は、条件３が満たされると、負トルク判定信号Ｓ３をアサートする。論理ゲート４３８は、たとえばＡＮＤゲートであり、３つの条件が同時に成立すると、ブレーキ信号ＢＲＡＫＥをアサートする。
【０１３９】
図１５（ａ）、（ｂ）は、ブレーキコントローラ４３０の動作を説明する図である。はじめに図１５（ａ）を参照して位置超過を説明する。簡単のために初期状態において位置指令値Ｐ＿ＴＧＴ、位置検出値Ｐ＿ＦＢはともにゼロである。クロック信号ＣＬＫのポジエッジごとに、位置指令値Ｐ＿ＴＧＴは増大する。またエンコーダからのパルス信号ＥＮ＿Ａ（ＥＮ＿Ｂ）のパルスごとに、位置検出値Ｐ＿ＦＢは増大する。位置超過判定部４３２は、Ｐ＿ＦＢ＞Ｐ＿ＴＧＴとなると、言い換えるとＥＲＲ＜０となると、速度超過検出信号Ｓ１をアサートする。位置超過の発生は、減算器３１６の出力である位置誤差値ＥＲＲにもとづいて検出してもよい。
【０１４０】
図１５（ｂ）を参照して速度超過を説明する。速度指令値Ｖ＿ＴＧＴは、クロック信号ＣＬＫの周波数ｆＣＫに比例し、クロック信号ＣＬＫの周期１／ｆＣＫに反比例する。同様に速度検出値Ｖ＿ＦＢは、エンコーダからのパルス信号ＥＮ＿Ａの周波数ｆＦＢに比例し、パルス信号ＥＮ＿Ａの周期１／ｆＦＢに反比例する。速度超過判定部４３４は、サイクルごとに対応する周波数ｆＣＫとｆＦＢ、言い換えれば周期１／ｆＣＫ，１／ｆＦＢを比較し、ｆＦＢ＞ｆＣＫのとき、言い換えれば１／ｆＦＢ＜１／ｆＣＫのときに、速度超過信号Ｓ２をアサートする。
【０１４１】
図１３に戻る。ブレーキ信号ＢＲＡＫＥのアサートに応答して駆動信号生成部３４０は、Ｕ相、Ｖ相、Ｗ相のハイサイドトランジスタがすべてオンし、ローサイドトランジスタがすべてオフするように（あるいはその逆にローサイドトランジスタがすべてオン、ハイサイドトランジスタがすべてオフするように）、駆動信号ＳＵＨ，ＳＵＬ，ＳＶＨ，ＳＶＬ，ＳＷＨ，ＳＷＬを遷移させる。
【０１４２】
以上が駆動ＩＣ２００Ｂの構成である。
モータ駆動システム１００においては、上位コントローラからのクロック信号ＣＬＫの周波数の低下が減速指令を意味する。駆動ＩＣ２００Ｂは、クロック信号ＣＬＫの周波数の低下を条件とするのではなく、上述の条件１〜３の成立を条件として、ブレーキをかける。これにより、ＤＣモータを正確に減速させることができる。
【０１４３】
なお、条件１〜３のすべてではなく条件１と３の成立、すなわち、位置超過とトルクが負であることを条件として、ブレーキをかけてもよい。この場合、速度指令値および速度検出値の生成回路を省略できる。
【０１４４】
（ＰＩコントローラ）
ステッピングモータを駆動するプラットフォームにおいては、停止したステッピングモータを回転させる際に、モータの回転数の指令値に相当するクロック信号ＣＬＫの周波数をいきなり高い周波数とすると、脱調するおそれがある。
【０１４５】
そこで多くのプラットフォームでは、ステッピングモータの回転開始時に、クロック信号ＣＬＫの周波数を時間とともに緩やかに上昇させる場合が多い。反対に、定速回転するステッピングモータを停止させる際には、クロック信号ＣＬＫの周波数（以下、クロック周波数ｆＣＫという）を時間とともに緩やかに低下させる場合が多い。したがってクロック周波数ｆＣＫは、ステッピングモータの、停止、定速回転、停止の１サイクルにおいて、台形波あるいはそれに類する波形（以下、単に台形波と総称する）にしたがって変化する場合が多い。
【０１４６】
本実施の形態のように、ステッピングモータをＤＣモータに置換したプラットフォームにおいても、上位コントローラ１０４からのクロック周波数ｆＣＫは、台形波状に変化することが想定される。図１６は、クロック信号ＣＬＫの周波数ｆＣＫの波形図である。（i）〜（iii）は、定速時の回転数が異なることを示す。
【０１４７】
上述のように、フィードバックコントローラ３３０は、ＰＩ制御器を含み、その制御特性は、比例ゲインＫＰと積分ゲインＫＩで規定される。実施の形態に係るフィードバックコントローラ３３０は、クロック周波数ｆＣＫに応じて制御特性（比例ゲイン、積分ゲインの少なくとも一方）を動的に変化させる。これにより、制御特性を固定した場合に比べて、モータの追従性を高めることができる。
【０１４８】
フィードバックコントローラ３３０は、クロック周波数ｆＣＫと、制御特性（比例ゲイン、積分ゲイン）の関係を保持するテーブルをメモリに保持している。
【０１４９】
より好ましくはＤＣモータの回転開始後、クロック周波数ｆＣＫの上昇中に、積分ゲインＫＩを一定とし、比例ゲインＫＰのみをクロック周波数ｆＣＫに応じて変化させるとよい。比例ゲインＫＰはクロック周波数ｆＣＫに対して、正の相関を有し、単調増加してもよい。
【０１５０】
図１７は、モータ駆動システム１００の始動時のモータの回転数を示す図である。（i）は、制御特性を固定したときの波形を、（ii）は、比例ゲインＫＰのみを変化させたときの波形を、（iii）は、比例ゲインＫＰ、積分ゲインＫＩの両方を変化させたときの波形を示す。（iv）はクロック周波数ｆＣＫにもとづく目標回転数である。ｆ１，ｆ２・・・・は、制御特性が切り替わるしきい値を示す。
【０１５１】
（i）に示すように、制御特性を固定すると、回転数が目標回転数に到達するまでの時間が長くなる。一方で、（iii）に示すように、比例ゲインと積分ゲインの両方を、変化させると、積分ゲインＫＩを切りかえるタイミングにおいて、それまで蓄積されていた積分項が増大するため、回転数が振動する（回転ムラ）。そこで（ii）に示すように、積分ゲインを一定としつつ、比例ゲインのみを変化させることで、回転ムラを抑制しつつ、追従性を高めることができる。
【０１５２】
ここでは、回転数を上昇させるときの動作を説明したが、回転数を低下させる際も同様であり、積分ゲインＫＩを一定としながら、比例ゲインＫＰをクロック周波数ｆＣＫに応じて変化させるとよい。
【０１５３】
（電子ギア）
続いて、電子ギアについて説明する。上位コントローラ１０４のスペックによっては、クロック信号ＣＬＫの周波数ｆＣＫの可変範囲が制約される場合がある。たとえば、クロック周波数ｆＣＫの上限ｆＭＡＸが低いと、その上限ｆＭＡＸでＤＣモータの回転数が制約される。上限周波数ｆＭＡＸで規定される回転数よりも高い回転数でモータを回転させたい場合、従来では機械ギアを用いる必要があり、コストアップの要因となっていた。この問題を解消するために、駆動ＩＣ２００は、電子ギアの機能を備える。
【０１５４】
図１８は、電子ギアの機能を説明する図である。上述のように、位置指令値生成部３１２においては、クロック信号ＣＬＫのエッジの個数が積算される。図６（ａ）〜（ｃ）では、クロック信号ＣＬＫのエッジ１個あたりにつき、ターゲット値ＴＧＴが１ずつ、インクリメント、あるいはデクリメントされた。
【０１５５】
これに対して、電子ギアを備えるロジック回路３００Ａでは、クロック信号ＣＬＫのエッジ１個たりにつきインクリメント／デクリメントする変化量ΔＴＧＴが外部から設定可能である。図１８では、ΔＴＧＴ＝１，２，４の３段階で切りかえたときの動作を示す。
【０１５６】
変化量ΔＴＧＴに応じて、クロック信号ＣＬＫ１パルス当たりの、ロータの回転角を制御することができる。したがって変化量ΔＴＧＴは、電子的なギア比に相当する。電子ギアの機能を実装することで、機械ギアを減らし、あるいは無くすことができるため、装置の低コスト化、小型化が可能であり、また装置の構造が簡素化できるため、故障のリスクを減らすことができる。
【０１５７】
図１９は、電子ギアの機能を備える駆動ＩＣ２００Ａのブロック図である。駆動ＩＣ２００Ａには、電子ギアの設定のための設定ピンＭＯＤＥが設けられ、この設定ピンＭＯＤＥの状態に応じて、変化量ΔＴＧＴが選択される。たとえば設定ピンＭＯＤＥには、抵抗が外付け可能であり、設定ピンＭＯＤＥには、抵抗の有無あるいは抵抗の抵抗値に応じた電圧ＶＭＯＤＥが発生する。コンパレータＣＭＰ１あるいはＡ／Ｄコンバータ（不図示）によってこのモード電圧ＶＭＯＤＥが検出され、モード電圧ＶＭＯＤＥに応じた変化量ΔＴＧＴが選択される。
【０１５８】
より詳しくは、電子ギアの機能は、位置指令値生成部３１２に実装することができる。電子ギアの機能の実装について、図６（ａ）〜（ｃ）を参照して説明する。たとえば図６（ａ）の位置指令値生成部３１２においては、カウンタ３２２のインクリメント、デクリメント量を、設定ピンＭＯＤＥの状態に応じて変化させればよい。
【０１５９】
図６（ｂ）の位置指令値生成部３１２においては、演算器３２４の入力Ａに与える値を、設定ピンＭＯＤＥの状態に応じて、１，２，４…と多値で切りかえ可能とすればよい。
【０１６０】
図６（ｃ）の位置指令値生成部３１２においては、セレクタ３２７に入力する正負の２値を、設定ピンＭＯＤＥの状態に応じて１倍、２倍、４倍・・・と切りかえ可能に構成すればよい。
【０１６１】
なお、ギア比に相当する変化量ΔＴＧＴの設定方法は、設定ピンＭＯＤＥを利用したものに限定されず、Ｉ２Ｃ（Inter IC）インタフェースや、ＳＰＩ（Serial Peripheral Interface）などを利用して、レジスタに設定値を書き込むようにしてもよい。
【０１６２】
なお、ΔＴＧＴの値は、１，２，４・・・には限定されず、任意の整数であってもよい。あるいは、ΔＴＧＴは、１／２，１／４，１／８・・・、あるいは任意の分数であってもよい。ΔＴＧＴ＜１とすることで、減速制御が可能となる。
【０１６３】
図２０は、電子ギアの機能を備える駆動ＩＣ２００Ｂのブロック図である。駆動ＩＣ２００Ｂでは、ターゲット値ＴＧＴの変化量は一定であり、ＥＮ＿Ａ，ＥＮ＿Ｂのパルス当たりのフィードバック値ＦＢの変化量ΔＦＢが変更可能となっている。ΔＦＢは、整数あるいは非整数の任意の値に決めることができる。ＥＮ＿Ａ（ＥＮ＿Ｂ信号）の１パルス当たりのΔＦＢを大きくすると、回転数は遅くできる。反対にＥＮ＿Ａ（ＥＮ＿Ｂ信号）の１パルス当たりのΔＦＢを小さくすると、回転数を速めることができる。ギア比選択部３６０は図１９のコンパレータＣＭＰ１（あるいはＡ／Ｄコンバータ）に相当するブロックであり、設定ピンＭＯＤＥの状態に応じてΔＦＢを選択する。
【０１６４】
（用途）
図２１は、モータ駆動システム１００を備える電子機器を示す図である。図２１には、電子機器９００の一例として、プリンタを示す。電子機器９００は、複数のＤＣモータ９０２、９０４を備える。たとえばＤＣモータ９０２は、プリントヘッド９１０の駆動機構９１２に用いられる。ＤＣモータ９０４は、用紙送りの駆動機構９１４に用いられる。
【０１６５】
なおモータ駆動システム１００の用途はプリンタには限定されず、さまざまなＯＡ機器、産業機器、産業機械に用いることができる。
【０１６６】
以上、本発明について、実施の形態をもとに説明した。この実施の形態は例示であり、それらの各構成要素や各処理プロセスの組み合わせにいろいろな変形例が可能なこと、またそうした変形例も本発明の範囲にあることは当業者に理解されるところである。以下、こうした変形例について説明する。
【０１６７】
（変形例１）
実施の形態では、ホールセンサを用いたモータ駆動を説明したが、センサレスであってもよい。この場合、駆動ＩＣ２００に、逆起電力を検出するコンパレータを実装すればよい。
【０１６８】
（変形例２）
実施の形態では、ドライバ１０６のハイサイドトランジスタのゲート駆動電圧を得るためにチャージポンプを利用したが、ブートストラップ回路を内蔵してもよい。なおドライバ１０６のハイサイドトランジスタは、Ｐチャンネルであってもよく、この場合チャージポンプは不要である。
【０１６９】
（変形例３）
実施の形態では、ドライバ１０６が駆動ＩＣ２００に外付けされたが、ドライバ１０６を駆動ＩＣ２００に集積化してもよい。反対に、実施の形態では、プリドライバ２５０が駆動ＩＣ２００に集積化されたが、プリドライバ２５０を駆動ＩＣ２００の外部に設けてもよく、たとえばドライバ１０６とプリドライバ２５０を集積化してもよい。
【０１７０】
（変形例４）
実施の形態では、駆動ＩＣをロジック回路で実装したが、その限りでなく、ロジック回路３００で示されるブロックを、プロセッサ（ＣＰＵやマイコン）とソフトウェアプログラムの組み合わせで構成してもよい。
【符号の説明】
【０１７１】
１００  モータ駆動システム
１０２  ＤＣモータ
１０４  上位コントローラ
１０６  ドライバ
１１０  ホールセンサ
１１２  エンコーダ
２００  駆動ＩＣ
ＢＵＦ  入力バッファ
ＨＣＭＰ  ホールコンパレータ
２５０  プリドライバ
２６０  電源回路群
２６２  オペアンプ
２６４  基準電圧源
２６６  チャージポンプ
２６８，２７０  電源回路
２８０  保護回路
３００  ロジック回路
３１０  誤差検出器
３１２  位置指令値生成部
３１４  位置検出値生成部
３１６  減算器
３２０  エッジ検出回路
３２２  アップダウンカウンタ
３２４  演算器
３２５  メモリ
３２６  オペコードセレクタ
３２７  セレクタ
３２８  加算器
３２９  メモリ
３３０  フィードバックコントローラ
３４０  駆動信号生成部
３４２  パルス幅変調器
３４４  通電ロジック
３６０  ギア比選択部
【図１】
2019088062.tif 000003
【図２】
2019088062.tif 000004
【図３】
2019088062.tif 000005
【図４】
2019088062.tif 000006
【図５】
2019088062.tif 000007
【図６】
2019088062.tif 000008
【図７】
2019088062.tif 000009
【図８】
2019088062.tif 000010
【図９】
2019088062.tif 000011
【図１０】
2019088062.tif 000012
【図１１】
2019088062.tif 000013
【図１２】
2019088062.tif 000014
【図１３】
2019088062.tif 000015
【図１４】
2019088062.tif 000016
【図１５】
2019088062.tif 000017
【図１６】
2019088062.tif 000018
【図１７】
2019088062.tif 000019
【図１８】
2019088062.tif 000020
【図１９】
2019088062.tif 000021
【図２０】
2019088062.tif 000022
【図２１】
2019088062.tif 000023