(57)【特許請求の範囲】
【請求項１】
モータの制御回路であって、
それぞれに前記モータの電気的状態を示す検出信号が入力可能な複数ｍ個（ｍは２以上の整数）のアナログポートと、
前記ｍ個のアナログポートそれぞれの検出信号を受けるマルチプレクサを有し、前記マルチプレクサが選択した検出信号をデジタルデータに変換するＡ／Ｄコンバータと、
前記デジタルデータにもとづいて前記モータの駆動指令を生成するプロセッサと、
前記プロセッサからの制御指令に応じて前記Ａ／Ｄコンバータの動作を制御するとともに、前記デジタルデータを前記プロセッサに受け渡すインタフェース回路と、
を備え、
前記インタフェース回路による前記Ａ／Ｄコンバータの１制御周期は、ｎ（ｎは２以上の整数）を最大とするｋ回（１≦ｋ≦ｎ）のＡ／Ｄ変換を含み、
前記インタフェース回路は、
ｎ個のデータレジスタと、
ｎ個のポート選択レジスタであって、ｉ番目（１≦ｉ≦ｎ）のポート選択レジスタは、ｉ回目のＡ／Ｄ変換において、前記マルチプレクサが選択すべき前記アナログポートを示す値を格納する、ｎ個のポート選択レジスタと、
バッファモードにおいて、ｉ回目の前記デジタルデータDOUTi-1を、ｉ番目の前記データレジスタに格納するアクセス制御部と、
を含み、
前記アクセス制御部はさらに通常モードをサポートし、前記通常モードにおいて、前記アクセス制御部は、ｉ回目の前記デジタルデータDOUTi-1を、前記ｎ個のデータレジスタのうち対応するポート選択レジスタの値に応じたひとつに格納し、
前記インタフェース回路はさらに、
前記バッファモードと前記通常モードの一方を指示する値を格納するモードバッファレジスタを含むことを特徴とする制御回路。
【請求項２】
前記インタフェース回路はさらに、
前記１制御周期に含まれる変換の回数ｋを指定する値を格納するレジスタを含むことを特徴とする請求項１に記載の制御回路。
【請求項３】
前記インタフェース回路はさらに、ランレジスタを含み、
前記アクセス制御部はソフトウェアモードにおいて、前記ランレジスタのアサートを、前記Ａ／Ｄコンバータの動作スタートのトリガとすることを特徴とする請求項１または２に記載の制御回路。
【請求項４】
モータの制御回路であって、
それぞれに前記モータの電気的状態を示す検出信号が入力可能な複数ｍ個（ｍは２以上の整数）のアナログポートと、
前記ｍ個のアナログポートそれぞれの検出信号を受けるマルチプレクサを有し、前記マルチプレクサが選択した検出信号をデジタルデータに変換するＡ／Ｄコンバータと、
前記デジタルデータにもとづいて前記モータの駆動指令を生成するプロセッサと、
前記プロセッサからの制御指令に応じて前記Ａ／Ｄコンバータの動作を制御するとともに、前記デジタルデータを前記プロセッサに受け渡すインタフェース回路と、
を備え、
前記インタフェース回路による前記Ａ／Ｄコンバータの１制御周期は、ｎ（ｎは２以上の整数）を最大とするｋ回（１≦ｋ≦ｎ）のＡ／Ｄ変換を含み、
前記インタフェース回路は、
ｎ個のデータレジスタと、
ｎ個のポート選択レジスタであって、ｉ番目（１≦ｉ≦ｎ）のポート選択レジスタは、ｉ回目のＡ／Ｄ変換において、前記マルチプレクサが選択すべき前記アナログポートを示す値を格納する、ｎ個のポート選択レジスタと、
バッファモードにおいて、ｉ回目の前記デジタルデータDOUTi-1を、ｉ番目の前記データレジスタに格納するアクセス制御部と、
ランレジスタと、
を含み、
前記アクセス制御部はソフトウェアモードにおいて、前記ランレジスタのアサートを、前記Ａ／Ｄコンバータの動作スタートのトリガとすることを特徴とする制御回路。
【請求項５】
前記インタフェース回路はさらに、
前記制御回路において生成される少なくともひとつの内部信号を受け、前記少なくともひとつの内部信号のひとつであるスタートイベント信号にもとづいてスタートタイミング信号を生成するタイミング信号生成回路を含み、
前記アクセス制御部はハードウェアモードにおいて、前記スタートタイミング信号のアサートを、前記Ａ／Ｄコンバータの動作スタートのトリガとすることを特徴とする請求項１から３のいずれかに記載の制御回路。
【請求項６】
モータの制御回路であって、
それぞれに前記モータの電気的状態を示す検出信号が入力可能な複数ｍ個（ｍは２以上の整数）のアナログポートと、
前記ｍ個のアナログポートそれぞれの検出信号を受けるマルチプレクサを有し、前記マルチプレクサが選択した検出信号をデジタルデータに変換するＡ／Ｄコンバータと、
前記デジタルデータにもとづいて前記モータの駆動指令を生成するプロセッサと、
前記プロセッサからの制御指令に応じて前記Ａ／Ｄコンバータの動作を制御するとともに、前記デジタルデータを前記プロセッサに受け渡すインタフェース回路と、
を備え、
前記インタフェース回路による前記Ａ／Ｄコンバータの１制御周期は、ｎ（ｎは２以上の整数）を最大とするｋ回（１≦ｋ≦ｎ）のＡ／Ｄ変換を含み、
前記インタフェース回路は、
ｎ個のデータレジスタと、
ｎ個のポート選択レジスタであって、ｉ番目（１≦ｉ≦ｎ）のポート選択レジスタは、ｉ回目のＡ／Ｄ変換において、前記マルチプレクサが選択すべき前記アナログポートを示す値を格納する、ｎ個のポート選択レジスタと、
バッファモードにおいて、ｉ回目の前記デジタルデータDOUTi-1を、ｉ番目の前記データレジスタに格納するアクセス制御部と、
ランレジスタと、
ソフトウェアモードとハードウェアモードの一方を指定する値を格納するモードスタートレジスタと、
前記制御回路において生成される少なくともひとつの内部信号を受け、前記少なくともひとつの内部信号のひとつにもとづいてスタートタイミング信号を生成するタイミング信号生成回路と、
を含み、
前記アクセス制御部は、（i）前記ソフトウェアモードにおいて、ランレジスタのアサートを前記Ａ／Ｄコンバータの動作スタートのトリガとし、（ii）前記ハードウェアモードにおいて、前記スタートタイミング信号を前記Ａ／Ｄコンバータの動作スタートのトリガとすることを特徴とする制御回路。
【請求項７】
前記インタフェース回路はさらに、
前記ハードウェアモードにおいて、前記少なくともひとつの内部信号のひとつであるスタートイベント信号のアサートから前記スタートタイミング信号のアサートまでの遅延時間の設定値を格納する遅延設定レジスタを含み、
前記タイミング信号生成回路は、
前記スタートイベント信号に前記遅延設定レジスタの設定値に応じた遅延を与えて、前記スタートタイミング信号を出力する遅延回路を含むことを特徴とする請求項５または６に記載の制御回路。
【請求項８】
前記インタフェース回路はさらに、
イベント選択レジスタと、
前記制御回路において生成される複数の内部信号を受け、前記イベント選択レジスタに格納される値に応じたひとつを選択し、前記スタートイベント信号を出力するイベントセレクタと、
を含み、
前記タイミング信号生成回路は、前記スタートイベント信号にもとづいて前記スタートタイミング信号を生成することを特徴とする請求項５に記載の制御回路。
【請求項９】
モータの制御回路であって、
それぞれに前記モータの電気的状態を示す検出信号が入力可能な複数ｍ個（ｍは２以上の整数）のアナログポートと、
前記ｍ個のアナログポートそれぞれの検出信号を受けるマルチプレクサを有し、前記マルチプレクサが選択した検出信号をデジタルデータに変換するＡ／Ｄコンバータと、
前記デジタルデータにもとづいて前記モータの駆動指令を生成するプロセッサと、
前記プロセッサからの制御指令に応じて前記Ａ／Ｄコンバータの動作を制御するとともに、前記デジタルデータを前記プロセッサに受け渡すインタフェース回路と、
を備え、
前記インタフェース回路による前記Ａ／Ｄコンバータの１制御周期は、ｎ（ｎは２以上の整数）を最大とするｋ回（１≦ｋ≦ｎ）のＡ／Ｄ変換を含み、
前記インタフェース回路は、
ｎ個のデータレジスタと、
ｎ個のポート選択レジスタであって、ｉ番目（１≦ｉ≦ｎ）のポート選択レジスタは、ｉ回目のＡ／Ｄ変換において、前記マルチプレクサが選択すべき前記アナログポートを示す値を格納する、ｎ個のポート選択レジスタと、
バッファモードにおいて、ｉ回目の前記デジタルデータDOUTi-1を、ｉ番目の前記データレジスタに格納するアクセス制御部と、
オートモードとシーケンシャルモードの一方を指定する値を格納するモードシーケンスレジスタと、
前記制御回路において生成される少なくともひとつの内部信号を受け、前記シーケンシャルモードにおいて、Ａ／Ｄ変換ごとに、前記少なくともひとつの内部信号のひとつである変換イベント信号にもとづいて変換タイミング信号を生成するタイミング信号生成回路と、
を含み、
前記アクセス制御部は、（i）前記オートモードにおいて、ｋ回のＡ／Ｄ変換を自動的に実行し、（ii）前記シーケンシャルモードにおいて、ｋ回のＡ／Ｄ変換それぞれを、対応する変換タイミング信号をトリガとして実行することを特徴とする制御回路。
【請求項１０】
前記インタフェース回路はさらに、
最大ｎ回のＡ／Ｄ変換それぞれについて、前記変換イベント信号のアサートから前記変換タイミング信号のアサートまでの遅延時間の設定値を格納する遅延設定レジスタを含み、
前記タイミング信号生成回路は、
Ａ／Ｄ変換ごとに、対応する前記変換イベント信号に、対応する前記遅延設定レジスタの設定値に応じた遅延を与えて、前記変換タイミング信号を出力する遅延回路を含むことを特徴とする請求項９に記載の制御回路。
【請求項１１】
前記インタフェース回路はさらに、
最大ｎ回のＡ／Ｄ変換それぞれについて、トリガとすべき内部信号を個別に指定する値を格納するｎ個の個別イベント選択レジスタと、
前記制御回路において生成される複数の内部信号を受け、Ａ／Ｄ変換ごとに、前記複数の内部信号のうち、前記ｎ個の個別イベント選択レジスタのうち対応するひとつに格納される値に応じたひとつを選択し、変換イベント信号を出力するイベントセレクタと、
を含み、
前記タイミング信号生成回路は、前記シーケンシャルモードにおいて、Ａ／Ｄ変換ごとに前記変換イベント信号にもとづいて、前記変換タイミング信号を生成することを特徴とする請求項９または１０に記載の制御回路。
【請求項１２】
前記インタフェース回路はさらに、
１回変換モードと連続変換モードの一方を指定する値を格納するモードバーストレジスタを含み、
前記アクセス制御部は、（i）前記１回変換モードにおいて、１制御周期の変換処理が終了すると、次の動作スタートを待機し、（ii）前記連続変換モードにおいて、１制御周期の変換処理が終了すると、次の動作スタートを待たずに、次の制御周期に移行することを特徴とする請求項１から１１のいずれかに記載の制御回路。
【請求項１３】
前記Ａ／Ｄコンバータを、複数チャンネル備えることを特徴とする請求項１から１２のいずれかに記載の制御回路。
【請求項１４】
ひとつの半導体基板に一体集積化されることを特徴とする請求項１から１３のいずれかに記載の制御回路。
【請求項１５】
ファンモータと、
前記ファンモータを駆動する請求項１から１４のいずれかに記載の制御回路と、
を備えることを特徴とするファン。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、モータの制御回路に関する。
【背景技術】
【０００２】
モータの駆動方式として、矩形波駆動、正弦波駆動、ベクトル制御などが知られている。このうちベクトル制御は、モータのコイル電流を直交するｄ軸成分およびｑ軸成分に分解し、それぞれを個別に制御するものであり、正弦波駆動の一種とも言える。ベクトル制御は、制御効率が高いという利点を有するが、制御が複雑である。
【０００３】
矩形波駆動や正弦波駆動は、アナログ回路あるいはデジタル回路などのハードウェアのみで実現することが可能である。一方、ベクトル制御は、その複雑さゆえに、ハードウェアのみで制御回路を構成することが困難であり、プロセッサ（マイコン）とプログラムの組み合わせによってソフトウェア制御に頼るのが一般的である。
【０００４】
モータを適切に駆動するために、モータの機械的状態（回転数やロータの位置）に関する情報が必要となる。モータの機械的状態は、ロータリエンコーダやレゾルバといった回転センサによって検出することが可能である。あるいはセンサレス方式では、モータの電気的状態（モータのコイル電流および／またはコイル電圧）にもとづいて、モータの機械的状態を推定し、推定された状態にもとづいて駆動制御信号を生成する必要がある。
【０００５】
図１は、ソフトウェア制御を利用したモータの駆動装置４Ｒのブロック図である。ここではセンサレス駆動を例とする。モータ２は三相ブラシレスモータである。駆動装置４Ｒは、主として、三相インバータ６およびモータ制御回路１０Ｒを備える。
【０００６】
モータ制御回路１０Ｒは、主としてＡ／Ｄコンバータモジュール１２、プロセッサ１４、パルス幅変調器１６を備える。Ａ／Ｄコンバータモジュール１２は、モータ２の電気的状態、すなわちコイル電流やコイルの電圧に応じたアナログの検出信号Ｓ１を、デジタルの検出信号Ｓ２に変換する。たとえばインバータ６には、Ｕ相、Ｖ相、Ｗ相の電流を検出するためのセンス抵抗ＲｓＵ，Ｒｓｖ，Ｒｓｗが設けられている（３シャント構成という）。センス抵抗Ｒｓには、対応する相のコイル電流に比例した電圧降下が発生する。センス抵抗ＲｓＵ〜Ｗの電圧降下は、複数のアナログポートを介して、Ａ／Ｄコンバータモジュール１２に入力される。Ａ／Ｄコンバータモジュール１２には、そのほかにも図示しないアナログ信号が入力可能となっている。
【０００７】
プロセッサ１４は、Ａ／Ｄコンバータモジュール１２からのデジタルの検出信号Ｓ２にもとづいて、モータ２の駆動制御信号（たとえば三相電圧の指令値）Ｓ３を生成する。プロセッサ１４は、ユーザがあらかじめ記述したプログラム１８を実行するように構成される。
【０００８】
パルス幅変調器１６は、駆動制御信号Ｓ３をパルス幅変調（ＰＷＭ：Pulse Width Modulation）し、インバータ６の制御信号Ｓ４を生成する。インバータ６は、パルス幅変調器１６からの制御信号Ｓ４に応じてスイッチングする。
【先行技術文献】
【特許文献】
【０００９】
【特許文献１】特開平３−２４３１９３号公報
【特許文献２】特開平３−２７７１９４号公報
【非特許文献】
【００１０】
【非特許文献１】松本  修、プロが教える！CortexTM-Mマイコンでここまでできるモータ制御、［online］、［平成２８年１月７日検索］、インターネット＜URL：http://toshiba.semicon-storage.com/product/micro/pdf/armcortex-m_ws2012_2.pdf＞
【発明の概要】
【発明が解決しようとする課題】
【００１１】
モータ制御回路１０Ｒに求められる機能は、組み合わせられるモータ２の種類、駆動形式、用途によってさまざまである。たとえば電流検出の方式として、図１に示す３シャント構成の他に、３相で１個のセンス抵抗が共有される１シャント構成が存在する。Ａ／Ｄコンバータは、前者において３個の電流検出信号を処理し、後者においては１個の電流検出信号を処理することとなり、Ａ／Ｄ変換の適切なタイミングも両者で異なる。
【００１２】
モータ制御回路１０Ｒに、多様な用途、駆動形式、モータとの組み合わせで使用可能な汎用性、柔軟性を持たせることができれば、モータ制御回路１０Ｒのベンダーにとっては、品種数を減らすことができ、開発コスト、在庫管理の観点から有利である。またモータ制御回路１０Ｒの購入者（ユーザ）にとっても、ハードウェア（すなわちモータ制御回路１０Ｒ）を共通として、ソフトウェア（すなわちプログラム１８）を修正することによりさまざまな用途、駆動形式、モータに対応することができれば、モータ２を搭載するさまざまな機器１の開発期間を短縮できる。
【００１３】
本発明者は、従来のモータ制御回路１０Ｒについて検討した結果、以下の課題を認識するに至った。すなわち従来のモータ制御回路１０Ｒでは、Ａ／Ｄコンバータモジュール１２によるＡ／Ｄ変換の順序、タイミング、Ａ／Ｄ変換の対象となるアナログポートをソフトウェアによって自由に設定、制御することができず、このことが、モータ制御回路１０Ｒの汎用性、柔軟性を高めることの障壁の一因となっていた。
【００１４】
本発明は係る課題に鑑みてなされたものであり、そのある態様の例示的な目的のひとつは、モータの制御回路において、ソフトウェア制御の容易性や柔軟性を提供することにある。
【課題を解決するための手段】
【００１５】
本発明のある態様は、モータの制御回路に関する。モータの制御回路は、複数ｍ個（ｍは２以上の整数）のアナログポートと、Ａ／Ｄコンバータと、プロセッサと、インタフェース回路と、を備える。各アナログポートには前記モータの電気的状態を示す検出信号が入力可能となっている。Ａ／Ｄコンバータは、ｍ個のアナログポートそれぞれの検出信号を受けるマルチプレクサを有し、マルチプレクサが選択した検出信号をデジタルデータに変換する。プロセッサは、デジタルデータにもとづいてモータの駆動指令を生成する。インタフェース回路は、プロセッサからの制御指令に応じてＡ／Ｄコンバータの動作を制御するとともに、デジタルデータをプロセッサに受け渡す。インタフェース回路によるＡ／Ｄコンバータの１制御周期は、ｎ（ｎは２以上の整数）を最大とするｋ回（１≦ｋ≦ｎ）のＡ／Ｄ変換を含む。インタフェース回路は、ｎ個のデータレジスタ（DATA0〜DATAn-1)と、ｎ個のポート選択レジスタ（PORT_SEL0〜PORT_SELn-1）と、アクセス制御部と、を備える。ｉ番目（１≦ｉ≦ｎ）のポート選択レジスタ(PORT_SELi-1)は、ｉ回目のＡ／Ｄ変換において、マルチプレクサが選択すべきアナログポートを示す値を格納する。
アクセス制御部は、バッファモードにおいて、ｉ回目のデジタルデータDOUTi-1を、ｉ番目のデータレジスタ（DATAi-1）に格納する。
【００１６】
この態様によれば、バッファモードにおいて、ｎ個のデータレジスタには、変換の時系列の順序でデータが格納されることとなる。バッファモードでは、ｎ回のＡ／Ｄ変換のうち、複数回で、同じアナログポートのデータを取得することも可能である。ユーザはこのことを念頭においてソフトウェアを設計することができ、プログラミングが容易となる。
【００１７】
アクセス制御部はさらに通常モードをサポートしてもよい。通常モードにおいて、アクセス制御部は、ｉ回目のデジタルデータDOUTi-1を、ｎ個のデータレジスタ（DATA0〜DATAn-1)のうち対応するポート選択レジスタ(PORT_SELi-1)の値に応じたひとつに格納してもよい。インタフェース回路はさらに、バッファモードと通常モードの一方を指示するデータを格納するモードバッファレジスタ（MODE_BUF）を含んでもよい。
制御回路に必要な機能に応じて、通常モードとバッファモードを選択することができ、ソフトウェア制御の柔軟性が提供される。
【００１８】
インタフェース回路はさらに、１制御周期内の変換回数ｋを指定する値を格納する回数レジスタ（BURST_SEL）を含んでもよい。
これにより、必要最低限の変換処理が行われるため、プロセッサの負荷を減らすことができる。
【００１９】
インタフェース回路はさらに、ランレジスタ（RUN）を含んでもよい。アクセス制御部は、ソフトウェアモードにおいて、ランレジスタのアサートを、Ａ／Ｄコンバータの動作スタートのトリガとしてもよい。
なお本明細書において、「レジスタのアサート」とは、そのレジスタに所定値（たとえば１）が書き込まれたことに対応する。これにより、ハードウェアの状態に依存せずに、ソフトウェア制御によって、Ａ／Ｄコンバータをトリガできる。
【００２０】
インタフェース回路はさらに、制御回路において生成される少なくともひとつの内部信号を受け、少なくともひとつの内部信号のひとつであるスタートイベント信号にもとづいてスタートタイミング信号を生成するタイミング信号生成回路を含んでもよい。アクセス制御部は、ハードウェアモードにおいて、スタートタイミング信号を、Ａ／Ｄコンバータの動作スタートのトリガとしてもよい。ハードウェアモードでは、Ａ／Ｄコンバータの制御周期を、制御回路の状態に同期させることができる。
【００２１】
インタフェース回路はさらに、ランレジスタ（RUN）と、ソフトウェアモードとハードウェアモードの一方を指定する値を格納するモードスタートレジスタ（MODE_START）と、制御回路において生成される少なくともひとつの内部信号を受け、少なくともひとつの内部信号のひとつであるスタートイベント信号にもとづいてスタートタイミング信号を生成するタイミング信号生成回路と、を含んでもよい。アクセス制御部は、（i）ソフトウェアモードにおいて、ランレジスタのアサートをＡ／Ｄコンバータの動作スタートのトリガとし、（ii）ハードウェアモードにおいて、スタートタイミング信号をＡ／Ｄコンバータの動作スタートのトリガとしてもよい。
制御回路に必要な機能に応じて、ソフトウェアモードとハードウェアモードを選択することができ、ソフトウェア制御の柔軟性が提供される。
【００２２】
インタフェース回路はさらに、ハードウェアモードにおいて、少なくともひとつの内部信号のひとつであるスタートイベント信号のアサートから、スタートタイミング信号のアサートまでの遅延時間の設定値を格納する遅延設定レジスタ（EVENT_DELAY_SEL,EVENT_DELAY_EN）を含んでもよい。タイミング信号生成回路は、スタートイベント信号に遅延設定レジスタの値に応じた遅延を与えて、スタートタイミング信号を出力する遅延回路を含んでもよい。
本明細書において、「信号のアサート」とは、その信号が所定レベルに遷移することに対応し、別の観点からは、その信号の所定のエッジが発生することに対応する。これにより動作スタートのタイミングを細かくソフトウェア制御できる。
【００２３】
インタフェース回路はさらに、イベント選択レジスタ（EVENT_SEL）と、制御回路において生成される複数の内部信号を受け、イベント選択レジスタに格納される値に応じたひとつを選択し、スタートイベント信号を出力するイベントセレクタと、を含んでもよい。タイミング信号生成回路は、スタートイベント信号にもとづいてスタートタイミング信号を生成してもよい。
これにより、動作スタートのトリガとなる内部信号（すなわちイベント）をソフトウェア制御できる。
【００２４】
複数の内部信号は、パルス幅変調器から供給されてもよい。複数の内部信号はひとつまたは複数のＰＷＭ信号を含んでもよく、好ましくは、Ｕ相、Ｖ相、Ｗ相それぞれの、正相および／または逆相のＰＷＭ信号を含んでもよい。
【００２５】
また複数の内部信号は、パルス幅変調に使用される三角波のピーク、ボトムで１サイクル、所定レベルとなるピークボトム検出信号を含んでもよい。インタフェース回路はさらに、ピークボトム検出信号を受け、ピーク、ボトムそれぞれで遷移するパルス状のピークボトムパルスを生成するピークボトムパルス発生器を含んでもよい。これにより、ピーク、ボトムを、ＰＷＭ信号と同等に扱うことが可能となる。
【００２６】
さらにインタフェース回路はさらに、内部信号のポジティブエッジ、ネガティブエッジのいずれを、スタートタイミング信号の生成に用いるかを指定する値を格納するレジスタ（EVENT_EDGE）を含んでもよい。
【００２７】
インタフェース回路は、オートモードとシーケンシャルモードの一方を指定する値を格納するモードシーケンスレジスタ（MODE_SEQ）と、制御回路において生成される少なくともひとつの内部信号を受け、シーケンシャルモードにおいて、Ａ／Ｄ変換ごとに、少なくともひとつの内部信号のひとつである変換イベント信号にもとづいて変換タイミング信号を生成するタイミング信号生成回路を含んでもよい。アクセス制御部は、（i）オートモードにおいて、ｋ回のＡ／Ｄ変換を自動的に実行し、（ii）シーケンシャルモードにおいて、ｋ回のＡ／Ｄ変換それぞれを、対応する変換タイミング信号をトリガとして実行してもよい。
オートモードでは、ｋ回のＡ／Ｄ変換を、インタフェース回路が自動生成するタイミングで行うことができ、Ａ／Ｄ変換のタイミングがそれほどシビアでない状況において有用である。シーケンシャルモード（マニュアルモード）では、各Ａ／Ｄ変換のタイミングを個別にマニュアルで指定することができ、シビアなタイミング制御に対応できる。
【００２８】
インタフェース回路はさらに、最大ｎ回のＡ／Ｄ変換それぞれについて、変換イベント信号のアサートから変換タイミング信号のアサートまでの遅延時間の設定値を格納する遅延設定レジスタ（EVENT_DELAY_SEL0〜EVENT_DELAY_SELn-1、EVENT_DELAY_EN0〜EVENT_DELAY_ENn-1）を含んでもよい。タイミング信号生成回路は、Ａ／Ｄ変換ごとに、対応する変換イベント信号に、対応する遅延設定レジスタの設定値に応じた遅延を与えて、変換タイミング信号を出力する遅延回路を含んでもよい。
これにより、Ａ／Ｄ変換のタイミングを細かくソフトウェア制御できる。
【００２９】
インタフェース回路はさらに、最大ｎ回のＡ／Ｄ変換それぞれについて、トリガとすべき内部信号を個別に指定する値を格納するｎ個の個別イベント選択レジスタ（EVENT_SEL0-EVENT_SELn-1）と、制御回路において生成される複数の内部信号を受け、Ａ／Ｄ変換ごとに、複数の内部信号のうち、対応する個別イベント選択レジスタに格納される値に応じたひとつを選択し、変換イベント信号を出力するイベントセレクタと、を含んでもよい。タイミング信号生成回路は、シーケンシャルモードにおいて、Ａ／Ｄ変換ごとに、変換イベント信号にもとづいて変換タイミング信号を生成してもよい。
これにより、変換毎に、トリガとするイベントを独立かつ個別に設定できる。
【００３０】
インタフェース回路はさらに、最大ｎ回のＡ／Ｄ変換それぞれについて、内部信号のポジティブエッジ、ネガティブエッジのいずれを変換タイミング信号の生成に用いるかを指定する値を格納するｎ個のレジスタ（EVENT_EDGE0-EVENT_EDGEn-1）を含んでもよい。
これにより、内部信号のポジティブエッジ、ネガティブエッジの両方を、イベントとして扱うことができる。
【００３１】
インタフェース回路はさらに、１回変換モードと連続変換モードの一方を指定する値を格納するモードバーストレジスタ（MODE_BURST）を含んでもよい。アクセス制御部は、（i）１回変換モードにおいて、１制御周期の変換処理が終了すると、次の動作スタートを待機してもよい。（ii）連続変換モードにおいて、１制御周期の変換処理が終了すると、次の動作スタートを待たずに、次の制御周期に移行してもよい。
１回変換モードと連続変換モードを選択可能とすることで、さらなる柔軟性が提供される。
【００３２】
制御回路は、Ａ／Ｄコンバータを、複数チャンネル備えてもよい。
【００３３】
制御回路は、ひとつの半導体基板に一体集積化されてもよい。
「一体集積化」とは、回路の構成要素のすべてが半導体基板上に形成される場合や、回路の主要構成要素が一体集積化される場合が含まれ、回路定数の調節用に一部の抵抗やキャパシタなどが半導体基板の外部に設けられていてもよい。
【００３４】
本発明の別の態様は、ファンに関する。ファンは、ファンモータと、ファンモータを駆動する上述のいずれかの制御回路と、を備える。
【００３５】
なお、以上の構成要素の任意の組み合わせや本発明の構成要素や表現を、方法、装置、システムなどの間で相互に置換したものもまた、本発明の態様として有効である。
【発明の効果】
【００３６】
本発明のある態様によれば、ソフトウェア制御の容易性や柔軟性を提供できる。
【図面の簡単な説明】
【００３７】
【図１】ソフトウェア制御を利用したモータの駆動装置のブロック図である。
【図２】実施の形態に係る制御回路を備える駆動装置のブロック図である。
【図３】図２の制御回路の一部の詳細なブロック図である。
【図４】ＡＤＣインタフェースとＡ／Ｄコンバータのインタフェースを説明する図である。
【図５】Ａ／ＤコンバータおよびＡＤＣインタフェースの１制御周期の動作波形図である。
【図６】パルス幅変調器およびピークボトムパルス発生器の動作波形図である。
【図７】内部信号とイベントを示す図である。
【図８】イベントセレクタおよびインタフェースユニットの構成例を示す図である。
【図９】Ａ／Ｄコンバータの制御シーケンスを示す図である。
【図１０】図１０（ａ）は、バッファモードにおけるアクセス制御部の動作を説明する図であり、図１０（ｂ）は、通常モードにおけるアクセス制御部の動作を説明する図である。
【図１１】ハードウェアモード、シーケンシャルモードの組み合わせを示す波形図である。
【発明を実施するための形態】
【００３８】
（全体構成）
図２は、実施の形態に係る制御回路１０を備える駆動装置４のブロック図である。駆動装置４はモータ２とともに機器１に用いられる。機器１の種類は特に限定されないが、家電製品をはじめ、ＯＡ機器、産業機器、車載機器、携帯用電子機器など多岐にわたって利用することができる。身近なところでは、エアコンや冷蔵庫などのコンプレッサや、多くの機器の冷却用のファンに、モータ２が用いられている。駆動装置４は、制御回路１０に加えて、インバータ６を備える。インバータ６は、Ｕ相、Ｖ相、Ｗ相のブリッジ回路（ドライバ）を含む。
【００３９】
本実施の形態において、制御回路１０の制御対象は三相ブラシレスモータであり、センサレス方式でインバータ６を制御するものとする。制御回路１０からインバータ６へは、Ｕ，Ｖ，Ｗ相それぞれのハイサイドスイッチ、ローサイドスイッチを制御するために必要な駆動信号が出力される。
【００４０】
制御回路１０は、ひとつの半導体基板に集積化された機能ＩＣ（Integrated Circuit）であり、モータ２の電気的状態を監視し、その結果にもとづいて、駆動信号を生成する。制御回路１０は、複数ｍ個（ｍは２以上の整数）のアナログポートPORT-0〜PORT-m-1が設けられる。本実施の形態ではｍ＝８とし、PORT-0〜PORT-7が設けられる。各アナログポートには、モータ２の電気的状態を示す検出信号が入力可能である。なお各アナログポートには、そのほかの電気信号、たとえばサーミスタなどの温度センサの出力電圧や、モータ２の回転数を指示するアナログ電圧などを入力してもよい。
【００４１】
図２には３シャント構成が示されており、Ｕ，Ｖ，Ｗ相ごとにセンス抵抗（シャント抵抗）ＲＳが設けられ、各センス抵抗は、ひとつのアナログポートに割り当てられ、それぞれの電圧降下が検出信号として割り当てられたアナログポートに入力される。１シャント構成の場合、１個のシャント抵抗の電圧降下が、いずれかのアナログポートに入力される。
【００４２】
制御回路１０は、主として、デジタル演算処理部３０、Ａ／Ｄコンバータ５０、メモリ６０、クロック発生器７０を備える。本発明と関係のないブロックは省略されている。Ａ／Ｄコンバータ５０は、その入力側に、ｍ個のアナログポートそれぞれの検出信号を受けるマルチプレクサ５２を有する。Ａ／Ｄコンバータ５０は、マルチプレクサ５２が選択した検出信号をデジタルデータ（変換データ）DOUTに変換する。図２の制御回路１０は、３チャンネル分ch0〜ch2のＡ／Ｄコンバータ５０を備えるが、チャンネル数は任意である。Ａ／Ｄコンバータ５０の構成、方式は特に限定されないが、たとえば逐次比較型のＡ／Ｄコンバータを用いてもよい。
【００４３】
デジタル演算処理部３０は、Ａ／Ｄコンバータ５０からの変換データDOUTを受け、インバータ６を制御するためのＰＷＭ信号（ＰＷＭ＿Ｕ，ＰＷＭ＿Ｖ，ＰＷＭ＿Ｗおよびそれらの反転信号＃ＰＷＭ＿Ｕ，＃ＰＷＭ＿Ｖ，＃ＰＷＭ＿Ｗ）を生成する。デジタル演算処理部３０のシステムプラットフォーム３２は、いわゆる組み込みプロセッサであり、たとえばＡＲＭ社が提供するＡＲＭアーキテクチャを用いて構成してもよい。システムプラットフォーム３２は、ＣＰＵコア３４に加えて、メモリコントローラ３６，３８、パワーマネージメントユニット４０、システムコントローラ４２などが内蔵される。
【００４４】
メモリ６０は、フラッシュメモリなどの不揮発性メモリ６２と、ＳＲＡＭなどの揮発性メモリ６４を含む。不揮発性メモリ６２には、ＣＰＵコア３４が実行すべきプログラムが格納される。揮発性メモリ６４は、主記憶装置として利用される。
【００４５】
デジタル演算処理部３０のうちモータ制御ブロック４４は、モータ２の制御に固有の回路ブロックである。ＡＤＣインタフェース（インタフェース回路）４６は、システムプラットフォーム３２とＡ／Ｄコンバータ５０のインタフェースであり、Ａ／Ｄコンバータ５０からの変換データをＣＰＵコア３４に受け渡す。また詳しくは後述するが、Ａ／Ｄコンバータ５０の動作は、ＣＰＵコア３４によってソフトウェア制御可能となっている。ＡＤＣインタフェース４６は、ＣＰＵコア３４からの制御指令に応じて、Ａ／Ｄコンバータ５０の動作を制御する。ＣＰＵコア３４からＡＤＣインタフェース４６への制御指令は、後述する制御レジスタへの書き込みによって行われる。
【００４６】
システムプラットフォーム３２は、プログラムを実行することにより、モータ２の駆動指令（たとえば３相の電圧指令値）を生成する。パルス幅変調器４８は、システムプラットフォーム３２が生成した駆動指令をパルス幅変調し、Ｕ，Ｖ，Ｗ相のＰＷＭ信号およびその反転信号を生成する。なおモータの制御方式やアルゴリズムは特に限定されず、公知のベクトル制御の技術を用いることができる。
【００４７】
システムプラットフォーム３２内の各ブロックと、モータ制御ブロック４４内の各ブロックは、バス３１を介して接続され、レジスタを介してさまざまなデータや制御ビットを、相互に参照し、あるいは書き込み可能となっている。
【００４８】
以上が制御回路１０の全体構成である。続いて、ＡＤＣインタフェース４６について説明する。
【００４９】
（ＡＤＣインタフェース）
図３は、図２の制御回路１０の一部の詳細なブロック図である。図３には、ＡＤＣインタフェース４６の構成が詳細に示されている。ＡＤＣインタフェース４６は、ＡＤＣ  Ｉ／Ｆレジスタ（以下、単にレジスタと称する）８０、インタフェースユニット８２＿１〜８２＿３、イベントセレクタ８４を備える。インタフェースユニット８２は、チャンネルごとに設けられ、それらは同様に構成される。
【００５０】
ＡＤＣインタフェース４６は、ＣＰＵコア３４と同じシステムクロックＣＬＫ＿ＳＹＳ（たとえば４０ＭＨｚ）と同期して動作する。一方、複数のＡ／Ｄコンバータ５０は、Ａ／Ｄコンバータ５０の変換周波数動作範囲（たとえば１６ＭＨｚ）のクロックＣＬＫ＿ＩＲと同期して動作する。ＡＤＣインタフェース４６とＡ／Ｄコンバータ５０は、非同期であってよい。
【００５１】
図４は、ＡＤＣインタフェース４６とＡ／Ｄコンバータ５０のインタフェースを説明する図である。図４には１回の変換動作が示される。Ａ／Ｄコンバータ５０はたとえば１２ビット逐次比較型であり、１回の変換に、クロックＣＬＫ＿ＩＲの１２サイクルを要する。変換に先だって、ＡＤＣインタフェース４６からＡ／Ｄコンバータ５０に対して、アナログポートを指定するポート選択信号PORT_SEL[2:0]が与えられる。変換開始信号CONV_IHがアサートされると、Ａ／Ｄ変換が開始される。そして１２サイクルの経過後に、１２ビット分の変換が完了すると、変換完了信号TRIG_OUT_OHがアサートされ、１２ビットの変換データDOUT[11:0]が有効となる。なおＡ／Ｄコンバータ５０のビット数は特に限定されず、１０ビットあるいは８ビットであってもよく、あるいはビット数が可変であってもよい。
【００５２】
図３に戻る。レジスタ８０は、ＣＰＵコア３４からバス３１を介してアクセス可能である。レジスタ８０は、チャンネルごとに、データレジスタと制御レジスタを含む。各チャンネルのデータレジスタには、そのチャンネルのＡ／Ｄコンバータ５０が生成した変換データDOUTが格納される。ＣＰＵコア３４は、データレジスタにアクセスすることにより、複数のアナログポートPORT-0〜PORT7に入力された検出信号のデジタル値を取得する。また各チャンネルのＡ／Ｄコンバータ５０の動作は、ＣＰＵコア３４がそのチャンネルの制御レジスタに書き込んだ値にもとづいて制御される。具体的にはＡＤＣインタフェース４６は、制御レジスタの値にもとづいて、ポート選択信号PORT_SELおよび変換開始信号CONV_IHのタイミングを制御する。
【００５３】
（制御周期）
続いて、制御周期について説明する。ＡＤＣインタフェース４６によるＡ／Ｄコンバータ５０の１制御周期は、ｎ（ｎは２以上の整数）を最大とするｋ回（１≦ｋ≦ｎ）のＡ／Ｄ変換を含む。本実施の形態ではｎ＝８とする。以下では１チャンネル分について説明する。
【００５４】
回数ｋを設定するために、以下の制御レジスタが設けられる。なお本明細書に示す制御レジスタの値は例示であり、別の値を割り当ててもよい。またレジスタの名称も便宜的なものである。
【００５５】
・回数レジスタ  （BURST_SEL）
０００：  ｋ＝１
００１：  ｋ＝２
〜
１１１：  ｋ＝８
レジスタBURST_SELには、変換回数ｋを指定する値が格納される。変換回数ｋの最大値はｎと等しい。すなわち、１≦ｋ≦ｎである。
【００５６】
つまり、１制御周期の間にｋ回のＡ／Ｄ変換が行われ、したがってｋ個（最大８個）の変換データDOUT0〜DOUTk-1が生成される。DOUTi-1はｉ回目の変換データを表し、図４のDOUT[11:0]に相当する。最大ｎ個の変換データDOUT0〜DOUTn-1を格納するために、ｎ個のデータレジスタが設けられる。
【００５７】
・データレジスタ  （DATA0-DATAn-1)
データレジスタDATAの個数は、最大変換回数ｎと等しい。ｎ個のデータレジスタ（DATA0-DATAn-1)は、ｎ回分の変換データDOUT0〜DOUTn-1を格納する。変換データDOUT0〜DOUTn-1の格納は、上述したアクセス制御部９２が行う。
【００５８】
・ポート選択レジスタ  （PORT_SEL0-PORT_SELn-1）
０００：  １番目のポート  PORT-0
００１：  ２番目のポート  PORT-1
０１０：  ３番目のポート  PORT-2
〜
１１０：  ７番目のポート  PORT-6
１１１：  ８番目のポート  PORT-7
マルチプレクサ５２の制御のために、ポート選択レジスタは、最大変換回数と等しいｎ個、設けられる。ｉ番目のポート選択レジスタPORT_SELiの値Xi-1は、ｉ回目のＡ／Ｄ変換において、マルチプレクサ５２が選択すべきアナログポートを指定する。ポート選択レジスタPORT_SEL3の値X3が０であるとき、４回目のＡ／Ｄ変換において、１番目のアナログポートPORT-0が選択される。
【００５９】
図５は、Ａ／Ｄコンバータ５０およびＡＤＣインタフェース４６の１制御周期の動作波形図である。はじめに、１回目の変換に先立ち、マルチプレクサ５２に対するポート選択信号PORT_SELとして、１番目のポート選択レジスタPORT_SEL0の値がセットされる。続いて、変換開始信号CONV_IHがアサートされると変換が開始し、変換が終了すると、変換終了信号TRIG_OUT_OHがアサートされ、１回目の変換データDOUT0が有効となる。続いて、２回目の変換に先立ち、マルチプレクサ５２に対するポート選択信号PORT_SELとして、２番目のポート選択レジスタPORT_SEL1の値がセットされる。続いて、変換開始信号CONV_IHがアサートされると変換が開始し、変換が終了すると、変換終了信号TRIG_OUT_OHがアサートされ、２回目の変換データDOUT1が有効となる。同様の処理をｋ回繰り返すと１制御周期が終了する。
【００６０】
（イベント）
続いて図３に戻り、イベントについて説明する。制御回路１０は、制御回路１０の内部で発生するさまざまなイベントをトリガとして制御可能に構成される。制御回路１０の内部において生成され、そのエッジ（あるいはレベル）がイベントの発生を表す信号を、内部信号と称する。
【００６１】
本実施の形態において、制御回路１０では、以下のイベントのうち、少なくともひとつ、好ましくは複数が利用可能となっている。
・  Ｕ相  ターンオンイベント
・  Ｕ相  ターンオフイベント
・  Ｖ相  ターンオンイベント
・  Ｖ相  ターンオフイベント
・  Ｗ相  ターンオンイベント
・  Ｗ相  ターンオフイベント
【００６２】
たとえばＵ相のターンオン、ターンオフのイベントを用いたい場合、パルス幅変調器４８において生成されるＵ相ＰＷＭ信号ＰＷＭ＿Ｕを内部信号として用いればよく、そのポジティブエッジ、ネガティブエッジそれぞれが、Ｕ相のターンオン、ターンオフに対応する。あるいは反転信号＃ＰＷＭ＿Ｕを内部信号として用いてもよく、そのネガティブエッジ、ポジティブエッジそれぞれが、Ｕ相のターンオン、ターンオフに対応する。本明細書において＃は、論理反転を表す。
【００６３】
同様に、Ｖ相のターンオン、ターンオフのイベントを用いたい場合、Ｖ相ＰＷＭ信号ＰＷＭ＿Ｖ（もしくはその反転信号＃ＰＷＭ＿Ｖ）を内部信号として用いればよく、Ｗ相のターンオン、ターンオフのイベントを用いたい場合、Ｗ相ＰＷＭ信号ＰＷＭ＿Ｗ（もしくはその反転信号＃ＰＷＭ＿Ｗ）を内部信号として用いればよい。
【００６４】
また制御回路１０では、イベントとして、パルス幅変調器４８において使用される三角波のピーク（山）およびボトム（谷）が利用可能となっている。
・ＰＷＭの三角波のピークイベント、ボトムイベント
【００６５】
ピーク、ボトムに対応する内部信号として、パルス幅変調器４８からＡＤＣインタフェース４６には、三角波のピークおよびボトムを表すピークボトム検出信号ＳＰ／Ｂが供給される。たとえばピークボトム検出信号ＳＰ／Ｂは、ピーク、ボトムそれぞれにおいて、システムクロックＣＬＫ＿ＳＹＳの１サイクル、アサート（たとえばハイレベル）される。
【００６６】
ピークボトムパルス発生器８６は、ピークボトム検出信号ＳＰ／Ｂを受け、ピーク、ボトムごとにレベルが遷移するピークボトムパルスＰＰ／Ｂを生成する。
【００６７】
図６は、パルス幅変調器４８およびピークボトムパルス発生器８６の動作波形図である。パルス幅変調器４８においてタイマカウンタは、ＰＷＭ周期の三角波を生成し、ピーク、ボトムそれぞれにおいて、ピークボトム検出信号ＳＰ／Ｂをアサート（たとえばハイレベル）する。ピークボトムパルス発生器８６は、ピークボトム検出信号ＳＰ／Ｂがアサートされるたびに、ピークボトムパルスＰＰ／Ｂのレベルを遷移させる。こうして生成されたピークボトムパルスＰＰ／Ｂは、そのほかの内部信号（ＰＷＭ＿Ｕ〜ＰＷＭ＿Ｗ）と同様に、ＰＷＭ周期を有するパルス信号となり、それらを同等に扱うことが可能である。
【００６８】
図３に戻る。イベントセレクタ８４は、各チャンネルについて、複数の内部信号からひとつを選択し、イベント信号ＥＶＴとして、対応するインタフェースユニット８２に供給する。イベント信号ＥＶＴに使用する内部信号は、レジスタ８０の制御レジスタの値に応じてチャンネルごとに個別に選択可能である。
【００６９】
各チャンネルにおいて、インタフェースユニット８２は、イベントセレクタ８４からのイベント信号ＥＶＴにもとづいて、タイミング信号ＴＭＧを生成し、タイミング信号ＴＭＧに応じてＡ／Ｄコンバータ５０の動作を制御する。これをハードウェアモードという。なお後述するように、Ａ／Ｄコンバータ５０を、イベント信号ＥＶＴに依存せずに制御することも可能であり、これをソフトウェアモードと称する。
【００７０】
図７は、内部信号とイベントを示す図である。図３に示すように、ＡＤＣインタフェース４６には、複数の内部信号ＰＷＭ＿Ｕ，ＰＷＭ＿Ｖ，ＰＷＭ＿Ｗ，ピークボトムパルスＰＰ／Ｂが入力される。したがって各ＰＷＭ周期において、８個のイベント（i）〜（viii）を、タイミング制御（具体的には後述するスタート状態の制御や変換タイミング）に利用することができる。非特許文献１に記載の従来技術では、１７ページに記載のように、Ａ／Ｄ変換の動作タイミングが、ハードウェアとして構成されるトリガ発生器（Trigger generator）によって生成されており、したがって、Ａ／Ｄコンバータのタイミング制御に、ソフトウェアを介在させることができず、柔軟性に欠けていた。これに対して本実施の形態によれば、内部信号（イベント）を利用して、自由にＡ／Ｄコンバータ５０のタイミングを制御することができる。これは、プログラムの自由度を高め、あるいはモータの制御性を高めることに寄与する。
【００７１】
（イベントセレクタ８４およびインタフェースユニット８２）
図８は、イベントセレクタ８４およびインタフェースユニット８２の構成例を示す図である。イベントセレクタ８４は、チャンネルごとに設けられたセレクタ８８＿１〜８８＿３を含む。各セレクタ８８は、対応する制御レジスタに格納された値に応じた内部信号を選択してイベント信号ＥＶＴを生成し、対応するインタフェースユニット８２に出力する。
【００７２】
続いてインタフェースユニット８２の構成を説明する。ここでは第３チャンネルｃｈ２の構成のみを示すが、そのほかのチャンネルも同様に構成される。インタフェースユニット８２は、タイミング信号生成回路９０、アクセス制御部９２、変換データバッファ９４、エラー検出部９６を備える。
【００７３】
タイミング信号生成回路９０は、イベントセレクタ８４からのイベント信号ＥＶＴに応じて、タイミング信号ＴＭＧを生成する。たとえばタイミング信号生成回路９０は、エッジセレクタ１００、遅延回路１０２、遅延セレクタ１０４、非同期処理回路１０６を含む。
【００７４】
上述のように、イベントセレクタ８４から出力されるイベント信号ＥＶＴは、ＰＷＭ周期を有するパルス信号である。エッジセレクタ１００は、イベント信号ＥＶＴのポジティブエッジ、ネガティブエッジのうち、対応する制御レジスタの値に応じた一方を検出し、それを切り出す。つまり、ポジティブエッジ、ネガティブエッジそれぞれに対応する一方のイベントを選択する。遅延回路１０２は、カウンタを用いて構成され、切り出されたエッジ信号に、対応する制御レジスタの値に応じた遅延を与える。遅延セレクタ１０４は、それと対応する制御レジスタに応じて、遅延された、および遅延されない信号の一方を選択する。非同期処理回路１０６は、システムクロックＣＬＫ＿ＳＹＳと同期した遅延セレクタ１０４の出力を、Ａ／Ｄコンバータ側のクロックＣＬＫ＿ＩＲに同期処理し、タイミング信号ＴＭＧを生成する。
【００７５】
アクセス制御部９２は、主として２つの機能を担う。ひとつは、ハードウェアモードにおいて、タイミング信号ＴＭＧをトリガとして、Ａ／Ｄコンバータ５０の変換タイミングを制御する機能（アクセスタイミング生成）である。もうひとつは、Ａ／Ｄコンバータ５０から得られた変換データDOUTを、レジスタ８０のデータレジスタDATAに格納する機能（ＡＤＣ制御）である。
【００７６】
変換データバッファ９４は、Ａ／Ｄコンバータ５０が生成したデジタル値を一時的に格納する。エラー検出部９６は、アクセス制御部９２の状態にもとづいて、Ａ／Ｄコンバータ５０やインタフェースユニット８２における異常の有無を判定する。エラー検出部９６は、たとえば以下のエラーを検出する。エラー検出時においては、エラー通知用のレジスタに所定値（たとえば１）を書き込み、またＣＰＵコア３４に割り込みをかけてもよい。
【００７７】
・イベントエラー
イベントエラーは、Ａ／Ｄ変換中に、新たにＡ／Ｄ変換の開始のトリガとなるイベントが発生したときに、発生したものと判定される。
【００７８】
モータ制御では、高電圧を扱う必要があるため、意図しない制御が行われている場合には、いち早く検知して、モータを停止するなどの適切な保護処理が求められる。エラー検出部９６にイベントエラーの検知機能を実装することにより、ＡＤＣインタフェース４６に入力するイベントの関係が正しく制御できていないことをハードウェアレベルで迅速に検知することができ、回路を保護するができる。また機器１の設計段階においては、イベントエラーの検知は、ソフトウェアあるいはハードウェア設計のデバッグに大いに有用である。
【００７９】
続いて、Ａ／Ｄコンバータ５０のタイミング制御について説明する。本実施の形態においては、制御回路１０の代表的な制御可能なタイミングとして
（１）  動作スタートのタイミング
（２）  ｋ回のＡ／Ｄ変換のタイミング
が存在する。
【００８０】
図９は、Ａ／Ｄコンバータ５０の制御シーケンスを示す図である。動作スタートとは、あるモードにおいては、Ａ／Ｄコンバータ５０の１制御周期の開始に対応する。動作スタートに応じて、スタートフラグ（START）が立つと、Ａ／Ｄコンバータ５０がｋ回のＡ／Ｄ変換を実行可能な状態となる。実施の形態に係る制御回路１０では、動作スタートのタイミングならびに複数のＡ／Ｄ変換のタイミングの少なくともひとつが、内部信号から得られるイベント信号（タイミング信号）によって制御可能となっている。
【００８１】
制御回路１０は、多様なモードが切り替え可能となっている。以下、制御回路１０のモードについて説明する。なお、３チャンネルch0〜ch2は同様であるため、一個のチャンネルのみに着目して説明する。なお制御レジスタおよびデータレジスタは、チャンネルごとに設けられる。
【００８２】
＜バッファモードと通常モード＞
実施の形態に係る制御回路１０は、バッファモードと通常モードという２つのモードをサポートしており、レジスタMODE_BUFの値によって一方を指定可能となっている。２つのモードでは、変換データDOUT0〜DOUTn-1のデータレジスタDATA0〜DATAn-1への格納方法が異なる。
【００８３】
・モードバッファレジスタ（MODE_BUF）
値０：  通常モード
値１：  バッファモード
【００８４】
図１０（ａ）は、バッファモードにおけるアクセス制御部９２の動作を説明する図である。図１０（ａ）には、ポート選択レジスタも併せて示される。バッファモードにおいて、ｉ回目（ｉ＝１〜８）の変換データDOUTi-1は、ｉ番目のデータレジスタ（DATAi-1）に格納される。このバッファモードにおいて、ｎ個のデータレジスタには、変換の時系列の順序でデータが格納されることとなる。バッファモードでは、ｎ回のうち複数回、同じアナログポートを指定し、そのデータを取得することが可能である。ユーザはこのことを念頭においてソフトウェアを設計すればよく、プログラミングが容易となる。
【００８５】
図１０（ｂ）は、通常モードにおけるアクセス制御部９２の動作を説明する図である。ポート選択レジスタの値は、図１０（ａ）と同じである。通常モードにおいて、アクセス制御部９２は、ポート選択レジスタPORT_SEL0〜PORT_SEL7を参照して、変換データDOUT〜DOUT7の格納先を決定する。具体的にはアクセス制御部９２は、ｉ回目の変換データDOUTi-1を、対応するポート選択レジスタPORT_SELi-1値に応じたデータレジスタDATAjに格納する。たとえば図１０（ｂ）において、１回目の変換データDOUT0に着目する。対応するポート選択レジスタPORT_SEL0の値は２であるから、変換データDOUT0は、データレジスタDATA2に格納される。同様に２回目の変換データDOUT1に着目すると、対応するポート選択レジスタPORT_SEL1の値は４であるから、変換データDOUT1は、データレジスタDATA4に格納される。
【００８６】
つまり通常モードでは、ｉ番目のアナログポートPORT-iの変換データが、ｉ番目のデータレジスタDATAi-1に格納されることとなる。通常モードでは、１制御周期につき、ひとつのアナログポートのデータを、１回だけ取得することができる。制御回路１０に必要な機能に応じて、通常モードとバッファモードを選択することができ、ソフトウェア制御の柔軟性が提供される。
【００８７】
＜ハードウェアモードとソフトウェアモード＞
動作スタートに関して、以下で説明するハードウェアモードとソフトウェアモードが用意されている。これらのモードは、モードスタートレジスタ（MODE_START）の値で指定できる。
【００８８】
・モードスタートレジスタ（MODE_START）
０：ソフトウェアモード
１：ハードウェアモード
【００８９】
ソフトウェアモードは、動作スタートが、ハードウェアの状態（つまり内部信号やイベント信号）に依存せずに、ソフトウェアによって発生する。ソフトウェア的に動作スタートするために、ランレジスタが設けられる。
・ランレジスタ（RUN）
１：  １の書き込みで動作スタート
具体的にはソフトウェア制御にもとづいてＣＰＵコア３４が、ランレジスタRUNをアサートする（１を書き込み）と、それをトリガとして、Ａ／Ｄコンバータ５０の動作が開始する。
【００９０】
ハードウェアモードでは、ランレジスタRUNがアサートされた後に、ハードウェアの所定の状態をトリガとして、動作スタートが発生する。具体的にはランレジスタRUNに１が書き込まれた後に、イベントセレクタ８４からのスタートイベント信号ＥＶＴ＿ＳＴＡＲＴが入力されると、それをトリガとして、Ａ／Ｄコンバータ５０の動作がスタートする。スタートイベント信号ＥＶＴ＿ＳＴＡＲＴは、イベントセレクタ８４が出力するイベント信号のひとつである。
【００９１】
スタートイベント信号ＥＶＴ＿ＳＴＡＲＴの生成のために、以下の制御レジスタが用意される。
【００９２】
・イベント選択レジスタ（EVENT_SEL）
００００：  ＰＷＭ＿Ｕを選択
０００１：  ＰＷＭ＿Ｖを選択
００１０：  ＰＷＭ＿Ｗを選択
００１１：  ＃ＰＷＭ＿Ｕを選択
０１００：  ＃ＰＷＭ＿Ｖを選択
０１０１：  ＃ＰＷＭ＿Ｗを選択
０１１０：  ＰＰ／Ｂを選択
０１１１：  ＃ＰＰ／Ｂを選択
スタートイベント信号ＥＶＴ＿ＳＴＡＲＴとなる内部信号を指定する。図３のイベントセレクタ８４（図８のセレクタ８８）を制御するために使用される。
【００９３】
インタフェースユニット８２は、スタートイベント信号ＥＶＴ＿ＳＴＡＲＴにもとづいて、スタートタイミング信号ＴＭＧ＿ＳＴＡＲＴを生成する。スタートタイミング信号ＴＭＧ＿ＳＴＡＲＴの生成に関して、以下の制御レジスタが用意される。
【００９４】
・エッジ選択レジスタ（EVENT_EDGE）
０：  ポジティブエッジ
１：  ネガティブエッジ
内部信号のポジティブエッジ、ネガティブエッジのいずれを、スタートイベント信号ＥＶＴ＿ＳＴＡＲＴの生成に用いるかを指定する。図８のエッジセレクタ１００を制御するために使用される。
【００９５】
イベント選択レジスタEVENT_SELとエッジ選択レジスタEVENT_EDGEの組み合わせによって、動作スタートのトリガとなるイベント（スタートイベント）が指定される。
【００９６】
・遅延設定レジスタ（EVENT_DELAY）
スタートイベント信号ＥＶＴ＿ＳＴＡＲＴのアサートから、スタートタイミング信号ＴＭＧ＿ＳＴＡＲＴのアサートまでの遅延時間を指定。図８の遅延回路１０２を制御するために使用される。
【００９７】
・遅延イネーブルレジスタ（EVENT_DELAY_EN）
スタートタイミング信号ＴＭＧ＿ＳＴＡＲＴの遅延の有無を指定する。図８の遅延セレクタ１０４を制御するために使用される。
【００９８】
また、動作スタートを解除するために、ストップレジスタ（STOP）が設けられる。
・ストップレジスタ（STOP）
１：  １の書き込みで動作停止（スタート状態の解除）
以上が動作スタートに関する説明である。
【００９９】
＜オートモードとシーケンシャルモード＞
続いて、変換タイミングについて説明する。変換タイミングに関連して、２つのモード、すなわちオートモードとシーケンシャルモードが用意され、その選択のために以下の制御レジスタが用意される。
【０１００】
・モードシーケンスレジスタ（MODE_SEQ）
０：オートモード
１：シーケンシャルモード
【０１０１】
アクセス制御部９２は、（i）オートモードにおいて、１制御周期に含まれるｋ回のＡ／Ｄ変換を自動的に実行する。すなわち、複数の変換タイミングＣＯＮＶ０〜ＣＯＮ７は、動作スタート後に、アクセス制御部９２が自動生成する。
【０１０２】
アクセス制御部９２は、（ii）シーケンシャルモードにおいて、１制御周期に含まれるｋ回のＡ／Ｄ変換それぞれを、Ａ／Ｄ変換ごとにイベントが発生するごとに実行する。具体的には、シーケンシャルモードにおいて、図８のイベントセレクタ８４は、スタートイベント信号ＥＶＴ＿ＳＴＡＲＴに続いて、変換イベント信号ＥＶＴ０〜ＥＶＴ７を順に発生する。
【０１０３】
変換イベント信号ＥＶＴ０〜ＥＶＴ７に関して、以下の制御レジスタが用意される。
・個別イベント選択レジスタ（EVENT_SEL0-EVENT_SELn-1）
それぞれ、変換イベント信号ＥＶＴ０〜ＥＶＴ７となる内部信号を指定する。値についてはEVENT_SELと同様であり、図３のイベントセレクタ８４（図８のセレクタ８８）を制御するために使用される。
【０１０４】
・個別エッジ選択レジスタ（EVENT_EDGE0-EVENT_EDGE7）
０：  ポジティブエッジ
１：  ネガティブエッジ
内部信号のポジティブエッジ、ネガティブエッジのいずれを、変換イベント信号ＥＶＴ＿ＣＯＮＶの生成に用いるかを指定する。図８のエッジセレクタ１００を制御するために使用される。
【０１０５】
個別イベント選択レジスタEVENT_SELi-1と個別エッジ選択レジスタEVENT_EDGEi-1の組み合わせによって、ｉ回目のＡ／Ｄ変換のトリガとなるイベント（変換イベント）が指定される。
【０１０６】
図８のタイミング信号生成回路９０は、レジスタ８０からの変換イベント信号ＥＶＴ０〜ＥＶＴ７にもとづいて、変換タイミング信号ＴＭＧ０〜ＴＭＧ７を生成する。変換タイミング信号ＴＭＧ０〜ＴＭＧ７の生成に関して、以下の制御レジスタが用意される。
【０１０７】
・遅延設定レジスタ（EVENT_DELAY0-EVENT_DELAY7）
各変換イベント信号ＥＶＴｉのアサートから、変換タイミング信号ＴＭＧｉのアサートまでの遅延時間を指定。値についてはEVENT_DELAYと同様であり、図８の遅延回路１０２を制御するために使用される。
【０１０８】
・遅延イネーブルレジスタ（EVENT_DELAY_EN0-EVENT_DELAY_ENn-1）
各変換イベント信号ＴＭＧｉの遅延の有無を指定する。値についてはEVENT_DELAY_EN0と同様であり、図８の遅延セレクタ１０４を制御するために使用される。
【０１０９】
オートモードでは、ｎ回のＡ／Ｄ変換を自動的に、インタフェースユニット８２が生成するタイミングで行うことができ、Ａ／Ｄ変換のタイミングがそれほどシビアでない状況において有用である。シーケンシャルモード（マニュアルモード）では、各Ａ／Ｄ変換のタイミング（変換タイミング）を個別にマニュアルで指定することができ、シビアなタイミング制御に対応できる。
【０１１０】
＜１回変換モードと連続変換モード＞
アクセス制御部９２は、以下で説明する１回変換モードと連続変換モードが選択可能となっている。これらのモードの切りかえのために、以下の制御レジスタが設けられる。
【０１１１】
・モードバーストレジスタ（MODE_BURST）
０：  １回変換モード
１：  連続変換モード
【０１１２】
アクセス制御部９２は、（i）１回変換モードにおいて、ｋ回の変換処理が終了すると、動作エンドとなり、図９のスタートフラグ（START）が一旦ネゲートされ、次の動作スタートを待機する。ソフトウェアモードでは、次にRUNレジスタがライトされると、動作スタートとなり、ハードウェアモードでは、RUNレジスタのライト、スタートイベントの発生によって、動作スタートとなる。
【０１１３】
またアクセス制御部９２は（ii）連続変換モードでは、１制御周期の変換処理が終了すると、次の動作スタートを待たずに、次の制御周期に移行する。つまり、１制御周期が終了しても、スタートフラグが立った状態が維持される。
【０１１４】
言い換えれば１回変換モードでは、制御周期毎に動作スタートが要求されるのに対して、連続変換モードでは、初回のみ、動作スタートが要求される。１回変換モードと連続変換モードを選択可能とすることで、さらなる柔軟性が提供される。
【０１１５】
以上が、制御回路１０がサポートするモードの説明である。続いて、制御回路１０の具体的な動作を説明する。図１１は、ハードウェアモード、シーケンシャルモードの組み合わせを示す波形図である。時刻ｔ０にRUNレジスタに１がライトされると、回路がイネーブル状態となるが、ハードウェアモードではスタート状態にはならない。ここではＰＷＭのボトム（ＰＷＭ周期の先頭）が、スタートイベントとして指定される。つまりピークボトムパルスＰＰ／Ｂのポジティブエッジにもとづいて、スタートタイミング信号ＴＭＧ＿ＳＴＡＲＴが生成され、時刻ｔ１にスタート状態となる。ボトムイベントを選択することで、Ａ／Ｄコンバータの制御周期を、ＰＷＭ動作に同期させることができる。
【０１１６】
１回目の変換は、Ｗ相ＰＷＭ信号のネガティブエッジイベントを、２回目の変換は、Ｖ相ＰＷＭ信号のネガティブエッジイベントを、３回目の変換は、Ｕ相ＰＷＭ信号のネガティブエッジイベントを、トリガとしており、各イベントに応答して、変換タイミング信号ＴＭＧ＿ＣＯＮＶ１〜ＴＭＧ＿ＣＯＮＶ３が生成される。以降も同様である。そして設定した回数（ｋ回）、の変換が完了すると、スタートフラグがネゲートされ、非スタート状態となる。そして、次のＰＷＭの周期に移行すると、ボトムイベントに応答してスタートタイミング信号が生成され、再びスタート状態となる。
【０１１７】
以上、本発明について、実施の形態をもとに説明した。この実施の形態は例示であり、それらの各構成要素や各処理プロセスの組み合わせにいろいろな変形例が可能なこと、またそうした変形例も本発明の範囲にあることは当業者に理解されるところである。以下、こうした変形例について説明する。
【０１１８】
モータの相数は特に限定されない。またレゾルバやロータリエンコーダを用いてモータの機械的状態を直接モニタする方式にも、制御回路１０を利用することが可能である。この場合、レゾルバからの検出信号（速度信号や位置信号）を、いずれかのアナログポートに入力すればよい。
【符号の説明】
【０１１９】
２…モータ、４…駆動装置、６…インバータ、１０…制御回路、１２…Ａ／Ｄコンバータモジュール、１４…プロセッサ、１６…パルス幅変調器、１８…プログラム、３０…デジタル演算処理部、３１…バス、３２…システムプラットフォーム、３４…ＣＰＵコア、３６，３８…メモリコントローラ、４０…パワーマネージメントユニット、４２…システムコントローラ、４４…モータ制御ブロック、４６…ＡＤＣインタフェース、４８…パルス幅変調器、５０…Ａ／Ｄコンバータ、５２…マルチプレクサ、６０…メモリ、６２…不揮発性メモリ、６４…揮発性メモリ、７０…クロック発生器、８０…レジスタ、８２…インタフェースユニット、８４…イベントセレクタ、８６…ピークボトムパルス発生器、８８…セレクタ、９０…タイミング信号生成回路、９２…アクセス制御部、９４…変換データバッファ、９６…エラー検出部、１００…エッジセレクタ、１０２…遅延回路、１０４…遅延セレクタ、１０６…非同期処理回路。
【図１】
0006695158.tif 000002
【図２】
0006695158.tif 000003
【図３】
0006695158.tif 000004
【図４】
0006695158.tif 000005
【図５】
0006695158.tif 000006
【図６】
0006695158.tif 000007
【図７】
0006695158.tif 000008
【図８】
0006695158.tif 000009
【図９】
0006695158.tif 000010
【図１０】
0006695158.tif 000011
【図１１】
0006695158.tif 000012