"PWM信号に基づいてモータを駆動する駆動回路に対し、前記PWM信号を出力するPWM信号出力回路であって、前記モータの回転速度に応じた周期を有するとともに論理レベルが交互に変化する速度信号に基づいて、前記速度信号が一方の論理レベル及び他方の論理レベルとなる夫々の期間を検出する検出部と、前記検出部で検出された第1の期間より後の前記速度信号が一方の論理レベルまたは他方の論理レベルとなる第2の期間において、前記第1の期間内で前記モータのモータコイルに流れる電流を増加させた後に減少させるための前記PWM信号を、前記速度信号の論理レベルが変化すると生成する第1生成部と、前記第2の期間において前記速度信号の論理レベルが変化してから前記速度信号の論理レベルが次に変化するまでに前記第1の期間が経過すると、前記第1の期間が経過してから前記速度信号の論理レベルが変化するまで所定のデューティ比の前記PWM信号を生成する第2生成部と、を備えることを特徴とするPWM信号出力回路。請求項1に記載のPWM信号出力回路であって、前記第1生成部は、前記検出部で検出された前記速度信号が前記一方の論理レベルとなる第3の期間より後の、前記速度信号が前記一方の論理レベルとなる期間において、前記第3の期間内で前記モータコイルに流れる電流を増加させた後に減少させるための前記PWM信号を、前記速度信号の論理レベルが前記一方の論理レベルとなると生成し、前記検出部で検出された前記速度信号が前記他方の論理レベルとなる第4の期間より後の、前記速度信号が前記他方の論理レベルとなる期間において、前記第4の期間内で前記モータコイルに流れる電流を増加させた後に減少させるための前記PWM信号を、前記速度信号の論理レベルが前記他方の論理レベルとなると生成すること、を特徴とするPWM信号出力回路。請求項1に記載のPWM信号出力回路であって、前記速度信号の前記一方の論理レベルの期間と、前記速度信号の前記他方の論理レベルの期間とが等しくなるよう、前記速度信号を補正する補正部を更に備え、前記検出部は、前記補正部で補正された前記速度信号が前記一方の論理レベル及び前記他方の論理レベルとなる夫々の期間を検出すること、を特徴とするPWM信号出力回路。請求項3に記載のPWM信号出力回路であって、前記補正部は、前記速度信号が前記一方の論理レベル及び前記他方の論理レベルとなる夫々の期間をカウントするカウンタと、前記速度信号が前記一方の論理レベルとなる期間の第1のカウント値と、前記速度信号が前記他方の論理レベルとなる期間の第2のカウント値との差の半分の値を算出する算出部と、前記速度信号が前記一方の論理レベルとなると、前記第1のカウント値及び前記半分の値で定まる期間だけ前記一方の論理レベルの信号を補正された前記速度信号として出力し、その後、前記第2のカウント値及び前記半分の値で定まる期間だけ前記他方の論理レベルとなる信号を補正された前記速度信号として出力する信号出力部と、を含むことを特徴とするPWM信号出力回路。請求項1~請求項4の何れか一項に記載のPWM信号出力回路であって、前記第2生成部は、前記第1の期間が経過してから前記速度信号の論理レベルが変化するまで、前記モータコイルに流れる電流がゼロとなるようなデューティ比の前記PWM信号を生成すること、を特徴とするPWM信号出力回路。ソフトスイッチングを行うモータ駆動回路には、FGFrequencyGenerator信号がハイレベル及びローレベルとなる夫々の期間、つまりFG信号のほぼ半分の周期を検出し、検出した期間においてソフトスイッチングを実行するものがある。このようなモータ駆動回路は、FG信号の論理レベルが変化する度に、検出した期間においてモータコイルに流れる電流が増加した後に減少するようモータを駆動する。ところで、モータの回転速度が一定の場合であっても、一般にはFG信号の周期はばらつくため、モータ駆動回路がモータコイルの電流を増加させた後に減少させる期間と、実際のFG信号の半周期の期間とが異なることがある。したがって、相切り替えの際にモータコイルの電流が十分小さくなるように、検出した期間においてモータコイルに流れる電流が増加した後に減少するようモータを駆動しても、結果的に相切り替えの際にモータコイルの電流が小さくならず、モータが安定に回転しないことがある。本発明は上記課題を鑑みてなされたものであり、モータ駆動回路にソフトスイッチングを実行させつつモータを安定に回転させることができるPWM信号出力回路を提供することを目的とする。上記目的を達成するため、本発明の一つの側面に係る、PWM信号に基づいてモータを駆動する駆動回路に対し、前記PWM信号を出力するPWM信号出力回路であって、前記モータの回転速度に応じた周期を有するとともに論理レベルが交互に変化する速度信号に基づいて、前記速度信号が一方の論理レベル及び他方の論理レベルとなる夫々の期間を検出する検出部と、前記検出部で検出された第1の期間より後の前記速度信号が一方の論理レベルまたは他方の論理レベルとなる第2の期間において、前記第1の期間内で前記モータのモータコイルに流れる電流を増加させた後に減少させるための前記PWM信号を、前記速度信号の論理レベルが変化すると生成する第1生成部と、前記第2の期間において前記速度信号の論理レベルが変化してから前記速度信号の論理レベルが次に変化するまでに前記第1の期間が経過すると、前記第1の期間が経過してから前記速度信号の論理レベルが変化するまで所定のデューティ比の前記PWM信号を生成する第2生成部と、を備える。モータ駆動回路にソフトスイッチングを実行させつつモータを安定に回転させることができるPWM信号出力回路を提供することができる。本明細書および添付図面の記載により、少なくとも以下の事項が明らかとなる。図1は、本発明の一実施形態であるモータ駆動IC10の構成を示す図である。モータ駆動IC10は、モータ11の回転速度が、マイコン不図示から出力されるPWMPulseWidthModulation信号INのデューティ比に応じた回転速度となるよう、モータ11を駆動する回路である。モータ駆動IC10は、コンパレータ20、デューティ検出回路21、PWM信号生成回路22、セレクタSEL23、駆動信号出力回路24、Hブリッジ回路25、及び端子A,B,PIN,CIN,OUT1,OUT2を含んで構成される。モータ11は、例えば、冷却用のファンを回転させるための単相のファンモータである。ホール素子12は、モータ11におけるロータ不図示の回転位置に応じたホール信号VH1,VH2を端子A,Bに出力する。コンパレータ20は、ホール信号VH1,VH2のレベルを比較し、モータ11の回転速度に応じて周期が変化するFG信号を生成する。FG信号速度信号は、ホール信号VH1のレベルがホール信号VH2のレベルより高くなるとローレベル以下、Lレベルとなり、ホール信号VH1のレベルがホール信号VH2のレベルより低くなるとハイレベル以下、Hレベルとなる。デューティ検出回路21は、端子PINを介してマイコン不図示から入力されるPWM信号INのHレベルのデューティ比以下、単にデューティ比と称するが100であるか否かを検出する。具体的には、デューティ検出回路21は、PWM信号INの立ち上がりエッジを所定期間検出しないと、PWM信号INのデューティ比が100であることを検出する。PWM信号生成回路22は、例えば、デューティ比が99である所定周期のPWM信号を生成する。セレクタ23は、PWM信号INのデューティ比が100であることが検出されると、B入力に入力される信号を出力し、PWM信号INのデューティ比が100でないことが検出されると、A入力に入力されるPWM信号INを出力する。したがって、セレクタ23からは、常にデューティ比が99以下のPWM信号S1が出力されることになる。なお、セレクタ23等の回路は、デューティ比が100のPWM信号により駆動信号出力回路24が誤動作することを防ぐための回路である。駆動信号出力回路24は、端子CINを介して入力される所定周期のクロック信号CLK1、FG信号、及びPWM信号S1に基づいて、Hブリッジ回路25を制御するための駆動信号Vdr1~Vdr4を出力する。Hブリッジ回路25駆動回路は、PMOSトランジスタ40,41、NMOSトランジスタ42,43を含んで構成される。PMOSトランジスタ40及びNMOSトランジスタ42の接続点は、端子OUT1に接続され、PMOSトランジスタ41及びNMOSトランジスタ43の接続点は、端子OUT2に接続される。そして、Hブリッジ回路25の各トランジスタがオン、オフされると、モータ11のモータコイルLに流れる駆動電流Idrは、端子OUT1から端子OUT2、または端子OUT2から端子OUT1へと流れる。==駆動信号出力回路24a第1の実施形態について==図2は、駆動信号生成回路24の第1の実施形態の構成を示す図である。駆動信号生成回路24aPWM信号出力回路は、FG信号の論理レベルが変化してからFG信号の論理レベルが次に変化するまでの間に、駆動電流Idrを増加させた後に減少させるための駆動信号Vdr1~Vdr4を生成する回路である。駆動信号生成回路24aは、分周回路50、FGカウンタ51、モード信号出力回路52、PWM信号生成回路53、及びHブリッジ制御回路54を含んで構成される。分周回路50は、クロック信号CLK1を例えば128分周したクロック信号CLK2を生成する。FGカウンタ51検出部は、FG信号がHレベル及びLレベルとなる夫々の期間TA、つまり、FG信号がほぼ半周期となる期間を検出する。モード信号出力回路52は、FGカウンタ51で検出された期間TAを3つの期間T1~T3に分割し、夫々の期間を示すモード信号MODE1~MODE3を出力する。なお、期間T1は、駆動電流Idrを段階的に増加させる期間であり、期間T2は、駆動電流Idrを一定とする期間であり、期間T3は、駆動電流Idrを段階的に減少させる期間である。PWM信号生成回路53第1及び第2生成部は、入力されるPWM信号S1のデューティ比に応じたデューティ比を有し、所定周期のPWM信号S2を生成する。具体的には、PWM信号生成回路53は、デューティ比が、期間T1において段階的に増加し、期間T2においてPWM信号S1のデューティ比となり、期間T3において段階的に減少するようなPWM信号S2を生成する。つまり、PWM信号生成回路53は、期間TAにおいて、駆動電流Idrが増加した後に減少するようなPWM信号S2を出力する。そして、PWM信号生成回路53は、期間TAが経過すると、例えばデューティ比0のPWM信号S2を出力する。Hブリッジ制御回路54は、PWM信号S2、FG信号に基づいて駆動信号Vdr1~Vdr4を生成し、Hブリッジ回路25を制御する。<<FGカウンタ51の詳細>>FGカウンタ51は、例えば、図3に示すように、エッジパルス生成回路100、アップカウンタ101、レジスタ102,104、転送回路103を含んで構成される。エッジパルス生成回路100は、FG信号の立ち上がりエッジ、及び立下りエッジを検出し、エッジパルスVe1を生成する。さらに、エッジパルス生成回路100は、エッジパルスVe1を遅延させたエッジパルスVe2と、エッジパルスVe2を遅延させたエッジパルスVe3とを生成する。なお、エッジパルスVe2,Ve3の遅延時間は、クロック信号CLK2の周期より十分短くなるよう設計されている。アップカウンタ101は、クロック信号CLK2に基づいてアップカウントし、エッジパルスVe2が入力されると、カウント値fg_cntをレジスタ102に格納する。また、アップカウンタ101のカウント値fg_cntは、エッジパルスVe3が入力されるとリセットされる。レジスタ102は、エッジパルスVe2がカウンタ101に入力された際のカウンタ101のカウント値fg_reg1を記憶する。転送回路103は、エッジパルスVe1が入力されると、レジスタ102に格納されたカウント値fg_reg1を取得し、レジスタ104に格納する。レジスタ104は、レジスタ102から転送されたカウント値を、カウント値fg_reg0として記憶する。図4は、FGカウンタ51の動作を説明するための図である。ここでは、例えば、時刻t0から時刻t1までの間に、アップカウンタ101のカウント値fg_cntは、54まで変化することとする。そして、時刻t0となると、レジスタ102に格納されるカウント値fg_reg1は50となることとする。時刻t1にFG信号がLレベルとなると、まず、カウント値fg_reg1である50は転送されて、レジスタ104のカウント値fg_reg0は50となる。そして、レジスタ102のカウント値fg_reg1は54に更新され、アップカウンタ101のカウント値fg_cntはリセットされる。つまり、時刻t1にFG信号がLレベルとなると、時刻t1にFG信号がLレベルとなる前に、FG信号がLレベルの際の期間を示すカウント値fg_reg050が出力されることになる。同様に、時刻t2にFG信号がHレベルとなると、時刻t2にFG信号がHレベルとなる前に、FG信号がHレベルの際の期間時刻t0~t1を示すカウント値fg_reg054が出力されることになる。<<モード信号出力回路52の詳細>>モード信号出力回路52は、例えば、図5に示すように、期間TAを3つの期間T1~T3に分割し、夫々の期間を示すモード信号MODE1~MODE3を出力する。モード信号出力回路52は、図6に示すように、開始値算出回路110、レジスタ111、及びモード信号生成回路112を含んで構成される。開始値算出回路110は、期間TAを示すカウント値fg_reg0から、期間T2、期間T3の夫々が開始される際のカウント値を算出する。具体的には、例えば、期間T1、期間T2、期間T3の比率が1:1:2となるように期間TAを分割する場合、期間T2の開始を示すカウント値CNT1は、1/4×fg_reg0となり、期間T3の開始を示すカウント値CNT2は、1/2×fg_reg0となる。したがって、開始値算出回路110は、例えば、カウント値fg_reg0を1ビット右シフトしてカウント値CNT2を算出し、カウント値fg_reg0を2ビット右シフトしてカウント値CNT1を算出する。また、開始値算出回路110は、モード信号MODE1が出力されている際、つまり期間T1の間には、期間T2の開始を示すカウント値CNT1をレジスタ111に格納する。さらに、開始値算出回路110は、モード信号MODE2が出力されている際には、カウント値CNT2をレジスタ111に格納し、モード信号MODE3が出力されている際には、カウント値fg_reg0をレジスタ111に格納する。なお、レジスタ111のカウント値md_regは、カウント値が格納される度に更新される。モード信号生成回路112は、FG信号のカウント値fg_cntと、カウント値md_regとを比較し、比較結果に応じたモード信号を出力する。また、モード信号生成回路112は、エッジ信号Ve1が入力されると、つまり、カウント値fg_cntがゼロとなると、モード信号MODE1を生成する。そして、カウント値fg_cntがインクリメントされて、カウント値CNT1となると、モード信号生成回路112は、モード信号MODE2を生成する。さらに、カウント値fg_cntがインクリメントされて、カウント値CNT2となると、モード信号生成回路112は、モード信号MODE3を生成する。図7は、モード信号出力回路52の動作を説明するための図である。なお、ここでは、カウント値fg_reg0を例えば16として説明する。このため、期間T2が開始する際のカウント値CNT1は、41/4×fg_reg0となり、期間T3が開始する際のカウント値CNT2は、81/2×fg_reg0となる。まず、エッジパルスVe1が出力されると、モード信号MODE1が生成され、カウント値md_regとして4が設定される。したがって、カウント値fg_cntが4となるまでは、期間T1を示すモード信号MODE1が出力される。つぎに、カウント値fg_cntが4となると、モード信号はMODE2に変化するとともに、カウント値md_regは8に変更される。したがって、カウント値fg_cntが8となるまでは、期間T2を示すモード信号MODE2が生成される。そして、カウント値fg_cntが8となると、期間T3を示すモード信号MODE3が生成される。このように、モード信号出力回路52は、期間TAを3つの期間T1~T3に分割し、夫々の期間に応じたモード信号MODE1~MODE3を出力する。<<PWM信号生成回路53の詳細>>PWM信号生成回路53は、期間検出回路60、パルス数計算回路61、演算回路62、及び信号生成回路63を含んで構成される。期間検出回路60は、入力されるPWM信号S1の周期と、PWM信号S1の1周期におけるHレベルの期間とを検出する。なお、期間検出回路60は、例えば、FGカウンタ51と同様に、クロック信号CLK1に同期してカウント値を変化させるカウンタ不図示を用いて、PWM信号S1の周期等を検出する。また、期間検出回路60は、検出したPWM信号S1の周期をカウント値wcntとして出力し、検出したPWM信号S1の1周期におけるHレベルの期間をカウント値hcntとして出力する。パルス数計算回路61は、期間T1,T3の夫々において、PWM信号生成回路53が出力できるPWM信号S2のパルス数を計算する。本実施形態のPWM信号S2は、期間TAをカウントする際のクロック信号CLK2に同期して生成される。このため、パルス数計算回路61は、期間T1に出力できるPWM信号S2のパルス数cslp_reg0を、期間TAの全体のパルス数を示すカウント値fg_reg0に、期間T1の比率を乗算して算出する。また、パルス数計算回路61は、期間T3に出力できるPWM信号S2のパルス数cslp_reg2を、カウント値fg_reg0に期間T3の比率を乗算して算出する。なお、このパルス数cslp_reg0は、FGカウンタ51における期間T1におけるカウント値fg_cntの変化量と等しくなり、パルス数cslp_reg3は、期間T3におけるカウント値fg_cntの変化量と等しくなる。演算回路62は、期間T1~T3の夫々におけるPWM信号S2のデューティ比D1~D3を、クロック信号CLK2に同期して計算する。具体的には、演算回路62は、期間T1におけるデューティ比D1を、カウント値fg_cntが変化する毎に下記の式1に基づいて計算する。D1=duty/cslp_reg0×fg_cnt1なお、ここで、duty=hcnt/wcntである。式1から明らかなように、期間T1が開始し、カウント値fg_cntがインクリメントされるとデューティD1は増加する。また、式1において、cslp_reg0は、期間T1が終了するまでのカウント値fg_cntの変化量である。したがって、期間T1が終了すると、デューティ比D1は、D1=dutyとなる。また、演算回路62は、期間T2におけるデューティ比D2を、式2に基づいて算出する。D2=duty2さらに、演算回路62は、期間T3におけるデューティ比D3を、カウント値fg_cntが変化する毎に式3に基づいて算出する。D3=duty-duty/cslp_reg2×fg_cnt-CNT23なお、カウント値CNT2は、期間T3が開始される際のカウント値fg_cntの値であり、例えば1/2×fg_reg0である。このため、カウント値fg_cntがインクリメントされると、デューティ比D3は低下する。さらに、式3において、cslp_reg2は、期間T3が終了するまでのカウント値fg_cntの変化量である。したがって、カウント値fg_cntがfg_reg0となると、デューティ比D3は、D3=0となる。ところで、期間T3は、過去にFGカウンタ51に入力されたFG信号に基づいて算出された期間であり、カウント値fg_cntは、現在FGカウンタ51に入力されているFG信号のカウント値である。このため、例えば、期間T3が終了しても、モード信号MODE3が出力され続け、カウント値fg_cntはインクリメントされ続けることがある。このような場合、カウント値fg_cntはインクリメントされ続けるため、デューティD3は、負の値になってしまう。そこで、演算回路62は、例えば、デューティD3の計算結果が負の値となると、デューティ比D3として0を出力する。つまり、式3の値が負となると、D3=04となる。なお、演算回路62は、式1、3の計算を実行する際には、計算精度を向上させるために、デューティ比を示す値hcnt/wcntと、カウント値fg_cntとの積を除算処理の前に行っている。信号生成回路63は、演算回路62で得られたデューティ比D1~D3のPWM信号S2を、クロック信号CLK2に同期して生成する。ここで、図8~図10を参照しつつ、信号生成回路63で生成されるPWM信号S2の波形の一例について説明する。図8は、現在FGカウンタ51に入力されているFG信号がHレベル、またはLレベルとなる期間第2の期間と、過去に検出された期間TA第1の期間,第3の期間,第4の期間とが等しい場合の一例である。また、図9は、現在FGカウンタ51に入力されているFG信号がHレベル、またはLレベルとなる期間が、期間TAより短い場合の一例であり、図10は、現在FGカウンタ51に入力されているFG信号がHレベル、またはLレベルとなる期間が、期間TAより長い場合の一例である。なお、ここでは、図7の場合と同様に、期間TAを示すカウント値fg_reg0を例えば16とし、期間T2が開始する際のカウント値CNT1を41/4×fg_reg0とし、期間T3が開始する際のカウント値CNT2を81/2×fg_reg0とする。このため、cslp_reg0は4となり、cslp_reg2は8となる。さらに、duty=hcnt/wcnt=40であることとする。まず、現在のFG信号がHレベルとなる期間が、期間TAと等しい場合、つまり、現在のFGがHレベルとなる期間におけるカウント値fg_cntが16となる場合について、図8を参照しつつ説明する。期間T1におけるデューティ比D1は、前述の式1の各変数に値を代入することにより、式5に示すようになる。D1=40/4×fg_cnt5したがって、まず、カウント値fg_cntが0~4となるまで、デューティ比D1は段階的に増加する。また、カウント値fg_cntがインクリメントして4となると、期間T2が開始される。期間T2におけるデューティ比D2は、式2から明らかなように一定40である。そして、カウント値fg_cntがインクリメントして8となると、期間T3が開始される。期間T3におけるデューティ比D3は、式3の各変数に値を代入することにより、式6に示すようになる。D3=40-40/8×fg_cnt-86したがって、カウント値fg_cntが9~16となるまで、デューティ比D3は段階的に減少する。このように、PWM信号S2のデューティ比は徐々に増加して一定となり、その後、徐々に減少する。つぎに、現在のFG信号がHレベルとなる期間が、期間TAより短い場合、つまり、現在のFGがHレベルとなる期間におけるカウント値fg_cntが、例えば13<fg_reg0=16である場合について、図9を参照しつつ説明する。なお、ここでは、時刻t10にFG信号がHレベルとなり、カウント値fg_cntが13になった後の時刻t11にFG信号がLレベルとなることとする。また、カウント値fg_cntが0から13までの期間時刻t10~t11までの間の波形については、図8と同様であるため説明は省略する。時刻t10にFG信号がLレベルとなると、つまり、FG信号の論理レベルが変化すると、カウント値fg_cntはリセットされ、モード信号MODE1が出力される。このため、時刻t11においては、デューティ比D3からデューティ比D1へと変化する。したがって、時刻t11となると、再度時刻t10と同様にデューティ比が変化することになる。さらに、現在のFG信号がHレベルとなる期間が、期間TAより長い場合、つまり、現在のFGがHレベルとなる期間におけるカウント値fg_cntが、例えば18>fg_reg0=16である場合について、図10を参照しつつ説明する。なお、ここでは、時刻t20にFG信号がHレベルとなり、カウント値fg_cntが18になった後の時刻t22にFG信号がLレベルとなることとする。また、カウント値fg_cntが0から16までの期間時刻t20~t21までの間の波形については、図8と同様であるため説明は省略する。時刻t21にカウント値fg_cntが16となった後は、カウント値fg_cntはインクリメントされ17となる。カウント値fg_cntが17のデューティ比D3は、式6に17が代入された式7で得られる。D3=40-40/8×17-8=-5<07この結果、デューティ比D3は負の値となるため、前述の式4から、デューティ比D3としては0が出力されることになる。また、カウント値fg_cntがインクリメントされ18となった場合も同様である。そして、時刻t22にFG信号がLレベルになると、カウント値fg_cntはリセットされるとともに、モード信号MODE1が出力されるため、時刻20における動作が繰り返される。<<Hブリッジ制御回路54の詳細>>Hブリッジ制御回路54は、PWM信号S2、及びFG信号に基づいて駆動信号Vdr1~Vdr4を生成し、Hブリッジ回路25を制御する。Hブリッジ制御回路54は、FG信号がHレベルの場合、駆動電流Idrが端子OUT1から端子OUT2へと流れるようにHブリッジ回路25を制御する。具体的には、Hブリッジ制御回路54は、例えば、NMOSトランジスタ43をオンし、PMOSトランジスタ41、及びNMOSトランジスタ42をオフするとともに、PMOSトランジスタ40をPWM信号S2に基づいてスイッチングする。一方、Hブリッジ制御回路54は、FG信号がLレベルの場合、駆動電流Idrが端子OUT2から端子OUT1へと流れるようにHブリッジ回路25を制御する。具体的には、Hブリッジ制御回路54は、例えばNMOSトランジスタ42をオンし、PMOSトランジスタ40、及びNMOSトランジスタ43をオフするとともに、PMOSトランジスタ41をPWM信号S2に基づいてスイッチングする。図11は、Hブリッジ制御回路54に、デューティ比が0~40まで変化するPWM信号S2が入力された場合の駆動電流Idrの変化を示す図である。なお、ここでは、例えば、時刻t30~時刻t31までの期間は期間TAと同じであり、時刻t31~時刻t32までの期間は期間TAより短く、時刻t33~時刻t35までの期間は期間TAより長いこととする。例えば、時刻t30から時刻t31においては、PWM信号S2のデューティ比が段階的に高くなると、駆動電流Idrは徐々に増加し、PWM信号S2のデューティ比が一定となると、駆動信号Idrの変化も抑制される。そして、PWM信号S2のデューティ比が段階的に低くなると、駆動電流Idrは徐々に減少する。なお、ここでは、端子OUT1から端子OUT2へと流れる電流を正の電流としている。したがって、PWM信号S2のデューティ比に応じて緩やかに変化する駆動電流Idrが流れることになる。また、時刻t31~時刻t32においては、FG信号がLレベルとなるため、時刻t30~時刻t31の間に流れる電流と同様の駆動電流Idrが負の方向に流れる。ただし、この期間は期間TAよりも短いため、時刻t32にFG信号の論理レベルが変化し相切り替えが起こる。このような場合であっても、時刻t32となると、PWM信号S2のデューティ比は再び増加する。したがって、相切り替えが起こった時刻t32の後において、確実に駆動電流Idrを増加させることができる。時刻t33~時刻t35においては、FG信号がHレベルとなるため、時刻t30~時刻t31の間に流れる電流と同様の駆動電流Idrが正の方向に流れる。なお、この期間は期間TAより長いため、時刻t34から相切り替えが起きる時刻t35までは、デューティ比がゼロのPWM信号S2が出力され続ける。したがって、相切り替えが起きるまでは、確実に駆動電流Idrをゼロにすることができる。このように、本実施形態では、駆動電流Idrを緩やかに変化させるとともに、相切り替えが発生すると確実に駆動電流Idrを増加させ後に、駆動電流Idrを減少させることができる。==駆動信号出力回路24b第2の実施形態について==図12は、駆動信号生成回路24の第2の実施形態の構成を示す図である。なお、図2と図12とで同一の符号の付されたブロックは同じである。図12の駆動信号生成回路24bPWM信号出力回路では、PWM信号生成回路53の代わりに、PWM信号生成回路200が用いられている。PWM信号生成回路200第1及び第2生成部は、入力されるPWM信号S1と同期したPWM信号S3を生成する回路であり、期間検出回路60、パルス数カウンタ300、演算回路310、及び信号生成回路320を含んで構成される。なお、期間検出回路60は、図2に示したブロックと同様であるため説明は省略する。パルス数カウンタ300は、期間T1,T3の夫々に入力されるPWM信号S1のパルス数をカウントする。そして、パルス数カウンタ300は、期間T1にカウントされるPWM信号S1のパルス数を、aslp_reg0とし、期間T3にカウントされるPWM信号S1のパルス数を、aslp_reg2として演算回路310に出力する。なお、aslp_reg0は、期間T1におけるパルス数カウンタ300のカウント値slp_cntの変化量であり、aslp_reg2は、期間T3におけるパルス数カウンタ300のカウント値slp_cntの変化量である。また、パルス数カウンタ300は、例えば、エッジパルスVe1が入力されるとリセットされ、MODE信号3が入力されるとカウント値slp_cntとして1が設定される。演算回路310は、期間T1~T3の夫々におけるPWM信号S3の1周期におけるHレベルの期間H1~H3を、PWM信号S1に同期して計算する。具体的には、演算回路310は、期間T1におけるHレベルの期間H1を、カウント値slp_cntが変化する毎に下記の式8に基づいて計算する。H1=hcnt/aslp_reg0×slp_cnt8式8から明らかなように、期間T1が開始し、カウント値slp_cntがインクリメントされるとHレベルの期間H1は増加する。また、式8において、aslp_reg0は、期間T1が終了するまでのカウント値slp_cntの変化量である。したがって、期間T1が終了すると、Hレベルの期間H1は、H1=hcntとなる。また、演算回路310は、期間T2におけるHレベルの期間H2を、式9に基づいて算出する。H2=hcnt9さらに、演算回路310は、期間T3におけるHレベルの期間H3を、カウント値slp_cntが変化する毎に式10に基づいて算出する。H3=hcnt-hcnt/aslp_reg2×slp_cnt10このため、カウント値slp_cntがインクリメントされると、Hレベルの期間H3は低下する。さらに、式10において、aslp_reg2は、期間T3が終了するまでのカウント値slp_cntの変化量である。したがって、カウント値slp_cntが、期間T3が終了する際のaslp_reg2となると、Hレベルの期間H3は、H3=0となる。ただし、図2の回路と同様に、モード信号MODE3が出力され続け、カウント値slp_cntはインクリメントされ続けることがある。このような場合、カウント値slp_cntはインクリメントされ続けるため、Hレベルの期間H3は、負の値になってしまう。そこで、演算回路62は、例えば、Hレベルの期間H3の計算結果が負の値となると、Hレベルの期間H3として0を出力する。つまり、式10の値が負となると、H3=011となる。なお、演算回路310は、式8、10の計算を実行する際には、計算精度を向上させるために、Hレベルの期間を示す値hcntと、カウント値slp_cntとの積を除算処理の前に行っている。信号生成回路320は、期間T1~T3の夫々で計算されたHレベルの期間H1~H3のPWM信号S3を、PWM信号S1に同期して生成する。ここで、図13を参照しつつ、信号生成回路320で生成されるPWM信号S3の波形の一例について説明する。なお、ここでは、期間T1におけるPWM信号S1のパルス数aslp_reg0を4とし、期間T3におけるPWM信号S1のパルス数aslp_reg2を8とする。また、PWM信号S1のHレベルの期間を示すカウント値hcntは、80であり、1周期の期間を示すカウント値wcntは、160であることとする。つまり、PWM信号S1のデューティ比は50である。さらに、ここでは、実際にFG信号がHレベルとなる期間は、期間TAと同じであることとする。まず、期間T1におけるHレベルの期間H1は、前述の式8の各変数に値を代入することにより、式12に示すようになる。H1=80/4×slp_cnt12したがって、まず、カウント値slp_cntが0~4となるまで、Hレベルの期間H1は段階的に増加する。また、期間T2におけるHレベルの期間H2は、式9から明らかなように一定80である。そして、期間T3が開始されると、期間T3におけるHレベルの期間H3は、式10の各変数に値を代入することにより、式13に示すようになる。H3=80-80/8×slp_cnt13このため、カウント値slp_cntが1~8となるまで、Hレベルの期間H3は段階的に減少する。また、PWM信号S3及びPWM信号S1の周期は等しいため、Hレベルの期間H1~H3が変化すると、PWM信号S3のデューティ比も、同様に変化する。この結果、PWM信号S3のデューティ比は徐々に増加して一定50となり、その後、徐々に減少する。なお、例えば、実際にFG信号がHレベルとなる期間が期間TAより短い場合は前述した図9と同様になり、実際にFG信号がHレベルとなる期間が期間TAより長い場合は前述した図10と同様になるため詳細な説明は省略する。このように、図12に示す駆動信号生成回路24bを用いた場合も、図2に示す駆動信号生成回路24aを用いた場合と同様に駆動電流Idrが変化する。==駆動信号出力回路24c第3の実施形態について==図14は、駆動信号生成回路24の第3の実施形態の構成を示す図である。なお、図2と図14とで同一の符号の付されたブロックは同じである。図14の駆動信号出力回路24cおいては、駆動信号出力回路24aに対し、擬似FG信号生成回路400が追加されている。<<擬似FG信号生成回路の第1の実施形態>>擬似FG信号生成回路400補正部は、入力されるFG信号のHレベルの期間と、Lレベルの期間とが等しくなるようFG信号を補正し、信号fkfgとして出力する回路である。擬似FG信号生成回路400は、図15に示すように、アップカウンタ410、レジスタ411,412、演算回路413、及び信号生成回路414を含んで構成される。アップカウンタ410は、FG信号がHレベルとなる期間、及びFG信号がLレベルとなる期間をカウントする。また、アップカウンタ410は、FG信号がLレベルとなる期間のカウント値をレジスタ411に格納し、FG信号がHレベルとなる期間のカウント値をレジスタ412に格納する。レジスタ411には、FG信号がLレベルとなる期間をカウント値reg_a第1のカウント値として記憶し、レジスタ412は、FG信号がHレベルとなる期間をカウント値reg_b第2のカウント値として記憶する。演算回路413算出部は、例えば、FG信号がHレベルからLレベルとなり、レジスタ412に格納されるカウント値reg_bが更新されると、カウント値reg_aと、カウント値reg_bとの差del_fg=reg_a-reg_bの半分の値phase_aを算出する。信号生成回路414信号出力部は、例えば、FG信号がLレベルからHレベルとなると、カウント値reg_b及び値phase_aに基づいた期間だけ、クロック信号CLK2に同期してHレベルの信号fkfgを出力する。具体的には、差del_fgが負の場合、つまり、カウント値reg_aがカウント値reg_bより小さい場合、カウント値reg_bから値phase_aを減算した値の期間だけ、Hレベルの信号fkfgを出力する。一方、差del_fgが正の場合、つまり、カウント値reg_aがカウント値reg_bより大きい場合、カウント値reg_bに値phase_aを加算した値の期間だけ、Hレベルの信号fkfgを出力する。また、信号生成回路414は、Hレベルの信号fkfgを出力した後は、カウント値reg_a及び値phase_aに基づいた期間だけ、クロック信号CLK2に同期してLレベルの信号fkfgを出力する。具体的には、カウント値reg_aがカウント値reg_bより小さい場合、カウント値reg_aに値phase_aを加算した値の期間だけ、Lレベルの信号fkfgを出力する。一方、カウント値reg_aがカウント値reg_bより大きい場合、カウント値reg_aから値phase_aを減算した値の期間だけ、Lレベルの信号fkfgを出力する。この結果、FG信号がHレベルとなる度に、Hレベルとなった後にLレベルとなる信号fkfgが出力される。図16は、擬似FG信号生成回路400で生成される信号fkfgについて説明するための図である。例えば、時刻t100となった後に、FG信号がLレベルとなる期間を示すカウント値reg_aが更新され、カウント値reg_aが50となる。また、時刻t101となった後に、FG信号がHレベルとなる期間を示すカウント値reg_bが更新され、カウント値reg_bが54となる。さらに、時刻t101にFG信号がHレベルからLレベルとなり、カウント値reg_bが更新されると、差del_fg-4と、値phase_a-2が算出される。そして、時刻t102に、FG信号がLレベルからHレベルとなると、Hレベルの信号fkfgがカウント値52=54-2の期間だけ出力され、その後、Lレベルの信号fkfgがカウント値52=502の期間だけ出力される。このように、擬似FG信号生成回路400は、FG信号がHレベルとなる度に、Hレベルの期間と、Lレベルの期間とが等しくなる信号fkfgを出力する。そして、図14に示す駆動信号出力回路24cにおけるPWM信号生成回路53は、Hレベルの期間と、Lレベルの期間とが等しい信号fkfgに基づいてPWM信号S2を生成することになる。この結果、モータコイルLの駆動電流Idrが正の方向に流れる期間は、負の方向に流れる期間と等しくなる。<<擬似FG信号生成回路の第2の実施形態>>図17に示す擬似FG信号生成回路500は、擬似FG信号生成回路400と同様に、FG信号を補正した信号fkfgを出力する回路である。擬似FG信号生成回路500補正部は、アップカウンタ510、レジスタ511、演算回路512、及び信号生成回路513を含んで構成される。アップカウンタ510は、FG信号がHレベルからLレベルになると、FG信号がHレベルとなる期間をレジスタ511に格納し、FG信号がLレベルからHレベルになると、FG信号がLレベルとなる期間をレジスタ511に格納する。レジスタ511には、FG信号がHレベルとなる期間、及びFG信号がLレベルとなる期間の夫々をカウント値reg_cとして記憶する。演算回路512算出部は、例えばFG信号がHレベルとなった際に更新される前のカウント値reg_c1周期前のFG信号のHレベルの期間を示すカウント値と、更新された後のカウント値reg_c1周期前のFG信号のLレベルの期間を示すカウント値とを取得する。そして、演算回路512は、更新前後のカウント値reg_cの差del_fg更新前のカウント値-更新後のカウント値の半分の値phase_aを算出する。信号生成回路513信号出力部は、例えばFG信号がHレベルからLレベルとなると、FG信号がLレベルとなった際に更新される前のカウント値reg_c1周期前のFG信号のLレベルの期間を示すカウント値と、値phase_aとに基づいた期間だけ、クロック信号CLK2に同期してLレベルの信号fkfgを出力する。具体的には、差del_fgが正の場合、FG信号がLレベルとなった際に更新される前のカウント値reg_cに値phase_aを加算した値の期間だけ、Lレベルの信号fkfgを出力する。一方、差del_fgが負の場合、FG信号がLレベルとなった際に更新される前のカウント値reg_cから値phase_aを減算した値の期間だけ、Lレベルの信号fkfgを出力する。また、信号生成回路414は、Lレベルの信号fkfgを出力した後は、FG信号がLレベルとなって更新された後のカウント値reg_c1周期前のFG信号のHレベルの期間を示すカウント値と、値phase_aとに基づいた期間だけ、クロック信号CLK2に同期してHレベルの信号fkfgを出力する。具体的には、差del_fgが正の場合、FG信号がLレベルとなって更新された後のカウント値reg_cから値phase_aを減算した値の期間だけ、Hレベルの信号fkfgを出力する。一方、差del_fgが負の場合、FG信号がLレベルとなって更新された後のカウント値reg_cに値phase_aを加算した値の期間だけ、Hレベルの信号fkfgを出力する。図18は、擬似FG信号生成回路500で生成される信号fkfgについて説明するための図である。例えば、時刻t200となった後には、FG信号がHレベルとなる期間を示すカウント値reg_cが更新され、カウント値reg_cが54となる。また、時刻t201となった後には、FG信号がLレベルとなる期間を示すカウント値reg_cが更新され、カウント値reg_cは50となる。なお、時刻201にFG信号がLレベルからHレベルとなる際には、差del_fg4と、値phase_a2が算出される。そして、時刻t202に、FG信号がHレベルからLレベルとなると、Lレベルの信号fkfgがカウント値52=502の期間だけ出力され、その後、Hレベルの信号fkfgがカウント値52=54-2の期間だけ出力される。このように、擬似FG信号生成回路400は、FG信号がLレベルとなる度にLレベルの期間と、Hレベルの期間とが等しくなる信号fkfgを出力する。このため、例えば、図14に示す駆動信号出力回路24cにおいて、擬似FG信号生成回路400の代わりに擬似FG信号生成回路500を用いた場合であっても、擬似FG信号生成回路400を用いた場合と同様の効果を得ることができる。以上、本実施形態のモータ駆動IC10について説明した。例えば駆動信号出力回路24aでは、FG信号の論理レベルが変化してから、次にFG信号の論理レベルが変化するまでの間に、デューティ比が増加した後に減少するPWM信号S2が常に生成される。このため、駆動信号出力回路24aは、モータ駆動IC10にソフトスイッチングを実行させつつ、モータ11を安定に回転させることができる。また、モータ11の回転速度が一定の場合であっても、一般的には、FG信号がHレベルとなる期間と、FG信号がLレベルとなる期間は正確には一致しない。しかしながら、例えば、図16に例示するように、FG信号がHレベルとなる期間及びLレベルとなる期間の夫々はほぼ一定となる。駆動信号出力回路24aは、過去のFG信号のHレベルの期間に基づいて、FG信号がHレベルとなっている期間におけるPWM信号S2を生成し、過去のFG信号のLレベルの期間に基づいて、FG信号がLレベルとなっている期間におけるPWM信号S2を生成している。したがって、より安定にモータ11を回転させることが可能となる。また、信号fk_fgに基づいてPWM信号S2が生成された場合、この結果、モータコイルLの駆動電流Idrが正の方向に流れる期間は、負の方向に流れる期間にほぼ等しくなる。したがって、より安定にモータ11を回転させることができる。また、信号fk_fgは、アップカウンタ410等により生成されているため、信号fk_fgのHレベルの期間と、信号fk_fgのLレベルの期間を精度良く一致させることができる。また、過去に検出された期間TAよりも、現在PWM信号S2を生成している期間が長くなると、デューティ比が0所定のデューティ比のPWM信号S2が出力される。したがって、相切り替えが起きる前に確実に駆動電流Idrをゼロとすることができる。なお、上記実施例は本発明の理解を容易にするためのものであり、本発明を限定して解釈するためのものではない。本発明は、その趣旨を逸脱することなく、変更、改良され得ると共に、本発明にはその等価物も含まれる。例えば、擬似FG信号生成回路400を駆動信号出力回路24bに用いても、駆動信号出力回路24cと同様の効果を得ることができる。"