モータ制御装置およびそれを用いた電子機器
【課題】ボイスコイルモータの駆動力を低消費電力で線形に制御することが可能なモータ制御装置を提供する。
【解決手段】このデジタルカメラでは、ボイスコイルモータ6の駆動力をゼロにする場合でも、ボイスコイル13の一方端子13aの電圧VAを一定時間(−80〜40)だけ「H」レベルにするとともに、ボイスコイル13の他方端子13bの電圧VBを一定時間(0〜120)だけ「H」レベルにする。したがって、ボイスコイル13に印加する電圧VA,VBのパルス幅を広くすることができ、電圧VA,VBの立ち上がりおよび立ち下がりの鈍りの影響を軽減できる。
【解決手段】このデジタルカメラでは、ボイスコイルモータ6の駆動力をゼロにする場合でも、ボイスコイル13の一方端子13aの電圧VAを一定時間(−80〜40)だけ「H」レベルにするとともに、ボイスコイル13の他方端子13bの電圧VBを一定時間(0〜120)だけ「H」レベルにする。したがって、ボイスコイル13に印加する電圧VA,VBのパルス幅を広くすることができ、電圧VA,VBの立ち上がりおよび立ち下がりの鈍りの影響を軽減できる。
【発明の詳細な説明】
【技術分野】
【0001】
この発明はモータ制御装置およびそれを用いた電子機器に関し、特に、ボイスコイルモータを制御するモータ制御装置と、それを用いた電子機器に関する。
【背景技術】
【0002】
従来より、ビデオカメラ、デジタルカメラ、スチルカメラ、プロジェクタなどの電子機器には、レンズと、レンズを移動させるモータと、モータを制御するモータ制御装置とが設けられている(たとえば、特許文献1参照)。また、モータとしてボイスコイルモータを使用するものもある(たとえば、特許文献2参照)。
【先行技術文献】
【特許文献】
【0003】
【特許文献1】特開2008−111942号公報
【特許文献2】特開2009−229602号公報
【発明の概要】
【発明が解決しようとする課題】
【0004】
ボイスコイルモータでは、コイルに流す電流の方向および値を制御して、モータの駆動力の方向および大きさを制御する。コイルに電流を流す第1の方法としては、コイルの端子間にアナログ電圧を印加する方法がある。この第1の方法では、コイルに流す電流(すなわち駆動力)を線形に変化させることができるが、消費電力が大きくなると言う問題がある。
【0005】
また、コイルに電流を流す第2の方法としては、コイルの端子間にPWM(Pulse Width Modulation:パルス幅変調)方式で電圧を印加する方法がある。この第2の方法では、消費電力を小さくできるが、コイルに流す電流(すなわち駆動力)を線形に変化させることができないと言う問題がある。
【0006】
第2の方法において、電流の線形性を改善する方法として、PWM信号のデューティ比を変化させるステップの数を増やすことも考えられるが、そのためにはPWM信号を生成するためのクロック信号の周波数を高める必要があり、消費電力が増大してしまう。
【0007】
また、コイルにパルス電圧を印加すると、電圧の立ち上がりおよび立ち下がりが鈍る。このため、たとえPWM信号のデューティ比を変化させるステップの数を増やしても、PWM信号のパルス幅が狭い範囲では電流を線形に変化させることができない(図5および図6参照)。
【0008】
それゆえに、この発明の主たる目的は、ボイスコイルモータの駆動力を低消費電力で線形に制御することが可能なモータ制御装置と、それを用いた電子機器を提供することである。
【課題を解決するための手段】
【0009】
この発明に係るモータ制御装置は、ボイスコイルモータを制御するモータ制御装置であって、第1および第2のPWM信号を発生するPWM信号発生部と、第1のPWM信号が活性化レベルの場合はボイスコイルモータのコイルの一方端子に電源電圧を印加し、第1のPWM信号が非活性化レベルの場合はコイルの一方端子に基準電圧を印加する第1のドライバと、第2のPWM信号が活性化レベルの場合はコイルの他方端子に電源電圧を印加し、第2のPWM信号が非活性化レベルの場合はコイルの他方端子に基準電圧を印加する第2のドライバとを備えたものである。PWM信号発生部は、ボイスコイルモータの駆動力をゼロにする場合は、予め定められた第1の固定時間だけ第1のPWM信号を活性化レベルにするとともに、予め定められた第2の固定時間だけ第2のPWM信号を活性化レベルにし、ボイスコイルモータに正方向の駆動力を発生させる場合は、駆動力の大きさに応じた長さの第1の可変時間と第1の固定時間だけ第1のPWM信号を活性化レベルにするとともに、第2の固定時間だけ第2のPWM信号を活性化レベルにし、ボイスコイルモータに負方向の駆動力を発生させる場合は、第1の固定時間だけ第1のPWM信号を活性化レベルにするとともに、第2の固定時間と駆動力の大きさに応じた長さの第2の可変時間だけ第2のPWM信号を活性化レベルにする。
【0010】
好ましくは、PWM信号発生部は、第1のPWM信号を活性化レベルにし、次いで第2のPWM信号を活性化レベルにし、次いで第1のPWM信号を非活性化レベルにし、次いで第2のPWM信号を非活性化レベルにする。
【0011】
また好ましくは、さらに、第1〜第N(ただし、Nは正の整数である)のデータ信号を含み、ボイスコイルモータの駆動力の大きさを指令する駆動指令値を生成する駆動指令部と、駆動指令値のうちの下位のM(ただし、MはNよりも小さな正の整数である)ビットのデータ信号を予め定められた周期で積算する積算器と、第1〜第Nのデータ信号のうちの上位の第1〜第(N−M)のデータ信号を受け、積算器においてM桁から(M+1)桁への桁上げが行なわれなかった場合は第1〜第(N−M)のデータ信号をそのまま出力し、積算器においてM桁から(M+1)桁への桁上げが行なわれた場合は第1〜第(N−M)のデータ信号をインクリメントして出力する信号補正部とを備える。PWM信号発生部は、信号補正部から出力された第1〜第(N−M)のデータ信号に基づいて、第1および第2のPWM信号を生成する。
【0012】
また、この発明に係る電子機器は、レンズと、レンズを移動させるボイスコイルモータと、上記モータ制御装置とを備えたものである。
【発明の効果】
【0013】
この発明に係るモータ制御装置では、ボイスコイルモータの駆動力をゼロにする場合でも、第1の固定時間だけ第1のPWM信号を活性化レベルにするとともに、第2の固定時間だけ第2のPWM信号を活性化レベルにする。したがって、PWM信号のパルス幅を広くすることができ、コイルに印加する電圧の立ち上がりおよび立ち下がりの鈍りの影響を軽減することができる。よって、ボイスコイルモータの駆動力を低消費電力で線形に制御することができる。
【図面の簡単な説明】
【0014】
【図1】この発明の実施の形態1によるデジタルカメラの要部を示すブロック図である。
【図2】図1に示したボイスコイルモータの原理的構成を示す図である。
【図3】図1に示したドライバの構成を示す回路図である。
【図4】図1に示したPWM信号発生部の構成を示すブロック図である。
【図5】従来のデジタルカメラの動作を示すタイムチャートである。
【図6】従来の問題点と本願発明の効果を説明するための図である。
【図7】本願のデジタルカメラの動作を示すタイムチャートである。
【図8】図4に示した信号発生回路の構成を示すブロック図である。
【図9】図8に示した信号発生回路の動作を示すタイムチャートである。
【図10】実施の形態1の問題点と実施の形態2の効果を説明するための図である。
【図11】この発明の実施の形態2によるデジタルカメラの要部を示すブロック図である。
【図12】図11に示したデジタルカメラの動作を示すタイムチャートである。
【発明を実施するための形態】
【0015】
[実施の形態1]
本願の実施の形態1のデジタルカメラは、図1に示すように、ジャイロセンサ1、位置センサ2、駆動指令部3、PWM信号発生部4、ドライバ5、ボイスコイルモータ(VCM)6、およびレンズ7を備える。ジャイロセンサ1は、デジタルカメラの手振れを検出する。位置センサ2は、レンズ7の位置を検出する。
【0016】
駆動指令部3は、ジャイロセンサ1および位置センサ2の検出結果に基づいて、レンズ7を駆動させるための駆動指令値DRを生成する。PWM信号発生部4は、駆動指令値DRに従ってPWM信号φA,φBを生成する。ドライバ5は、PWM信号φA,φBに従って駆動電圧VA,VBを生成し、駆動電圧VA,VBをボイスコイルモータ6に与える。ボイスコイルモータ6は、駆動電圧VA,VBによって駆動され、レンズ7を移動させる。レンズ7の移動により、デジタルカメラの手振れが補正されて、鮮明な画像が撮影される。
【0017】
図2は、ボイスコイルモータ6の原理的構成を示す図である。図2において、ボイスコイルモータ6は、所定の隙間を開けて平行に配置された2個の磁石10,11を含む。磁石10,11は、U字型の継鉄12の脚部12a,12bの内側に固定されている。磁石11および脚部12bは、ボイスコイル13に挿入されている。ボイスコイル13は、磁石11および脚部12bの長さ方向(図中の左右方向)にレンズ7とともに移動可能に設けられている。
【0018】
ボイスコイル13の一方端子13aおよび他方端子13bには、それぞれ駆動電圧VA,VBが印加される。ボイスコイル13に電流が流されると、その電流の極性に応じた方向に、その電流の値に応じた大きさの駆動力がボイスコイル13に発生する。したがって、ボイスコイル13に流す電流の極性および値を制御することにより、レンズ7に与える駆動力の方向および大きさを制御することができる。
【0019】
また、ドライバ5は、図3に示すように、PチャネルMOSトランジスタ20,21およびNチャネルMOSトランジスタ22,23を含む。トランジスタ20,22は第1のドライバを構成し、トランジスタ21,23は第2のドライバを構成する。トランジスタ20,21のソースはともに電源電圧VCCを受け、それらのドレインはそれぞれ出力ノードN20,N21に接続され、それらのゲートはそれぞれPWM信号φA,φBを受ける。トランジスタ22,23のソースはともに接地電圧GNDを受け、それらのドレインはそれぞれ出力ノードN20,N21に接続され、それらのゲートはそれぞれPWM信号φA,φBを受ける。出力ノードN20,N21は、それぞれボイスコイル13の端子13a,13bに接続される。
【0020】
PWM信号φA,φBがそれぞれ「L」レベルおよび「H」レベルにされると、トランジスタ20,23が導通するとともにトランジスタ21,22が非導通になり、ボイスコイル13に正電流が流れてレンズ7は正方向に移動する。PWM信号φA,φBがそれぞれ「H」レベルおよび「L」レベルにされると、トランジスタ21,22が導通するとともにトランジスタ20,23が非導通になり、ボイスコイル13に負電流が流れてレンズ7は負方向に移動する。
【0021】
また、PWM信号φA,φBがともに「L」レベルにされると、トランジスタ20,21が導通するとともにトランジスタ22,23が非導通になり、ボイスコイル13に電流は流れず、レンズ7は移動しない。PWM信号φA,φBがともに「H」レベルにされると、トランジスタ22,23が導通するとともにトランジスタ20,21が非導通になり、ボイスコイル13に電流は流れず、レンズ7は移動しない。
【0022】
また、PWM信号発生部4は、図4に示すように、クロック発生回路25、カウンタ26、および信号発生回路27を含む。クロック発生回路25は、所定周波数のクロック信号を発生する。カウンタ26は、クロック信号のパルス数をカウントする。カウンタ26のカウント値は、クロック信号に同期して0から1023まで1ずつ増加し、1023の後0に戻る。信号発生回路27は、カウンタ26のカウント値を参照し、駆動指令部3からの駆動指令値DRに従ってPWM信号φA,φBの各々を活性化レベルの「L」レベルまたは非活性化レベルの「H」レベルにする。
【0023】
次に、本願発明の理解を容易にするため、本願発明の基礎となる従来のデジタルカメラの動作について説明する。従来のデジタルカメラでは、駆動指令値DRが+104の場合、図5(a)に示すように、カウンタ26のカウント値が0〜104の期間に駆動電圧VAが正電圧にされ、レンズ7が正方向に駆動される。駆動指令値DRが+52の場合は、図5(b)に示すように、カウンタ26のカウント値が0〜52の期間に駆動電圧VAが正電圧にされ、レンズ7が正方向に駆動される。駆動指令値DRが正の値である場合は、図5(a)(b)に示すように、カウンタ26のカウント値が0〜1023の期間において駆動電圧VBが0Vに固定される。
【0024】
また、駆動指令値DRが0の場合は、図5(c)に示すように、カウンタ26のカウント値が0〜1023の期間において駆動電圧VA,VBが0Vに固定される。駆動指令値DRが−52の場合は、図5(d)に示すように、カウンタ26のカウント値が0〜52の期間に駆動電圧VBが正電圧にされ、レンズ7が負方向に駆動される。駆動指令値DRが−104の場合は、図5(e)に示すように、カウンタ26のカウント値が0〜104の期間に駆動電圧VBが正電圧にされ、レンズ7が負方向に駆動される。駆動指令値DRが負の値である場合は、図5(d)(e)に示すように、カウンタ26のカウント値が0〜1023の期間において駆動電圧VAが0Vに固定される。
【0025】
PWM方式では、ボイスコイル13にパルス電圧を印加するので、駆動電圧VAの立ち上がりおよび立ち下がりが鈍る。このため、ボイスコイル13に流れる電流Iは、図中の斜線を施した部分の面積に比例した値になる。また、駆動電圧VA,VBのパルス幅が狭い範囲では、ボイスコイルモータ6は駆動電圧VA,VBに応答せず、レンズ7は移動しない。したがって、図6に示すように、駆動指令値VRの絶対値が小さな範囲(たとえば、−60<VR<+60)では、駆動指令値VRの変化に対してコイル電流Iが線形に変化しない。このため、従来のデジタルカメラでは、レンズ7の位置を精密に制御することができず、レンズ7が正方向と負方向に振動し、雑音が発生する場合があった。
【0026】
次に、本願のデジタルカメラの動作について説明する。本願のデジタルカメラでは、駆動指令値DRが+104の場合、図7(a)に示すように、カウンタ26のカウント値が−184(すなわち840)のときにPWM信号φAが活性化レベルの「L」レベルに立ち下げられ、駆動電圧VAが「H」レベルに立ち上げられる。次に、カウンタ26のカウント値が0(すなわち1024)のときにPWM信号φBが活性化レベルの「L」レベルに立ち下げられ、駆動電圧VBが「H」レベルに立ち上げられる。
【0027】
次いで、カウンタ26のカウント値が40のときにPWM信号φAが非活性化レベルの「H」レベルに立ち下げられ、駆動電圧VAが「L」レベルに立ち下げられる。次に、カウンタ26のカウント値が120のときにPWM信号φBが非活性化レベルの「H」レベルに立ち上げられ、駆動電圧VBが「L」レベルに立ち下げられる。
【0028】
この例では、PWM信号φAが「L」レベルに立ち下げられたときに、駆動電圧VAが0Vから電源電圧VCCになるまでに40カウント値分の時間が掛かるものとしている。また、PWM信号φAが「H」レベルに立ち上げられたときに、駆動電圧VAが電源電圧VCCから0Vになるまでに40カウント値分の時間が掛かるものとしている。
【0029】
一方、PWM信号φBが「L」レベルに立ち下げられたときは、駆動電圧VBは0Vから電源電圧VCCに迅速に立ち上がる。これは、ボイスコイル13の一方端子13aに電源電圧VCCが既に印加されているからである。また、PWM信号φBが「H」レベルに立ち上げられたときは、駆動電圧VBは電源電圧VCCから0Vに迅速に立ち下がる。これは、ボイスコイル13の一方端子13aに0Vが既に印加されているからである。また、ボイスコイル13に60カウント値分の時間だけ電流を流しても、ボイスコイルモータ6は応答せず、レンズ7は移動しないものとする。
【0030】
0〜+60カウント値の期間では、駆動電圧VA,VBが両方とも「H」レベルになっているので、ボイスコイル13には電流Iが流れない。−164〜0カウント値の期間では、ボイスコイル13に正電流が流れる。+60〜+120カウント値の期間では、ボイスコイル13に負電流が流れる。ボイスコイル13に60カウント値分の時間だけ電流を流してもボイスコイルモータ6は応答しないので、結局、−104〜0カウント値の期間だけボイスコイル13が正方向に移動する。
【0031】
また図7(b)に示すように、駆動指令値DRが+52の場合、カウンタ26のカウント値が−132(すなわち892)のときにPWM信号φAが活性化レベルの「L」レベルに立ち下げられ、駆動電圧VAが「H」レベルに立ち上げられる。次に、カウンタ26のカウント値が0(すなわち1024)のときにPWM信号φBが活性化レベルの「L」レベルに立ち下げられ、駆動電圧VBが「H」レベルに立ち上げられる。
【0032】
次いで、カウンタ26のカウント値が40のときにPWM信号φAが非活性化レベルの「H」レベルに立ち下げられ、駆動電圧VAが「L」レベルに立ち下げられる。次に、カウンタ26のカウント値が120のときにPWM信号φBが非活性化レベルの「H」レベルに立ち上げられ、駆動電圧VBが「L」レベルに立ち下げられる。
【0033】
0〜+60カウント値の期間では、駆動電圧VA,VBが両方とも「H」レベルになっているので、ボイスコイル13には電流Iが流れない。−112〜0カウント値の期間では、ボイスコイル13に正電流が流れる。+60〜+120カウント値の期間では、ボイスコイル13に負電流が流れる。ボイスコイル13に60カウント値分の時間だけ電流を流してもボイスコイルモータ6は応答しないので、結局、−52〜0カウント値の期間だけボイスコイル13が正方向に移動する。
【0034】
また図7(c)に示すように、駆動指令値DRが0の場合、カウンタ26のカウント値が−80(すなわち944)のときにPWM信号φAが活性化レベルの「L」レベルに立ち下げられ、駆動電圧VAが「H」レベルに立ち上げられる。次に、カウンタ26のカウント値が0(すなわち1024)のときにPWM信号φBが活性化レベルの「L」レベルに立ち下げられ、駆動電圧VBが「H」レベルに立ち上げられる。
【0035】
次いで、カウンタ26のカウント値が40のときにPWM信号φAが非活性化レベルの「H」レベルに立ち下げられ、駆動電圧VAが「L」レベルに立ち下げられる。次に、カウンタ26のカウント値が120のときにPWM信号φBが非活性化レベルの「H」レベルに立ち上げられ、駆動電圧VBが「L」レベルに立ち下げられる。
【0036】
0〜+60カウント値の期間では、駆動電圧VA,VBが両方とも「H」レベルになっているので、ボイスコイル13には電流Iが流れない。−60〜0カウント値の期間では、ボイスコイル13に正電流が流れる。+60〜+120カウント値の期間では、ボイスコイル13に負電流が流れる。ボイスコイル13に60カウント値分の時間だけ電流を流してもボイスコイルモータ6は応答しないので、結局、ボイスコイル13は移動しない。
【0037】
また図7(d)に示すように、駆動指令値DRが−52の場合、カウンタ26のカウント値が−80(すなわち944)のときにPWM信号φAが活性化レベルの「L」レベルに立ち下げられ、駆動電圧VAが「H」レベルに立ち上げられる。次に、カウンタ26のカウント値が0(すなわち1024)のときにPWM信号φBが活性化レベルの「L」レベルに立ち下げられ、駆動電圧VBが「H」レベルに立ち上げられる。
【0038】
次いで、カウンタ26のカウント値が40のときにPWM信号φAが非活性化レベルの「H」レベルに立ち下げられ、駆動電圧VAが「L」レベルに立ち下げられる。次に、カウンタ26のカウント値が172のときにPWM信号φBが非活性化レベルの「H」レベルに立ち上げられ、駆動電圧VBが「L」レベルに立ち下げられる。
【0039】
0〜+60カウント値の期間では、駆動電圧VA,VBが両方とも「H」レベルになっているので、ボイスコイル13には電流Iが流れない。−60〜0カウント値の期間では、ボイスコイル13に正電流が流れる。+60〜+172カウント値の期間では、ボイスコイル13に負電流が流れる。ボイスコイル13に60カウント値分の時間だけ電流を流してもボイスコイルモータ6は応答しないので、結局、+120〜+172カウント値の期間だけボイスコイル13が負方向に移動する。
【0040】
また図7(e)に示すように、駆動指令値DRが−104の場合、カウンタ26のカウント値が−80(すなわち944)のときにPWM信号φAが活性化レベルの「L」レベルに立ち下げられ、駆動電圧VAが「H」レベルに立ち上げられる。次に、カウンタ26のカウント値が0(すなわち1024)のときにPWM信号φBが活性化レベルの「L」レベルに立ち下げられ、駆動電圧VBが「H」レベルに立ち上げられる。
【0041】
次いで、カウンタ26のカウント値が40のときにPWM信号φAが非活性化レベルの「H」レベルに立ち下げられ、駆動電圧VAが「L」レベルに立ち下げられる。次に、カウンタ26のカウント値が224のときにPWM信号φBが非活性化レベルの「H」レベルに立ち上げられ、駆動電圧VBが「L」レベルに立ち下げられる。
【0042】
0〜+60カウント値の期間では、駆動電圧VA,VBが両方とも「H」レベルになっているので、ボイスコイル13には電流Iが流れない。−60〜0カウント値の期間では、ボイスコイル13に正電流が流れる。+60〜+224カウント値の期間では、ボイスコイル13に負電流が流れる。ボイスコイル13に60カウント値分の時間だけ電流を流してもボイスコイルモータ6は応答しないので、結局、+120〜+224カウント値の期間だけボイスコイル13が負方向に移動する。
【0043】
この実施の形態1では、駆動指令値DRが0の場合でもPWM信号φ1,φ2の各々を所定時間ずつ活性化レベルにするので、PWM信号φA,φBのパルス幅を広くすることができ、ボイスコイル13に印加する電圧VA,VBの立ち上がりおよび立ち下がりの鈍りの影響を軽減することができる。したがって、図6に示すように、駆動指令値VRに対してコイル電流I(すなわちボイスコイルモータ6の駆動力)を線形に変化させることができる。よって、レンズ7の位置を精密に制御することができ、雑音の発生を防止することができる。また、クロック発生回路25で生成するクロック信号の周波数を高くする必要がないので、消費電力が増大することもない。
【0044】
[実施の形態2]
図8は、図4に示した信号発生回路27の構成をより詳細に示すブロック図である。図8において、信号発生回路27は、2段の副信号発生回路27a,27bを含む。駆動指令値DRは、13ビットのデータ信号D0〜D12を含む。データ信号D0は駆動力の方向を指令し、データ信号D1〜D12は駆動力の大きさを指令する。データ信号D11,D12は、切り捨てられ、使用されない。また、図4のカウンタ26は、カウント値として10ビットの信号C1〜C10を出力する。
【0045】
副信号発生回路27aは、駆動指令値DRに従って、PWM信号φ1,φ2と同じ周期で正駆動指令値DRAおよび負駆動指令値DRBを生成する。駆動指令値DRは13ビットのデータ信号D0〜D12であり、正駆動指令値DRAは10ビットのデータ信号DA1〜DA10であり、負駆動指令値DRBは10ビットのデータ信号DB1〜DB10である。
【0046】
データ信号D0が1(「H」レベル)の場合は、データ信号D1〜D10がデータ信号DA1〜DA10となり、データ信号DB1〜DB10で表わされる負駆動指令値DRBは0となる。データ信号D0が0(「L」レベル)の場合は、データ信号D1〜D10がデータ信号DB1〜DB10となり、データ信号DA1〜DA10で表わされる正駆動指令値DRAは0となる。副信号発生回路27bは、正駆動指令値DRA(すなわちデータ信号DA0〜DA10)、負駆動指令値DRB(すなわちデータ信号DB0〜DB10)、およびカウンタ26のカウント値(すなわち信号C1〜C10)に基づいて、PWM信号φ1,φ2を生成する。
【0047】
図9(a)〜(d)は、駆動指令値DRと、正駆動指令値DRAおよび負駆動指令値との関係を示すタイムチャートである。図9(a)に示すように、駆動指令値DRが+128=+27である場合、データ信号D0,D5がともに1であり、データ信号D1〜D4,D6〜D12はともに0である。したがって、データ信号DA5が1となり、データ信号DA1〜DA4,DA6〜DA10はともに0となり、正駆動指令値DRAは128となる。また、データ信号DB1〜DB10はともに0となり、負駆動指令値DRBは0となる。この場合、正駆動指令値DRAは、駆動指令値DRに一致する。
【0048】
また、図9(b)に示すように、駆動指令値DRが+129=+27+20である場合、データ信号D0,D5,D12がともに1であり、データ信号D1〜D4,D6〜D11はともに0である。したがって、データ信号DA5が1となり、データ信号DA1〜DA4,DA6〜DA10はともに0となり、正駆動指令値DRAは128となる。また、データ信号DB1〜DB10はともに0となり、負駆動指令値DRBは0となる。この場合、正駆動指令値DRAは、駆動指令値DRよりも1だけ小さくなる。
【0049】
また、図9(c)に示すように、駆動指令値DRが+130=+27+21である場合、データ信号D0,D5,D11がともに1であり、データ信号D1〜D4,D6〜D10,D12はともに0である。したがって、データ信号DA5が1となり、データ信号DA1〜DA4,DA6〜DA10はともに0となり、正駆動指令値DRAは128となる。また、データ信号DB1〜DB10はともに0となり、負駆動指令値DRBは0となる。この場合、正駆動指令値DRAは、駆動指令値DRよりも2だけ小さくなる。
【0050】
また、図9(d)に示すように、駆動指令値DRが+131=+27+21+20である場合、データ信号D0,D5,D11,D12がともに1であり、データ信号D1〜D4,D6〜D10はともに0である。したがって、データ信号DA5が1となり、データ信号DA1〜DA4,DA6〜DA10はともに0となり、正駆動指令値DRAは128となる。また、データ信号DB1〜DB10はともに0となり、負駆動指令値DRBは0となる。この場合、正駆動指令値DRAは、駆動指令値DRよりも3だけ小さくなる。
【0051】
このように、実施の形態1では、駆動指令値DRに含まれる12ビットのデータ信号D1〜D12のうちの下位の2ビットのデータ信号D11,D12を切り捨てて正駆動指令値DRAおよび負駆動指令値DRBを生成する。このため、データ信号D1〜D10が同じ場合は、データ信号D11,D12が00,01,10,11と変化しても、正駆動指令値DRAおよび負駆動指令値DRBは変化しない。このため、図10に示すように、駆動指令値VRを連続的に変化させても、コイル電流I(すなわち駆動力)はステップ状に変化する。したがって、コイル電流Iを滑らかに変化させることができない。この実施の形態2では、この問題が解決される。
【0052】
図11は、実施の形態2によるデジタルカメラの要部を示すブロック図であって、図8と対比される図である。図11において、このデジタルカメラが実施の形態1のデジタルカメラと異なる点は、積算器30および信号補正部31が追加されている点である。積算器30は、PWM信号φ1,φ2と同じ周期でデータ信号D11,D12を積算し、2桁から3桁への桁上げがない場合は信号φ30を非活性化レベルの「L」レベルにし、2桁から3桁への桁上げがあった場合は信号φ30を活性化レベルの「H」レベルにする。
【0053】
信号補正部31は、データ信号D1〜D10を受け、信号φ30が「L」レベルの場合は、データ信号D1〜D10をそのまま副信号発生回路27aに与え、信号φ30が「H」レベルの場合は、データ信号D1〜D10をインクリメント(+1)して副信号発生回路27aに与える。
【0054】
図12(a)〜(d)は、駆動指令値DRと、正駆動指令値DRAおよび負駆動指令値との関係を示すタイムチャートであって、図9(a)〜(d)と対比される図である。図12(a)に示すように、駆動指令値DRが+128=+27である場合、データ信号D0,D5がともに1であり、データ信号D1〜D4,D6〜D12はともに0である。したがって、データ信号DA5が1となり、データ信号DA1〜DA4,DA6〜DA10はともに0となり、正駆動指令値DRAは128となる。また、データ信号DB1〜DB10はともに0となり、負駆動指令値DRBは0となる。
【0055】
この場合、データ信号D11,D12が00であるので、積算器30の積算値は0のまま変化せず、信号φ30は「L」レベルのまま変化せず、データ信号D1〜D10のインクリメントは行なわれない。したがって、正駆動指令値DRAは、駆動指令値DRに一致する。
【0056】
また、図12(b)に示すように、駆動指令値DRが+129=+27+20である場合、データ信号D0,D5,D12がともに1であり、データ信号D1〜D4,D6〜D11はともに0である。したがって、データ信号DA5が1となり、データ信号DA1〜DA4,DA6〜DA10はともに0となり、正駆動指令値DRAの初期値は128となる。また、データ信号DB1〜DB10はともに0となり、負駆動指令値DRBは0となる。
【0057】
この場合、データ信号D11,D12が01であるので、積算器30の積算値(余り量)は1ずつ増加し、4回の積算を行なったときに積算値が011から100に変化し(時刻t3)、積算器30において2桁から3桁への桁上げが発生する。これにより、信号φ30が「H」レベルになってデータ信号D1〜D10がインクリメントされ、正駆動指令値DRAが132になる。したがって、4回の正駆動指令値DRAの平均値は129となり、駆動指令値DRに一致する。
【0058】
また、図12(c)に示すように、駆動指令値DRが+130=+27+21である場合、データ信号D0,D5,D11がともに1であり、データ信号D1〜D4,D6〜D10,D12はともに0である。したがって、データ信号DA5が1となり、データ信号DA1〜DA4,DA6〜DA10はともに0となり、正駆動指令値DRAの初期値は128となる。また、データ信号DB1〜DB10はともに0となり、負駆動指令値DRBは0となる。
【0059】
この場合、データ信号D11,D12が10であるので、積算器30の積算値(余り量)は2ずつ増加し、2回の積算を行なったときに積算値が010から100に変化し(時刻t1,t3)、積算器30において2桁から3桁への桁上げが発生する。これにより、信号φ30が「H」レベルになってデータ信号D1〜D10がインクリメントされ、正駆動指令値DRAが132になる。したがって、4回の正駆動指令値DRAの平均値は130となり、駆動指令値DRに一致する。
【0060】
また、図9(d)に示すように、駆動指令値DRが+131=+27+21+20である場合、データ信号D0,D5,D11,D12がともに1であり、データ信号D1〜D4,D6〜D10はともに0である。したがって、データ信号DA5が1となり、データ信号DA1〜DA4,DA6〜DA10はともに0となり、正駆動指令値DRAの初期値は128となる。また、データ信号DB1〜DB10はともに0となり、負駆動指令値DRBは0となる。
【0061】
この場合、データ信号D11,D12が11であるので、積算器30の積算値(余り量)は3ずつ増加し、2回の積算を行なったときに積算値が011から110に変化し(時刻t1)、積算器30において2桁から3桁への桁上げが発生する。これにより、信号φ30が「H」レベルになってデータ信号D1〜D10がインクリメントされ、正駆動指令値DRAが132になる。また、3回の積算を行なったときに積算値が110から001に変化し(時刻t2)、積算器30において2桁から3桁への桁上げが発生する。これにより、信号φ30が「H」レベルになってデータ信号D1〜D10がインクリメントされ、正駆動指令値DRAが132になる。
【0062】
また、4回の積算を行なったときに積算値が001から100に変化し(時刻t3)、積算器30において2桁から3桁への桁上げが発生する。これにより、信号φ30が「H」レベルになってデータ信号D1〜D10がインクリメントされ、正駆動指令値DRAが132になる。したがって、4回の正駆動指令値DRAの平均値は131となり、駆動指令値DRに一致する。
【0063】
このように、実施の形態2では、駆動指令値DRに含まれる12ビットのデータ信号D1〜D12のうちの下位の2ビットのデータ信号D11,D12を積算し、2桁から3桁への桁上げが発生する場合はデータ信号D1〜D10をインクリメントする。このため、4個の正駆動指令値DRAの平均値は、駆動指令値DRAに一致する。同様に、4個の負駆動指令値DRBの平均値は、駆動指令値DRAの大きさに一致する。このため、図10に示すように、駆動指令値VRを連続的に変化させると、コイル電流I(すなわち駆動力)も連続的に変化する。したがって、コイル電流Iを滑らかに変化させることができる。
【0064】
今回開示された実施の形態はすべての点で例示であって制限的なものではないと考えられるべきである。本発明の範囲は上記した説明ではなくて特許請求の範囲によって示され、特許請求の範囲と均等の意味および範囲内でのすべての変更が含まれることが意図される。
【符号の説明】
【0065】
1 ジャイロセンサ、2 位置センサ、3 駆動指令部、4 PWM信号発生部、5 ドライバ、6 ボイスコイルモータ、7 レンズ、10,11 磁石、12 継鉄、12a,12b 脚部、13 ボイスコイル、13a,13b 端子、20,21 PチャネルMOSトランジスタ、22,23 NチャネルMOSトランジスタ、25 クロック発生回路、26 カウンタ、27 信号発生回路、27a,27b 副信号発生回路、30 積算器、31 信号補正部。
【技術分野】
【0001】
この発明はモータ制御装置およびそれを用いた電子機器に関し、特に、ボイスコイルモータを制御するモータ制御装置と、それを用いた電子機器に関する。
【背景技術】
【0002】
従来より、ビデオカメラ、デジタルカメラ、スチルカメラ、プロジェクタなどの電子機器には、レンズと、レンズを移動させるモータと、モータを制御するモータ制御装置とが設けられている(たとえば、特許文献1参照)。また、モータとしてボイスコイルモータを使用するものもある(たとえば、特許文献2参照)。
【先行技術文献】
【特許文献】
【0003】
【特許文献1】特開2008−111942号公報
【特許文献2】特開2009−229602号公報
【発明の概要】
【発明が解決しようとする課題】
【0004】
ボイスコイルモータでは、コイルに流す電流の方向および値を制御して、モータの駆動力の方向および大きさを制御する。コイルに電流を流す第1の方法としては、コイルの端子間にアナログ電圧を印加する方法がある。この第1の方法では、コイルに流す電流(すなわち駆動力)を線形に変化させることができるが、消費電力が大きくなると言う問題がある。
【0005】
また、コイルに電流を流す第2の方法としては、コイルの端子間にPWM(Pulse Width Modulation:パルス幅変調)方式で電圧を印加する方法がある。この第2の方法では、消費電力を小さくできるが、コイルに流す電流(すなわち駆動力)を線形に変化させることができないと言う問題がある。
【0006】
第2の方法において、電流の線形性を改善する方法として、PWM信号のデューティ比を変化させるステップの数を増やすことも考えられるが、そのためにはPWM信号を生成するためのクロック信号の周波数を高める必要があり、消費電力が増大してしまう。
【0007】
また、コイルにパルス電圧を印加すると、電圧の立ち上がりおよび立ち下がりが鈍る。このため、たとえPWM信号のデューティ比を変化させるステップの数を増やしても、PWM信号のパルス幅が狭い範囲では電流を線形に変化させることができない(図5および図6参照)。
【0008】
それゆえに、この発明の主たる目的は、ボイスコイルモータの駆動力を低消費電力で線形に制御することが可能なモータ制御装置と、それを用いた電子機器を提供することである。
【課題を解決するための手段】
【0009】
この発明に係るモータ制御装置は、ボイスコイルモータを制御するモータ制御装置であって、第1および第2のPWM信号を発生するPWM信号発生部と、第1のPWM信号が活性化レベルの場合はボイスコイルモータのコイルの一方端子に電源電圧を印加し、第1のPWM信号が非活性化レベルの場合はコイルの一方端子に基準電圧を印加する第1のドライバと、第2のPWM信号が活性化レベルの場合はコイルの他方端子に電源電圧を印加し、第2のPWM信号が非活性化レベルの場合はコイルの他方端子に基準電圧を印加する第2のドライバとを備えたものである。PWM信号発生部は、ボイスコイルモータの駆動力をゼロにする場合は、予め定められた第1の固定時間だけ第1のPWM信号を活性化レベルにするとともに、予め定められた第2の固定時間だけ第2のPWM信号を活性化レベルにし、ボイスコイルモータに正方向の駆動力を発生させる場合は、駆動力の大きさに応じた長さの第1の可変時間と第1の固定時間だけ第1のPWM信号を活性化レベルにするとともに、第2の固定時間だけ第2のPWM信号を活性化レベルにし、ボイスコイルモータに負方向の駆動力を発生させる場合は、第1の固定時間だけ第1のPWM信号を活性化レベルにするとともに、第2の固定時間と駆動力の大きさに応じた長さの第2の可変時間だけ第2のPWM信号を活性化レベルにする。
【0010】
好ましくは、PWM信号発生部は、第1のPWM信号を活性化レベルにし、次いで第2のPWM信号を活性化レベルにし、次いで第1のPWM信号を非活性化レベルにし、次いで第2のPWM信号を非活性化レベルにする。
【0011】
また好ましくは、さらに、第1〜第N(ただし、Nは正の整数である)のデータ信号を含み、ボイスコイルモータの駆動力の大きさを指令する駆動指令値を生成する駆動指令部と、駆動指令値のうちの下位のM(ただし、MはNよりも小さな正の整数である)ビットのデータ信号を予め定められた周期で積算する積算器と、第1〜第Nのデータ信号のうちの上位の第1〜第(N−M)のデータ信号を受け、積算器においてM桁から(M+1)桁への桁上げが行なわれなかった場合は第1〜第(N−M)のデータ信号をそのまま出力し、積算器においてM桁から(M+1)桁への桁上げが行なわれた場合は第1〜第(N−M)のデータ信号をインクリメントして出力する信号補正部とを備える。PWM信号発生部は、信号補正部から出力された第1〜第(N−M)のデータ信号に基づいて、第1および第2のPWM信号を生成する。
【0012】
また、この発明に係る電子機器は、レンズと、レンズを移動させるボイスコイルモータと、上記モータ制御装置とを備えたものである。
【発明の効果】
【0013】
この発明に係るモータ制御装置では、ボイスコイルモータの駆動力をゼロにする場合でも、第1の固定時間だけ第1のPWM信号を活性化レベルにするとともに、第2の固定時間だけ第2のPWM信号を活性化レベルにする。したがって、PWM信号のパルス幅を広くすることができ、コイルに印加する電圧の立ち上がりおよび立ち下がりの鈍りの影響を軽減することができる。よって、ボイスコイルモータの駆動力を低消費電力で線形に制御することができる。
【図面の簡単な説明】
【0014】
【図1】この発明の実施の形態1によるデジタルカメラの要部を示すブロック図である。
【図2】図1に示したボイスコイルモータの原理的構成を示す図である。
【図3】図1に示したドライバの構成を示す回路図である。
【図4】図1に示したPWM信号発生部の構成を示すブロック図である。
【図5】従来のデジタルカメラの動作を示すタイムチャートである。
【図6】従来の問題点と本願発明の効果を説明するための図である。
【図7】本願のデジタルカメラの動作を示すタイムチャートである。
【図8】図4に示した信号発生回路の構成を示すブロック図である。
【図9】図8に示した信号発生回路の動作を示すタイムチャートである。
【図10】実施の形態1の問題点と実施の形態2の効果を説明するための図である。
【図11】この発明の実施の形態2によるデジタルカメラの要部を示すブロック図である。
【図12】図11に示したデジタルカメラの動作を示すタイムチャートである。
【発明を実施するための形態】
【0015】
[実施の形態1]
本願の実施の形態1のデジタルカメラは、図1に示すように、ジャイロセンサ1、位置センサ2、駆動指令部3、PWM信号発生部4、ドライバ5、ボイスコイルモータ(VCM)6、およびレンズ7を備える。ジャイロセンサ1は、デジタルカメラの手振れを検出する。位置センサ2は、レンズ7の位置を検出する。
【0016】
駆動指令部3は、ジャイロセンサ1および位置センサ2の検出結果に基づいて、レンズ7を駆動させるための駆動指令値DRを生成する。PWM信号発生部4は、駆動指令値DRに従ってPWM信号φA,φBを生成する。ドライバ5は、PWM信号φA,φBに従って駆動電圧VA,VBを生成し、駆動電圧VA,VBをボイスコイルモータ6に与える。ボイスコイルモータ6は、駆動電圧VA,VBによって駆動され、レンズ7を移動させる。レンズ7の移動により、デジタルカメラの手振れが補正されて、鮮明な画像が撮影される。
【0017】
図2は、ボイスコイルモータ6の原理的構成を示す図である。図2において、ボイスコイルモータ6は、所定の隙間を開けて平行に配置された2個の磁石10,11を含む。磁石10,11は、U字型の継鉄12の脚部12a,12bの内側に固定されている。磁石11および脚部12bは、ボイスコイル13に挿入されている。ボイスコイル13は、磁石11および脚部12bの長さ方向(図中の左右方向)にレンズ7とともに移動可能に設けられている。
【0018】
ボイスコイル13の一方端子13aおよび他方端子13bには、それぞれ駆動電圧VA,VBが印加される。ボイスコイル13に電流が流されると、その電流の極性に応じた方向に、その電流の値に応じた大きさの駆動力がボイスコイル13に発生する。したがって、ボイスコイル13に流す電流の極性および値を制御することにより、レンズ7に与える駆動力の方向および大きさを制御することができる。
【0019】
また、ドライバ5は、図3に示すように、PチャネルMOSトランジスタ20,21およびNチャネルMOSトランジスタ22,23を含む。トランジスタ20,22は第1のドライバを構成し、トランジスタ21,23は第2のドライバを構成する。トランジスタ20,21のソースはともに電源電圧VCCを受け、それらのドレインはそれぞれ出力ノードN20,N21に接続され、それらのゲートはそれぞれPWM信号φA,φBを受ける。トランジスタ22,23のソースはともに接地電圧GNDを受け、それらのドレインはそれぞれ出力ノードN20,N21に接続され、それらのゲートはそれぞれPWM信号φA,φBを受ける。出力ノードN20,N21は、それぞれボイスコイル13の端子13a,13bに接続される。
【0020】
PWM信号φA,φBがそれぞれ「L」レベルおよび「H」レベルにされると、トランジスタ20,23が導通するとともにトランジスタ21,22が非導通になり、ボイスコイル13に正電流が流れてレンズ7は正方向に移動する。PWM信号φA,φBがそれぞれ「H」レベルおよび「L」レベルにされると、トランジスタ21,22が導通するとともにトランジスタ20,23が非導通になり、ボイスコイル13に負電流が流れてレンズ7は負方向に移動する。
【0021】
また、PWM信号φA,φBがともに「L」レベルにされると、トランジスタ20,21が導通するとともにトランジスタ22,23が非導通になり、ボイスコイル13に電流は流れず、レンズ7は移動しない。PWM信号φA,φBがともに「H」レベルにされると、トランジスタ22,23が導通するとともにトランジスタ20,21が非導通になり、ボイスコイル13に電流は流れず、レンズ7は移動しない。
【0022】
また、PWM信号発生部4は、図4に示すように、クロック発生回路25、カウンタ26、および信号発生回路27を含む。クロック発生回路25は、所定周波数のクロック信号を発生する。カウンタ26は、クロック信号のパルス数をカウントする。カウンタ26のカウント値は、クロック信号に同期して0から1023まで1ずつ増加し、1023の後0に戻る。信号発生回路27は、カウンタ26のカウント値を参照し、駆動指令部3からの駆動指令値DRに従ってPWM信号φA,φBの各々を活性化レベルの「L」レベルまたは非活性化レベルの「H」レベルにする。
【0023】
次に、本願発明の理解を容易にするため、本願発明の基礎となる従来のデジタルカメラの動作について説明する。従来のデジタルカメラでは、駆動指令値DRが+104の場合、図5(a)に示すように、カウンタ26のカウント値が0〜104の期間に駆動電圧VAが正電圧にされ、レンズ7が正方向に駆動される。駆動指令値DRが+52の場合は、図5(b)に示すように、カウンタ26のカウント値が0〜52の期間に駆動電圧VAが正電圧にされ、レンズ7が正方向に駆動される。駆動指令値DRが正の値である場合は、図5(a)(b)に示すように、カウンタ26のカウント値が0〜1023の期間において駆動電圧VBが0Vに固定される。
【0024】
また、駆動指令値DRが0の場合は、図5(c)に示すように、カウンタ26のカウント値が0〜1023の期間において駆動電圧VA,VBが0Vに固定される。駆動指令値DRが−52の場合は、図5(d)に示すように、カウンタ26のカウント値が0〜52の期間に駆動電圧VBが正電圧にされ、レンズ7が負方向に駆動される。駆動指令値DRが−104の場合は、図5(e)に示すように、カウンタ26のカウント値が0〜104の期間に駆動電圧VBが正電圧にされ、レンズ7が負方向に駆動される。駆動指令値DRが負の値である場合は、図5(d)(e)に示すように、カウンタ26のカウント値が0〜1023の期間において駆動電圧VAが0Vに固定される。
【0025】
PWM方式では、ボイスコイル13にパルス電圧を印加するので、駆動電圧VAの立ち上がりおよび立ち下がりが鈍る。このため、ボイスコイル13に流れる電流Iは、図中の斜線を施した部分の面積に比例した値になる。また、駆動電圧VA,VBのパルス幅が狭い範囲では、ボイスコイルモータ6は駆動電圧VA,VBに応答せず、レンズ7は移動しない。したがって、図6に示すように、駆動指令値VRの絶対値が小さな範囲(たとえば、−60<VR<+60)では、駆動指令値VRの変化に対してコイル電流Iが線形に変化しない。このため、従来のデジタルカメラでは、レンズ7の位置を精密に制御することができず、レンズ7が正方向と負方向に振動し、雑音が発生する場合があった。
【0026】
次に、本願のデジタルカメラの動作について説明する。本願のデジタルカメラでは、駆動指令値DRが+104の場合、図7(a)に示すように、カウンタ26のカウント値が−184(すなわち840)のときにPWM信号φAが活性化レベルの「L」レベルに立ち下げられ、駆動電圧VAが「H」レベルに立ち上げられる。次に、カウンタ26のカウント値が0(すなわち1024)のときにPWM信号φBが活性化レベルの「L」レベルに立ち下げられ、駆動電圧VBが「H」レベルに立ち上げられる。
【0027】
次いで、カウンタ26のカウント値が40のときにPWM信号φAが非活性化レベルの「H」レベルに立ち下げられ、駆動電圧VAが「L」レベルに立ち下げられる。次に、カウンタ26のカウント値が120のときにPWM信号φBが非活性化レベルの「H」レベルに立ち上げられ、駆動電圧VBが「L」レベルに立ち下げられる。
【0028】
この例では、PWM信号φAが「L」レベルに立ち下げられたときに、駆動電圧VAが0Vから電源電圧VCCになるまでに40カウント値分の時間が掛かるものとしている。また、PWM信号φAが「H」レベルに立ち上げられたときに、駆動電圧VAが電源電圧VCCから0Vになるまでに40カウント値分の時間が掛かるものとしている。
【0029】
一方、PWM信号φBが「L」レベルに立ち下げられたときは、駆動電圧VBは0Vから電源電圧VCCに迅速に立ち上がる。これは、ボイスコイル13の一方端子13aに電源電圧VCCが既に印加されているからである。また、PWM信号φBが「H」レベルに立ち上げられたときは、駆動電圧VBは電源電圧VCCから0Vに迅速に立ち下がる。これは、ボイスコイル13の一方端子13aに0Vが既に印加されているからである。また、ボイスコイル13に60カウント値分の時間だけ電流を流しても、ボイスコイルモータ6は応答せず、レンズ7は移動しないものとする。
【0030】
0〜+60カウント値の期間では、駆動電圧VA,VBが両方とも「H」レベルになっているので、ボイスコイル13には電流Iが流れない。−164〜0カウント値の期間では、ボイスコイル13に正電流が流れる。+60〜+120カウント値の期間では、ボイスコイル13に負電流が流れる。ボイスコイル13に60カウント値分の時間だけ電流を流してもボイスコイルモータ6は応答しないので、結局、−104〜0カウント値の期間だけボイスコイル13が正方向に移動する。
【0031】
また図7(b)に示すように、駆動指令値DRが+52の場合、カウンタ26のカウント値が−132(すなわち892)のときにPWM信号φAが活性化レベルの「L」レベルに立ち下げられ、駆動電圧VAが「H」レベルに立ち上げられる。次に、カウンタ26のカウント値が0(すなわち1024)のときにPWM信号φBが活性化レベルの「L」レベルに立ち下げられ、駆動電圧VBが「H」レベルに立ち上げられる。
【0032】
次いで、カウンタ26のカウント値が40のときにPWM信号φAが非活性化レベルの「H」レベルに立ち下げられ、駆動電圧VAが「L」レベルに立ち下げられる。次に、カウンタ26のカウント値が120のときにPWM信号φBが非活性化レベルの「H」レベルに立ち上げられ、駆動電圧VBが「L」レベルに立ち下げられる。
【0033】
0〜+60カウント値の期間では、駆動電圧VA,VBが両方とも「H」レベルになっているので、ボイスコイル13には電流Iが流れない。−112〜0カウント値の期間では、ボイスコイル13に正電流が流れる。+60〜+120カウント値の期間では、ボイスコイル13に負電流が流れる。ボイスコイル13に60カウント値分の時間だけ電流を流してもボイスコイルモータ6は応答しないので、結局、−52〜0カウント値の期間だけボイスコイル13が正方向に移動する。
【0034】
また図7(c)に示すように、駆動指令値DRが0の場合、カウンタ26のカウント値が−80(すなわち944)のときにPWM信号φAが活性化レベルの「L」レベルに立ち下げられ、駆動電圧VAが「H」レベルに立ち上げられる。次に、カウンタ26のカウント値が0(すなわち1024)のときにPWM信号φBが活性化レベルの「L」レベルに立ち下げられ、駆動電圧VBが「H」レベルに立ち上げられる。
【0035】
次いで、カウンタ26のカウント値が40のときにPWM信号φAが非活性化レベルの「H」レベルに立ち下げられ、駆動電圧VAが「L」レベルに立ち下げられる。次に、カウンタ26のカウント値が120のときにPWM信号φBが非活性化レベルの「H」レベルに立ち上げられ、駆動電圧VBが「L」レベルに立ち下げられる。
【0036】
0〜+60カウント値の期間では、駆動電圧VA,VBが両方とも「H」レベルになっているので、ボイスコイル13には電流Iが流れない。−60〜0カウント値の期間では、ボイスコイル13に正電流が流れる。+60〜+120カウント値の期間では、ボイスコイル13に負電流が流れる。ボイスコイル13に60カウント値分の時間だけ電流を流してもボイスコイルモータ6は応答しないので、結局、ボイスコイル13は移動しない。
【0037】
また図7(d)に示すように、駆動指令値DRが−52の場合、カウンタ26のカウント値が−80(すなわち944)のときにPWM信号φAが活性化レベルの「L」レベルに立ち下げられ、駆動電圧VAが「H」レベルに立ち上げられる。次に、カウンタ26のカウント値が0(すなわち1024)のときにPWM信号φBが活性化レベルの「L」レベルに立ち下げられ、駆動電圧VBが「H」レベルに立ち上げられる。
【0038】
次いで、カウンタ26のカウント値が40のときにPWM信号φAが非活性化レベルの「H」レベルに立ち下げられ、駆動電圧VAが「L」レベルに立ち下げられる。次に、カウンタ26のカウント値が172のときにPWM信号φBが非活性化レベルの「H」レベルに立ち上げられ、駆動電圧VBが「L」レベルに立ち下げられる。
【0039】
0〜+60カウント値の期間では、駆動電圧VA,VBが両方とも「H」レベルになっているので、ボイスコイル13には電流Iが流れない。−60〜0カウント値の期間では、ボイスコイル13に正電流が流れる。+60〜+172カウント値の期間では、ボイスコイル13に負電流が流れる。ボイスコイル13に60カウント値分の時間だけ電流を流してもボイスコイルモータ6は応答しないので、結局、+120〜+172カウント値の期間だけボイスコイル13が負方向に移動する。
【0040】
また図7(e)に示すように、駆動指令値DRが−104の場合、カウンタ26のカウント値が−80(すなわち944)のときにPWM信号φAが活性化レベルの「L」レベルに立ち下げられ、駆動電圧VAが「H」レベルに立ち上げられる。次に、カウンタ26のカウント値が0(すなわち1024)のときにPWM信号φBが活性化レベルの「L」レベルに立ち下げられ、駆動電圧VBが「H」レベルに立ち上げられる。
【0041】
次いで、カウンタ26のカウント値が40のときにPWM信号φAが非活性化レベルの「H」レベルに立ち下げられ、駆動電圧VAが「L」レベルに立ち下げられる。次に、カウンタ26のカウント値が224のときにPWM信号φBが非活性化レベルの「H」レベルに立ち上げられ、駆動電圧VBが「L」レベルに立ち下げられる。
【0042】
0〜+60カウント値の期間では、駆動電圧VA,VBが両方とも「H」レベルになっているので、ボイスコイル13には電流Iが流れない。−60〜0カウント値の期間では、ボイスコイル13に正電流が流れる。+60〜+224カウント値の期間では、ボイスコイル13に負電流が流れる。ボイスコイル13に60カウント値分の時間だけ電流を流してもボイスコイルモータ6は応答しないので、結局、+120〜+224カウント値の期間だけボイスコイル13が負方向に移動する。
【0043】
この実施の形態1では、駆動指令値DRが0の場合でもPWM信号φ1,φ2の各々を所定時間ずつ活性化レベルにするので、PWM信号φA,φBのパルス幅を広くすることができ、ボイスコイル13に印加する電圧VA,VBの立ち上がりおよび立ち下がりの鈍りの影響を軽減することができる。したがって、図6に示すように、駆動指令値VRに対してコイル電流I(すなわちボイスコイルモータ6の駆動力)を線形に変化させることができる。よって、レンズ7の位置を精密に制御することができ、雑音の発生を防止することができる。また、クロック発生回路25で生成するクロック信号の周波数を高くする必要がないので、消費電力が増大することもない。
【0044】
[実施の形態2]
図8は、図4に示した信号発生回路27の構成をより詳細に示すブロック図である。図8において、信号発生回路27は、2段の副信号発生回路27a,27bを含む。駆動指令値DRは、13ビットのデータ信号D0〜D12を含む。データ信号D0は駆動力の方向を指令し、データ信号D1〜D12は駆動力の大きさを指令する。データ信号D11,D12は、切り捨てられ、使用されない。また、図4のカウンタ26は、カウント値として10ビットの信号C1〜C10を出力する。
【0045】
副信号発生回路27aは、駆動指令値DRに従って、PWM信号φ1,φ2と同じ周期で正駆動指令値DRAおよび負駆動指令値DRBを生成する。駆動指令値DRは13ビットのデータ信号D0〜D12であり、正駆動指令値DRAは10ビットのデータ信号DA1〜DA10であり、負駆動指令値DRBは10ビットのデータ信号DB1〜DB10である。
【0046】
データ信号D0が1(「H」レベル)の場合は、データ信号D1〜D10がデータ信号DA1〜DA10となり、データ信号DB1〜DB10で表わされる負駆動指令値DRBは0となる。データ信号D0が0(「L」レベル)の場合は、データ信号D1〜D10がデータ信号DB1〜DB10となり、データ信号DA1〜DA10で表わされる正駆動指令値DRAは0となる。副信号発生回路27bは、正駆動指令値DRA(すなわちデータ信号DA0〜DA10)、負駆動指令値DRB(すなわちデータ信号DB0〜DB10)、およびカウンタ26のカウント値(すなわち信号C1〜C10)に基づいて、PWM信号φ1,φ2を生成する。
【0047】
図9(a)〜(d)は、駆動指令値DRと、正駆動指令値DRAおよび負駆動指令値との関係を示すタイムチャートである。図9(a)に示すように、駆動指令値DRが+128=+27である場合、データ信号D0,D5がともに1であり、データ信号D1〜D4,D6〜D12はともに0である。したがって、データ信号DA5が1となり、データ信号DA1〜DA4,DA6〜DA10はともに0となり、正駆動指令値DRAは128となる。また、データ信号DB1〜DB10はともに0となり、負駆動指令値DRBは0となる。この場合、正駆動指令値DRAは、駆動指令値DRに一致する。
【0048】
また、図9(b)に示すように、駆動指令値DRが+129=+27+20である場合、データ信号D0,D5,D12がともに1であり、データ信号D1〜D4,D6〜D11はともに0である。したがって、データ信号DA5が1となり、データ信号DA1〜DA4,DA6〜DA10はともに0となり、正駆動指令値DRAは128となる。また、データ信号DB1〜DB10はともに0となり、負駆動指令値DRBは0となる。この場合、正駆動指令値DRAは、駆動指令値DRよりも1だけ小さくなる。
【0049】
また、図9(c)に示すように、駆動指令値DRが+130=+27+21である場合、データ信号D0,D5,D11がともに1であり、データ信号D1〜D4,D6〜D10,D12はともに0である。したがって、データ信号DA5が1となり、データ信号DA1〜DA4,DA6〜DA10はともに0となり、正駆動指令値DRAは128となる。また、データ信号DB1〜DB10はともに0となり、負駆動指令値DRBは0となる。この場合、正駆動指令値DRAは、駆動指令値DRよりも2だけ小さくなる。
【0050】
また、図9(d)に示すように、駆動指令値DRが+131=+27+21+20である場合、データ信号D0,D5,D11,D12がともに1であり、データ信号D1〜D4,D6〜D10はともに0である。したがって、データ信号DA5が1となり、データ信号DA1〜DA4,DA6〜DA10はともに0となり、正駆動指令値DRAは128となる。また、データ信号DB1〜DB10はともに0となり、負駆動指令値DRBは0となる。この場合、正駆動指令値DRAは、駆動指令値DRよりも3だけ小さくなる。
【0051】
このように、実施の形態1では、駆動指令値DRに含まれる12ビットのデータ信号D1〜D12のうちの下位の2ビットのデータ信号D11,D12を切り捨てて正駆動指令値DRAおよび負駆動指令値DRBを生成する。このため、データ信号D1〜D10が同じ場合は、データ信号D11,D12が00,01,10,11と変化しても、正駆動指令値DRAおよび負駆動指令値DRBは変化しない。このため、図10に示すように、駆動指令値VRを連続的に変化させても、コイル電流I(すなわち駆動力)はステップ状に変化する。したがって、コイル電流Iを滑らかに変化させることができない。この実施の形態2では、この問題が解決される。
【0052】
図11は、実施の形態2によるデジタルカメラの要部を示すブロック図であって、図8と対比される図である。図11において、このデジタルカメラが実施の形態1のデジタルカメラと異なる点は、積算器30および信号補正部31が追加されている点である。積算器30は、PWM信号φ1,φ2と同じ周期でデータ信号D11,D12を積算し、2桁から3桁への桁上げがない場合は信号φ30を非活性化レベルの「L」レベルにし、2桁から3桁への桁上げがあった場合は信号φ30を活性化レベルの「H」レベルにする。
【0053】
信号補正部31は、データ信号D1〜D10を受け、信号φ30が「L」レベルの場合は、データ信号D1〜D10をそのまま副信号発生回路27aに与え、信号φ30が「H」レベルの場合は、データ信号D1〜D10をインクリメント(+1)して副信号発生回路27aに与える。
【0054】
図12(a)〜(d)は、駆動指令値DRと、正駆動指令値DRAおよび負駆動指令値との関係を示すタイムチャートであって、図9(a)〜(d)と対比される図である。図12(a)に示すように、駆動指令値DRが+128=+27である場合、データ信号D0,D5がともに1であり、データ信号D1〜D4,D6〜D12はともに0である。したがって、データ信号DA5が1となり、データ信号DA1〜DA4,DA6〜DA10はともに0となり、正駆動指令値DRAは128となる。また、データ信号DB1〜DB10はともに0となり、負駆動指令値DRBは0となる。
【0055】
この場合、データ信号D11,D12が00であるので、積算器30の積算値は0のまま変化せず、信号φ30は「L」レベルのまま変化せず、データ信号D1〜D10のインクリメントは行なわれない。したがって、正駆動指令値DRAは、駆動指令値DRに一致する。
【0056】
また、図12(b)に示すように、駆動指令値DRが+129=+27+20である場合、データ信号D0,D5,D12がともに1であり、データ信号D1〜D4,D6〜D11はともに0である。したがって、データ信号DA5が1となり、データ信号DA1〜DA4,DA6〜DA10はともに0となり、正駆動指令値DRAの初期値は128となる。また、データ信号DB1〜DB10はともに0となり、負駆動指令値DRBは0となる。
【0057】
この場合、データ信号D11,D12が01であるので、積算器30の積算値(余り量)は1ずつ増加し、4回の積算を行なったときに積算値が011から100に変化し(時刻t3)、積算器30において2桁から3桁への桁上げが発生する。これにより、信号φ30が「H」レベルになってデータ信号D1〜D10がインクリメントされ、正駆動指令値DRAが132になる。したがって、4回の正駆動指令値DRAの平均値は129となり、駆動指令値DRに一致する。
【0058】
また、図12(c)に示すように、駆動指令値DRが+130=+27+21である場合、データ信号D0,D5,D11がともに1であり、データ信号D1〜D4,D6〜D10,D12はともに0である。したがって、データ信号DA5が1となり、データ信号DA1〜DA4,DA6〜DA10はともに0となり、正駆動指令値DRAの初期値は128となる。また、データ信号DB1〜DB10はともに0となり、負駆動指令値DRBは0となる。
【0059】
この場合、データ信号D11,D12が10であるので、積算器30の積算値(余り量)は2ずつ増加し、2回の積算を行なったときに積算値が010から100に変化し(時刻t1,t3)、積算器30において2桁から3桁への桁上げが発生する。これにより、信号φ30が「H」レベルになってデータ信号D1〜D10がインクリメントされ、正駆動指令値DRAが132になる。したがって、4回の正駆動指令値DRAの平均値は130となり、駆動指令値DRに一致する。
【0060】
また、図9(d)に示すように、駆動指令値DRが+131=+27+21+20である場合、データ信号D0,D5,D11,D12がともに1であり、データ信号D1〜D4,D6〜D10はともに0である。したがって、データ信号DA5が1となり、データ信号DA1〜DA4,DA6〜DA10はともに0となり、正駆動指令値DRAの初期値は128となる。また、データ信号DB1〜DB10はともに0となり、負駆動指令値DRBは0となる。
【0061】
この場合、データ信号D11,D12が11であるので、積算器30の積算値(余り量)は3ずつ増加し、2回の積算を行なったときに積算値が011から110に変化し(時刻t1)、積算器30において2桁から3桁への桁上げが発生する。これにより、信号φ30が「H」レベルになってデータ信号D1〜D10がインクリメントされ、正駆動指令値DRAが132になる。また、3回の積算を行なったときに積算値が110から001に変化し(時刻t2)、積算器30において2桁から3桁への桁上げが発生する。これにより、信号φ30が「H」レベルになってデータ信号D1〜D10がインクリメントされ、正駆動指令値DRAが132になる。
【0062】
また、4回の積算を行なったときに積算値が001から100に変化し(時刻t3)、積算器30において2桁から3桁への桁上げが発生する。これにより、信号φ30が「H」レベルになってデータ信号D1〜D10がインクリメントされ、正駆動指令値DRAが132になる。したがって、4回の正駆動指令値DRAの平均値は131となり、駆動指令値DRに一致する。
【0063】
このように、実施の形態2では、駆動指令値DRに含まれる12ビットのデータ信号D1〜D12のうちの下位の2ビットのデータ信号D11,D12を積算し、2桁から3桁への桁上げが発生する場合はデータ信号D1〜D10をインクリメントする。このため、4個の正駆動指令値DRAの平均値は、駆動指令値DRAに一致する。同様に、4個の負駆動指令値DRBの平均値は、駆動指令値DRAの大きさに一致する。このため、図10に示すように、駆動指令値VRを連続的に変化させると、コイル電流I(すなわち駆動力)も連続的に変化する。したがって、コイル電流Iを滑らかに変化させることができる。
【0064】
今回開示された実施の形態はすべての点で例示であって制限的なものではないと考えられるべきである。本発明の範囲は上記した説明ではなくて特許請求の範囲によって示され、特許請求の範囲と均等の意味および範囲内でのすべての変更が含まれることが意図される。
【符号の説明】
【0065】
1 ジャイロセンサ、2 位置センサ、3 駆動指令部、4 PWM信号発生部、5 ドライバ、6 ボイスコイルモータ、7 レンズ、10,11 磁石、12 継鉄、12a,12b 脚部、13 ボイスコイル、13a,13b 端子、20,21 PチャネルMOSトランジスタ、22,23 NチャネルMOSトランジスタ、25 クロック発生回路、26 カウンタ、27 信号発生回路、27a,27b 副信号発生回路、30 積算器、31 信号補正部。
【特許請求の範囲】
【請求項1】
ボイスコイルモータを制御するモータ制御装置であって、
第1および第2のPWM信号を発生するPWM信号発生部と、
前記第1のPWM信号が活性化レベルの場合は前記ボイスコイルモータのコイルの一方端子に電源電圧を印加し、前記第1のPWM信号が非活性化レベルの場合は前記コイルの一方端子に基準電圧を印加する第1のドライバと、
前記第2のPWM信号が活性化レベルの場合は前記コイルの他方端子に前記電源電圧を印加し、前記第2のPWM信号が非活性化レベルの場合は前記コイルの他方端子に前記基準電圧を印加する第2のドライバとを備え、
前記PWM信号発生部は、
前記ボイスコイルモータの駆動力をゼロにする場合は、予め定められた第1の固定時間だけ前記第1のPWM信号を活性化レベルにするとともに、予め定められた第2の固定時間だけ前記第2のPWM信号を活性化レベルにし、
前記ボイスコイルモータに正方向の駆動力を発生させる場合は、前記駆動力の大きさに応じた長さの第1の可変時間と前記第1の固定時間だけ前記第1のPWM信号を活性化レベルにするとともに、前記第2の固定時間だけ前記第2のPWM信号を活性化レベルにし、
前記ボイスコイルモータに負方向の駆動力を発生させる場合は、前記第1の固定時間だけ前記第1のPWM信号を活性化レベルにするとともに、前記第2の固定時間と前記駆動力の大きさに応じた長さの第2の可変時間だけ前記第2のPWM信号を活性化レベルにする、モータ制御装置。
【請求項2】
前記PWM信号発生部は、前記第1のPWM信号を活性化レベルにし、次いで前記第2のPWM信号を活性化レベルにし、次いで前記第1のPWM信号を非活性化レベルにし、次いで前記第2のPWM信号を非活性化レベルにする、請求項1に記載のモータ制御装置。
【請求項3】
さらに、第1〜第N(ただし、Nは正の整数である)のデータ信号を含み、前記ボイスコイルモータの駆動力の大きさを指令する駆動指令値を生成する駆動指令部と、
前記駆動指令値のうちの下位のM(ただし、MはNよりも小さな正の整数である)ビットのデータ信号を予め定められた周期で積算する積算器と、
前記第1〜第Nのデータ信号のうちの上位の第1〜第(N−M)のデータ信号を受け、前記積算器においてM桁から(M+1)桁への桁上げが行なわれなかった場合は前記第1〜第(N−M)のデータ信号をそのまま出力し、前記積算器においてM桁から(M+1)桁への桁上げが行なわれた場合は前記第1〜第(N−M)のデータ信号をインクリメントして出力する信号補正部とを備え、
前記PWM信号発生部は、前記信号補正部から出力された前記第1〜第(N−M)のデータ信号に基づいて、前記第1および第2のPWM信号を生成する、請求項1または請求項2に記載のモータ制御装置。
【請求項4】
レンズと、
前記レンズを移動させるボイスコイルモータと、
請求項1から請求項3までのいずれかに記載のモータ制御装置とを備える、電子機器。
【請求項1】
ボイスコイルモータを制御するモータ制御装置であって、
第1および第2のPWM信号を発生するPWM信号発生部と、
前記第1のPWM信号が活性化レベルの場合は前記ボイスコイルモータのコイルの一方端子に電源電圧を印加し、前記第1のPWM信号が非活性化レベルの場合は前記コイルの一方端子に基準電圧を印加する第1のドライバと、
前記第2のPWM信号が活性化レベルの場合は前記コイルの他方端子に前記電源電圧を印加し、前記第2のPWM信号が非活性化レベルの場合は前記コイルの他方端子に前記基準電圧を印加する第2のドライバとを備え、
前記PWM信号発生部は、
前記ボイスコイルモータの駆動力をゼロにする場合は、予め定められた第1の固定時間だけ前記第1のPWM信号を活性化レベルにするとともに、予め定められた第2の固定時間だけ前記第2のPWM信号を活性化レベルにし、
前記ボイスコイルモータに正方向の駆動力を発生させる場合は、前記駆動力の大きさに応じた長さの第1の可変時間と前記第1の固定時間だけ前記第1のPWM信号を活性化レベルにするとともに、前記第2の固定時間だけ前記第2のPWM信号を活性化レベルにし、
前記ボイスコイルモータに負方向の駆動力を発生させる場合は、前記第1の固定時間だけ前記第1のPWM信号を活性化レベルにするとともに、前記第2の固定時間と前記駆動力の大きさに応じた長さの第2の可変時間だけ前記第2のPWM信号を活性化レベルにする、モータ制御装置。
【請求項2】
前記PWM信号発生部は、前記第1のPWM信号を活性化レベルにし、次いで前記第2のPWM信号を活性化レベルにし、次いで前記第1のPWM信号を非活性化レベルにし、次いで前記第2のPWM信号を非活性化レベルにする、請求項1に記載のモータ制御装置。
【請求項3】
さらに、第1〜第N(ただし、Nは正の整数である)のデータ信号を含み、前記ボイスコイルモータの駆動力の大きさを指令する駆動指令値を生成する駆動指令部と、
前記駆動指令値のうちの下位のM(ただし、MはNよりも小さな正の整数である)ビットのデータ信号を予め定められた周期で積算する積算器と、
前記第1〜第Nのデータ信号のうちの上位の第1〜第(N−M)のデータ信号を受け、前記積算器においてM桁から(M+1)桁への桁上げが行なわれなかった場合は前記第1〜第(N−M)のデータ信号をそのまま出力し、前記積算器においてM桁から(M+1)桁への桁上げが行なわれた場合は前記第1〜第(N−M)のデータ信号をインクリメントして出力する信号補正部とを備え、
前記PWM信号発生部は、前記信号補正部から出力された前記第1〜第(N−M)のデータ信号に基づいて、前記第1および第2のPWM信号を生成する、請求項1または請求項2に記載のモータ制御装置。
【請求項4】
レンズと、
前記レンズを移動させるボイスコイルモータと、
請求項1から請求項3までのいずれかに記載のモータ制御装置とを備える、電子機器。
【図1】
【図2】
【図3】
【図4】
【図5】
【図6】
【図7】
【図8】
【図9】
【図10】
【図11】
【図12】
【図2】
【図3】
【図4】
【図5】
【図6】
【図7】
【図8】
【図9】
【図10】
【図11】
【図12】
【公開番号】特開2011−114895(P2011−114895A)
【公開日】平成23年6月9日(2011.6.9)
【国際特許分類】
【出願番号】特願2009−267164(P2009−267164)
【出願日】平成21年11月25日(2009.11.25)
【出願人】(000116024)ローム株式会社 (3,539)
【Fターム(参考)】
【公開日】平成23年6月9日(2011.6.9)
【国際特許分類】
【出願日】平成21年11月25日(2009.11.25)
【出願人】(000116024)ローム株式会社 (3,539)
【Fターム(参考)】
[ Back to top ]