(57)【要約】【課題】多相多極モータの加速状況を高精度にチェックすることにより、当該多相多極モータの起動失敗を速やかに且つ確実に検出できるようにする。【解決手段】逆起検出器１６０は、ＳＰＭ１３の回転に応じて当該ＳＰＭ１３の各相各極のコイルに発生する逆起電力を２値化することによって、パルス列からなる逆起検出信号１６１を生成する。時間カウンタ１９１は、逆起検出信号１６１に含まれるパルス列に基づき、同一相同一極に対応するパルス間の時間間隔を計測する。ＣＰＵ１９は、ＳＰＭ１３の起動時に、時間カウンタ１９１によって計測された時間間隔を当該時間間隔に先行して時間カウンタ１９１によって計測された時間間隔と比較することにより、ＳＰＭ１３が正常に加速されない起動失敗を検出する。【選択図】      図１
2009301654.tif 000002
【特許請求の範囲】
【請求項１】
ディスクを回転させる多相多極モータを備えたディスク装置において、
前記多相多極モータの回転に応じて当該モータの各相各極のコイルに発生する逆起電力を２値化することによって、パルス列からなる逆起検出信号を生成する逆起検出器と、
前記逆起検出信号に含まれるパルス列に基づき、同一相同一極に対応するパルス間の時間間隔を計測する時間計測手段と、
前記多相多極モータの起動時に、前記時間計測手段によって計測された時間間隔を当該時間間隔に先行して前記時間計測手段によって計測された時間間隔と比較することにより、前記多相多極モータが正常に加速されない起動失敗を検出する加速状況検出手段と
を具備することを特徴とするディスク装置。
【請求項２】
前記多相多極モータの起動開始時から前記逆起検出器で前記逆起電力が検出される回数をカウントする監視ループカウンタと、
前記監視ループカウンタによってカウントされた回数が予め定められた上限回数に到達する前で且つ前記加速状況検出手段によって前記起動失敗が検出されていない状態で、前記時間計測手段によって計測された時間間隔から算出される前記多相多極モータの回転速度が予め定められた回転速度に到達する起動成功を検出する起動成功検出手段と
を更に具備することを特徴とする請求項１記載のディスク装置。
【請求項３】
前記監視ループカウンタによってカウントされた回数が予め定められた上限回数に到達した場合と、前記監視ループカウンタによってカウントされた回数が前記上限回数に到達する前でも前記加速状況検出手段によって前記起動失敗が検出された場合とに、前記多相多極モータの起動のリトライを制御する制御手段を更に具備することを特徴とする請求項２記載のディスク装置。
【請求項４】
前記監視ループカウンタが、予め定められ回数をカウントした時点から、前記逆起検出器で前記逆起電力が検出される回数をカウントする加速監視カウンタを更に具備し、
前記加速状況検出手段は、前記加速監視カウンタが前記多相多極モータの総極数の倍数に一致する回数をカウントする毎に、前記起動失敗を検出するための検出動作を行う
ことを特徴とする請求項２または３に記載のディスク装置。
【請求項５】
前記時間計測手段によって計測された時間間隔の情報を保持する第１のレジスタ手段と、
前記時間計測手段によって計測された時間間隔の情報が前記第１のレジスタ手段に新たに保持される際に、それまで当該第１のレジスタ手段に保持されていた時間間隔の情報を保持する第２のレジスタ手段とを更に具備し、
前記加速状況検出手段は、前記第１のレジスタ手段に保持されている情報の示す時間間隔を前記第２のレジスタ手段に保持されている情報の示す時間間隔と比較する
ことを特徴とする請求項１乃至４のいずれかに記載のディスク装置。
【請求項６】
前記時間計測手段は、前記同一相同一極を含む、複数の同一相同一極を対象に、同一相同一極毎に前記パルス間の時間間隔を計測し、
前記加速状況検出手段は、同一相同一極毎に、前記時間計測手段によって計測された時間間隔を当該時間間隔に先行して前記時間計測手段によって計測された時間間隔と比較する
ことを特徴とする請求項１乃至３のいずれかに記載のディスク装置。
【請求項７】
ディスクを回転させる多相多極モータを備えたディスク装置において、前記多相多極モータの起動失敗を検出するための多相多極モータ起動失敗検出方法であって、
前記多相多極モータの起動時に、当該モータの回転に応じて当該モータの各相各極のコイルに発生する逆起電力を逆起検出器が２値化することによって生成される、パルス列からなる逆起検出信号を受けて、前記逆起検出信号に含まれるパルス列に基づき、同一相同一極に対応するパルス間の時間間隔を計測する生成するステップと、
前記計測された時間を当該時間に先行して計測された時間と比較することにより、前記多相多極モータが正常に加速されない起動失敗を検出するステップと
を具備することを特徴とする多相多極モータ起動失敗検出方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、多相多極モータによってディスクが高速に回転されるディスク装置に係り、特に多相多極モータの起動失敗を高精度に検出するのに好適なディスク装置及び同装置における多相多極モータ起動失敗検出方法に関する。
【背景技術】
【０００２】
一般に、磁気ディスクドライブのようなディスク装置では、記録媒体であるディスクは高速に回転される必要がある。このディスクの回転には、相の異なる複数のコイルを備えた多相多極モータが用いられる。この多相多極モータは、スピンドルモータと呼ばれる。代表的なスピンドルモータとして、３相１２極のスピンドルモータが知られている。３相１２極のスピンドルモータの３つの相は、一般に、Ｕ相、Ｖ相及びＷ相と呼ばれる。
【０００３】
スピンドルモータは、モータドライバから電流が供給されることによって駆動される。つまりモータドライバは、スピンドルモータの相を一定順序で切り替えながら、各相のコイルに順次電流を供給する。更に具体的に述べるならば、モータドライバは、Ｕ相の１番目の極のコイル、Ｖ相の１番目の極のコイル、Ｗ相の１番目の極のコイル、Ｕ相の２番目の極のコイル、Ｖ相の２番目の極のコイル、Ｗ相の２番目の極のコイル、Ｕ相の３番目の極のコイル、…、Ｕ相の１５番目の極のコイル、Ｖ相の１５番目の極のコイル、Ｗ相の１５番目の極のコイル、Ｕ相の１番目の極のコイル…のように、電流が供給されるべきコイルを一定順序で切り替えながら、各相（各相各極）のコイルに順次電流を供給する。これによりスピンドルモータが駆動される。
【０００４】
スピンドルモータが駆動（回転）されると、各相のコイルには、当該スピンドルモータの回転速度に対応した逆起電力が発生する。モータドライバの逆起検出器は、スピンドルモータへの電流供給に応じて各相のコイルに発生する逆起電力（逆起電圧）に基づき、当該スピンドルモータの回転速度に対応する周波数のパルス列からなる逆起検出信号を生成する。３相１２極のスピンドルモータの場合、１回転につき、３６個のパルスが生成される。逆起検出信号における隣接するパルスの時間間隔、つまりパルス間時間間隔（によって示される逆起検出信号の周波数）は、スピンドルモータの回転速度を表す。
【０００５】
そこで従来のディスク装置では、当該ディスク装置の主コントローラは、モータドライバによって生成される逆起検出信号におけるパルス間時間間隔をサンプリングすることにより、スピンドルモータの回転速度を検出する。これにより主コントローラは、スピンドルモータの起動開始時から一定時間が時間が経過しても、当該スピンドルモータが予め定められた第１の回転速度まで到達しないような、スピンドルモータの起動失敗を検出することができる。この第１の回転速度は、スピンドルモータの目標回転速度である第２の回転速度よりも低い値に設定される。
【０００６】
このような、スピンドルモータの各相のコイルに発生する逆起電力に基づいて逆起検出信号を生成し、当該生成された逆起検出信号に基づいてスピンドルモータの回転速度を検出する技術は、例えば特許文献１にも記載されている。特許文献１に記載の技術では、パルス間時間間隔をカウントする代わりに、一定時間毎のパルス数がカウントされ、この一定時間毎のパルス数から、スピンドルモータの回転速度が検出される。
【特許文献１】特開平９−３０６０９３号公報
【発明の開示】
【発明が解決しようとする課題】
【０００７】
上述のように従来技術では、スピンドルモータ（多相多極モータ）の各相のコイルに発生する逆起電力に基づいて逆起検出信号が生成され、当該生成された逆起検出信号におけるパルス間時間間隔、または一定時間毎のパルス数に基づいて、スピンドルモータの回転速度が検出される。この検出された回転速度から、スピンドルモータが第１の回転速度に到達したかがチェックされる。
【０００８】
しかし、スピンドルモータが正常に回転していない場合、例えば正常に加速されていない場合、当該スピンドルモータの起動開始から長時間が経過しても第１の回転速度に到達しないおそれがある。例えば、スピンドルモータ起動のリトライ処理を開始するための１つの条件である逆起電力検出回数の上限回数に到達しても、第１の回転速度に到達しない場合があり得る。一般に、スピンドルモータの起動は、ディスク装置を利用するホスト装置からの指示により開始される。このため、逆起電力検出回数の上限回数に到達しても第１の回転速度に到達しない場合、上述のリトライ処理の途中で、またはリトライ処理が行われることなく、ホスト装置においてタイムアウトが発生するおそれがある。
【０００９】
本発明は上記事情を考慮してなされたものでその目的は、多相多極モータの加速状況を高精度にチェックすることにより、当該多相多極モータの起動失敗を速やかに且つ確実に検出できるディスク装置及び同装置における多相多極モータ起動失敗検出方法を提供することにある。
【課題を解決するための手段】
【００１０】
本発明の１つの態様によれば、ディスクを回転させる多相多極モータを備えたディスク装置が提供される。このディスク装置は、前記多相多極モータの起動時に、当該モータの回転に応じて当該モータの各相各極のコイルに発生する逆起電力を２値化することによって、パルス列からなる逆起検出信号を生成する逆起検出器と、前記逆起検出信号に含まれるパルス列に基づき、同一相同一極に対応するパルス相互の時間間隔を計測する時間計測手段と、前記時間計測手段によって計測された時間を当該時間に先行して前記時間計測手段によって計測された時間と比較することにより、前記多相多極モータが正常に加速されない起動失敗を検出する加速状況検出手段とを具備することを特徴とする。
【発明の効果】
【００１１】
本発明によれば、多相多極モータの回転に応じて当該モータの各相各極のコイルに発生する逆起電力を２値化することによって生成される逆起検出信号に含まれているパルスから、同一相同一極に対応したパルス間の時間間隔が計測され、その計測された時間間隔に基づき、当該モータの加速状況がチェックされて、当該モータが正常に加速されない起動失敗が検出される。このため、多相多極モータの回転速度を同一相同一極でない別の相でのパルス間の時間間隔に基づいてチェックする場合に比べて、当該モータの起動失敗を速やかに検出できる。しかも本発明においては、多相多極モータの同一相同一極に対応したパルス間の時間間隔に基づいて当該モータの加速状況がチェックされるため、極の違いによるトルクのばらつきの影響が取り除かれて、当該モータの起動失敗を高精度に検出できる。
【発明を実施するための最良の形態】
【００１２】
以下、本発明の実施の形態につき図面を参照して説明する。  
図１は本発明の一実施形態に係る磁気ディスクドライブの構成を示すブロック図である。磁気ディスクドライブ（以下、ＨＤＤと称する）において、ディスク（磁気ディスク）１１上には、ヘッド（磁気ヘッド）１２が配置されている。ディスク１１は、スピンドルモータ（ＳＰＭ）１３によって高速に回転される。ＳＰＭ１３は、多相多極モータ、例えば３相１２極モータである。
【００１３】
ヘッド１２は、アクチュエータ（キャリッジ）１４によって、ディスク１１の半径方向に移動可能なように支持されている。アクチュエータ１４は、当該アクチュエータ１４の駆動力を発生するボイスコイルモータ（ＶＣＭ）１５を含む。図１の構成では、単一枚のディスク１１を備えたＨＤＤを想定している。しかし、ディスク１１が複数枚積層配置されたＨＤＤであっても構わない。
【００１４】
ＳＰＭ１３及びＶＣＭ１５は、モータドライバＩＣ１６からの制御出力に応じて駆動される。このモータドライバＩＣ１６からの制御出力は電流である。モータドライバＩＣ１６は、ＩＣ化された単一チップのモータドライバ回路であり、後述するＣＰＵ１９の制御に基づきＳＰＭ１３及びＶＣＭ１５を駆動するための電流を当該ＳＰＭ１３及びＶＣＭ１５に供給する。更に具体的に述べるならば、モータドライバＩＣ１６は、ＳＰＭ１３の相を一定順序で切り替えながら、各相（各相各極）のコイルに順次電流を供給する。
【００１５】
モータドライバＩＣ１６は逆起検出器１６０を含む。逆起検出器１６０は、ＳＰＭ１３の回転に応じて当該モータの各相各極のコイルに発生する逆起電力を２値化することによって、パルス列からなる逆起検出信号１６１を生成する。
【００１６】
ヘッド１２はヘッドＩＣ１７と接続されている。ヘッドＩＣ１７は、ヘッド１２により読み出された信号（リード信号）を増幅する。ヘッドＩＣ１７は、後述するリード／ライトＩＣ１８から転送されるライトデータをライト電流に変換してヘッド１２に出力する。
【００１７】
ヘッドＩＣ１７は、リード／ライトＩＣ１８と接続されている。リード／ライトＩＣ１８は、リード／ライトに関連する信号処理を行う信号処理デバイスである。
【００１８】
モータドライバＩＣ１６及びリード／ライトＩＣ１８は、ＣＰＵ１９と接続されている。ＣＰＵ１９は、ＲＯＭのような不揮発性メモリ（図示せず）に格納されているファームプログラムを実行することにより、モータドライバＩＣ１６及びリード／ライトＩＣ１８を含むＨＤＤ内の各部を制御する主コントローラとして動作する。ＣＰＵ１９は、時間カウンタ１９１、監視ループカウンタ１９２及び加速監視カウンタ１９３を有する。ＣＰＵ１９はまた、レジスタｒ１及びｒ２を有する。これらカウンタ１９１〜１９３並びにレジスタｒ１及びｒ２とＣＰＵ１９との関係については後述する。
【００１９】
次に、図１に示すＨＤＤの動作について、ＣＰＵ（主コントローラ）１９によって実行される、ＳＰＭ１３を起動するためのＳＰＭ起動処理を例に、図２及び図３のフローチャートを参照して説明する。  
今、図１のＨＤＤを利用するホスト装置からの指示を受けて当該ＨＤＤ内のＣＰＵ１９がＳＰＭ起動処理を開始するものとする。ＣＰＵ１９は、まずモータドライバＩＣ１６を初期化する（ステップＳ１）。そしてＣＰＵ１９は、モータドライバＩＣ１６を介してソフトウェア（ＳＷ）モードによりＳＰＭ１３を起動するための動作を開始する（ステップＳ２）。ＳＷモードとは、ＳＰＭ１３の起動が開始される、ある一定期間、ＣＰＵ１９によるオープンループ制御により、当該ＳＰＭ１３の状態に無関係にモータドライバＩＣ１６を介してＳＰＭ１３を駆動するためのモードをいう。本実施形態においてＳＷモードでＳＰＭ１３の起動が開始される理由は、当該ＳＰＭ１３の回転速度があるレベルに到達するまでは、当該ＳＰＭ１３の各相各極のコイルに逆起電力が発生しないためである。なお、ＣＰＵ１９によるオープンループ制御をモータドライバＩＣ１６に行わせることも可能である。
【００２０】
ＣＰＵ１９は、ＳＷモードでＳＰＭ１３の起動を開始してから一定期間が経過すると、当該ＳＷモードからハードウェア（ＨＷ）モードに切り換える（ステップＳ３）。ここでは、上記一定期間として、ＳＰＭ１３の回転速度が数百ｒｐｍ（例えば２００〜３００ｒｐｍ）に到達するのに必要な期間が設定されている。ＨＷモードでは、ＳＰＭ１３の各相各極のコイルに発生する逆起電力に基づき、当該ＳＰＭ１３が目標回転速度で回転されるように、モータドライバＩＣ１６によって当該ＳＰＭ１３が制御される。
【００２１】
本実施形態においてＳＰＭ１３は、３相１２極モータであり、総極数は３６である。３相がＵ相、Ｖ相、Ｗ相であるものとすると、モータドライバＩＣ１６は、Ｕ相の１番目の極のコイル、Ｖ相の１番目の極のコイル、Ｗ相の１番目の極のコイル、Ｕ相の２番目の極のコイル、Ｖ相の２番目の極のコイル、Ｗ相の２番目の極のコイル、Ｕ相の３番目の極のコイル、…、Ｕ相の１５番目の極のコイル、Ｖ相の１５番目の極のコイル、Ｗ相の１５番目の極のコイル、Ｕ相の１番目の極のコイル…のように、電流が供給されるべきコイルを一定順序で切り替えながら、各相各極のコイルに順次電流を供給する。
【００２２】
モータドライバＩＣ１６内の逆起検出器１６０は、ＳＰＭ１３の回転に応じて当該モータの各相各極のコイルに発生する逆起電力を２値化することによって、パルス列からなる逆起検出信号１６１を生成する。３相１２極のＳＰＭ１３の場合、つまり総極数が３６のＳＰＭ１３の場合、当該ＳＰＭ１３の１回転につき、３６個の極に対応（同期）した３６個のパルスが生成される。逆起検出信号１６１に含まれているパルス列のうち、互いに隣接するパルス間の時間間隔（パルス間時間間隔）は、ＳＰＭ１３の回転速度が高速になるほど短くなる。つまり、パルス間時間間隔は、ＳＰＭ１３の回転速度を表す。
【００２３】
ＣＰＵ１９は上記ステップＳ３の後、監視ループカウンタ１９２を初期化（カウント値＝０に初期化）する（ステップＳ４）。次にＣＰＵ１９は、レジスタｒ１及びｒ２を初期化する（ステップＳ５）。レジスタｒ１及びｒ２は、時間カウンタ１９１のカウント値を保持するのに用いられる。時間カウンタ１９１は、例えばＨＷモードの期間、逆起検出信号１６１に含まれているパルス列のうち、隣接するパルスの時間間隔（パルス間時間間隔）を、所定の周期のクロック信号に同期してカウントする。
【００２４】
時間カウンタ１９１のカウント値は、ＳＰＭ１３の回転速度を表す回転速度情報である。したがって、時間カウンタ１９１のカウント値（の示す回転速度）をチェックすることにより、従来技術においてパルス間時間間隔（の示す回転速度）をチェックするのと同様にて、ＳＰＭ１３の起動状況、例えばＳＰＭ１３が第１の回転速度に到達しているかをチェックすることができる。
【００２５】
また本実施形態では、ＳＰＭ１３の加速状況がチェックされる。この加速状況のチェックには、時間カウンタ１９１のカウント値のうち、同一相同一極（及び同一相同一極に隣接する極）に対応するパルス（隣接パルス）間の時間間隔（パルス間時間間隔）のカウント値のみが用いられる。つまり本実施形態では、逆起検出信号１６１に基づいて時間カウンタ１９１によってカウントされる全てのパルス間時間間隔ではなくて、同一相同一極に対応するパルス間時間間隔（以下、同一極時間間隔と称する）のみを用いて、ＳＰＭ１３の加速状況がチェックされる。
【００２６】
以下、ＳＰＭ１３の加速状況を、同一極時間間隔に基づいてチェックする理由について説明する。  
図４は、ＨＷモードにおける時間経過（チェック回数）とパルス間時間間隔のカウント値との関係の一例を示す。この図４からは、ＳＰＭ１３の起動開始時から急速にカウント値が低減すること、つまりＳＰＭ１３の回転速度が急速に上昇することが分かる。その後、カウント値は、徐々に、ある一定値に近づく。従来技術では、このカウント値をチェックすることで、例えばＳＰＭ１３が回転しているかをチェックすることができる。しかし、［発明が解決しようとする課題］の欄でも述べたように、ＳＰＭ１３が正常に回転していない場合、例えば正常に加速されていない場合、当該ＳＰＭ１３の起動開始から長時間が経過しても、目標回転速度である第２の回転速度よりも低い値の第１の回転速度に到達しないおそれがある。
【００２７】
そこで、ＳＰＭ１３の加速状況、つまりＳＰＭ１３が正常に加速しているかを、パルス間時間間隔のカウント値（の示す回転速度）に基づいてチェックすることが考えられる。しかし、パルス間時間間隔のカウント値（の示す回転速度）を監視するだけでは、図４に示されているような状況において、特にＳＰＭ１３が急速に上昇した後の加速状況は正確に検出するのは難しい。このような加速状況を検出するには、現在のサンプル間のパルス間時間間隔の、先行するサンプル間のパルス間時間間隔に対する差分（前サンプルとのパルス間時間間隔の差分）をチェックすれば良い。
【００２８】
図５は、図４のパルス間時間間隔の場合における、時間経過（チェック回数）と、上述の前サンプルとのパルス間時間間隔の差分との関係の一例を示す。図４の例では、パルス間時間間隔（の示す回転速度）は時間経過と共に単調に減少していることから、ＳＰＭ１３はスムーズに加速しているように見える。ところが図５に示される前サンプルとのパルス間時間間隔の差分は、時間経過に応じて増減を繰り返している。この図５のような状況では、ＳＰＭ１３がスムーズに加速していると判定することは不可能である。本発明者は、上述の増減の要因が、ＳＰＭ１３の各極のトルクのばらつきにあることを認識するに至った。
【００２９】
そこで本実施形態では、ＳＰＭ１３の加速状況を、時間カウンタ１９１によってカウントされる全てのパルス間時間間隔ではなくて、同一極時間間隔（同一相同一極に対応するパルス間の時間間隔）に基づいてチェックすることで、ＳＰＭ１３の各極のトルクのばらつきによる影響を回避している。
【００３０】
再び図２及び図３のフローチャートを参照する。ＣＰＵ１９はレジスタｒ１及びｒ２を初期化すると（ステップＳ５）、監視ループカウンタ１９２のカウント値が予め定められた値、例えば「１２」であるかを判定する（ステップＳ６）。もし、監視ループカウンタ１９２のカウント値が「１２」でないならば（ステップＳ６がＮＯ）、ＣＰＵ１９は後述するステップＳ７をスキップしてステップＳ８に進む。
【００３１】
ステップＳ８において、ＣＰＵ１９は、時間カウンタ１９１のカウント値から逆起検出器１６０によって逆起電力が検出されているか（つまりＳＰＭ１３のコイルに逆起電力が発生しているか）を判定する。例えば、時間カウンタ１９１のカウント値が０のままであるために、つまり逆起検出信号１６１にパルスが含まれていないために、逆起電力が未検出であると判定されたならば（ステップＳ８がＮＯ）、ＣＰＵ１９はＳＰＭ１３が回転していない（起動失敗）として、ＳＰＭ起動処理のリトライのためにステップＳ２に戻る。
【００３２】
これに対して、逆起電力が検出されたならば（ステップＳ８がＹＥＳ）、ＣＰＵ１９は監視ループカウンタ１９２のカウント値がＳＰＭ起動処理をリトライするための１つの条件である逆起電力検出回数（ステップＳ６から始まる監視ループ）の上限回数、例えば３５００回に達しているかかを判定する（ステップＳ９）。即ちＣＰＵ１９は、監視ループの実行回数（逆起電力検出回数）が３５００回に達したかを判定する。
【００３３】
もし、監視ループの実行回数が３５００回に達したならば（ステップＳ９がＹＥＳ）、ＣＰＵ１９は、３５００回の監視ループを実行しても、ＳＰＭ１３が第１の回転速度、例えば３０００ｒｐｍにも到達しない起動失敗であるとして、ＳＰＭ起動処理のリトライのためにステップＳ２に戻る。これに対し、監視ループの実行回数が３５００回に達していないならば（ステップＳ９がＮＯ）、監視ループカウンタ１９２を１だけカウントアップする（ステップＳ１０）。監視ループカウンタ１９２のカウント値は、監視ループの実行回数、つまり逆起電力検出回数だけでなく、逆起検出信号１６１に含まれているパルスの数（ＳＰＭ１３の各相各極に同期したパルスの数）をも表す。
【００３４】
ＣＰＵ１９は、ステップＳ１０を実行すると、ＣＰＵ１９は監視ループカウンタ１９２のカウント値が「１２」を超えているかを判定する（ステップＳ１１）。もし、監視ループカウンタ１９２のカウント値が「１２」を超えていないならば（ステップＳ１１がＮＯ）、ＣＰＵ１９は後述するステップＳ１２乃至Ｓ１５をスキップしてステップＳ１６に進む。ステップＳ１６においてＣＰＵ１９は起動成功検出手段として機能して、時間カウンタ１９１のカウント値からＳＰＭ１３の回転速度が第１の回転速度、例えば３０００ｒｐｍに到達したかを判定する。
【００３５】
もし、ＳＰＭ１３の回転速度が３０００ｒｐｍに到達しているならば（ステップＳ１６のＹＥＳ）、ＣＰＵ１９は監視ループを抜けて、引き続きＨＷモードでモータドライバＩＣ１６によりＳＰＭ１３を第２の回転速度（目標回転速度）まで加速させる。これに対し、ＳＰＭ１３の回転速度が３０００ｒｐｍに到達していないならば（ステップＳ１６のＮＯ）、ＣＰＵ１９は監視ループを再度実行するためにステップＳ６に戻る。
【００３６】
その後、監視ループが１２回繰り返された結果、つまり逆起検出信号１６１に基づいて１２個のパルスが検出（逆起電力が１２回検出）された結果、ステップＳ１０で監視ループカウンタ１９２のカウント値が「１１」から「１２」にカウントアップされたものとする（ステップＳ６がＹＥＳ）。この場合、ＣＰＵ１９は、１３回目の監視ループにおけるステップＳ６で、監視ループカウンタ１９２のカウント値が「１２」であると判定する。
【００３７】
するとＣＰＵ１９は、加速監視カウンタ１９３を初期化（カウント値＝０に初期化）する（ステップＳ７）。このステップＳ７において、ＣＰＵ１９は、時間カウンタ１９１のカウント値を、ＨＷモードにおけるモータドライバＩＣ１６によるＳＰＭ１３の１２回目の相切り換えが行われた極に対応するパルス間の時間間隔の情報として、レジスタｒ１に保存する。このパルス間の時間間隔の情報は、１２回目の相切り換えが行われた極及び後続する極（１３回目の相切り換えが行われた極）に対応するパルス間の時間間隔を示しており、現在のＳＰＭ１３の回転速度を表す。
【００３８】
ＣＰＵ１９は、ステップＳ８を実行するとステップＳ９に進む。そしてＣＰＵ１９が、ステップＳ９及びＳ１０を実行した後、ステップＳ１１に進んだものとする。このとき監視ループカウンタ１９２のカウント値は、直前のステップＳ１０で「１２」から「１３」にカウントアップされている。このため、ステップＳ１１においてＣＰＵ１９は、監視ループカウンタ１９２のカウント値が「１２」を超えていると判定する。
【００３９】
するとＣＰＵ１９は、加速監視カウンタ１９３のカウント値がＳＰＭ１３の総極数である３６の倍数であるかを判定する（ステップＳ１２）。即ちＣＰＵ１９は、現在起電力が検出されている極（相切り換えが行われている極）が、ＨＷモードの開始時から１２回目の相切り替えが行われた極と同一であるかを判定する。
【００４０】
この例のように、加速監視カウンタ１９３のカウント値が３６の倍数でないならば（ステップＳ１２がＮＯ）、ＣＰＵ１９はステップＳ１３及びＳ１４をスキップしてステップＳ１５に進む。このステップＳ１５において、ＣＰＵ１９は、加速監視カウンタ１９３をカウントアップする。そしてＣＰＵ１９はステップＳ１６に進む。
【００４１】
やがて、加速監視カウンタ１９３のカウント値が「３６」の倍数となったものとする。この場合、ステップＳ１２の判定はＹＥＳとなる。するとＣＰＵ１９は、その時点においてレジスタｒ１に保存されているカウント値（現在よりも３６回前に相切り換えが行われた極に対応するパルス間の時間間隔）をレジスタｒ２に移動すると共に、当該レジスタｒ１に現在の時間カウンタ１９１のカウント値（つまり、３６回前に相切り換えが行われた極と同一の、今回相切り換えが行われた極に対応するパルス間の時間間隔）を保存する（ステップＳ１３）。
【００４２】
次にＣＰＵ１９は加速状況検出手段として機能して、レジスタｒ１の内容（ｒ１）及びレジスタｒ２の内容（ｒ２）を比較し、ｒ２がｒ１よりも小さいかを判定することにより、ＳＰＭ１３の加速状況を判定（検出）する（ステップＳ１４）。ここで、ｒ２及びｒ１は、ＳＰＭ１３が１回転する前後における、同一の極（同一相同一極）に対応するパルス間の時間間隔を示す。このため、ステップＳ１４の比較判定の結果が、比較対象となる極が異なることによるトルクのばらつきの影響を受けるのを防止できる。
【００４３】
もし、ｒ２がｒ１よりも小さいならば（ステップＳ１４がＹＥＳ）、ＣＰＵ１９はＳＰＭ１３が正常に加速されていると判定する。この場合、ＣＰＵ１９は加速監視カウンタ１９３をカウントアップする（ステップＳ１５）。なお、誤差Δを考慮して、ｒ２がｒ１＋Δよりも小さいかを判定するようにしても構わない。
【００４４】
これに対し、ｒ２がｒ１よりも小さくないならば（ステップＳ１４がＮＯ）、ＣＰＵ１９はＳＰＭ１３が正常に加速されておらず、当該ＳＰＭ１３の起動に失敗したと判定する。この場合、ＣＰＵ１９は、ＳＰＭ起動処理のリトライのためにステップＳ２に戻る。このように本実施形態においては、ＳＰＭ１３の加速状況をチェックして、当該ＳＰＭ１３が正常に加速されていない場合には、直ちにＳＰＭ起動処理のリトライが行われる。これに対して従来技術では、逆起電力が検出されている限りは、監視ループを上限回数（３５００回）繰り返しても、ＳＰＭ１３の回転速度が第１の回転速度（３０００ｒｐｍ）に到達しないことを確認するまでは、リトライが行われない。即ち本実施形態においては、ＳＰＭ１３が正常に加速されていないような異常な状況を検出することにより、例えばホスト装置でタイムアウトが発生する前に、速やかにＳＰＭ起動処理のリトライを行うことができる。
【００４５】
図６は、ステップＳ１６でのＳＰＭ１３の加速状況の判定に用いられる相切り換えのタイミングを説明するための図である。  
図６において、１から始まる連続する数値の配列は、監視ループカウンタ１９２のカウント値、つまり相切り換えの回数（逆起電力検出回数）の変化を示す。また、図６においてハッチングが施されている数値は、加速状況の判定に用いられる相切り換えのタイミングを示す。ここでは、１２回目の相切り換えを基準に、４８回目、８４回目…タイミングのように、３６回の相切り換え毎に、ＳＰＭ１３の加速状況が判定される。つまり、１２回目の相切り換えのタイミングで取得されるパルス間時間間隔Ｔ12と比較されるのは、それよりも３６回後の相切り換えのタイミングである４８回目の相切り換えのタイミングで取得されるパルス間時間間隔Ｔ48である。このパルス間時間間隔Ｔ48と比較されるのは、それよりも３６回後の相切り換えのタイミングである８４回目の相切り換えのタイミングで取得されるパルス間時間間隔Ｔ84である。ＳＰＭ１３が３相１２極の多相多極モータである本実施形態では、加速状況の判定に用いられる相切り換えのタイミングに対応するＳＰＭ１３の極は、常に同一極（同一相同一極）である。このため、加速状況を、極毎のトルクのばらつきの影響を受けることなく高精度に判定できる。なお、１２回目の相切り換えを基準とするのは一例であり、１２回目以外の相切り換えを基準としても構わない。
【００４６】
［変形例］
次に上記実施形態の変形例について説明する。  
上記実施形態では、ＳＰＭ１３の加速状況のチェックが、当該ＳＰＭ１３の１回転当たり１回行われる。本変形例の特徴は、このチェックの回数を、ＳＰＭ１３の１回転当たり複数回、例えば３回に増やして、より速やかにＳＰＭ１３の加速状況の異常を検出するようにしたことにある。
【００４７】
図７は、本変形例におけるＳＰＭ１３の加速状況の判定に用いられる相切り換えのタイミングを説明するための図である。  
図７からに明らかなように、本変形例では、まず上記実施形態と同様に、１２回目の相切り換えを基準に、４８回目、８４回目…タイミングのように、３６回の相切り換え毎に、ＳＰＭ１３の加速状況が判定される。
【００４８】
本変形例ではまた、１２回目の相切り換えのタイミングから１２回後の相切り換えのタイミングである２４回目の相切り換えを基準に、６０回目、９６回目…のタイミングのように、３６回の相切り換え毎に、ＳＰＭ１３の加速状況が判定される。
【００４９】
本変形例では更に、２４回目の相切り換えのタイミングから１２回後の相切り換えのタイミングである３６回目の相切り換えを基準に、７２回目、１０８回目…のタイミングのように、３６回の相切り換え毎に、ＳＰＭ１３の加速状況が判定される。
【００５０】
なお、レジスタｒ１及びｒ２の対を３６個用意して、ＳＰＭ１３の全ての極について、３６回目の相切り換えのタイミングで、それぞれ毎にＳＰＭ１３の加速状況が判定される構成とすることも可能である。また、ＳＰＭ１３の総極数も３６に限らない。
【００５１】
また、本発明は、上記実施形態またはその変形例そのままに限定されるものではなく、実施段階ではその要旨を逸脱しない範囲で構成要素を変形して具体化できる。例えば、上記実施形態では、ディスク装置が磁気ディスクドライブであるものとしたが、本発明は光磁気ディスクドライブ、光ディスクドライブなど、磁気ディスクドライブ以外のディスク装置にも同様に適用可能である。
【００５２】
また、上記実施形態またはその変形例に開示されている複数の構成要素の適宜な組み合わせにより種々の発明を形成できる。例えば、実施形態またはその変形例に示される全構成要素から幾つかの構成要素を削除してもよい。
【図面の簡単な説明】
【００５３】
【図１】本発明の一実施形態に係る磁気ディスクドライブの構成を示すブロック図。
【図２】同実施形態におけるＳＰＭ起動処理を説明するためのフローチャートの一部を示す図。
【図３】同実施形態におけるＳＰＭ起動処理を説明するためのフローチャートの残りを示す図。
【図４】ＨＷモードにおける時間経過とパルス間時間間隔のカウント値との関係の一例を示す図。
【図５】図４のパルス間時間間隔の場合における、時間経過と、パルス間時間間隔の差分との関係の一例を示す
【図６】同実施形態におけるＳＰＭの加速状況の判定に用いられる相切り換えのタイミングを説明するための図。
【図７】同実施形態の変形例におけるＳＰＭの加速状況の判定に用いられる相切り換えのタイミングを説明するための図。
【符号の説明】
【００５４】
１１…ディスク、１３…ＳＰＭ（スピンドルモータ、多相多極モータ）、１６…モータドライバＩＣ、１９…ＣＰＵ、１６０…逆起検出器、１６１…逆起検出信号、１９１…時間カウンタ、１９２…監視ループカウンタ、１９３…加速監視カウンタ、ｒ１…レジスタ（第１のレジスタ）、ｒ２…レジスタ（第２のレジスタ）
【図１】
2009301654.tif 000003
【図２】
2009301654.tif 000004
【図３】
2009301654.tif 000005
【図４】
2009301654.tif 000006
【図５】
2009301654.tif 000007
【図６】
2009301654.tif 000008
【図７】
2009301654.tif 000009