以下、本発明の実施の形態によるモータ駆動装置の一例について図面を参照して説明する。
[第1の実施形態]
図1は、本発明の第1実施形態によるモータ駆動装置を備える撮像装置の一例を破断して示す側面図である。
図示の撮像装置は、例えば、デジタルカメラ(以下単にカメラと呼ぶ)であり、このカメラは撮影レンズユニットを備えている。カメラ筐体16には鏡筒15が備えられ、この鏡筒15には撮影レンズユニットが保持されている。そして、撮影レンズユニットは固定レンズ13a、変倍レンズ13b、およびオートフォーカス(AF)レンズ13cを有している。
撮影光軸11に沿って変倍レンズ13bとAFレンズ13cとの間にはシャッタ12が配置され、AFレンズ13cの後段には光学ローパスフィルタ13dが配置されている。また、光学ローパスフィルタ13dの後段には撮像素子13eが配置されている。
この撮像素子13eには撮影レンズユニットを介して光学像が結像する。そして、撮像素子13eは光学像に応じたアナログ信号(画像信号)を出力する。なお、カメラ筐体16の背面側には液晶モニタ17が設けられている。
AFレンズ13cは保持枠14dに保持されており、保持枠14dは支持軸14e上に撮影光軸11に沿って摺動可能に支持されている。保持枠14dの端部(図中上端部)にはナット14cが設けられており、リードスクリュー14bがナット14cとねじ結合している。
リードスクリュー14bには、ステップモータ14aが結合されており、ステップモータ14aによってリードスクリュー14bを回転駆動させると、AFレンズ13cが支持軸14eに沿って実線矢印14b方向に駆動される。
なお、上述のステップモータ14a、リードスクリュー14b、ナット14c、保持枠14d、および支持軸14eによってAF駆動ユニット14が構成される。
カメラ筐体16にはCPU18およびドライバ19が内蔵されており、ドライバ19はCPU18の制御下でステップモータ14aを駆動制御する。
図2は、図1に示すCPU18の機能構成をドライバ18およびAF駆動ユニット14とともに示すブロック図である。
ステップモータ14aはマグネットロータ14fを有しており、このマグネットローラ14fは、ドライバ19から駆動コイル14gに印加される電流(又は電圧)に応じて回転駆動する。図示の例では、ドライバ19は双方向に電流を駆動コイル14gに印加することができる。
なお、ステップモータ14aは複数の駆動コイル14gを備えている。そして、駆動コイル14gの各々に対して所定のタイミングで電流を印加することによって、マグネットロータ14fが回転駆動されるが、ここでは、説明の便宜上、理解を容易にするため1つの駆動コイル14gのみが示されている。
また、ここでは、マグネットロータ14fおよび駆動コイル14gによってステップモータ14aが構成される。
駆動コイル14gには、駆動コイル14gの抵抗値に比べて十分に抵抗値が小さい定抵抗14hが直列に接続されている。そして、定抵抗14hの一端(駆動コイル14g側)はアナログ/デジタル(A/D)変換回路(図示せず)などを介してCPU18に接続されている。この結果、定抵抗14hの出力信号(ここでは検出信号と呼ぶ)がA/D変換回路を介してCPU18に与えられる。
CPU18は、駆動目標値発生部18a、差動部18b、フィルタ18c、およびコンパレータ18dを有している。駆動目標値発生部18aはドライバ19に駆動目標値を出力する。そして、ドライバ19は駆動目標値に応じた駆動パルス(駆動電圧)を駆動コイル14gに出力する。
逆起電力を演算する差動部18bは駆動目標値発生部18aの駆動目標値(つまり、駆動電圧)と検出信号が示す電圧値との差分を求める。この際、差動部18bは検出信号と駆動目標値との差が最も小さくなるようにゲインを調節する。
差動部18bから出力される信号(差分信号と呼ぶ)は、後述する特性(周波数特性)を有するフィルタ18cで波形整形されて(つまり、フィルタリングされて)コンパレータ18dに与えられる。コンパレータ18dは波形成形された差分信号と基準値とを比較して、比較結果に応じた比較結果信号を出力する。
コンパレータ18dの出力である比較結果信号は駆動目標値発生部18aに入力され、駆動目標値発生部18aは比較結果信号に応じてステップモータ14aの駆動目標値を修正する。
ここで、図2に示す定抵抗14hによる逆起電力の検出について説明する。
定抵抗14hは駆動コイル14gと直列に接続されているので、定抵抗14hの出力である検出信号の大きさは駆動コイル14gに流れる電流に比例することになる。
一方、駆動コイル14aはマグネットロータ14fと対向しているので、マグネットロータ14fの回転に応じて、駆動コイル14gを通過する磁束の大きさおよび向きが変化する。
図3は、図2に示すマグネットロータ14fと駆動コイル14gとの関係を平面展開して示す図である。
図示のように、駆動コイル14gはヨーク31に巻回されており、マグネットロータ14fが、図中実線矢印32の方向に移動(回転)すると、駆動コイル14gを貫く磁束が、例えば、N極からS極に変化する。
図4は、図3に示す駆動コイル14gを貫く磁束が変化した際の駆動コイル14gに流れる電流(検出信号)と駆動コイル14gに印加される電圧とを説明するための図である。そして、図4(a)は駆動コイル14gに印加される電圧と定抵抗14hから出力される検出信号との関係を示す図であり、図4(b)はフィルタ18cの出力およびコンパレータ18dの出力の一例を示す図である。また、図4(c)はフィルタ18cの出力およびコンパレータ18dの出力の他の例を示す図である。
図4において、電圧41(駆動パルス)が駆動コイル14gに印加され、この際、検出信号42が定抵抗14hから出力される。検出信号42は、電圧42が駆動コイル14gの抵抗値と定抵抗14hの抵抗値とで分圧されるので、検出信号42は印加電圧41と相似するが、幅42aで示す電圧降下が生じる領域を有している。この電圧降下は、駆動コイル14gに貫く磁束が、例えば、N極からS極に変化する際の磁束分布の影響に起因する。
なお、実際の検出信号には電流ノイズ43が加わっているので、図4に示す検出信号42のようにS/N比は高くない。
信号波形46は、差動部18bによって駆動目標値(つまり、印加電圧41)から検出信号42を減算した後フィルタ18cで波形成形された信号波形である。印加電圧41と検出信号42とはそれぞれ振幅44および45を有しているので、これら振幅44および45を揃えた後、差動部18bは差分信号を求める。
例えば、検出信号42の振幅44が印加電圧41の振幅45と同一となるように、差動部18bは検出信号42を増幅した後、増幅後の検出信号42と印加電圧41との差を求める。
この際、電流ノイズ43も同時に増幅されることになるが、差動部18bの出力である差分信号に重畳するノイズをフィルタ18cで減衰させて、つまり、波形整形して信号波形46を得る。
コンパレータ18dは波形整形後の差分信号(信号波形46)を基準値と比較して比較結果信号(信号波形47)を得る。
ところで、ステップモータ14aはAFレンズ13cを駆動する際には加減速を行う。このため、ステップモータ14aを駆動するための駆動信号(つまり、駆動目標値)の信号波形は、信号波形48のように信号波形46よりも高周波になることもあれば逆に低周波になることもある。このような駆動信号の周波数変化に対応するため、フィルタ18cの周波数特性を駆動目標値に応じて設定する。
図5は、図2に示すフィルタ18cの周波数特性を示すボード線図である。
図5において、横軸は周波数を示し、縦軸は利得を示す。曲線(線図)50はステップモータ14aが低速の際のフィルタ特性(周波数特性)を示しており、線図52はステップモータ14aが高速の際のフィルタ特性を示している。
線図50においては、その中心周波数51は、例えば、2KHzであり、当該中心周波数よりも周波数が低い信号および高い信号は減衰するバンドパスフィルタ特性である。
一方、線図52においては、その中心周波数53は、例えば、5KHzであり、当該中心周波数よりも周波数が低い信号および高い信号は減衰するバンドパスフィルタ特性である。
これらフィルタの特性は、例えば、ステップモータ14aの駆動目標値(例えば、2000ppsおよび5000pps)に応じて変更可能に設定してもよいし、所定の領域毎(例えば、ステップモータ14aの駆動目標値が1000ppsから2500ppsまでの間は線図50のフィルタ特性を用いる)に設定してもよい。
図5に示すように、駆動目標値に応じてフィルタ特性を選択すると、例えば、ステップモータ14aが駆動目標値の通りに駆動していない場合には、図4に示すコンパレータ18dの出力(信号波形)47および49が所定の出力とならない。つまり、コンパレータ18dの出力が所定の出力とならない場合には、ステップモータ14aの回転が異常であると判定することができる。
図6は、図2に示すステップモータ14aの駆動制御を説明するためのタイミングチャートである。そして、図6(a)は駆動目標値(駆動電圧)を示す図であり、図6(b)はコンパレータ18dの出力を示す図である。
図6において、横軸は時間、縦軸は駆動目標値発生部18aの出力およびコンパレータ18dの出力の大きさを表す。コンパレータ18dの出力61は図4(b)又は図4(c)に示す出力(信号波形)47又は49と同一の出力である。
ここで、コンパレータ18dの出力のパルス幅61aを測定して、当該パルス幅61aが現在の駆動目標値において適正範囲である場合には、駆動目標値発生部18aは現在の駆動目標値の出力を維持してステップモータ14aの駆動を続行する。
一方、パルス幅61aが現在の駆動目標値において適正範囲でない場合又はコンパレータ18dの出力が得られない場合には、駆動目標値発生部18aは駆動目標値の出力を停止する。これによって、駆動目標値発生部18aはステップモータ14aを停止した後、再駆動を行う。
この際には、駆動目標値発生部18aは出力(信号波形)61をタイミング基準として遅延時間62だけ遅延させて駆動コイル14gに駆動目標値63を印加する。駆動目標値発生部18dはステップモータ14aを停止する直前の駆動目標値に応じて遅延時間62を求める。
これによって、駆動目標値発生部18aはステップモータ14aが適正に回転していることを知るとともに、適正に回転していない場合には、ステップモータ14aを適正に回転させるための駆動制御を行う。
一般に、ステップモータ14aは駆動目標値の通りに回転駆動(ここでは、ステップ駆動と呼ぶ)するので、上述のような逆起電力によるフィードバック(ここではフィードバック駆動と呼ぶ)は不要と考えられる。
しかしながら、ステップモータ14aには脱調の危険があることを考慮すると、高速で回転させることはできない。一方、上述のように、逆起電力をフィードバックするようにすれば、ステップモータ14aを高速で回転させることが可能となる。
図7は、図1に示すAFレンズ13cにおける加速、定速駆動、および減速停止を説明するための図である。
図7において、横軸は時間を示し、縦軸はステップモータ14aの回転速度を示す。信号波形71で示すように、ステップモータ14aの加速期間72においてはステップ駆動が行われフィードバック駆動は行われない。
そして、ステップモータ14aの回転速度が所定の回転速度(例えば、1500pps)になると、駆動目標値発生部18dは、図6で説明したフィードバック駆動を行うとともに、ステップモータ14aが適正に回転しているか否かを検出する(期間73)。
ステップモータ14aの減速を開始して、ステップモータ14aの回転速度が予め定められた回転速度(例えば、1000pps)となると、駆動目標値発生部18dはステップ駆動に戻す(期間74)。
ここで、加速時にフィードバック駆動に移行する回転速度と減速時にステップ駆動に移行する回転速度とが異なるのは、減速時は加速時よりも負荷が小さいので脱調の危険が少ないからである。
なお、ステップ駆動で加減速を行うことによって、AFレンズ13aの加速制御および停止制御を正確に行うことができる。
図8は、図1に示すAFレンズ13cの駆動制御を説明するためのフローチャートである。なお、図8に示すフローチャートに係る処理は、図2に示すCPU18によって行われる。
AFレンズ13cの駆動制御を開始すると、CPU18はステップモータ14aに対して加速指示を行う(ステップS4001)。そして、CPU18において、駆動目標値発生部18aが駆動コイル14gに駆動目標値(ステップ駆動目標値)を入力して、前述のようにしてステップ駆動を行う(ステップS4002)。
続いて、駆動目標値発生部18aはステップモータ14aの回転速度が所定の回転速度(例えば、1500PPS)となったか否かを判定する(ステップS4003)。ステップモータ14aの回転速度が所定の回転速度未満であると(ステップS4003において、NO)、駆動目標値発生部18aはステップS4002の処理に戻ってステップモータ14aのステップ駆動を行う。
ステップモータ14aの回転速度が所定の回転速度以上となると(ステップS4003において、YES)、駆動目標値発生部18aは図6で説明した待機時間(加速遅延時間)62を求める(ステップS4004)。ステップモータ14aを加速する際の待機時間62はステップモータの回転速度に応じて徐々に短くなるように設定される。
次に、駆動目標値発生部18aはステップモータ14aを加速する際に生じる逆起電力を抽出するためのフィルタ特性の設定を行う(ステップS4005)。ここでは、例えば、フィルタ18cの特性を図5に示す線図50の特性に設定する。
そして、駆動目標値発生部18aは、ステップS4004で求めた待機時間で駆動コイル14gに対する駆動目標値の印加タイミングを制御する(ステップS4006:駆動フィードバック)。ここでは、待機時間がステップモータ14aの回転速度に応じて徐々に短くなるので、ステップモータ14aは加速することになる。
続いて、駆動目標値発生部18aはステップS4005で設定した特性のフィルタ18cで抽出した逆起電力に基づいて、図6に示す期間61a、つまり、逆起電力発生期間を計測する(ステップS4007)。そして、駆動目標値発生部18aは逆起電力発生期間に応じて、ステップモータ14aの回転速度が加速区間において望ましい回転速度の範囲(想定期間と呼ぶ)であるか否かを判定する(ステップS4008)。
ステップモータ14aの回転速度が想定期間にあると(ステップS4008において、YES)、駆動目標値発生部18aはステップモータ14aの回転速度をコンパレータ18dの出力ピッチ(パルス周期)に応じて求めて、当該回転速度に応じて加速が終了したか否かを判定する(ステップS4009)。
ステップモータ14aの加速が終了していないと(ステップS4009において、NO)、駆動目標値発生部18aはステップS4004の処理に戻って加速遅延時間を算出する。
ステップモータ14aの加速が終了すると(ステップS4009において、YES)、駆動目標値発生部18aはステップモータ14aを定速駆動する制御を開始する。そして、駆動目標値発生部18aは、図6で説明した待機時間62(定速遅延時間)を求める(ステップS4010)。なお、定速駆動の期間における待機時間62は所定の固定値となる。
続いて、駆動目標値発生部18aは、ステップモータが定速回転する際に発生する逆起電力を抽出するためのフィルタ特性設定を行う(ステップS4011)。ここでは、例えば、フィルタ18cの周波数特性を図5に示す線図52の特性に設定する。
次に、駆動目標値発生部18aは、ステップS4010で求めた待機時間で駆動コイル14gに対する駆動目標値の印加タイミングを制御する(ステップS4012:駆動フィードバック)。ここでは、待機時間が一定であるので、ステップモータ14aの回転速度は一定速度となる。
続いて、駆動目標値発生部18aはステップS4011で設定した周波数特性を有するフィルタ18cから抽出した逆起電力に基づいて、図6に示す期間61a(逆起電力発生期間)を計測する(ステップS4013)。そして、駆動目標値発生部18aは、計測の結果得られた期間61aが定速区間において望ましいステップモータ14aの回転速度の範囲(想定期間)にあるか否かを判定する(ステップS4014)。
定速区間においてステップモータ14aの回転速度が想定期間にあると(ステップS4014において、YES)、駆動目標値発生部18aはステップモータ14aの回転速度をコンパレータ18dの出力ピッチ(パルス周期)に応じて求めて、当該回転速度に応じて定速制御を終了する減速指示を行うか否かを判定する(ステップS4015)。
減速指示を行わないと判定すると(ステップS4015において、NO)、駆動目標値発生部18aはステップS4010の処理に戻って定速遅延時間の算出を行う。
一方、減速指示を行う判定すると(ステップS4015において、YES)、駆動目標値発生部18aはステップモータ14aの減速駆動制御を開始する。そして、駆動目標値発生部18aは、図6に示す待機時間62(減速遅延時間)を求める(ステップS4016)。この待機時間62はステップモータ14aの回転速度に応じて徐々に長くなるように設定される。
続いて、駆動目標値発生部18aはステップモータ14aを減速駆動する際に発生する逆起電力を抽出するためのフィルタ特性の設定を行う(ステップS4017)。ここでは、フィルタ18cの周波数特性を図5に示す線図50に設定する。
次に、駆動目標値発生部18aはステップS4016で求めた減速遅延時間で駆動コイル14gに対する駆動目標値の印加タイミングを制御する(ステップS4018:駆動フィードバック)。
ここでは、減速遅延時間が徐々に長くなるので、ステップモータ14aは減速する。そして、駆動目標値発生部18aはステップS4017で設定した周波数特性を備えるフィルタ18cによって抽出した逆起電力に基づいて、図6に示す期間61a(逆起電力発生期間)を計測する(ステップS4019)。
続いて、駆動目標値発生部18aは、計測の結果得られた期間61aが減速区間で望ましいステップモータ14aの回転速度の範囲(想定期間)にあるか否かを判定する(ステップS4020)。
ステップモータ14aの回転速度が想定期間にあると(ステップS4020において、YES)、駆動目標値発生部18aはステップモータ14aの回転速度をコンパレータ18dの出力ピッチ(パルス周期)に基づいて求める。そして、駆動目標値発生部18aは当該回転速度が予め定められた回転速度以下(例えば、1000pps以下)であるか否かを判定する(ステップS4021)。
ステップモータ14aの回転速度が予め定められた回転速度を超えていると(ステップS4021において、NO)、駆動目標値発生部18aはステップS4019の処理に戻って逆起電力発生期間を計測する。
一方、ステップモータ14aの回転速度が予め定められた回転速度以下であると(ステップS4021において、YES)、駆動目標値発生部18aは駆動コイル14gに対してステップ駆動に係る駆動目標値を出力する(ステップS4022:ステップ駆動)。そして、CPU18は今までのコンパレータ18dの出力カウント(パルス数)とステップ駆動におけるパルスカウントとに基づいてAFレンズ13cが所定の位置に到達したか否かを判定する(ステップS4023)。
AFレンズ13cが所定の位置に到達していないと判定すると(ステップS4023において、NO)、駆動目標値発生部18aはステップS4022の処理に戻ってステップ駆動を継続する。
一方、AFレンズ13cが所定の位置に到達したと判定すると(ステップS4023において、YES)、駆動目標値発生部18a(つまり、CPU18)はステップモータ14aの駆動を停止して(ステップS4024)、AFレンズ13cの駆動制御を終了する。
ステップS4008において、ステップモータ14aの回転速度が想定期間にないと(ステップS4008において、NO)、駆動目標値発生部18aはステップモータ14aが脱調しているとして、一旦ステップモータ14aの回転を停止して再度ステップ駆動でステップモータ14aを再起動する制御を開始する。
まず、駆動目標値発生部18a(つまり、CPU18)はステップモータ14aを停止して(ステップS4025)、ステップ駆動によってステップモータ14aを初期位置に復帰させる(ステップS4026)。ここで、初期位置とはAFレンズ13cの無限端又は至近端などの基準となる位置をいう。
続いて、駆動目標値発生部18a(つまり、CPU18)は、図示しないセンサによってステップモータ14aが初期位置に復帰したか否かを判定する(ステップS4027)。ステップモータ14aが初期位置に復帰すると(ステップS4027において、YES)、CPU18はステップS4001処理に戻って加速指示を行う。
一方、ステップモータ14aが初期位置に復帰しないと(ステップS4027において、NO)、CPU18は、停止後所定の時間(例えば、1秒)が経過したか否かを判定する(ステップS4028)。所定の時間が経過していないと(ステップS4028において、NO)、CPU18はステップS4027の処理に戻ってステップモータ14aが初期位置に戻ったか否かを判定する。
所定の時間が経過すると(ステップS4028において、YES)、CPU18はステップモータ14aに故障が発生したとして、その旨を液晶モニタ17にエラー表示する(ステップS4029)。そして、CPU18はステップS4024の処理に進んでステップモータ14aを停止する。
なお、ステップS4014又はS4020において、ステップモータ14aの回転速度が想定期間にないと(ステップS4014又はS4020において、NO)、CPU18はステップS4025の処理に進む。
上述のように、本発明の第1の実施形態では、ステップモータの回転速度に応じて変化する逆起電力を、当該回転速度に応じた周波数特性が設定されたフィルタで抽出するようにしたので、加速および減速を繰り返すステップモータにおいても安定して逆起電力を検出することができる。
[第2の実施形態]
続いて、本発明の第2の実施形態によるモータ駆動装置の一例について説明する。
図9は、本発明の第2実施形態によるモータ駆動装置の一例に備えられたCPU18の機能構成をドライバ19およびAF駆動ユニット14とともに示すブロック図である。
なお、図9において、図2に示すモータ駆動装置と同一の構成要素については同一の参照番号を付す。また、図9に示すモータ駆動装置は、例えば、図1に示す撮像装置で用いられる。
図9においては、ドライバ19は、電界効果トランジスタ(FET)を有しており、駆動コイル14gに電界効果トランジスタが接続されている。また、駆動コイル14gの端子91は電源に接続されている。
電界効果トランジスタは、後述するように、CPU18によってオン/オフ制御される。そして、電界効果トランジスタがオンとなると、駆動コイル14gに電流が流れてマグネットロータ14fが回転する。図示の例では、ドライバ19は一方向に電流を流すことができる。
なお、ステップモータ14は複数の駆動コイルを備えているが、図9においても図2と同様に、説明の便宜上1つの駆動コイル14gのみが示されている。
図示の例では、駆動コイル14gと電界効果トランジスタとの接点(端子92)がA/D変換回路(図示せず)を介してCPU18に接続されており、端子92からの出力信号(ここでは検出信号と呼ぶ)がCPU18に与えられる。
CPU18は駆動目標値発生部18a、フィルタ18c、コンパレータ18d、および切替部93を有している。駆動目標値発生部18aはドライバ(電界効果トランジスタ)19のゲートに駆動パルス(駆動目標値)を与える。
切替部93には端子92から検出信号が入力され、後述するように駆動パルスと同期して検出信号をスイッチングする。なお、切替部93は駆動コイル14gに電流が流れていない期間における端子92の出力を、バイアス成分を減算して求める。
切替部93からの出力である切替部出力信号はフィルタ18cによって波形整形される。そして、コンパレータ18dは波形整形後の切替部出力信号と基準値とを比較して、比較結果信号を出力する。この比較結果信号は駆動目標値発生部18aに与えられ、駆動目標値発生部18aは比較結果信号に応じて駆動目標値(駆動パルス)を調整する。
駆動コイル14gの端子92は駆動コイル14gに電流が流れている場合には接地とほぼ等しい電圧となる。一方、端子91および92の間にはマグネットロータ14fの回転による逆起電力が生じる。
図10は、図9に示す駆動コイルに流れる電流(検出信号)とドライバ19に印加される駆動パルスとを説明するための図である。そして、図10(a)は駆動パルスと検出信号との関係を示す図であり、図10(b)はフィルタの出力およびコンパレータの出力の一例を示す図である。
図10において、駆動パルス1001がドライバ(電界効果トランジスタ)19に与えられ、検出信号1002が端子92から出力される。前述のように、端子92の電位は駆動コイル14gに電流が流れると接地とほぼ等しい電圧となり、端子91および92の間にはマグネットロータ14fの回転による逆起電力が生じる。
従って、図10に示すように、駆動パルス1001がオン(Hレベル)である場合には、端子92の電位は接地電位となるので、検出信号はオフ(Lレベル)となる。
一方、駆動パルス1001がオフ(Lレベル)である場合には、端子92は端子91(つまり、電源)とほぼ同電位となるので、検出信号はオン(Hレベル)となる。この際、端子91および92の間にはマグネットロータ14fの回転による逆起電力が生じると、検出信号1002には幅1002aで示す逆起電力による電圧降下が生ずる。
この電圧降下は、駆動コイル14gに貫く磁束が、例えば、N極からS極に変化する際の磁束分布の影響に起因する。なお、実際の検出信号には電流ノイズ1003が加わっているので、図10に示す検出信号1002のようにS/N比は高くない。
切替部93では、駆動パルス1001に同期して、駆動パルス1001がドライバ19に印加されている期間はその出力をオフとする。なお、切替部93は駆動パルス1001がドライバ19に印加されていない期間においてバイアス成分をその出力から減算する。
図10(b)に示す信号波形1006は、切替部93の出力をフィルタ18cで波形成形された信号波形である。フィルタ18cは切替部出力信号に重畳するノイズ1003を減衰させて、つまり、波形整形して信号波形1006を得る。
コンパレータ18dは波形整形後の切替部出力信号(信号波形1006)を基準値と比較して比較結果信号(信号波形1007)を得る。
図11は、図9に示すステップモータ14gの駆動制御を説明するためのタイミングチャートである。そして、図10(a)は駆動目標値(駆動パルス)を示す図であり、図10(b)はコンパレータの出力を示す図である。
図11において、横軸は時間、縦軸は駆動目標値発生部18aの出力およびコンパレータ18dの出力の大きさを表す。コンパレータ18dの出力1101は図10(b)に示す出力(信号波形)1007と同一の出力である。第2の実施形態では、コンパレータ18dの出力1101の間隔(パルス周期)を測定して、CPU18はステップモータ14aの駆動状況を観察する。
つまり、CPU18はコンパレータ18dの出力間隔1101bを計測して、当該出力間隔1101bが現在の駆動目標値において適正間隔である場合には、CPU18はステップモータ14aの駆動を続行する。
一方、出力間隔1101bが現在の駆動目標値において適正間隔でない場合又はコンパレータ18dの出力が得られない場合には、CPU18はステップモータ14aを停止した後再駆動を行う。
この際には、前述したように、駆動目標値発生部18aは出力(信号波形)1101をタイミング基準として遅延時間1102だけ遅延させてドライバ19に駆動目標値1103を印加する。
図12は、本発明の第2の実施形態によるモータ駆動装置によるAFレンズの駆動制御を説明するためのフローチャートである。なお、図12において、図8に示すフローチャートにおけるステップと同一のステップについては、同一の参照符号を付して説明を省略する。
AFレンズ13cの駆動制御を開始すると、CPU18は図8で説明したステップS4001〜S4006の処理を行った後、CPU18(つまり、駆動目標値発生部18a)はコンパレータ18dの出力間隔1101b(逆起電力発生間隔)を計測する(ステップS12001)。
そして、駆動目標値発生部18aは、計測の結果得られた出力間隔が望ましいステップモータ14aの駆動における出力間隔の範囲(想定ピッチ)であるか否かを判定する判定する(ステップS12002)。
計測の結果得られた出力間隔が想定ピッチ(想定周期)であると(ステップS12002において、YES)、CPU18はS4009の処理に進む。一方、計測の結果得られた出力間隔が想定ピッチでないと(ステップS12002において、NO)、CPU18はステップS4025の処理に進む。
同様にして、ステップS4012において駆動フィードバックを行った後、駆動目標値発生部18aはコンパレータ18dの出力間隔1101b(逆起電力発生間隔)を計測する(ステップS12003)。そして、駆動目標値発生部18aは、計測の結果得られた出力間隔が望ましいステップモータ14aの駆動における出力間隔の範囲(想定ピッチ)であるか否かを判定する判定する(ステップS12004)。
計測の結果得られた出力間隔が想定ピッチであると(ステップS12004において、YES)、CPU18はS4015の処理に進む。一方、計測の結果得られた出力間隔が想定ピッチでないと(ステップS12004において、NO)、CPU18はステップS4025の処理に進む。
また、ステップS4018において駆動フィードバックを行った後、駆動目標値発生部18aはコンパレータ18dの出力間隔1101b(逆起電力発生間隔)を計測する(ステップS12005)。そして、駆動目標値発生部18aは、計測の結果得られた出力間隔が望ましいステップモータ14aの駆動における出力間隔の範囲(想定ピッチ)であるか否かを判定する判定する(ステップS12006)。
計測の結果得られた出力間隔が想定ピッチであると(ステップS12006において、YES)、CPU18はS4021の処理に進む。一方、計測の結果得られた出力間隔が想定ピッチでないと(ステップS12006において、NO)、CPU18はステップS4025の処理に進む。
このように、本発明の第2の実施形態では、逆起電力検出の際に定抵抗が不要となるので、ステップモータ14aの駆動効率を高めることができる。さらに、逆起電力の発生間隔を測定するようにしたので、ステップモータ14aの回転状況を安定して観察することができる。
また、第2の実施形態においても、ステップモータ14aの回転速度に応じて変化する逆起電力を、回転速度に応じた周波数特性が設定されたフィルタを用いて抽出するようにしたので、加速および減速を繰り返すステップモータにおいても安定して逆起電力を検出することができる。
なお、本発明の実施の形態においては、モータ駆動装置が逆起電力検出手段(定抵抗14h)、電圧印加手段(駆動目標値発生部18a)、およびフィルタ手段(フィルタ18c)を備えている。そして、逆起電力検出手段がステップモータ14aの駆動コイル14gに発生する逆起電力を検出して、電圧印加手段がステップモータ14aの駆動コイル14gに所定の駆動パルス(駆動目標値)を印加する。また、フィルタ手段は駆動パルスの周波数に応じて時定数が変更されて逆起電力検出手段の出力信号をフィルタ処理する。
また、CPU18は電圧印加手段(駆動目標値発生部18a)に加えて逆起電力(検出信号)と駆動目標値との差分を求める演算部(差動部18b)を有しており、さらに、モータ駆動装置は逆起電力の発生期間(図6に示す期間61a)に応じてステップモータ14aの回転状態を判定する回転判定手段(CPU18)を有している。
以上、本発明について実施の形態に基づいて説明したが、本発明は、これらの実施の形態に限定されるものではなく、この発明の要旨を逸脱しない範囲の様々な形態も本発明に含まれる。
例えば、上記の実施の形態の機能をモータ駆動方法として、このモータ駆動方法をモータ駆動装置に実行させるようにすればよい。また、上述の実施の形態の機能を有するプログラムを制御プログラムとして、当該制御プログラムをモータ駆動装置が備えるコンピュータに実行させるようにしてもよい。なお、制御プログラムは、例えば、コンピュータに読み取り可能な記録媒体に記録される。
上記のモータ駆動方法および制御プログラムの各々は、少なくとも検出ステップ、電圧印加ステップ、フィルタステップ、比較ステップ、および調整ステップを有している。
また、本発明は、以下の処理を実行することによっても実現される。つまり、上述した実施形態の機能を実現するソフトウェア(プログラム)を、ネットワーク又は各種の記録媒体を介してシステム或いは装置に供給し、そのシステム或いは装置のコンピュータ(またはCPUやMPUなど)がプログラムを読み出して実行する処理である。