(57)【特許請求の範囲】
【請求項１】
ボイスコイルモータを制御するモータ制御装置であって、
第１および第２のＰＷＭ信号を発生するＰＷＭ信号発生部と、
前記第１のＰＷＭ信号が活性化レベルの場合は前記ボイスコイルモータのコイルの一方端子に電源電圧を印加し、前記第１のＰＷＭ信号が非活性化レベルの場合は前記コイルの一方端子に基準電圧を印加する第１のドライバと、
前記第２のＰＷＭ信号が活性化レベルの場合は前記コイルの他方端子に前記電源電圧を印加し、前記第２のＰＷＭ信号が非活性化レベルの場合は前記コイルの他方端子に前記基準電圧を印加する第２のドライバとを備え、
前記ＰＷＭ信号発生部は、
前記ボイスコイルモータの駆動力をゼロにする場合は、予め定められた第１の固定時間だけ前記第１のＰＷＭ信号を活性化レベルにするとともに、予め定められた第２の固定時間だけ前記第２のＰＷＭ信号を活性化レベルにし、
前記ボイスコイルモータに正方向の駆動力を発生させる場合は、前記駆動力の大きさに応じた長さの第１の可変時間と前記第１の固定時間だけ前記第１のＰＷＭ信号を活性化レベルにするとともに、前記第２の固定時間だけ前記第２のＰＷＭ信号を活性化レベルにし、
前記ボイスコイルモータに負方向の駆動力を発生させる場合は、前記第１の固定時間だけ前記第１のＰＷＭ信号を活性化レベルにするとともに、前記第２の固定時間と前記駆動力の大きさに応じた長さの第２の可変時間だけ前記第２のＰＷＭ信号を活性化レベルにする、モータ制御装置。
【請求項２】
前記ＰＷＭ信号発生部は、前記第１のＰＷＭ信号を活性化レベルにし、次いで前記第２のＰＷＭ信号を活性化レベルにし、次いで前記第１のＰＷＭ信号を非活性化レベルにし、次いで前記第２のＰＷＭ信号を非活性化レベルにする、請求項１に記載のモータ制御装置。
【請求項３】
さらに、第１〜第Ｎ（ただし、Ｎは正の整数である）のデータ信号を含み、前記ボイスコイルモータの駆動力の大きさを指令する駆動指令値を生成する駆動指令部と、
前記駆動指令値のうちの下位のＭ（ただし、ＭはＮよりも小さな正の整数である）ビットのデータ信号を予め定められた周期で積算する積算器と、
前記第１〜第Ｎのデータ信号のうちの上位の第１〜第（Ｎ−Ｍ）のデータ信号を受け、前記積算器においてＭ桁から（Ｍ＋１）桁への桁上げが行なわれなかった場合は前記第１〜第（Ｎ−Ｍ）のデータ信号をそのまま出力し、前記積算器においてＭ桁から（Ｍ＋１）桁への桁上げが行なわれた場合は前記第１〜第（Ｎ−Ｍ）のデータ信号をインクリメントして出力する信号補正部とを備え、
前記ＰＷＭ信号発生部は、前記信号補正部から出力された前記第１〜第（Ｎ−Ｍ）のデータ信号に基づいて、前記第１および第２のＰＷＭ信号を生成する、請求項１または請求項２に記載のモータ制御装置。
【請求項４】
レンズと、
前記レンズを移動させるボイスコイルモータと、
請求項１から請求項３までのいずれかに記載のモータ制御装置とを備える、電子機器。
【発明の詳細な説明】
【技術分野】
【０００１】
この発明はモータ制御装置およびそれを用いた電子機器に関し、特に、ボイスコイルモータを制御するモータ制御装置と、それを用いた電子機器に関する。
【背景技術】
【０００２】
従来より、ビデオカメラ、デジタルカメラ、スチルカメラ、プロジェクタなどの電子機器には、レンズと、レンズを移動させるモータと、モータを制御するモータ制御装置とが設けられている（たとえば、特許文献１参照）。また、モータとしてボイスコイルモータを使用するものもある（たとえば、特許文献２参照）。
【先行技術文献】
【特許文献】
【０００３】
【特許文献１】特開２００８−１１１９４２号公報
【特許文献２】特開２００９−２２９６０２号公報
【発明の概要】
【発明が解決しようとする課題】
【０００４】
ボイスコイルモータでは、コイルに流す電流の方向および値を制御して、モータの駆動力の方向および大きさを制御する。コイルに電流を流す第１の方法としては、コイルの端子間にアナログ電圧を印加する方法がある。この第１の方法では、コイルに流す電流（すなわち駆動力）を線形に変化させることができるが、消費電力が大きくなると言う問題がある。
【０００５】
また、コイルに電流を流す第２の方法としては、コイルの端子間にＰＷＭ（Pulse Width Modulation：パルス幅変調）方式で電圧を印加する方法がある。この第２の方法では、消費電力を小さくできるが、コイルに流す電流（すなわち駆動力）を線形に変化させることができないと言う問題がある。
【０００６】
第２の方法において、電流の線形性を改善する方法として、ＰＷＭ信号のデューティ比を変化させるステップの数を増やすことも考えられるが、そのためにはＰＷＭ信号を生成するためのクロック信号の周波数を高める必要があり、消費電力が増大してしまう。
【０００７】
また、コイルにパルス電圧を印加すると、電圧の立ち上がりおよび立ち下がりが鈍る。このため、たとえＰＷＭ信号のデューティ比を変化させるステップの数を増やしても、ＰＷＭ信号のパルス幅が狭い範囲では電流を線形に変化させることができない（図５および図６参照）。
【０００８】
それゆえに、この発明の主たる目的は、ボイスコイルモータの駆動力を低消費電力で線形に制御することが可能なモータ制御装置と、それを用いた電子機器を提供することである。
【課題を解決するための手段】
【０００９】
この発明に係るモータ制御装置は、ボイスコイルモータを制御するモータ制御装置であって、第１および第２のＰＷＭ信号を発生するＰＷＭ信号発生部と、第１のＰＷＭ信号が活性化レベルの場合はボイスコイルモータのコイルの一方端子に電源電圧を印加し、第１のＰＷＭ信号が非活性化レベルの場合はコイルの一方端子に基準電圧を印加する第１のドライバと、第２のＰＷＭ信号が活性化レベルの場合はコイルの他方端子に電源電圧を印加し、第２のＰＷＭ信号が非活性化レベルの場合はコイルの他方端子に基準電圧を印加する第２のドライバとを備えたものである。ＰＷＭ信号発生部は、ボイスコイルモータの駆動力をゼロにする場合は、予め定められた第１の固定時間だけ第１のＰＷＭ信号を活性化レベルにするとともに、予め定められた第２の固定時間だけ第２のＰＷＭ信号を活性化レベルにし、ボイスコイルモータに正方向の駆動力を発生させる場合は、駆動力の大きさに応じた長さの第１の可変時間と第１の固定時間だけ第１のＰＷＭ信号を活性化レベルにするとともに、第２の固定時間だけ第２のＰＷＭ信号を活性化レベルにし、ボイスコイルモータに負方向の駆動力を発生させる場合は、第１の固定時間だけ第１のＰＷＭ信号を活性化レベルにするとともに、第２の固定時間と駆動力の大きさに応じた長さの第２の可変時間だけ第２のＰＷＭ信号を活性化レベルにする。
【００１０】
好ましくは、ＰＷＭ信号発生部は、第１のＰＷＭ信号を活性化レベルにし、次いで第２のＰＷＭ信号を活性化レベルにし、次いで第１のＰＷＭ信号を非活性化レベルにし、次いで第２のＰＷＭ信号を非活性化レベルにする。
【００１１】
また好ましくは、さらに、第１〜第Ｎ（ただし、Ｎは正の整数である）のデータ信号を含み、ボイスコイルモータの駆動力の大きさを指令する駆動指令値を生成する駆動指令部と、駆動指令値のうちの下位のＭ（ただし、ＭはＮよりも小さな正の整数である）ビットのデータ信号を予め定められた周期で積算する積算器と、第１〜第Ｎのデータ信号のうちの上位の第１〜第（Ｎ−Ｍ）のデータ信号を受け、積算器においてＭ桁から（Ｍ＋１）桁への桁上げが行なわれなかった場合は第１〜第（Ｎ−Ｍ）のデータ信号をそのまま出力し、積算器においてＭ桁から（Ｍ＋１）桁への桁上げが行なわれた場合は第１〜第（Ｎ−Ｍ）のデータ信号をインクリメントして出力する信号補正部とを備える。ＰＷＭ信号発生部は、信号補正部から出力された第１〜第（Ｎ−Ｍ）のデータ信号に基づいて、第１および第２のＰＷＭ信号を生成する。
【００１２】
また、この発明に係る電子機器は、レンズと、レンズを移動させるボイスコイルモータと、上記モータ制御装置とを備えたものである。
【発明の効果】
【００１３】
この発明に係るモータ制御装置では、ボイスコイルモータの駆動力をゼロにする場合でも、第１の固定時間だけ第１のＰＷＭ信号を活性化レベルにするとともに、第２の固定時間だけ第２のＰＷＭ信号を活性化レベルにする。したがって、ＰＷＭ信号のパルス幅を広くすることができ、コイルに印加する電圧の立ち上がりおよび立ち下がりの鈍りの影響を軽減することができる。よって、ボイスコイルモータの駆動力を低消費電力で線形に制御することができる。
【図面の簡単な説明】
【００１４】
【図１】この発明の実施の形態１によるデジタルカメラの要部を示すブロック図である。
【図２】図１に示したボイスコイルモータの原理的構成を示す図である。
【図３】図１に示したドライバの構成を示す回路図である。
【図４】図１に示したＰＷＭ信号発生部の構成を示すブロック図である。
【図５】従来のデジタルカメラの動作を示すタイムチャートである。
【図６】従来の問題点と本願発明の効果を説明するための図である。
【図７】本願のデジタルカメラの動作を示すタイムチャートである。
【図８】図４に示した信号発生回路の構成を示すブロック図である。
【図９】図８に示した信号発生回路の動作を示すタイムチャートである。
【図１０】実施の形態１の問題点と実施の形態２の効果を説明するための図である。
【図１１】この発明の実施の形態２によるデジタルカメラの要部を示すブロック図である。
【図１２】図１１に示したデジタルカメラの動作を示すタイムチャートである。
【発明を実施するための形態】
【００１５】
[実施の形態１]
本願の実施の形態１のデジタルカメラは、図１に示すように、ジャイロセンサ１、位置センサ２、駆動指令部３、ＰＷＭ信号発生部４、ドライバ５、ボイスコイルモータ（ＶＣＭ）６、およびレンズ７を備える。ジャイロセンサ１は、デジタルカメラの手振れを検出する。位置センサ２は、レンズ７の位置を検出する。
【００１６】
駆動指令部３は、ジャイロセンサ１および位置センサ２の検出結果に基づいて、レンズ７を駆動させるための駆動指令値ＤＲを生成する。ＰＷＭ信号発生部４は、駆動指令値ＤＲに従ってＰＷＭ信号φＡ，φＢを生成する。ドライバ５は、ＰＷＭ信号φＡ，φＢに従って駆動電圧ＶＡ，ＶＢを生成し、駆動電圧ＶＡ，ＶＢをボイスコイルモータ６に与える。ボイスコイルモータ６は、駆動電圧ＶＡ，ＶＢによって駆動され、レンズ７を移動させる。レンズ７の移動により、デジタルカメラの手振れが補正されて、鮮明な画像が撮影される。
【００１７】
図２は、ボイスコイルモータ６の原理的構成を示す図である。図２において、ボイスコイルモータ６は、所定の隙間を開けて平行に配置された２個の磁石１０，１１を含む。磁石１０，１１は、Ｕ字型の継鉄１２の脚部１２ａ，１２ｂの内側に固定されている。磁石１１および脚部１２ｂは、ボイスコイル１３に挿入されている。ボイスコイル１３は、磁石１１および脚部１２ｂの長さ方向（図中の左右方向）にレンズ７とともに移動可能に設けられている。
【００１８】
ボイスコイル１３の一方端子１３ａおよび他方端子１３ｂには、それぞれ駆動電圧ＶＡ，ＶＢが印加される。ボイスコイル１３に電流が流されると、その電流の極性に応じた方向に、その電流の値に応じた大きさの駆動力がボイスコイル１３に発生する。したがって、ボイスコイル１３に流す電流の極性および値を制御することにより、レンズ７に与える駆動力の方向および大きさを制御することができる。
【００１９】
また、ドライバ５は、図３に示すように、ＰチャネルＭＯＳトランジスタ２０，２１およびＮチャネルＭＯＳトランジスタ２２，２３を含む。トランジスタ２０，２２は第１のドライバを構成し、トランジスタ２１，２３は第２のドライバを構成する。トランジスタ２０，２１のソースはともに電源電圧ＶＣＣを受け、それらのドレインはそれぞれ出力ノードＮ２０，Ｎ２１に接続され、それらのゲートはそれぞれＰＷＭ信号φＡ，φＢを受ける。トランジスタ２２，２３のソースはともに接地電圧ＧＮＤを受け、それらのドレインはそれぞれ出力ノードＮ２０，Ｎ２１に接続され、それらのゲートはそれぞれＰＷＭ信号φＡ，φＢを受ける。出力ノードＮ２０，Ｎ２１は、それぞれボイスコイル１３の端子１３ａ，１３ｂに接続される。
【００２０】
ＰＷＭ信号φＡ，φＢがそれぞれ「Ｌ」レベルおよび「Ｈ」レベルにされると、トランジスタ２０，２３が導通するとともにトランジスタ２１，２２が非導通になり、ボイスコイル１３に正電流が流れてレンズ７は正方向に移動する。ＰＷＭ信号φＡ，φＢがそれぞれ「Ｈ」レベルおよび「Ｌ」レベルにされると、トランジスタ２１，２２が導通するとともにトランジスタ２０，２３が非導通になり、ボイスコイル１３に負電流が流れてレンズ７は負方向に移動する。
【００２１】
また、ＰＷＭ信号φＡ，φＢがともに「Ｌ」レベルにされると、トランジスタ２０，２１が導通するとともにトランジスタ２２，２３が非導通になり、ボイスコイル１３に電流は流れず、レンズ７は移動しない。ＰＷＭ信号φＡ，φＢがともに「Ｈ」レベルにされると、トランジスタ２２，２３が導通するとともにトランジスタ２０，２１が非導通になり、ボイスコイル１３に電流は流れず、レンズ７は移動しない。
【００２２】
また、ＰＷＭ信号発生部４は、図４に示すように、クロック発生回路２５、カウンタ２６、および信号発生回路２７を含む。クロック発生回路２５は、所定周波数のクロック信号を発生する。カウンタ２６は、クロック信号のパルス数をカウントする。カウンタ２６のカウント値は、クロック信号に同期して０から１０２３まで１ずつ増加し、１０２３の後０に戻る。信号発生回路２７は、カウンタ２６のカウント値を参照し、駆動指令部３からの駆動指令値ＤＲに従ってＰＷＭ信号φＡ，φＢの各々を活性化レベルの「Ｌ」レベルまたは非活性化レベルの「Ｈ」レベルにする。
【００２３】
次に、本願発明の理解を容易にするため、本願発明の基礎となる従来のデジタルカメラの動作について説明する。従来のデジタルカメラでは、駆動指令値ＤＲが＋１０４の場合、図５（ａ）に示すように、カウンタ２６のカウント値が０〜１０４の期間に駆動電圧ＶＡが正電圧にされ、レンズ７が正方向に駆動される。駆動指令値ＤＲが＋５２の場合は、図５（ｂ）に示すように、カウンタ２６のカウント値が０〜５２の期間に駆動電圧ＶＡが正電圧にされ、レンズ７が正方向に駆動される。駆動指令値ＤＲが正の値である場合は、図５（ａ）（ｂ）に示すように、カウンタ２６のカウント値が０〜１０２３の期間において駆動電圧ＶＢが０Ｖに固定される。
【００２４】
また、駆動指令値ＤＲが０の場合は、図５（ｃ）に示すように、カウンタ２６のカウント値が０〜１０２３の期間において駆動電圧ＶＡ，ＶＢが０Ｖに固定される。駆動指令値ＤＲが−５２の場合は、図５（ｄ）に示すように、カウンタ２６のカウント値が０〜５２の期間に駆動電圧ＶＢが正電圧にされ、レンズ７が負方向に駆動される。駆動指令値ＤＲが−１０４の場合は、図５（ｅ）に示すように、カウンタ２６のカウント値が０〜１０４の期間に駆動電圧ＶＢが正電圧にされ、レンズ７が負方向に駆動される。駆動指令値ＤＲが負の値である場合は、図５（ｄ）（ｅ）に示すように、カウンタ２６のカウント値が０〜１０２３の期間において駆動電圧ＶＡが０Ｖに固定される。
【００２５】
ＰＷＭ方式では、ボイスコイル１３にパルス電圧を印加するので、駆動電圧ＶＡの立ち上がりおよび立ち下がりが鈍る。このため、ボイスコイル１３に流れる電流Ｉは、図中の斜線を施した部分の面積に比例した値になる。また、駆動電圧ＶＡ，ＶＢのパルス幅が狭い範囲では、ボイスコイルモータ６は駆動電圧ＶＡ，ＶＢに応答せず、レンズ７は移動しない。したがって、図６に示すように、駆動指令値ＶＲの絶対値が小さな範囲（たとえば、−６０＜ＶＲ＜＋６０）では、駆動指令値ＶＲの変化に対してコイル電流Ｉが線形に変化しない。このため、従来のデジタルカメラでは、レンズ７の位置を精密に制御することができず、レンズ７が正方向と負方向に振動し、雑音が発生する場合があった。
【００２６】
次に、本願のデジタルカメラの動作について説明する。本願のデジタルカメラでは、駆動指令値ＤＲが＋１０４の場合、図７（ａ）に示すように、カウンタ２６のカウント値が−１８４（すなわち８４０）のときにＰＷＭ信号φＡが活性化レベルの「Ｌ」レベルに立ち下げられ、駆動電圧ＶＡが「Ｈ」レベルに立ち上げられる。次に、カウンタ２６のカウント値が０（すなわち１０２４）のときにＰＷＭ信号φＢが活性化レベルの「Ｌ」レベルに立ち下げられ、駆動電圧ＶＢが「Ｈ」レベルに立ち上げられる。
【００２７】
次いで、カウンタ２６のカウント値が４０のときにＰＷＭ信号φＡが非活性化レベルの「Ｈ」レベルに立ち下げられ、駆動電圧ＶＡが「Ｌ」レベルに立ち下げられる。次に、カウンタ２６のカウント値が１２０のときにＰＷＭ信号φＢが非活性化レベルの「Ｈ」レベルに立ち上げられ、駆動電圧ＶＢが「Ｌ」レベルに立ち下げられる。
【００２８】
この例では、ＰＷＭ信号φＡが「Ｌ」レベルに立ち下げられたときに、駆動電圧ＶＡが０Ｖから電源電圧ＶＣＣになるまでに４０カウント値分の時間が掛かるものとしている。また、ＰＷＭ信号φＡが「Ｈ」レベルに立ち上げられたときに、駆動電圧ＶＡが電源電圧ＶＣＣから０Ｖになるまでに４０カウント値分の時間が掛かるものとしている。
【００２９】
一方、ＰＷＭ信号φＢが「Ｌ」レベルに立ち下げられたときは、駆動電圧ＶＢは０Ｖから電源電圧ＶＣＣに迅速に立ち上がる。これは、ボイスコイル１３の一方端子１３ａに電源電圧ＶＣＣが既に印加されているからである。また、ＰＷＭ信号φＢが「Ｈ」レベルに立ち上げられたときは、駆動電圧ＶＢは電源電圧ＶＣＣから０Ｖに迅速に立ち下がる。これは、ボイスコイル１３の一方端子１３ａに０Ｖが既に印加されているからである。また、ボイスコイル１３に６０カウント値分の時間だけ電流を流しても、ボイスコイルモータ６は応答せず、レンズ７は移動しないものとする。
【００３０】
０〜＋６０カウント値の期間では、駆動電圧ＶＡ，ＶＢが両方とも「Ｈ」レベルになっているので、ボイスコイル１３には電流Ｉが流れない。−１６４〜０カウント値の期間では、ボイスコイル１３に正電流が流れる。＋６０〜＋１２０カウント値の期間では、ボイスコイル１３に負電流が流れる。ボイスコイル１３に６０カウント値分の時間だけ電流を流してもボイスコイルモータ６は応答しないので、結局、−１０４〜０カウント値の期間だけボイスコイル１３が正方向に移動する。
【００３１】
また図７（ｂ）に示すように、駆動指令値ＤＲが＋５２の場合、カウンタ２６のカウント値が−１３２（すなわち８９２）のときにＰＷＭ信号φＡが活性化レベルの「Ｌ」レベルに立ち下げられ、駆動電圧ＶＡが「Ｈ」レベルに立ち上げられる。次に、カウンタ２６のカウント値が０（すなわち１０２４）のときにＰＷＭ信号φＢが活性化レベルの「Ｌ」レベルに立ち下げられ、駆動電圧ＶＢが「Ｈ」レベルに立ち上げられる。
【００３２】
次いで、カウンタ２６のカウント値が４０のときにＰＷＭ信号φＡが非活性化レベルの「Ｈ」レベルに立ち下げられ、駆動電圧ＶＡが「Ｌ」レベルに立ち下げられる。次に、カウンタ２６のカウント値が１２０のときにＰＷＭ信号φＢが非活性化レベルの「Ｈ」レベルに立ち上げられ、駆動電圧ＶＢが「Ｌ」レベルに立ち下げられる。
【００３３】
０〜＋６０カウント値の期間では、駆動電圧ＶＡ，ＶＢが両方とも「Ｈ」レベルになっているので、ボイスコイル１３には電流Ｉが流れない。−１１２〜０カウント値の期間では、ボイスコイル１３に正電流が流れる。＋６０〜＋１２０カウント値の期間では、ボイスコイル１３に負電流が流れる。ボイスコイル１３に６０カウント値分の時間だけ電流を流してもボイスコイルモータ６は応答しないので、結局、−５２〜０カウント値の期間だけボイスコイル１３が正方向に移動する。
【００３４】
また図７（ｃ）に示すように、駆動指令値ＤＲが０の場合、カウンタ２６のカウント値が−８０（すなわち９４４）のときにＰＷＭ信号φＡが活性化レベルの「Ｌ」レベルに立ち下げられ、駆動電圧ＶＡが「Ｈ」レベルに立ち上げられる。次に、カウンタ２６のカウント値が０（すなわち１０２４）のときにＰＷＭ信号φＢが活性化レベルの「Ｌ」レベルに立ち下げられ、駆動電圧ＶＢが「Ｈ」レベルに立ち上げられる。
【００３５】
次いで、カウンタ２６のカウント値が４０のときにＰＷＭ信号φＡが非活性化レベルの「Ｈ」レベルに立ち下げられ、駆動電圧ＶＡが「Ｌ」レベルに立ち下げられる。次に、カウンタ２６のカウント値が１２０のときにＰＷＭ信号φＢが非活性化レベルの「Ｈ」レベルに立ち上げられ、駆動電圧ＶＢが「Ｌ」レベルに立ち下げられる。
【００３６】
０〜＋６０カウント値の期間では、駆動電圧ＶＡ，ＶＢが両方とも「Ｈ」レベルになっているので、ボイスコイル１３には電流Ｉが流れない。−６０〜０カウント値の期間では、ボイスコイル１３に正電流が流れる。＋６０〜＋１２０カウント値の期間では、ボイスコイル１３に負電流が流れる。ボイスコイル１３に６０カウント値分の時間だけ電流を流してもボイスコイルモータ６は応答しないので、結局、ボイスコイル１３は移動しない。
【００３７】
また図７（ｄ）に示すように、駆動指令値ＤＲが−５２の場合、カウンタ２６のカウント値が−８０（すなわち９４４）のときにＰＷＭ信号φＡが活性化レベルの「Ｌ」レベルに立ち下げられ、駆動電圧ＶＡが「Ｈ」レベルに立ち上げられる。次に、カウンタ２６のカウント値が０（すなわち１０２４）のときにＰＷＭ信号φＢが活性化レベルの「Ｌ」レベルに立ち下げられ、駆動電圧ＶＢが「Ｈ」レベルに立ち上げられる。
【００３８】
次いで、カウンタ２６のカウント値が４０のときにＰＷＭ信号φＡが非活性化レベルの「Ｈ」レベルに立ち下げられ、駆動電圧ＶＡが「Ｌ」レベルに立ち下げられる。次に、カウンタ２６のカウント値が１７２のときにＰＷＭ信号φＢが非活性化レベルの「Ｈ」レベルに立ち上げられ、駆動電圧ＶＢが「Ｌ」レベルに立ち下げられる。
【００３９】
０〜＋６０カウント値の期間では、駆動電圧ＶＡ，ＶＢが両方とも「Ｈ」レベルになっているので、ボイスコイル１３には電流Ｉが流れない。−６０〜０カウント値の期間では、ボイスコイル１３に正電流が流れる。＋６０〜＋１７２カウント値の期間では、ボイスコイル１３に負電流が流れる。ボイスコイル１３に６０カウント値分の時間だけ電流を流してもボイスコイルモータ６は応答しないので、結局、＋１２０〜＋１７２カウント値の期間だけボイスコイル１３が負方向に移動する。
【００４０】
また図７（ｅ）に示すように、駆動指令値ＤＲが−１０４の場合、カウンタ２６のカウント値が−８０（すなわち９４４）のときにＰＷＭ信号φＡが活性化レベルの「Ｌ」レベルに立ち下げられ、駆動電圧ＶＡが「Ｈ」レベルに立ち上げられる。次に、カウンタ２６のカウント値が０（すなわち１０２４）のときにＰＷＭ信号φＢが活性化レベルの「Ｌ」レベルに立ち下げられ、駆動電圧ＶＢが「Ｈ」レベルに立ち上げられる。
【００４１】
次いで、カウンタ２６のカウント値が４０のときにＰＷＭ信号φＡが非活性化レベルの「Ｈ」レベルに立ち下げられ、駆動電圧ＶＡが「Ｌ」レベルに立ち下げられる。次に、カウンタ２６のカウント値が２２４のときにＰＷＭ信号φＢが非活性化レベルの「Ｈ」レベルに立ち上げられ、駆動電圧ＶＢが「Ｌ」レベルに立ち下げられる。
【００４２】
０〜＋６０カウント値の期間では、駆動電圧ＶＡ，ＶＢが両方とも「Ｈ」レベルになっているので、ボイスコイル１３には電流Ｉが流れない。−６０〜０カウント値の期間では、ボイスコイル１３に正電流が流れる。＋６０〜＋２２４カウント値の期間では、ボイスコイル１３に負電流が流れる。ボイスコイル１３に６０カウント値分の時間だけ電流を流してもボイスコイルモータ６は応答しないので、結局、＋１２０〜＋２２４カウント値の期間だけボイスコイル１３が負方向に移動する。
【００４３】
この実施の形態１では、駆動指令値ＤＲが０の場合でもＰＷＭ信号φ１，φ２の各々を所定時間ずつ活性化レベルにするので、ＰＷＭ信号φＡ，φＢのパルス幅を広くすることができ、ボイスコイル１３に印加する電圧ＶＡ，ＶＢの立ち上がりおよび立ち下がりの鈍りの影響を軽減することができる。したがって、図６に示すように、駆動指令値ＶＲに対してコイル電流Ｉ（すなわちボイスコイルモータ６の駆動力）を線形に変化させることができる。よって、レンズ７の位置を精密に制御することができ、雑音の発生を防止することができる。また、クロック発生回路２５で生成するクロック信号の周波数を高くする必要がないので、消費電力が増大することもない。
【００４４】
[実施の形態２]
図８は、図４に示した信号発生回路２７の構成をより詳細に示すブロック図である。図８において、信号発生回路２７は、２段の副信号発生回路２７ａ，２７ｂを含む。駆動指令値ＤＲは、１３ビットのデータ信号Ｄ０〜Ｄ１２を含む。データ信号Ｄ０は駆動力の方向を指令し、データ信号Ｄ１〜Ｄ１２は駆動力の大きさを指令する。データ信号Ｄ１１，Ｄ１２は、切り捨てられ、使用されない。また、図４のカウンタ２６は、カウント値として１０ビットの信号Ｃ１〜Ｃ１０を出力する。
【００４５】
副信号発生回路２７ａは、駆動指令値ＤＲに従って、ＰＷＭ信号φ１，φ２と同じ周期で正駆動指令値ＤＲＡおよび負駆動指令値ＤＲＢを生成する。駆動指令値ＤＲは１３ビットのデータ信号Ｄ０〜Ｄ１２であり、正駆動指令値ＤＲＡは１０ビットのデータ信号ＤＡ１〜ＤＡ１０であり、負駆動指令値ＤＲＢは１０ビットのデータ信号ＤＢ１〜ＤＢ１０である。
【００４６】
データ信号Ｄ０が１（「Ｈ」レベル）の場合は、データ信号Ｄ１〜Ｄ１０がデータ信号ＤＡ１〜ＤＡ１０となり、データ信号ＤＢ１〜ＤＢ１０で表わされる負駆動指令値ＤＲＢは０となる。データ信号Ｄ０が０（「Ｌ」レベル）の場合は、データ信号Ｄ１〜Ｄ１０がデータ信号ＤＢ１〜ＤＢ１０となり、データ信号ＤＡ１〜ＤＡ１０で表わされる正駆動指令値ＤＲＡは０となる。副信号発生回路２７ｂは、正駆動指令値ＤＲＡ（すなわちデータ信号ＤＡ０〜ＤＡ１０）、負駆動指令値ＤＲＢ（すなわちデータ信号ＤＢ０〜ＤＢ１０）、およびカウンタ２６のカウント値（すなわち信号Ｃ１〜Ｃ１０）に基づいて、ＰＷＭ信号φ１，φ２を生成する。
【００４７】
図９（ａ）〜（ｄ）は、駆動指令値ＤＲと、正駆動指令値ＤＲＡおよび負駆動指令値との関係を示すタイムチャートである。図９（ａ）に示すように、駆動指令値ＤＲが＋１２８＝＋２７である場合、データ信号Ｄ０，Ｄ５がともに１であり、データ信号Ｄ１〜Ｄ４，Ｄ６〜Ｄ１２はともに０である。したがって、データ信号ＤＡ５が１となり、データ信号ＤＡ１〜ＤＡ４，ＤＡ６〜ＤＡ１０はともに０となり、正駆動指令値ＤＲＡは１２８となる。また、データ信号ＤＢ１〜ＤＢ１０はともに０となり、負駆動指令値ＤＲＢは０となる。この場合、正駆動指令値ＤＲＡは、駆動指令値ＤＲに一致する。
【００４８】
また、図９（ｂ）に示すように、駆動指令値ＤＲが＋１２９＝＋２７＋２０である場合、データ信号Ｄ０，Ｄ５，Ｄ１２がともに１であり、データ信号Ｄ１〜Ｄ４，Ｄ６〜Ｄ１１はともに０である。したがって、データ信号ＤＡ５が１となり、データ信号ＤＡ１〜ＤＡ４，ＤＡ６〜ＤＡ１０はともに０となり、正駆動指令値ＤＲＡは１２８となる。また、データ信号ＤＢ１〜ＤＢ１０はともに０となり、負駆動指令値ＤＲＢは０となる。この場合、正駆動指令値ＤＲＡは、駆動指令値ＤＲよりも１だけ小さくなる。
【００４９】
また、図９（ｃ）に示すように、駆動指令値ＤＲが＋１３０＝＋２７＋２１である場合、データ信号Ｄ０，Ｄ５，Ｄ１１がともに１であり、データ信号Ｄ１〜Ｄ４，Ｄ６〜Ｄ１０，Ｄ１２はともに０である。したがって、データ信号ＤＡ５が１となり、データ信号ＤＡ１〜ＤＡ４，ＤＡ６〜ＤＡ１０はともに０となり、正駆動指令値ＤＲＡは１２８となる。また、データ信号ＤＢ１〜ＤＢ１０はともに０となり、負駆動指令値ＤＲＢは０となる。この場合、正駆動指令値ＤＲＡは、駆動指令値ＤＲよりも２だけ小さくなる。
【００５０】
また、図９（ｄ）に示すように、駆動指令値ＤＲが＋１３１＝＋２７＋２１＋２０である場合、データ信号Ｄ０，Ｄ５，Ｄ１１，Ｄ１２がともに１であり、データ信号Ｄ１〜Ｄ４，Ｄ６〜Ｄ１０はともに０である。したがって、データ信号ＤＡ５が１となり、データ信号ＤＡ１〜ＤＡ４，ＤＡ６〜ＤＡ１０はともに０となり、正駆動指令値ＤＲＡは１２８となる。また、データ信号ＤＢ１〜ＤＢ１０はともに０となり、負駆動指令値ＤＲＢは０となる。この場合、正駆動指令値ＤＲＡは、駆動指令値ＤＲよりも３だけ小さくなる。
【００５１】
このように、実施の形態１では、駆動指令値ＤＲに含まれる１２ビットのデータ信号Ｄ１〜Ｄ１２のうちの下位の２ビットのデータ信号Ｄ１１，Ｄ１２を切り捨てて正駆動指令値ＤＲＡおよび負駆動指令値ＤＲＢを生成する。このため、データ信号Ｄ１〜Ｄ１０が同じ場合は、データ信号Ｄ１１，Ｄ１２が００，０１，１０，１１と変化しても、正駆動指令値ＤＲＡおよび負駆動指令値ＤＲＢは変化しない。このため、図１０に示すように、駆動指令値ＶＲを連続的に変化させても、コイル電流Ｉ（すなわち駆動力）はステップ状に変化する。したがって、コイル電流Ｉを滑らかに変化させることができない。この実施の形態２では、この問題が解決される。
【００５２】
図１１は、実施の形態２によるデジタルカメラの要部を示すブロック図であって、図８と対比される図である。図１１において、このデジタルカメラが実施の形態１のデジタルカメラと異なる点は、積算器３０および信号補正部３１が追加されている点である。積算器３０は、ＰＷＭ信号φ１，φ２と同じ周期でデータ信号Ｄ１１，Ｄ１２を積算し、２桁から３桁への桁上げがない場合は信号φ３０を非活性化レベルの「Ｌ」レベルにし、２桁から３桁への桁上げがあった場合は信号φ３０を活性化レベルの「Ｈ」レベルにする。
【００５３】
信号補正部３１は、データ信号Ｄ１〜Ｄ１０を受け、信号φ３０が「Ｌ」レベルの場合は、データ信号Ｄ１〜Ｄ１０をそのまま副信号発生回路２７ａに与え、信号φ３０が「Ｈ」レベルの場合は、データ信号Ｄ１〜Ｄ１０をインクリメント（＋１）して副信号発生回路２７ａに与える。
【００５４】
図１２（ａ）〜（ｄ）は、駆動指令値ＤＲと、正駆動指令値ＤＲＡおよび負駆動指令値との関係を示すタイムチャートであって、図９（ａ）〜（ｄ）と対比される図である。図１２（ａ）に示すように、駆動指令値ＤＲが＋１２８＝＋２７である場合、データ信号Ｄ０，Ｄ５がともに１であり、データ信号Ｄ１〜Ｄ４，Ｄ６〜Ｄ１２はともに０である。したがって、データ信号ＤＡ５が１となり、データ信号ＤＡ１〜ＤＡ４，ＤＡ６〜ＤＡ１０はともに０となり、正駆動指令値ＤＲＡは１２８となる。また、データ信号ＤＢ１〜ＤＢ１０はともに０となり、負駆動指令値ＤＲＢは０となる。
【００５５】
この場合、データ信号Ｄ１１，Ｄ１２が００であるので、積算器３０の積算値は０のまま変化せず、信号φ３０は「Ｌ」レベルのまま変化せず、データ信号Ｄ１〜Ｄ１０のインクリメントは行なわれない。したがって、正駆動指令値ＤＲＡは、駆動指令値ＤＲに一致する。
【００５６】
また、図１２（ｂ）に示すように、駆動指令値ＤＲが＋１２９＝＋２７＋２０である場合、データ信号Ｄ０，Ｄ５，Ｄ１２がともに１であり、データ信号Ｄ１〜Ｄ４，Ｄ６〜Ｄ１１はともに０である。したがって、データ信号ＤＡ５が１となり、データ信号ＤＡ１〜ＤＡ４，ＤＡ６〜ＤＡ１０はともに０となり、正駆動指令値ＤＲＡの初期値は１２８となる。また、データ信号ＤＢ１〜ＤＢ１０はともに０となり、負駆動指令値ＤＲＢは０となる。
【００５７】
この場合、データ信号Ｄ１１，Ｄ１２が０１であるので、積算器３０の積算値（余り量）は１ずつ増加し、４回の積算を行なったときに積算値が０１１から１００に変化し（時刻ｔ３）、積算器３０において２桁から３桁への桁上げが発生する。これにより、信号φ３０が「Ｈ」レベルになってデータ信号Ｄ１〜Ｄ１０がインクリメントされ、正駆動指令値ＤＲＡが１３２になる。したがって、４回の正駆動指令値ＤＲＡの平均値は１２９となり、駆動指令値ＤＲに一致する。
【００５８】
また、図１２（ｃ）に示すように、駆動指令値ＤＲが＋１３０＝＋２７＋２１である場合、データ信号Ｄ０，Ｄ５，Ｄ１１がともに１であり、データ信号Ｄ１〜Ｄ４，Ｄ６〜Ｄ１０，Ｄ１２はともに０である。したがって、データ信号ＤＡ５が１となり、データ信号ＤＡ１〜ＤＡ４，ＤＡ６〜ＤＡ１０はともに０となり、正駆動指令値ＤＲＡの初期値は１２８となる。また、データ信号ＤＢ１〜ＤＢ１０はともに０となり、負駆動指令値ＤＲＢは０となる。
【００５９】
この場合、データ信号Ｄ１１，Ｄ１２が１０であるので、積算器３０の積算値（余り量）は２ずつ増加し、２回の積算を行なったときに積算値が０１０から１００に変化し（時刻ｔ１，ｔ３）、積算器３０において２桁から３桁への桁上げが発生する。これにより、信号φ３０が「Ｈ」レベルになってデータ信号Ｄ１〜Ｄ１０がインクリメントされ、正駆動指令値ＤＲＡが１３２になる。したがって、４回の正駆動指令値ＤＲＡの平均値は１３０となり、駆動指令値ＤＲに一致する。
【００６０】
また、図９（ｄ）に示すように、駆動指令値ＤＲが＋１３１＝＋２７＋２１＋２０である場合、データ信号Ｄ０，Ｄ５，Ｄ１１，Ｄ１２がともに１であり、データ信号Ｄ１〜Ｄ４，Ｄ６〜Ｄ１０はともに０である。したがって、データ信号ＤＡ５が１となり、データ信号ＤＡ１〜ＤＡ４，ＤＡ６〜ＤＡ１０はともに０となり、正駆動指令値ＤＲＡの初期値は１２８となる。また、データ信号ＤＢ１〜ＤＢ１０はともに０となり、負駆動指令値ＤＲＢは０となる。
【００６１】
この場合、データ信号Ｄ１１，Ｄ１２が１１であるので、積算器３０の積算値（余り量）は３ずつ増加し、２回の積算を行なったときに積算値が０１１から１１０に変化し（時刻ｔ１）、積算器３０において２桁から３桁への桁上げが発生する。これにより、信号φ３０が「Ｈ」レベルになってデータ信号Ｄ１〜Ｄ１０がインクリメントされ、正駆動指令値ＤＲＡが１３２になる。また、３回の積算を行なったときに積算値が１１０から００１に変化し（時刻ｔ２）、積算器３０において２桁から３桁への桁上げが発生する。これにより、信号φ３０が「Ｈ」レベルになってデータ信号Ｄ１〜Ｄ１０がインクリメントされ、正駆動指令値ＤＲＡが１３２になる。
【００６２】
また、４回の積算を行なったときに積算値が００１から１００に変化し（時刻ｔ３）、積算器３０において２桁から３桁への桁上げが発生する。これにより、信号φ３０が「Ｈ」レベルになってデータ信号Ｄ１〜Ｄ１０がインクリメントされ、正駆動指令値ＤＲＡが１３２になる。したがって、４回の正駆動指令値ＤＲＡの平均値は１３１となり、駆動指令値ＤＲに一致する。
【００６３】
このように、実施の形態２では、駆動指令値ＤＲに含まれる１２ビットのデータ信号Ｄ１〜Ｄ１２のうちの下位の２ビットのデータ信号Ｄ１１，Ｄ１２を積算し、２桁から３桁への桁上げが発生する場合はデータ信号Ｄ１〜Ｄ１０をインクリメントする。このため、４個の正駆動指令値ＤＲＡの平均値は、駆動指令値ＤＲＡに一致する。同様に、４個の負駆動指令値ＤＲＢの平均値は、駆動指令値ＤＲＡの大きさに一致する。このため、図１０に示すように、駆動指令値ＶＲを連続的に変化させると、コイル電流Ｉ（すなわち駆動力）も連続的に変化する。したがって、コイル電流Ｉを滑らかに変化させることができる。
【００６４】
今回開示された実施の形態はすべての点で例示であって制限的なものではないと考えられるべきである。本発明の範囲は上記した説明ではなくて特許請求の範囲によって示され、特許請求の範囲と均等の意味および範囲内でのすべての変更が含まれることが意図される。
【符号の説明】
【００６５】
１  ジャイロセンサ、２  位置センサ、３  駆動指令部、４  ＰＷＭ信号発生部、５  ドライバ、６  ボイスコイルモータ、７  レンズ、１０，１１  磁石、１２  継鉄、１２ａ，１２ｂ  脚部、１３  ボイスコイル、１３ａ，１３ｂ  端子、２０，２１  ＰチャネルＭＯＳトランジスタ、２２，２３  ＮチャネルＭＯＳトランジスタ、２５  クロック発生回路、２６  カウンタ、２７  信号発生回路、２７ａ，２７ｂ  副信号発生回路、３０  積算器、３１  信号補正部。
【図１】
0005473124.tif 000002
【図２】
0005473124.tif 000003
【図３】
0005473124.tif 000004
【図４】
0005473124.tif 000005
【図５】
0005473124.tif 000006
【図６】
0005473124.tif 000007
【図７】
0005473124.tif 000008
【図８】
0005473124.tif 000009
【図９】
0005473124.tif 000010
【図１０】
0005473124.tif 000011
【図１１】
0005473124.tif 000012
【図１２】
0005473124.tif 000013