単相ブラシレスモータの駆動コイルに第1の駆動電流、および前記第1の駆動電流と反対方向の第2の駆動電流をいずれも供給しない非通電期間を挟んで、前記駆動コイルに前記第1の駆動電流と前記第2の駆動電流とを交互に供給するための駆動信号を生成する駆動信号生成回路と、前記駆動信号に応じて前記駆動コイルに前記第1または第2の駆動電流を供給する出力回路と、前記非通電期間に、前記駆動コイルに発生する誘起電圧のゼロクロスを検出するゼロクロス検出回路と、を有し、前記駆動信号生成回路は、前記出力回路が前記駆動コイルに前記第1または第2の駆動電流を供給する通電期間の開始から、前記ゼロクロス検出回路が前記ゼロクロスを検出するまでの駆動周期に基づいて、次の通電期間の長さを決定することを特徴とする単相ブラシレスモータの駆動回路。前記駆動信号生成回路は、起動時からの前記駆動コイルへの通電回数が所定回数に達するまでの間は、前記通電回数の増加に応じて減少するように予め設定された通電時間だけ前記出力回路から前記駆動コイルに前記第1または第2の駆動電流を供給するための前記駆動信号を生成することを特徴とする請求項1に記載の単相ブラシレスモータの駆動回路。前記通電時間は、前記通電回数に略反比例するように予め設定されることを特徴とする請求項2に記載の単相ブラシレスモータの駆動回路。前記駆動信号生成回路は、所定のクロックでカウントし、前記ゼロクロス検出回路が前記ゼロクロスを検出する度にリセットされる第1のカウンタ回路と、前記ゼロクロス検出回路が前記ゼロクロスを検出する度に、前記第1のカウンタ回路がリセットされる直前のカウント値を前記駆動周期として記憶するレジスタと、前記第1のカウンタ回路のカウント値に基づいて前記駆動信号を出力して、前記通電期間および前記非通電期間を制御するタイミング制御回路と、を含み、前記タイミング制御回路は、前記ゼロクロス検出回路が前記ゼロクロスを検出する度に、前記第1の駆動電流と前記第2の駆動電流とを切り替えて、前記出力回路から前記駆動コイルへの前記第1または第2の駆動電流の供給を開始させ、前記第1のカウンタ回路のカウント値が、前記レジスタに記憶されている前記駆動周期に0より大きく1より小さい所定の係数を乗じた値に達すると、前記出力回路から前記駆動コイルへの前記第1および第2の駆動電流のいずれの供給も停止させることを特徴とする請求項1に記載の単相ブラシレスモータの駆動回路。前記駆動信号生成回路は、起動時からの前記駆動コイルへの通電回数をカウントする第2のカウンタ回路をさらに含み、前記タイミング制御回路は、前記第2のカウンタ回路のカウント値が所定値に達するまでの間は、前記第1のカウンタ回路のカウント値が、前記第2のカウンタ回路のカウント値の増加に応じて減少するように予め設定された値に達すると、前記出力回路から前記駆動コイルへの前記第1および第2の駆動電流のいずれの供給も停止させることを特徴とする請求項4に記載の単相ブラシレスモータの駆動回路。単相ブラシレスモータは、低コストで小型の構成とすることができるため、好適な用途として、例えば、携帯電話機の着信を知らせるためのバイブレーション機能に用いられる振動モータが挙げられる。特に、振動モータとして用いる場合には、駆動信号として振動が発生しやすい矩形波を用いることもできるため、モータ駆動回路の回路規模を抑え、モータ駆動用ICの低コスト化や小型化を図ることができる。また、モータ駆動用ICの中には、ロータの回転位置を検出するホール素子を内蔵したモータ駆動用ICも知られている。しかしながら、このようなホール素子内蔵ICは、モータの内部に実装する必要があるため、単相ブラシレスモータの小型化に対する効果が抑制されてしまう。さらに、ICの製造時におけるホール素子自体の特性などによって、ロータの回転位置の検出精度に誤差が生じるため、出荷時に磁場を印加した試験を行う必要がある。そのため、低コスト化の効果も抑制されてしまう。前述した課題を解決する主たる本発明は、単相ブラシレスモータの駆動コイルに第1の駆動電流、および前記第1の駆動電流と反対方向の第2の駆動電流をいずれも供給しない非通電期間を挟んで、前記駆動コイルに前記第1の駆動電流と前記第2の駆動電流とを交互に供給するための駆動信号を生成する駆動信号生成回路と、前記駆動信号に応じて前記駆動コイルに前記第1または第2の駆動電流を供給する出力回路と、前記非通電期間に、前記駆動コイルに発生する誘起電圧のゼロクロスを検出するゼロクロス検出回路と、を有し、前記駆動信号生成回路は、前記出力回路が前記駆動コイルに前記第1または第2の駆動電流を供給する通電期間の開始から、前記ゼロクロス検出回路が前記ゼロクロスを検出するまでの駆動周期に基づいて、次の通電期間の長さを決定することを特徴とする単相ブラシレスモータの駆動回路である。本発明の他の特徴については、添付図面及び本明細書の記載により明らかとなる。本発明によれば、ホール素子などの位置検出素子を用いないで単相ブラシレスモータを駆動することができ、モータの小型化や低コスト化が可能となる。本明細書および添付図面の記載により、少なくとも以下の事項が明らかとなる。===単相ブラシレスモータの駆動回路全体の構成===以下、図1を参照して、本発明の一実施形態における単相ブラシレスモータの駆動回路全体の構成について説明する。図1に示されているモータ駆動回路1は、駆動コイル9を備えた単相ブラシレスモータを駆動するための回路であり、少なくとも、駆動コイル9が接続される出力端子91および92を備えた集積回路として構成されている。また、モータ駆動回路1は、メインカウンタ11、駆動周期記憶レジスタ12、通電時間設定レジスタ13、ループカウンタ14、選択回路15、タイミング制御回路16、NOR回路否定論理和回路17、出力回路20、誘起電圧検出回路30、コンパレータ比較器40、およびエッジ検出回路50を含んで構成されている。なお、本実施形態では、メインカウンタ11、駆動周期記憶レジスタ12、通電時間設定レジスタ13、ループカウンタ14、選択回路15、およびタイミング制御回路16が駆動信号生成回路に相当する。また、誘起電圧検出回路30、コンパレータ40、およびエッジ検出回路50がゼロクロス検出回路に相当する。メインカウンタ11第1のカウンタ回路のCK入力クロック入力には、クロック信号CLK所定のクロックが入力され、CL入力クリア入力には、エッジ検出回路50から出力されるエッジ検出信号EGが入力されている。そして、メインカウンタ11からは、メインカウント値CNTが出力されている。駆動周期記憶レジスタ12には、メインカウント値CNTおよびエッジ検出信号EGが入力され、駆動周期記憶レジスタ12からは、通常時カウント値Tonが出力されている。また、通電時間設定レジスタ13からは、ループカウンタ14から出力されるループカウント値LPごとに予め設定された起動時カウント値T1ないしT10が出力されている。ループカウンタ14第2のカウンタ回路のCK入力には、エッジ検出信号EGが入力され、ループカウンタ14からは、ループカウント値LPが出力されている。また、選択回路15は、11入力1出力のマルチプレクサとして構成されており、選択制御入力には、ループカウント値LPが入力されている。さらに、ループカウント値LPが1ないし10の場合に対応するデータ入力には、それぞれ起動時カウント値T1ないしT10が入力され、ループカウント値LPが11以上の場合に対応するデータ入力には、通常時カウント値Tonが入力されている。タイミング制御回路16には、メインカウント値CNTおよび選択回路15の出力値とともに、ループカウント値LPが奇数であるか偶数であるかを示す最下位ビット以下、奇偶ビットLP[0]と称するが入力されている。また、タイミング制御回路16からは、駆動信号S1およびS2が出力されている。さらに、NOR回路17には、駆動信号S1およびS2が入力され、NOR回路17からは、ハイインピーダンス信号HZが出力されている。出力回路20には、駆動信号S1およびS2が入力され、出力回路20の出力ノードは、それぞれ出力端子91および92を介して駆動コイル9に接続されている。また、誘起電圧検出回路30には、出力端子91および92のそれぞれの電圧V1およびV2が入力されている。さらに、コンパレータ40の非反転入力には、誘起電圧検出回路30の出力電圧Voutが印加され、反転入力には、基準電圧Vrefが印加され、コンパレータ回路40からは、比較結果信号CPが出力されている。そして、エッジ検出回路50には、比較結果信号CPおよびハイインピーダンス信号HZが入力され、エッジ検出回路50からは、エッジ検出信号EGが出力されている。===出力回路および誘起電圧検出回路の構成===次に、図2を参照して、出力回路20および誘起電圧検出回路30のさらに具体的な構成について説明する。図2に示されている出力回路20は、出力トランジスタM1ないしM4を含むHブリッジ回路として構成されている。なお、以下においては、一例として、出力トランジスタM1およびM2がPMOSPchannelMetalOxideSemiconductor:Pチャネル金属酸化膜半導体トランジスタであり、出力トランジスタM3およびM4がNMOSNchannelMOS:Nチャネル金属酸化膜半導体トランジスタである場合について説明する。出力トランジスタM1は、出力トランジスタM3と直列に接続され、出力トランジスタM2は、出力トランジスタM4と直列に接続されている。また、出力トランジスタM1およびM2のソースは、いずれも電源VCCに接続され、出力トランジスタM3およびM4のソースは、いずれもグランドに接続されている。さらに、出力トランジスタM1およびM4のゲートには、いずれも駆動信号S1が入力され、出力トランジスタM2およびM3のゲートには、いずれも駆動信号S2が入力されている。そして、出力トランジスタM1およびM3の接続点は、出力端子91に接続され、出力トランジスタM2およびM4の接続点は、出力端子92に接続されている。図2に示されている誘起電圧検出回路30は、抵抗R1ないしR4、およびオペアンプ演算増幅器OPを含む差動増幅回路として構成されている。抵抗R1の一端は、出力端子92に接続され、他端は、オペアンプOPの反転入力に接続されている。また、抵抗R2の一端は、出力端子91に接続され、他端は、オペアンプOPの非反転入力に接続されている。さらに、抵抗R3の一端は、オペアンプOPの反転入力に接続され、他端は、オペアンプOPの出力に接続されている。そして、抵抗R4の一端は、オペアンプOPの非反転入力に接続され、他端には、基準電圧Vrefが印加されている。===エッジ検出回路の構成===次に、図3を参照して、エッジ検出回路50のさらに具体的な構成について説明する。図3に示されているエッジ検出回路50は、遅延回路51、53、XOR回路排他的論理和回路52、およびAND回路論理積回路54を含んで構成されている。遅延回路51には、比較結果信号CPが入力されている。また、XOR回路52には、比較結果信号CPおよび遅延回路51の出力信号が入力され、XOR回路52からは、両エッジ信号EGrfが出力されている。さらに、遅延回路53には、ハイインピーダンス信号HZが入力され、遅延回路53からは、マスク信号MSが出力されている。そして、AND回路54には、両エッジ信号EGrfおよびマスク信号MSが入力され、AND回路54からは、エッジ検出信号EGが出力されている。===単相ブラシレスモータの駆動回路の動作===以下、本実施形態における単相ブラシレスモータの駆動回路の動作について説明する。メインカウンタ11は、クロック信号CLKでカウントし、1ずつ増加するメインカウント値CNTを出力する。また、メインカウンタ11は、パルス状のエッジ検出信号EGが入力される度にリセットされ、メインカウント値CNTがクリアされる。なお、実際には、メインカウンタ11のビット数は有限であるため、メインカウンタ11は、例えば、所定のカウント値例えばフルカウント値までカウントすると、リセットされるまでカウントを停止する。駆動周期記憶レジスタ12は、エッジ検出信号EGが入力される度に、クリアされる直前のメインカウント値CNTを駆動周期として記憶する。なお、後述するように、駆動周期は、駆動コイル9に駆動電流が供給される通電期間と、それに続く、駆動コイル9に駆動電流が供給されない非通電期間とからなる。そして、駆動周期記憶レジスタ12は、記憶されているメインカウント値CNT駆動周期に所定の係数a0<a<1を乗じた値を、次の駆動周期における通電期間の長さを示す通常時カウント値Tonとして出力する。ループカウンタ14は、エッジ検出信号EGが入力される度にカウントし、1ずつ増加するループカウント値LPを出力する。したがって、ループカウンタ14は、モータ駆動回路1の起動時からの駆動周期の回数、すなわち、通電期間の回数をカウントし、ループカウント値LPは、モータ駆動回路1の起動時からの駆動コイル9への通電回数を示している。また、通電時間設定レジスタ13には、1から10までのループカウント値LPごとに予め設定された通電時間を示す起動時カウント値T1ないしT10が記憶されている。選択回路15は、ループカウント値LPが1ないし10の場合には、それぞれ起動時カウント値T1ないしT10を出力し、ループカウント値LPが11以上の場合には、通常時カウント値Tonを出力する。なお、実際には、ループカウンタ14のビット数は有限であるため、ループカウンタ14は、例えば、選択回路15が通常時カウント値Tonを出力する値例えば11までカウントすると、ループカウント値LPの最下位ビット奇偶ビットLP[0]のみを変化させる。タイミング制御回路16は、メインカウント値CNTに基づいて駆動信号S1およびS2を出力し、出力回路20は、駆動信号S1およびS2に応じて、駆動コイル9に駆動電流を供給する。なお、以下においては、駆動コイル9を出力端子91から出力端子92の方向に流れる駆動電流第1の駆動電流を正電流と称し、正電流と反対方向に流れる駆動電流第2の駆動電流を負電流と称することとする。より具体的には、メインカウント値CNTがエッジ検出信号EGによってクリアされてから選択回路15の出力値に達するまでの間は、タイミング制御回路16は、駆動信号S1またはS2の何れか一方をハイレベルとする。そして、出力回路20は、駆動コイル9に正電流駆動信号S1がハイレベルの場合または負電流駆動信号S2がハイレベルの場合を供給する。一方、メインカウント値CNTが選択回路15の出力値に達してからエッジ検出信号EGによってクリアされるまでの間は、タイミング制御回路16は、駆動信号S1およびS2をいずれもローレベルとする。そして、出力回路20は、駆動コイル9に正電流および負電流をいずれも供給しない。また、タイミング制御回路16は、奇偶ビットLP[0]に応じて、通電期間にハイレベルとする駆動信号を切り替える。したがって、タイミング制御回路16は、エッジ検出信号EGによって奇偶ビットLP[0]が変化する度に、出力回路20が駆動コイル9に供給する正電流と負電流とを切り替える。このようにして、タイミング制御回路16は、通電期間および非通電期間を制御し、出力回路20は、タイミング制御回路16の制御に従って、非通電期間を挟んで駆動コイル9に正電流と負電流とを交互に供給する。なお、NOR回路17は、駆動信号S1およびS2がいずれもローレベルとなり、出力回路20の出力がハイインピーダンス状態となる非通電期間に、ハイレベルとなるハイインピーダンス信号HZを出力する。誘起電圧検出回路30は、電圧V1およびV2の差電圧V1-V2を増幅して出力することによって、非通電期間においては、駆動コイル9に発生する誘起電圧を検出する。ここで、R1=R2、R3=R4とすることによって、誘起電圧検出回路30の出力電圧Voutは、Vout=VrefR3/R1V1-V2となる。そして、コンパレータ40は、出力電圧Voutを基準電圧Vrefと比較し、Vout>Vrefの場合、すなわち、差電圧V1-V2が正の場合にハイレベルとなり、負の場合にローレベルとなる比較結果信号CPを出力する。エッジ検出回路50のXOR回路52は、比較結果信号CPとその遅延信号遅延回路51の出力信号との排他的論理和をとることによって、比較結果信号CPの立ち上がりエッジおよび立ち下がりエッジを検出し、パルス状の両エッジ信号EGrfを出力する。したがって、両エッジ信号EGrfは、差電圧V1-V2が正から負、または負から正に切り替わるゼロクロスのタイミングを示している。また、遅延回路53は、通電期間に流れる駆動電流正電流または負電流や、通電期間から非通電期間への移行時に流れる回生電流によるゼロクロスをマスクするため、ハイインピーダンス信号HZを遅延したマスク信号MSを出力する。そして、AND回路54は、両エッジ信号EGrfをマスク信号MSでマスクして、エッジ検出信号EGを出力する。このようにして、ゼロクロス検出回路誘起電圧検出回路30、コンパレータ40、およびエッジ検出回路50は、非通電期間に駆動コイル9に発生する誘起電圧のゼロクロスを検出し、パルス状のエッジ検出信号EGを出力する。===単相ブラシレスモータの駆動回路の動作の具体例===ここで、図4ないし図6を適宜参照して、本実施形態における単相ブラシレスモータの駆動回路の動作の具体例について説明する。なお、以下においては、ループカウント値LPが1から10までの間の動作モードを起動モードと称し、それ以降の動作モードを通常モードと称することとする。また、駆動コイル9には、ループカウント値LPが奇数LP[0]=1の場合に正電流が流れ、ループカウント値LPが偶数LP[0]=0の場合に負電流が流れるものとする。まず、図4を参照して、起動モードLP≦10におけるモータ駆動回路1の動作について説明する。なお、起動モードは、モータ駆動回路1の起動時から10回目の駆動周期までの動作モードであり、図4は、1回目から4回目までの駆動周期を示している。モータ駆動回路1が起動すると、メインカウンタ11はクロック信号CLKでカウントを開始し、1回目の駆動周期LP=1が開始される。そして、タイミング制御回路16は、駆動信号S1をハイレベル、駆動信号S2をローレベルとし、出力回路20から駆動コイル9への正電流の供給を開始させる。なお、当該正電流の通電期間においては、差電圧V1-V2は正となり、比較結果信号CPはハイレベルとなる。正電流の通電期間において、メインカウント値CNTが起動時カウント値T1に達するとCNT=T1、タイミング制御回路16は、駆動信号S1およびS2をいずれもローレベルとし、出力回路20から駆動コイル9への正電流および負電流のいずれの供給も停止させる。なお、当該通電期間から非通電期間への移行時には、回生電流によるゼロクロスが発生し得るが、当該ゼロクロスは、ハイインピーダンス信号HZを遅延回路53の遅延時間D1だけ遅延したマスク信号MSによってマスクされる。非通電期間において、ゼロクロス検出回路が駆動コイル9に発生する誘起電圧のゼロクロスを検出し、遅延回路51の遅延時間D2のパルス幅を有するエッジ検出信号EGを出力すると、メインカウンタ11はリセットされ、メインカウント値CNTがクリアされるCNT=0。また、ループカウント値LPがインクリメントされ、2回目の駆動周期LP=2が開始される。そして、タイミング制御回路16は、駆動信号S1をローレベル、駆動信号S2をハイレベルとし、出力回路20から駆動コイル9への負電流の供給を開始させる。なお、当該負電流の通電期間においては、差電圧V1-V2は負となり、比較結果信号CPはローレベルとなる。負電流の通電期間において、メインカウント値CNTが起動時カウント値T2に達するとCNT=T2、タイミング制御回路16は、駆動信号S1およびS2をいずれもローレベルとし、出力回路20から駆動コイル9への正電流および負電流のいずれの供給も停止させる。非通電期間において、ゼロクロス検出回路が誘起電圧のゼロクロスを検出し、エッジ検出信号EGを出力すると、メインカウンタ11はリセットされ、メインカウント値CNTがクリアされるCNT=0。また、ループカウント値LPがインクリメントされ、3回目の駆動周期LP=3が開始される。そして、タイミング制御回路16は、駆動信号S1をハイレベル、駆動信号S2をローレベルとし、出力回路20から駆動コイル9への正電流の供給を再び開始させる。このようにして、起動モードにおいては、モータ駆動回路1は、ループカウント値LPごとに予め設定された起動時カウント値T1ないしT10が示す通電時間だけ出力回路20から駆動コイル9に正電流または負電流を供給し、非通電期間に移行する。また、非通電期間に駆動コイル9に発生する誘起電圧のゼロクロスを検出すると、正電流と負電流とを切り替えて通電期間に移行する。そして、これらの動作を10回目の駆動周期LP=10まで繰り返す。ここで、起動時カウント値T1ないしT10が示す通電時間を、ループカウント値LPが示す通電回数の増加に応じて減少するように設定することによって、モータ駆動回路1は、単相ブラシレスモータを停止状態から高速回転まで滑らかに立ち上げることができる。また、一例として、図5に示すように、起動時カウント値T1ないしT10は、ループカウント値LPに略反比例するように予め設定される。起動時カウント値T1ないしT10をこのように設定することによって、モータ駆動回路1は、単相ブラシレスモータをより速やかに立ち上げることができる。次に、図6を参照して、通常モードLP≧11におけるモータ駆動回路1の動作について説明する。なお、通常モードは、11回目の駆動周期以降の動作モードであり、図6は、n-1回目からn2回目nは12以上の偶数までの駆動周期を示している。n-1回目の駆動周期LP=n-1における非通電期間において、ゼロクロス検出回路が誘起電圧のゼロクロスを検出し、エッジ検出信号EGを出力すると、メインカウンタ11はリセットされ、メインカウント値CNTがクリアされるCNT=0。また、駆動周期記憶レジスタ12は、クリアされる直前のメインカウント値CNTを記憶するとともに、当該記憶したメインカウント値CNTに係数aを乗じた通常時カウント値Tonを出力するTon=CNT×a。ここで、通常時カウント値Tonは、n回目の駆動周期LP=nにおける通電期間の長さを示し、好ましくは、n-1回目の駆動周期全体の70程度に設定されるa=0.7。さらに、ループカウント値LPがインクリメントされ、n回目の駆動周期が開始される。そして、タイミング制御回路16は、駆動信号S1をローレベル、駆動信号S2をハイレベルとし、出力回路20から駆動コイル9への負電流の供給を開始させる。n回目の駆動周期における通電期間において、メインカウント値CNTが通常時カウント値Tonに達するとCNT=Ton、タイミング制御回路16は、駆動信号S1およびS2をいずれもローレベルとし、出力回路20から駆動コイル9への正電流および負電流のいずれの供給も停止させる。非通電期間において、ゼロクロス検出回路が誘起電圧のゼロクロスを検出し、エッジ検出信号EGを出力すると、メインカウンタ11はリセットされ、メインカウント値CNTがクリアされるCNT=0。また、駆動周期記憶レジスタ12は、クリアされる直前のメインカウント値CNTを記憶するとともに、通常時カウント値Tonを出力するTon=CNT×a。さらに、ループカウント値LPがインクリメントされ、n1回目の駆動周期LP=n1が開始される。そして、タイミング制御回路16は、駆動信号S1をハイレベル、駆動信号S2をローレベルとし、出力回路20から駆動コイル9への正電流の供給を開始させる。このようにして、通常モードにおいては、モータ駆動回路1は、駆動周期記憶レジスタ12に記憶されているメインカウント値CNTに所定の係数a0<a<1を乗じた通常時カウント値Tonが示す通電時間だけ出力回路20から駆動コイル9に正電流または負電流を供給し、非通電期間に移行する。起動モードにおいて単相ブラシレスモータを立ち上げた後の通常モードでは、駆動周期の変動が小さくなっているため、直前の駆動周期全体に対して所定の割合となるように、その都度次の通電期間の長さが決定されている。また、起動モード時と同様に、非通電期間に駆動コイル9に発生する誘起電圧のゼロクロスを検出すると、正電流と負電流とを切り替えて通電期間に移行する。そして、これらの動作を駆動周期ごとに繰り返す。前述したように、モータ駆動回路1において、非通電期間を挟んで駆動コイル9に正電流と負電流とを交互に供給しつつ、単相ブラシレスモータを立ち上げた後の通常モードでは、駆動コイル9への通電期間とそれに続く非通電期間とからなる駆動周期に基づいてその都度次の通電期間の長さを決定することによって、ホール素子などの位置検出素子を用いず、単相ブラシレスモータを駆動することができる。したがって、モータ駆動用ICのチップ厚をさらに薄くして低背化したり、ICをモータの外部に実装したりすることにより、モータの小型化を図ることができる。さらに、ICをモータの内部に実装した場合であっても、ICの実装位置のばらつきがロータの回転位置の検出精度に影響を与えないため、モータの製造工程を簡略化してモータの低コスト化を図ることができるとともに、ICの出荷時における試験工数を削減してICの低コスト化を図ることができる。また、モータ駆動回路1の起動時から駆動コイル9への通電回数が所定回数に達するまでの起動モードでは、通電回数の増加に応じて減少するように通電時間を予め設定しておくことによって、単相ブラシレスモータを停止状態から高速回転まで滑らかに立ち上げることができる。さらに、通電回数に略反比例するように通電時間を予め設定しておくことによって、単相ブラシレスモータをより速やかに立ち上げることができる。また、通常モードでは、エッジ検出信号EGによってクリアされる直前のメインカウント値CNTに所定の係数a0<a<1を乗じた値を、次の駆動周期における通電期間の長さを示す通常時カウント値Tonとすることによって、メインカウント値CNTに基づいて、通常モードにおける通電期間および非通電期間を制御することができる。また、ループカウント値LPが所定値に達するまでの起動モードでは、ループカウント値LPの増加に応じて通電幅が減少するように起動時カウント値T1ないしT10を予め設定しておくことによって、メインカウント値CNTおよびループカウント値LPに基づいて、起動モードにおける通電期間および非通電期間を制御することができる。なお、上記実施形態は、本発明の理解を容易にするためのものであり、本発明を限定して解釈するためのものではない。本発明は、その趣旨を逸脱することなく、変更、改良され得るとともに、本発明にはその等価物も含まれる。上記実施形態では、ループカウント値LPが1から10までの間の動作モードを起動モードとしたが、起動モードとなるループカウント値LPの個数mは適宜変更され得る。この場合、1からmまでのループカウント値LPごとにm個の起動時カウント値T1ないしTmが予め設定され、通電時間設定レジスタ13に記憶されることとなる。