以下、本発明の実施形態について図面に基づいて説明する。図1は、全体構成を示す図であり、システムは、ドライバ100と、モータ200とから構成される。入力信号は、ドライバ100に入力され、ドライバ100が入力信号に応じた駆動電流をモータ200に供給する。これによって、モータ200の回転が入力信号に応じて制御される。
ここで、ドライバ100は、コンパレータ10を有しており、モータ200に設けられたホール素子30からのロータ位置に応じた回転状態信号がオフセット制御回路32を介し、コンパレータ10の一端に供給される。すなわち、オフセット制御回路32は、回転状態信号に所定のオフセット値を加算し、上下方向に交互にシフトした加算信号を得る。そして、この加算信号がコンパレータ10の一端に供給される。コンパレータ10の他端には、ゼロ電圧(基準値電圧)が供給されており、コンパレータ10は加算信号がゼロ(基準値)に至ったことを検出する。
コンパレータ10の出力は、出力制御回路12に供給される。出力制御回路12は、コンパレータ10の出力信号に応じて所定周波数の駆動波形(位相)を決定するとともに、駆動制御信号(OUT1,OUT2)がPWM駆動制御される事によって、駆動電流の振幅が決まる。そして、作成した駆動制御信号を出力回路14に供給する。
出力回路14は、複数のトランジスタから構成され、これらのスイッチングによって電源からの電流を制御してモータ駆動電流を発生し、これをモータ200に供給する。
図2には、出力回路14の一部とモータ200の1つのコイル22(24)の構成を示す。このように、電源とアースの間に2つのトランジスタQ1,Q2の直列接続からなるアームと、2つのトランジスタQ3,Q4の直列接続からなるアームが設けられており、トランジスタQ1,Q2の中間点と、トランジスタQ3,Q4の中間点との間にコイル22(24)が接続される。そして、トランジスタQ1,Q4をオン、トランジスタQ2,Q3をオフすることで、コイル22(24)に一方向の電流を流し、トランジスタQ1,Q4をオフ、トランジスタQ2,Q3をオンすることで、コイル22(24)に反対方向の電流を流し、コイル22,24を駆動する。
なお、このような回路が2つ設けられることで、2つのコイル22,24に供給する電流を個別に制御することができる。
モータ200は、ステッピングモータであり、2つのコイル22,24とロータ26を有している。2つのコイル22,24は、互いに電気角で90度位置がずれて配置されており、従って、ロータ26に対する磁界の方向もロータの中心角について互いに電気角で90度ずれている。また、ロータ26は、その極数に応じた数の永久磁石が設けられており、例えばN極とS極が対向する位置(互いに180度異なった位置)に配置されている。そして、2つのコイル22,24からの磁界に応じて安定する位置が決定される。
従って、ロータの回転角について90度ずれた位置に配置された2つのコイルに互いに90度位相の異なる交流電流を供給することで、その電流位相によりロータ26を移動させ、回転することができる。また、特定の電流位相のタイミングで、電流位相の変化を停止することで、その時の電流位相に応じた位置にロータを停止することができる。このようにして、モータ200の回転が制御される。
モータ200には、ホール素子30が設けられており、ロータ26の永久磁石からの磁界に応じて、回転状態信号を発生する。上述のように、N,Sが1つずつの場合、ロータ26の1回転が1周期となる正弦波が回転状態信号として得られる。
このホール素子30からの回転状態信号は、オフセット制御回路32に供給される。このオフセット制御回路32は、回転状態信号を所定のオフセット量だけずらし、2つのゼロクロス間を例えば150度に設定するものである。
ここで、図3には、ゼロクロス間を180度から120度に変更する例が示されている。回転状態信号は、0度で0ガウス、90度で+60ガウス、180度で0ガウス、270度で−60ガウスに相当する電圧のサイン波である。従って、回転状態信号を30ガウス相当の電圧だけゼロに近づけることで2つゼロクロス間が120度になる。そこで、−側において+30ガウス相当分加算した加算信号(回転状態信号が30ガウス分ゼロに近づけられた信号)が1回目にゼロに至った時(回転状態信号の位相−30度)に+30ガウスに代えて−30ガウスの加算(30ガウス分の減算)とする。これによって、60ガウス分加算信号が−方向にシフトする。この例の場合、−60ガウス分の加算は60度分のシフトに相当するため、回転状態信号における位相の+30度において、加算信号は−側からの2度目のゼロに至る。そして、この2回目のゼロの場合には、−30ガウス分の加算はそのままとして+側に移る。次に、+側からの1回目のゼロの時に、加算が+30ガウスに切り替えられる。このようにして、回転状態信号の位相330度(−30度)のときにオフセット量が+30ガウスから−30ガウスに切り替えられ、150度のときにオフセット量が−30ガウスから+30ガウスに切り替えられ、これを繰り返すことで、加算信号の2回目のゼロから、次のゼロの間で120度の期間の信号を得ることができる。なお、加算するオフセット量を調整する(この場合には±15ガウス相当分とする)ことで、150度などの期間の信号が得られる。
なお、コンパレータ10の他端には、ホール素子30のコモン電圧と同電位の電圧を基準として供給する構成としてもよい。このような構成にすることによって、ホール素子30とコンパレータ10とで用いられる基準値が等しくなり、コイル22,24への通電期間をより正確に設定することができる。
図4には、出力制御回路12の構成例が示されており、図5には各部の信号波形が示されている。コンパレータ10の出力(コンパレータ出力)は、回転状態信号を上述のようにして順次シフトした信号のゼロクロスを検出するものであり、この例は、図3と同様に、120度通電の例を示しており、コンパレータ出力は、回転状態信号の0〜30度がLレベル、30〜150度がHレベルになり、150〜180度がLレベル、180〜210度がHレベル、210〜330度がLレベル、330〜360度がHレベルの信号となる(図5(i))。
このコンパレータ出力は、フリップフロップFF1のD入力端に供給される。このフリップフロップFF1のクロック入力端には、所定のクロックCLKが供給されており、フリップフロップFF1がコンパレータ10の出力を順次保持することになる。クロックCLKは、コンパレータ10の出力の変化に比べ大きな周波数を有しているため、フリップフロップFF1はコンパレータ10の出力を所定の期間だけ遅れてそのまま取り込むことになる。フリップフロップFF1の出力は、フリップフロップFF2のD入力端に供給されており、このフリップフロップFF2のクロック入力端にもクロックCLKが供給されている。従って、このフリップフロップFF2の出力は、フリップフロップFF1の出力比べ、クロックCLKの1周期だけ遅れた信号となる。フリップフロップFF1の出力は反転されてアンドゲートAND1に入力され、フリップフロップFF2の出力はそのままアンドゲートAND1に入力される。従って、このアンドゲートAND1の出力は、コンパレータ10の出力が立ち下がった時に、クロックCLKの1周期分だけ立ち上がる信号となる。
すなわち、図5(ii)立ち下がり検出信号に示すように、コンパレータ出力の立ち下がり時にクロックCLKの1周期だけ立ち上がる信号が、アンドゲートAND1の出力に得られる。
また、アンドゲートAND2には、フリップフロップFF1の出力とフリップフロップFF2の反転出力が入力されている。従って、このアンドゲートAND2の出力には、図5(iii)立ち上がり検出信号に示すように、コンパレータ出力の立ち上がり時にクロックCLKの1周期だけ立ち上がる信号が得られる。
クロックCLKは、所定の分周された後、連続H/L検出部40に入力される。この連続H/L検出部40は、例えば、コンパレータ出力におけるHレベルが60度の期間連続したことでHレベル、Lレベルが60度の期間連続したときにLレベルになる。従って、この例では、回転状態信号の90度〜270度の期間がHレベル、その他の半分の期間がLレベルの信号が連続H/L検出部40の出力となる(図5(iv))。
アンドゲートAND1の出力は、フリップフロップFF3のD入力端に供給され、アンドゲートAND2の出力は、フリップフロップFF4のD入力端に供給される。これらアンドゲートAND1,AND2のクロック入力端には、クロックCLKが供給されている。従って、これらフリップフロップFF3,FF4にアンドゲートAND1,AND2の出力が取り込まれる。フリップフロップFF3,FF4の出力は、アンドゲートAND3,AND4にそれぞれ入力される。アンドゲートAND3の他入力端には、連続H/L検出信号がそのまま入力され、アンドゲートAND4の他入力端には、連続H/L検出信号が反転して入力されている。従って、アンドゲートAND3の出力には、立ち下がり検出信号の中の回転状態信号の0度に対応するパルスが除去され、150度、210度のパルスのみが残る。また、アンドゲートAND4の出力では、立ち上がり検出信号の中の回転状態信号の180度に対応するパルスが除去され、30度、330度のパルスのみが残る。
アンドゲートAND3の出力は、SRラッチ回路SR1のセット入力端に供給され、アンドゲートAND4の出力は、SRラッチ回路SR1のリセット入力端に供給される(図5(v))。従って、図5(vi)に示すように、回転状態信号の330度でHレベルになり、150度でLレベルになるオフセット制御信号がSRラッチSR1の出力に得られる。このSRラッチSR1の出力は、オフセット制御回路32に供給され、Hレベルの際に所定のオフセット値(30ガウス分)だけ回転状態信号に加算し、Lレベルの際に所定のオフセット値(30ガウス分)だけ回転状態信号から減算する切り替え制御に利用される。
アンドゲートAND3,AND4の出力は、オアゲートOR1に入力される。OAゲートOR1の出力には、330度、30度、150度、210度の4つのパルスを有する両エッジ信号が得られる(図5(vii))。オフセット制御信号は、所定の遅延が施された後、フリップフロップFF5のD入力端に供給される。このフリップフロップFF5のクロック入力端には、オアゲートOR1からの両エッジ信号が供給されており、フリップフロップFF5の出力には回転状態信号の30度でHレベルになり、210度でLレベルなる信号が得られる(図5(viii))。
このフリップフロップFF5の出力は、ノアゲートNOA1及びアンドゲートAND5に入力され、ノアゲートNOA1及びアンドゲートAND5の他入力端には、SRラッチSR1の出力が供給されている。そこで、ノアゲートNOA1の出力には、30〜150度の期間だけHレベルとなる駆動制御信号OUT1(図5(ix))、アンドゲートAND5の出力には、210〜330度の期間だけHレベルになる駆動制御信号OUT2(図5(x))が得られる。
そこで、駆動制御信号OUT1,OUT2を出力回路14に供給することによって、図2におけるトランジスタQ1,Q4、及びトランジスタQ3,Q2のオンオフを制御することで、上述したコイル22(24)の駆動電流制御が行われる。
なお、出力回路14では、2つのコイル22,24に90度位相が異なる信号を供給する必要がある。このためには、上述のような回路を2つ設ければよい。また、連続H/L検出部40では、電気位相90度分遅延させて信号を取り込んでいる。同様の回路を設けて、上述した駆動制御信号OUT1,OUT2を90度遅延させることで、他のコイル用の駆動制御信号を得てもよい。
また、図1においては、コイル22に対向位置にホール素子30を配置したため、コイル22に同期した回転状態信号を得ることができるが、ホール素子30の取付位置は必ずしも限定されない。さらに、上述のように、回転状態信号に加減算するオフセット量を調整することで、150度通電なども容易に行うことができる。
本実施形態の制御では、ゼロクロスを確実に検出する必要がある。そこで、上述のような制御は、回転が安定してから行うとよい。これによって、チャタリングの影響を防止し、また通電期間をほぼ所望の期間(例えば電気位相150度の期間)にできる。