(57)【要約】【課題】回路の複雑化やコストの上昇を伴うことなく、高精度な搬送波周波数でＰＷＭ信号を出力することができるＰＷＭ信号出力回路を提供する。【解決手段】内部クロック信号を生成する内部クロック信号生成部（１６）と、内部クロック信号を基にした搬送波周波数でＰＷＭ信号を生成するＰＷＭ回路（２０）とを含む回路部と、回路部の外部に設けられ、内部クロック信号よりも高精度な時間信号を生成する時間信号生成部（２６）と、時間信号に基づき、前記搬送波周波数を補正する演算部（２８）とを有する。【選択図】図４
2016086385.tif 000002
【特許請求の範囲】
【請求項１】
内部クロック信号を生成する内部クロック信号生成部と、前記内部クロック信号を基にした搬送波周波数でＰＷＭ信号を生成するＰＷＭ回路とを含む回路部と、
前記回路部の外部に設けられ、前記内部クロック信号よりも高精度な時間信号を生成する時間信号生成部と、
前記時間信号に基づき、前記搬送波周波数を補正する演算部と
を有するＰＷＭ信号出力回路。
【請求項２】
前記時間信号は、前記内部クロック信号よりも低周波数であり、
前記時間信号の１サイクル又は複数サイクルの間における前記内部クロック信号をカウントするカウンタ部をさらに有し、
前記演算部は、前記カウンタ部によりカウントされた前記カウント値と、前記内部クロック信号が変動していない場合に前記カウンタ部によりカウントされるカウント値である理想カウント値との比に基づき、前記搬送波周波数を設定するための設定値を計算する請求項１記載のＰＷＭ信号出力回路。
【請求項３】
前記カウンタ部が前記内部クロック信号をカウントする前記時間信号の１サイクル又は複数サイクルの間の時間が、前記ＰＷＭ信号の搬送波周期と同じ時間に設定されている請求項２記載のＰＷＭ信号出力回路。
【請求項４】
前記回路部は、第１の集積回路に設けられ、
前記演算部は、前記第１の集積回路とは別個の第２の集積回路に設けられている請求項１乃至３のいずれか１項に記載のＰＷＭ信号出力回路。
【請求項５】
前記回路部及び前記演算部は、同一の集積回路に設けられている請求項１乃至３のいずれか１項に記載のＰＷＭ信号出力回路。
【請求項６】
前記内部クロック信号又は前記内部クロック信号を基にしたパルス信号は、前記時間信号よりも低周波数であり、
前記内部クロック信号又は前記パルス信号の１サイクル又は複数サイクルの間における前記時間信号をカウントするカウンタ部をさらに有し、
前記演算部は、前記カウンタ部によりカウントされた前記カウント値と、前記内部クロック信号が変動していない場合に前記カウンタ部によりカウントされるカウント値である理想カウント値との比に基づき、前記搬送波周波数を設定するための設定値を計算する請求項１記載のＰＷＭ信号出力回路。
【請求項７】
前記回路部は、第１の集積回路に設けられ、
前記時間信号生成部及び前記カウンタ部は、前記第１の集積回路とは別個の第２の集積回路に設けられている請求項６記載のＰＷＭ信号出力回路。
【請求項８】
前記回路部の温度を測定してモニタする温度モニタ部をさらに有し、
前記温度モニタ部により測定される温度が所定の温度になったときに、前記演算部が動作して前記搬送波周波数が補正される請求項１乃至７のいずれか１項に記載のＰＷＭ信号出力回路。
【請求項９】
前記回路部に前記時間信号が入力されたときに、前記演算部が動作して前記搬送波周波数が補正される請求項１乃至７のいずれか１項に記載のＰＷＭ信号出力回路。
【請求項１０】
内部クロック信号を生成する内部クロック信号生成部と、ＰＷＭ信号を生成するＰＷＭ回路とを含み、前記ＰＷＭ回路が、前記内部クロック信号を分周する分周器を有し、前記内部クロック信号が分周されてなるクロック信号を基にした搬送波周波数で前記ＰＷＭ信号を生成する回路部と、
前記回路部の外部に設けられ、前記内部クロック信号よりも高精度な時間信号を生成する時間信号生成部と、
前記分周器の前記内部クロック信号を分周する分周比が、前記時間信号に基づき設定されるＰＷＭ信号出力回路。
【請求項１１】
前記時間信号の周期は、前記ＰＷＭ信号の搬送波周期を前記ＰＷＭ信号のデューティ分解能で除した値に設定され、
前記時間信号の１サイクルの間の前記内部クロック信号のパルス数をカウントするカウンタ部をさらに有し、
前記分周器の前記内部クロック信号を分周する分周比が、前記カウンタ部によりカウントされたカウント値に設定される請求項１０記載のＰＷＭ信号出力回路。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、パルス幅変調（Pulse Width Modulation、ＰＷＭ）信号を出力するＰＷＭ信号出力回路に関する。
【背景技術】
【０００２】
ＰＷＭとは、一定周期、一定振幅のパルス信号について、そのオン（ハイレベル）とオフ（ローレベル）との時間比であるデューティ比を変化させる変調方式をいう。このようなパルス信号であるＰＷＭ信号は、ＤＣモータ、サーボモータ、圧電ブザー、電磁ブザー等の電子機器の制御に用いられている。ＰＷＭ信号を用いた制御では、ＰＷＭ信号のデューティ比を変化することにより、制御対象となる電子機器に供給する電力を調整するため、電力損失を低減することができるという利点がある。
【０００３】
これまで、ＰＷＭに関する技術として、例えば、標本化周波数を抑えながら２次高調波等の雑音を抑えることを目的とする技術、ＰＷＭパルスのパルス幅に対する分解能を向上させることを目的とする技術が記載されている（特許文献１、２参照）。
【０００４】
また、ＰＷＭ信号は、ＣＲ発振回路等によるクロック信号を基にして生成することが行われている。特許文献３には、ＣＲ発振回路からのＣＲ発振出力よりも周期が精密な外部発振パルスに基づき、ＣＲ発振回路における可変抵抗器の抵抗値を調整することにより、ＣＲ発振クロックを調整することが記載されている。
【先行技術文献】
【特許文献】
【０００５】
【特許文献１】特開２００３−２６４４６５号公報
【特許文献２】特開平１０−１２６２３５号公報
【特許文献３】特開２００１−１１１３８９号公報
【発明の概要】
【発明が解決しようとする課題】
【０００６】
ＰＷＭ信号を生成するに際して、ＰＷＭ信号の周期を決定する搬送波周波数は、源クロックを基にして決定される。源クロックは、ＰＷＭ信号を出力する回路に内蔵されるＣＲ発振回路、リングオシレータ等の発振回路により生成される。
【０００７】
しかしながら、上記の源クロックは、その発振回路の製造ばらつき、温度特性等の要因により値が変動し、精度が低下することがある。このように源クロックの精度が低下すると、ＰＷＭ信号の搬送波周波数も、想定される値から変動することになる。搬送波周波数が変動すると、ＰＷＭ信号による制御対象であるモータの効率が低下したり、ブザーの音圧が低下したりする等、ＰＷＭ信号による制御に不都合が生じることがある。
【０００８】
本発明の目的は、回路の複雑化やコストの上昇を伴うことなく、高精度な搬送波周波数でＰＷＭ信号を出力することができるＰＷＭ信号出力回路を提供することにある。
【課題を解決するための手段】
【０００９】
本発明の一観点によれば、内部クロック信号を生成する内部クロック信号生成部と、前記内部クロック信号を基にした搬送波周波数でＰＷＭ信号を生成するＰＷＭ回路とを含む回路部と、前記回路部の外部に設けられ、前記内部クロック信号よりも高精度な時間信号を生成する時間信号生成部と、前記時間信号に基づき、前記搬送波周波数を補正する演算部とを有するＰＷＭ信号出力回路が提供される。
【００１０】
また、本発明の他の観点によれば、内部クロック信号を生成する内部クロック信号生成部と、ＰＷＭ信号を生成するＰＷＭ回路とを含み、前記ＰＷＭ回路が、前記内部クロック信号を分周する分周器を有し、前記内部クロック信号が分周されてなるクロック信号を基にした搬送波周波数で前記ＰＷＭ信号を生成する回路部と、前記回路部の外部に設けられ、前記内部クロック信号よりも高精度な時間信号を生成する時間信号生成部と、前記分周器の前記内部クロック信号を分周する分周比が、前記時間信号に基づき設定されるＰＷＭ信号出力回路が提供される。
【発明の効果】
【００１１】
本発明によれば、回路の複雑化やコストの上昇を伴うことなく、高精度な搬送波周波数でＰＷＭ信号を出力することができる。
【図面の簡単な説明】
【００１２】
【図１】図１は、ＰＷＭ信号の波形を説明する波形図である。
【図２】図２は、ＰＷＭ信号を用いた一般的な制御処理を示すフローチャートである。
【図３】図３は、本発明の第１実施形態によるＰＷＭ信号出力回路を構成するＰＷＭ機能搭載ＩＣ及びＭＣＵを示す概略図である。
【図４】図４は、本発明の第１実施形態によるＰＷＭ信号出力回路を構成するＰＷＭ機能搭載ＩＣ及びＭＣＵの構成を示すブロック図である。
【図５】図５は、本発明の第１実施形態によるＰＷＭ信号出力回路におけるＰＷＭ回路の構成を示すブロック図である。
【図６】図６は、本発明の第１実施形態によるＰＷＭ信号出力回路の動作時における各種信号の波形等を示す波形図である。
【図７】図７は、本発明の第１実施形態によるＰＷＭ信号出力回路により出力されるＰＷＭ信号を用いた制御処理を示すフローチャートである。
【図８】図８は、本発明の第２実施形態によるＰＷＭ信号出力回路に用いられるＰＷＭ回路の構成を示すブロック図である。
【図９】図９は、本発明の第１実施形態によるＰＷＭ信号出力回路の動作時における各種信号の波形等を示す波形図である。
【図１０】図１０は、本発明の第３実施形態によるＰＷＭ信号出力回路を構成するＰＷＭ機能搭載ＩＣ及びＭＣＵの構成を示すブロック図である。
【図１１】図１１は、本発明の第３実施形態によるＰＷＭ信号出力回路の動作時における各種信号の波形等を示す波形図である。
【図１２】図１２は、本発明の変形実施形態によるＰＷＭ信号出力回路を構成するＰＷＭ機能搭載ＩＣ及びＭＣＵの構成を示すブロック図である。
【発明を実施するための形態】
【００１３】
［第１実施形態］
まず、本発明の第１実施形態によるＰＷＭ信号出力回路について説明するに先立ち、ＰＷＭ信号の波形、及び源クロックとなる内部クロックの変動に伴う搬送波周波数の変動について図１及び図２を用いて説明する。図１は、ＰＷＭ信号の波形を説明する波形図である。図２は、ＰＷＭ信号を用いた一般的な制御処理を示すフローチャートである。
【００１４】
ＰＷＭ回路におけるＰＷＭ信号の波形の生成には、ＰＷＭ信号を生成するための源クロック信号である内部クロック信号によりカウントアップするＰＷＭカウンタが用いられる。ＰＷＭカウンタでは、内部クロック信号により０からカウントアップが行われる。
【００１５】
ＰＷＭカウンタのカウント値は、ＰＷＭ信号の周期を決定する設定値である搬送波設定値と比較される。ＰＷＭカウンタのカウント値が搬送波設定値と一致すると、カウント値がクリアされ、ＰＷＭカウンタにより０からのカウントアップが繰り返される。すなわち、ＰＷＭカウンタは、カウント値０から、カウント値（搬送波設定値−１）までのカウントを繰り返す。
【００１６】
ＰＷＭカウンタのカウント値は、ＰＷＭ信号のデューティ比を決定する設定値であるデューティ設定値と比較される。ＰＷＭカウンタのカウント値がデューティ設定値よりも小さい場合、ＰＷＭ信号の出力として、ハイレベルが出力される。一方、ＰＷＭカウンタのカウント値がデューティ設定値以上の場合、ＰＷＭ信号の出力として、ローレベルが出力される。
【００１７】
こうして、所定のデューティ比を有するＰＷＭ信号が、所定の周波数で繰り返し出力される。ＰＷＭ信号のデューティ比は、デューティ設定値を搬送波設定値で除した値で与えられる。また、ＰＷＭ信号の周波数となる搬送波周波数は、内部クロック信号の周波数を搬送波設定値で除した値で与えられる。すなわち、ＰＷＭ信号の周期は、内部クロック信号の周期に搬送波設定値を乗じた値で与えられる。また、ＰＷＭ信号のデューティ分解能は、搬送波設定値で与えられる。
【００１８】
図１は、搬送波設定値を１０、デューティ設定値を４に設定した場合のＰＷＭ信号の波形を説明する波形図である。図１では、上段に内部クロック信号の波形、中段にＰＷＭカウンタのカウント値、下段にＰＷＭ信号の波形を示している。
【００１９】
図１に示す場合では、搬送波設定値が１０に設定されている。ＰＷＭカウンタでは、内部クロック信号により０から９までカウントアップされ、そのカウント値０から３の間にＰＷＭ信号の出力としてハイレベルが出力され、カウント値４から９の間にＰＷＭ信号の出力としてローレベルが出力される。このような図１に示す場合において、内部クロック信号の周波数が１ＭＨｚ（周期が１μｓ）であるとき、ＰＷＭ信号の波形は、搬送波周波数が１００ｋＨｚ（周期が１０μｓ）、デューティ比が４０％のものとなる。また、図１に示す場合において、ＰＷＭ信号のデューティ分解能は、搬送波設定値の値である１０階調である。
【００２０】
上記のようにして生成されるＰＷＭ信号では、搬送波設定値を変更することにより搬送波周波数を変更することができる。また、搬送波設定値又はデューティ設定値を変更することにより、デューティ比を変更することができる。例えば、搬送波設定値をより低く設定すると、ＰＷＭ信号のデューティ分解能もより低くなる。また、デューティ設定値を固定して搬送波設定値のみを変更すると、デューティ比が変動することになる。
【００２１】
このように搬送波周波数、デューティ比等を変更することが可能なＰＷＭ信号を用い、モータ、ブザー等の制御対象のスイッチング制御を行うことができる。
【００２２】
以下、ＰＷＭ信号を用いた一般的な制御処理について図２を用いて説明する。図２は、ＰＷＭ信号を用いた一般的な制御処理を示すフローチャートである。
【００２３】
まず、内部クロック信号を生成する発振回路の設計値等から想定される内部クロック信号を基準に、ＰＷＭ信号について所望の搬送波周波数及びデューティ比となる搬送波設定値及びデューティ設定値をそれぞれ計算する（ステップＳ１０１）。
【００２４】
次いで、ステップＳ１０１において計算された搬送波設定値及びデューティ設定値をそれぞれ搬送波レジスタ及びデューティレジスタに書き込む（ステップＳ１０２）。搬送波レジスタ及びデューティレジスタは、ＰＷＭ信号を生成するためのＰＷＭ回路に備えられている。
【００２５】
こうして搬送波レジスタ及びデューティレジスタに書き込まれた搬送波設定値及びデューティ設定値によりＰＷＭ回路においてＰＷＭ信号を生成し、生成されたＰＷＭ信号を用いて、モータ、ブザー等の制御対象を制御する（ステップＳ１０３）。
【００２６】
制御対象が制御される間、制御対象に状態変更があるか否かをモニタする（ステップＳ１０４）。制御対象の状態変更とは、例えば、制御対象がモータである場合にそのモータの回転数を増加又は減少する等、制御対象の駆動状態を変更することをいう。制御対象に状態変更がある場合（ステップＳ１０４、ＹＥＳ）、その制御対象の状態変更に応じて、想定される内部クロック信号を基準に、所望の搬送波周波数及びデューティ比となる搬送波設定値及びデューティ設定値を再び計算する（ステップＳ１０５）。
【００２７】
ステップＳ１０５の後、ステップＳ１０２に戻り、ステップＳ１０５において計算された搬送波設定値及びデューティ設定値をそれぞれ搬送波レジスタ及びデューティレジスタに書き込み、上記処理を繰り返す。
【００２８】
一方、制御対象に状態変更のない場合（ステップＳ１０４、ＮＯ）、続いて制御対象の制御を終了するか否かを判定する（ステップＳ１０６）。制御対象の制御を終了する場合（ステップＳ１０６、ＹＥＳ）、制御対象の処理を終了する。一方、制御対象の制御を終了しない場合（ステップＳ１０６、ＮＯ）、ステップＳ１０３に戻り、制御対象の制御を継続する。
【００２９】
上記制御処理では、制御対象の状態変更に応じて搬送波設定値及びデューティ設定値を再計算し、ＰＷＭ信号を生成するための設定を変更する機会がある。この際、内部クロック信号を基準に再計算するため、内部クロック信号の精度が搬送波周波数の精度に直接影響することになる。すなわち、内部クロック信号の周波数が変動すると、搬送波周波数も変動することになる。
【００３０】
例えば、上記図１に示す場合を例に説明すると、内部クロック信号の周波数が１ＭＨｚからその２倍の２ＭＨｚに変動した場合、搬送波周波数も、本来必要とされる所望の１００ｋＨｚからその２倍の２００ｋＨｚに変化することになる。なお、ここでは、内部クロック信号の周波数が２倍に変動する場合を例に説明しているが、この例は説明の簡単のために周波数の変動率を誇張したものである。内部クロック信号を生成する発振回路として用いられる例えばＣＲ発振回路、リングオシレータでは、そのクロック信号の周波数に例えば２０％程度の変動が生じうる。
【００３１】
このようにＰＷＭ信号の搬送波周波数が変動すると、ＰＷＭ信号による制御対象によっては不都合が生じる場合がある。例えば、圧電ブザー、電磁ブザー等のブザーには、駆動制御するＰＷＭ信号の周波数が特定の周波数帯域を外れると音圧が極端に低下するものがある。このため、ＰＷＭ信号の搬送波周波数は、基準となる内部クロック信号の周波数の精度にかかわらず、高い精度であることが好ましい。
【００３２】
本発明は、回路の複雑化やコストの上昇を伴うことなく、高精度な搬送波周波数でＰＷＭ信号を生成して出力することを可能にするものである。以下、本発明の第１実施形態によるＰＷＭ信号出力回路について図３乃至図５を用いて説明する。図３は、本実施形態によるＰＷＭ信号出力回路を構成するＰＷＭ機能搭載ＩＣ及びＭＣＵを示す概略図である。図４は、本実施形態によるＰＷＭ信号出力回路を構成するＰＷＭ機能搭載ＩＣ及びＭＣＵの構成を示すブロック図である。図５は、本実施形態によるＰＷＭ信号出力回路におけるＰＷＭ回路の構成を示すブロック図である。
【００３３】
本実施形態によるＰＷＭ信号出力回路は、図１に示すように、ＰＷＭ信号を生成して出力するＰＷＭ機能を搭載した集積回路（Integrated Circuit、ＩＣ）であるＰＷＭ機能搭載ＩＣ１０の一部と、マイクロコントロールユニット（Micro Control Unit、ＭＣＵ）１２の一部とにより構成されている。ＰＷＭ機能搭載ＩＣ１０とＭＣＵ１２とは、互いに別個の集積回路により構成されている。ＰＷＭ機能搭載ＩＣ１０とＭＣＵ１２とは、例えばシリアルペリフェラルインタフェース（Serial Peripheral Interface、ＳＰＩ）を介して互いに通信可能に接続されている。
【００３４】
ＳＰＩによる接続では、ＭＣＵ１２がマスタ、ＰＷＭ機能搭載ＩＣ１０がスレーブとなり、４本の信号線によりＭＣＵ１２とＰＷＭ機能搭載ＩＣ１０とが互いに接続されている。４本の信号線は、スレーブセレクト信号ＳＳ用の信号線ＬＳＳ、シリアルクロック信号ＳＣＬＫ用の信号線ＬＳＣＬＫ、シリアルデータ用の信号線ＬＭＯＳＩ、及びシリアルデータ用の信号線ＬＭＩＳＯである。
【００３５】
信号線ＬＳＳでは、ＭＣＵ１２がスレーブセレクト信号ＳＳをローレベルにすることにより、ＭＣＵ１２の通信対象として、ＰＷＭ機能搭載ＩＣ１０が選択されるようになっている。信号線ＬＳＣＬＫでは、ＭＣＵ１２から出力されるシリアルクロック信号ＳＣＬＫがＰＷＭ機能搭載ＩＣ１０に入力されるようになっている。信号線ＬＭＯＳＩでは、ＭＣＵ１２から出力されるシリアルデータがＰＷＭ機能搭載ＩＣ１０に入力されるようになっている。信号線ＬＭＩＳＯでは、ＰＷＭ機能搭載ＩＣ１０から出力されるシリアルデータがＭＣＵ１２に入力されるようになっている。
【００３６】
信号線ＬＳＣＬＫを介してＭＣＵ１２からＰＷＭ機能搭載ＩＣ１０に入力されるシリアルクロック信号ＳＣＬＫは、ＰＷＭ機能搭載ＩＣ１０における内蔵発振回路１６（図４参照）により出力される内部クロック信号ＩＣＬＫよりも高精度なクロック信号となっている。すなわち、シリアルクロック信号ＳＣＬＫは、内部クロック信号ＩＣＬＫよりも周波数の精度が高くなっている。
【００３７】
図４は、上記ＰＷＭ機能搭載ＩＣ１０及びＭＣＵ１２の構成を示している。
【００３８】
図４に示すように、ＰＷＭ機能搭載ＩＣ１０は、シリアル通信回路１４と、内蔵発振回路１６と、ＳＣＬＫカウンタ１８と、ＰＷＭ回路２０と、温度モニタ２２とを有している。ＰＷＭ機能搭載ＩＣ１０は、内部クロック信号生成部として機能する内蔵発振回路１６と、ＰＷＭ回路とを含む回路部を構成している。なお、ＰＷＭ機能搭載ＩＣ１０は、これら以外に図示しない構成部を有し、ＰＷＭ信号を生成して出力するＰＷＭ機能以外の他の機能を有するように構成することも可能である。
【００３９】
一方、ＭＣＵ１２は、シリアル通信回路２４と、発振回路２６と、演算器２８とを有している。なお、ＭＣＵ１２は、これら以外に図示しない構成部を有し、コントローラとして機能する。
【００４０】
まず、ＰＷＭ機能搭載ＩＣ１０の各部について説明する。
【００４１】
シリアル通信回路１４には、信号線ＬＳＳ、信号線ＬＳＣＬＫ、信号線ＬＭＯＳＩ、及び信号線ＬＭＩＳＯの各信号線が接続されている。これにより、ＰＷＭ機能搭載ＩＣ１０が、ＳＰＩを介してＭＣＵ１２と通信可能になっている。
【００４２】
内蔵発振回路１６は、例えば、ＣＲ発振回路、リングオシレータ等の発振回路であり、内部クロック信号を生成する内部クロック信号生成部として機能する。内蔵発振回路１６は、ＰＷＭ機能搭載ＩＣ１０の内部クロック信号ＩＣＬＫを生成する。内蔵発振回路１６により生成された内部クロック信号ＩＣＬＫは、ＳＣＬＫカウンタ１８及びＰＷＭ回路２０にそれぞれ入力されるようになっている。
【００４３】
内蔵発振回路１６により生成される内部クロック信号ＩＣＬＫは、ＰＷＭ回路２０により生成されるＰＷＭ信号の搬送波周波数の基準となるものである。しかしながら、内部クロック信号ＩＣＬＫは、内蔵発振回路１６の製造ばらつき、温度特性のばらつき等の要因により変動する場合がある。本実施形態によるＰＷＭ信号出力回路は、このような場合であっても、後述するように、外部のＭＣＵ１２の発振回路２６により生成されるシリアルクロック信号ＳＣＬＫを用い、高精度な搬送波周波数でＰＷＭ信号を出力することを可能にするものである。
【００４４】
ＳＣＬＫカウンタ１８には、内部クロック信号ＩＣＬＫとともに、ＭＣＵ１２の発振回路２６により生成されるシリアルクロック信号ＳＣＬＫが入力されるようになっている。ＳＣＬＫカウンタ１８は、ＭＣＵ１２の発振回路２６によるシリアルクロック信号ＳＣＬＫを基準に、内蔵発振回路１６による内部クロック信号ＩＣＬＫをカウントするカウンタ部である。ＳＣＬＫカウンタ１８のカウント値は、ＳＰＩによる通信により、ＭＣＵ１２における演算器２８に入力されるようになっている。
【００４５】
ＰＷＭ回路２０は、搬送波設定値及びデューティ設定値に基づき、内部クロック信号ＩＣＬＫを基にした搬送波周波数で所定のデューティ比を有するＰＷＭ信号を生成して出力するものである。ＰＷＭ回路２０においてＰＷＭ信号の生成に用いられる搬送波設定値及びデューティ設定値は、ＳＰＩによる通信により、ＭＣＵ１２の演算器２８からＰＷＭ回路２０に入力されるようになっている。ＰＷＭ回路２０に入力された搬送波設定値及びデューティ設定値は、それぞれＰＷＭ回路２０における搬送波レジスタ２０３及びデューティレジスタ２０４（図５参照）に書き込まれて記憶されるようになっている。
【００４６】
温度モニタ２２は、ＰＷＭ機能搭載ＩＣ１０の温度を測定してモニタするものである。温度モニタ２２による測定結果は、後述するように、ＳＣＬＫカウンタ１８及び演算器２８による一連の処理のトリガとして用いることができる。
【００４７】
次に、ＭＣＵ１２の各部について説明する。
【００４８】
シリアル通信回路２４には、信号線ＬＳＳ、信号線ＬＳＣＬＫ、信号線ＬＭＯＳＩ、及び信号線ＬＭＩＳＯの各信号線が接続されている。これにより、ＭＣＵ１２が、ＳＰＩを介してＰＷＭ機能搭載ＩＣ１０と通信可能になっている。
【００４９】
発振回路２６は、例えば、水晶振動子２６１を用いた発振回路であり、内部クロック信号ＩＣＬＫよりも高精度な時間信号を生成する時間信号生成部として機能する。ＭＣＵ１２に設けられた発振回路２６は、ＰＷＭ機能搭載ＩＣ１０の外部に設けられていることになる。発振回路２６は、ＰＷＭ機能搭載ＩＣ１０の内蔵発振回路１６による内部クロック信号ＩＣＬＫよりも高精度なクロック信号ＭＣＬＫを生成する。すなわち、クロック信号ＭＣＬＫは、内部クロック信号ＩＣＬＫよりも周波数の精度が高い。発振回路２６によるクロック信号ＭＣＬＫは、ＳＰＩによる通信における同期信号となるシリアルクロック信号ＳＣＬＫとして用いられるほか、ＰＷＭ機能搭載ＩＣ１０のＳＣＬＫカウンタ１８に入力されるようになっている。
【００５０】
後述するように、本実施形態によるＰＷＭ信号出力回路では、ＭＣＵ１２の発振回路２６により生成される、内部クロック信号ＩＣＬＫよりも高精度なシリアルクロック信号ＳＣＬＫに基づき、ＰＷＭ信号の搬送波設定値及びデューティ設定値が計算される。これにより、本実施形態によるＰＷＭ信号出力回路では、内部クロック信号ＩＣＬＫが変動する場合であっても、ＰＷＭ信号の搬送波周波数が補正され、搬送波周波数を一定に維持して搬送波周波数の精度を向上することが可能になる。また、発振回路２６はＭＣＵ１２に設けられた既存の回路であるため、回路の複雑化やコストの上昇を伴うこともない。
【００５１】
なお、発振回路２６は、水晶振動子２６１を用いた発振回路に限定されるものではない。発振回路２６としては、内蔵発振回路１６による内部クロック信号ＩＣＬＫよりも高精度なクロック信号ＭＣＬＫを生成することができるものであれば、種々の発振回路を用いることができる。
【００５２】
演算器２８は、ＳＣＬＫカウンタ１８のカウント値が入力され、このカウント値を予め求められているカウント値の理想値である理想カウント値と比較し、比較結果に基づき、搬送波設定値及びデューティ設定値を計算する演算部である。演算器２８による搬送波設定値及びデューティ設定値の計算結果は、ＳＰＩによる通信により、ＰＷＭ機能搭載ＩＣ１０のＰＷＭ回路２０に入力されるようになっている。演算器２８は、こうして搬送波設定値及びデューティ設定値を計算することにより、ＰＷＭ信号の搬送波周波数を補正する。
【００５３】
図５にＰＷＭ回路２０の構成を示す。図５に示すように、ＰＷＭ回路２０は、ｎ分周器２０１と、ＰＷＭカウンタ２０２と、搬送波レジスタ２０３と、デューティレジスタ２０４と、比較器２０５とを有している。
【００５４】
ｎ分周器２０１には、内蔵発振回路１６により生成される内部クロック信号ＩＣＬＫが入力されるようになっている。ｎ分周器２０１は、入力される内部クロック信号ＩＣＬＫをそのまま又は分周比ｎ（ｎは２以上の整数）で分周してＰＷＭカウンタ２０２に入力するものである。
【００５５】
搬送波レジスタ２０３には、ＭＣＵ１２における演算器２８により計算された搬送波設定値がＭＣＵ１２により書き込まれて記憶されるようになっている。搬送波レジスタ２０３に記憶された搬送波設定値は、ＰＷＭカウンタ２０２のカウントアップにおける最大カウント値を決定するものである。すなわち、次に述べるように、ＰＷＭカウンタ２０２は、カウント値０からカウント値（搬送波設定値−１）までのカウントアップを繰り返す。
【００５６】
ＰＷＭカウンタ２０２は、ｎ分周器２０１から入力される内部クロック信号ＩＣＬＫ又はｎ分周された内部クロック信号ＩＣＬＫを、最大カウント値を（搬送波設定値−１）としてカウント値０からカウントアップするものである。ＰＷＭカウンタ２０２は、カウント値０から最大カウント値（搬送波設定値−１）までカウントアップすると、カウント値をクリアしてカウントアップを繰り返す。
【００５７】
デューティレジスタ２０４には、ＭＣＵ１２における演算器２８により計算されたデューティ設定値がＭＣＵ１２により書き込まれて記憶されるようになっている。デューティレジスタ２０４に書き込まれたデューティ設定値は、比較器２０５において、ＰＷＭカウンタ２０２のカウント値との比較に用いられる。
【００５８】
比較器２０５は、ＰＷＭカウンタ２０２によりカウントされるカウント値を、デューティレジスタ２０４に記憶されたデューティ設定値と比較する。比較器２０５は、ＰＷＭカウンタ２０２のカウント値がデューティ設定値よりも小さい場合、ＰＷＭ信号の出力として、ハイレベルを出力する。一方、ＰＷＭカウンタ２０２のカウント値がデューティ設定値以上の場合、ＰＷＭ信号の出力として、ローレベルを出力する。こうして、比較器２０５から、ＰＷＭ信号が出力される。
【００５９】
ＰＷＭ機能搭載ＩＣ１０の内蔵発振回路１６により生成される内部クロック信号ＩＣＬＫは、回路の製造ばらつき、温度特性のばらつき等の要因により変動する場合がある。本実施形態によるＰＷＭ信号出力回路は、ＭＣＵ１２の発振回路２６により生成される、内部クロック信号ＩＣＬＫよりも高精度なシリアルクロック信号ＳＣＬＫに基づき、ＰＷＭ信号の搬送波設定値及びデューティ設定値を計算する。これにより、本実施形態によるＰＷＭ信号出力回路は、内部クロック信号ＩＣＬＫが変動する場合であっても、ＰＷＭ信号の搬送波周波数を補正し、ＰＷＭ信号の搬送波周波数を一定に維持して搬送波周波数の精度を向上することを可能にするものである。
【００６０】
以下、本実施形態によるＰＷＭ信号出力回路の動作についてさらに図６を用いて説明する。図６は、本実施形態によるＰＷＭ信号出力回路の動作時における各種信号の波形等を示す波形図である。図６には、上段から下段に向かって順に、スレーブセレクト信号ＳＳの波形、シリアルクロック信号ＳＣＬＫの波形、内部クロック信号ＩＣＬＫの波形、及びＳＣＬＫカウンタ１８によるカウントの様子がそれぞれ示されている。なお、内部クロック信号ＩＣＬＫについては、波形の一部を省略して示している。
【００６１】
ＭＣＵ１２のシリアル通信回路２４からは、信号線ＬＳＳを介してＰＷＭ機能搭載ＩＣ１０のシリアル通信回路１４にスレーブセレクト信号ＳＳが出力されている。まず、ＭＣＵ１２によりスレーブセレクト信号ＳＳがローレベルにされることにより、ＰＷＭ機能搭載ＩＣ１０がＭＣＵ１２の通信対象として選択される。
【００６２】
また、ＭＣＵ１２の発振回路２６では、ＰＷＭ機能搭載ＩＣ１０の内蔵発振回路１６により生成される内部クロック信号ＩＣＬＫよりも高精度なクロック信号ＭＣＬＫが生成される。発振回路２６により生成された高精度なクロック信号ＭＣＬＫは、シリアル通信回路２４及び信号線ＬＳＣＬＫを介して、シリアルクロック信号ＳＣＬＫとしてＰＷＭ機能搭載ＩＣ１０に入力される。
【００６３】
ＰＷＭ機能搭載ＩＣ１０に入力されたシリアルクロック信号ＳＣＬＫは、ＭＣＵ１２とＰＷＭ機能搭載ＩＣ１０との間のＳＰＩによる通信における同期信号として用いられるほか、ＳＣＬＫカウンタ１８に入力される。
【００６４】
ＳＣＬＫカウンタ１８には、シリアルクロック信号ＳＣＬＫが入力されるとともに、内蔵発振回路１６により生成された内部クロック信号ＩＣＬＫが入力される。シリアルクロック信号ＳＣＬＫは、内部クロック信号ＩＣＬＫと比較して周波数の精度が高いクロック信号になっている。また、シリアルクロック信号ＳＣＬＫは、内部クロック信号ＩＣＬＫと比較して低周波数のクロック信号になっている。
【００６５】
ＳＣＬＫカウンタ１８では、ＭＣＵ１２の発振回路２６によるシリアルクロック信号ＳＣＬＫを基準に、内蔵発振回路１６による内部クロック信号ＩＣＬＫがカウントされる。ＳＣＬＫカウンタ１８のカウント値としては、シリアルクロック信号ＳＣＬＫの所定のサイクル数（パルス数）の間における内部クロック信号ＩＣＬＫのサイクル数（パルス数）が得られる。ＳＣＬＫカウンタ１８のカウント値は、ＳＰＩによる通信により、ＭＣＵ１２における演算器２８に入力される。
【００６６】
具体的には、ＳＣＬＫカウンタ１８では、図６に示すように、シリアルクロック信号ＳＣＬＫの１７サイクル（１７パルス）のうちの１６サイクル（１６パルス）の間、内部クロック信号ＩＣＬＫがカウントされる。これにより、ＳＣＬＫカウンタ１８のカウント値として、シリアルクロック信号ＳＣＬＫの１７サイクルのうちの１６サイクルの間の内部クロック信号ＩＣＬＫのサイクル数（パルス数）が得られる。
【００６７】
なお、内部クロック信号ＩＣＬＫがカウントされるシリアルクロック信号ＳＣＬＫのサイクル数は、特定の値に限定されるものではなく、要求される精度等に応じて、１サイクル又は複数サイクルに適宜設定することができる。
【００６８】
演算器２８では、ＳＣＬＫカウンタ１８のカウント値に基づき、ＰＷＭ信号を出力するための搬送波設定値及びデューティ設定値が計算される。これにより、ＰＷＭ信号の搬送波周波数が補正される。以下、搬送波設定値及びデューティ設定値の計算について具体的な数値を用いて説明する。
【００６９】
目標とするＰＷＭ信号の搬送波周波数Ｆｐｗｍを１００ｋＨｚ、デューティ比を５０％とする。また、内部クロック信号の周波数Ｆｉｎｔの変動のない理想値が８ＭＨｚであるとする。
【００７０】
搬送波設定値は（１／Ｆｐｗｍ）／（１／Ｆｉｎｔ）で計算され、上記内部クロック信号の周波数Ｆｉｎｔが８ＭＨｚである場合、搬送波設定値は８０となる。また、デューティ比５０％により、デューティ設定値は、搬送波設定値の５０％である４０となる。
【００７１】
ＳＣＬＫカウンタ１８は、シリアルクロック信号ＳＣＬＫの１７サイクルのうちの１６サイクルの間の内部クロック信号ＩＣＬＫのパルス数をカウントする。ここで、シリアルクロック信号ＳＣＬＫの周波数Ｆｓｃｌｋは、５００ｋＨｚとする。このＳＣＬＫカウンタ１８のカウント値は、次式に従って計算される。
｛１６×（１／Ｆｓｃｌｋ）／（１／Ｆｉｎｔ）｝
【００７２】
上記内部クロック信号ＩＣＬＫの周波数Ｆｉｎｔが８ＭＨｚの場合におけるＳＣＬＫカウンタ１８のカウント値である理想カウント値は、上記カウント値の計算式に従って２５６と計算される。
【００７３】
ここで、仮に、内部クロック信号ＩＣＬＫの周波数Ｆｉｎｔが、変動のない理想的な８ＭＨｚからその２倍の１６ＭＨｚに変動した場合を考える。この場合、ＳＣＬＫカウンタ１８のカウント値は、上記カウント値の計算式に従って、理想カウント値である２５６の２倍の５１２と計算される。なお、ここでは内部クロック信号ＩＣＬＫの周波数Ｆｉｎｔが２倍に変動した場合を例に説明しているが、この例は説明の簡単のために周波数Ｆｉｎｔの変動率を誇張したものである。内部クロック信号ＩＣＬＫの周波数Ｆｉｎｔは、内部発振回路１６の製造ばらつき、温度特性等に起因して、様々な変動率で変動しうる。なお、以下の説明においても、説明の簡単のため内部クロック信号ＩＣＬＫの周波数Ｆｉｎｔが２倍に変動した場合を例として適宜用いる。
【００７４】
このように、内部クロック信号ＩＣＬＫの周波数Ｆｉｎｔが変動すると、ＳＣＬＫカウンタ１８のカウント値も、周波数Ｆｉｎｔの変動率と同じ変動率で変動する。換言すると、ＳＣＬＫカウンタ１８のカウント値の変動率から内部クロック信号ＩＣＬＫの周波数Ｆｉｎｔの変動率が分かることになる。上記の場合、ＳＣＬＫカウンタ１８のカウント値が理想カウント値から２倍に変動しているため、内部クロック信号ＩＣＬＫの周波数Ｆｉｎｔも、変動のない理想値である８ＭＨｚから２倍の１６ＭＨｚに変動していることが分かる。
【００７５】
内部クロック信号ＩＣＬＫの周波数Ｆｉｎｔが２倍に変動しているため、搬送波設定値を８０からその２倍の１６０とし、デューティ設定値も４０からその２倍の８０とする。これにより、目標とする搬送波周波数１００ｋＨｚ、デューティ比５０％のＰＷＭ信号を、内部クロックＩＣＬＫの周波数Ｆｉｎｔが変動した場合であっても実現することができる。
【００７６】
演算器２８では、上記のようにして、ＳＣＬＫカウンタ１８のカウント値の理想カウント値に対する比であるカウント値の変動率に基づき、ＰＷＭ信号の搬送波設定値及びデューティ設定値が計算される。すなわち、搬送波設定値及びデューティ設定値は、それぞれ内部クロック信号ＩＣＬＫが変動のない理想的な場合の値に対して、ＣＬＫカウンタ１８のカウント値の理想カウント値に対する比であるカウント値の変動率を乗じることにより、再計算される。
【００７７】
なお、演算器２８に用いられるＳＣＬＫカウンタ１８の理想カウント値は、内部クロック信号ＩＣＬＫの周波数Ｆｉｎｔに変動がない理想的な場合にＳＣＬＫカウンタ１８によりカウントされるカウント値として、予め求められている。予め求められた理想カウント値は、回路の制御プログラムにプログラムされ、また、メモリ等の記憶部に記憶されており、演算器２８による計算に際して読み出される。
【００７８】
演算器２８において計算された搬送波設定値及びデューティ設定値は、ＳＰＩによる通信により、ＰＷＭ機能搭載ＩＣ１０のＰＷＭ回路２０に入力される。ＰＷＭ回路２０に入力された搬送波設定値及びデューティ設定値は、それぞれ搬送波レジスタ２０３及びデューティレジスタ２０４に書き込まれて記憶される。こうして、搬送波設定値及びデューティ設定値が更新されて搬送波周波数が補正される。
【００７９】
上記ＳＣＬＫカウンタ１８によるカウント、演算器２８による搬送波設定値及びデューティ設定値の計算、並びに各設定値の各レジスタへの書き込みの一連の処理による搬送波周波数の補正は、特定のイベントが発生したときに行われるようにすることができる。特定のイベントとしては、ＭＣＵ１２又はＰＷＭ機能搭載ＩＣ１０の制御プログラムのメインループが実行されたとき等の所定の時間が経過したときが例示される。また、ＳＰＩによる通信が行われたときが例示される。また、温度モニタ部である温度モニタ２２により測定される温度が所定の温度になったときが例示される。これらのような特定のイベントが発生する毎に、上記ＳＣＬＫカウンタ１８によるカウント、並びに演算器２８による各設定値の計算及び各レジスタへの書き込みを行い、各設定値が更新されて搬送波周波数が補正されるようにすることができる。
【００８０】
また、上記ＳＣＬＫカウンタ１８によるカウント、演算器２８による搬送波設定値及びデューティ設定値の計算、並びに各設定値の各レジスタへの書き込みの一連の処理による搬送波周波数の補正は、特定のイベントの発生と無関係に、一定の時間間隔で常時行うようにすることもできる。
【００８１】
ＰＷＭ回路２０では、搬送波レジスタ２０３に書き込まれる搬送波設定値、及びデューティレジスタ２０４に書き込まれるデューティ設定値に基づき、ＰＷＭ信号が生成される。
【００８２】
ＰＷＭカウンタ２０２には、ｎ分周器２０１を介して内部クロック信号ＩＣＬＫが入力される。ここでは、内部クロック信号ＩＣＬＫは、ｎ分周器２０１により分周されることなく、ＰＷＭカウンタ２０２にそのまま入力される。ＰＷＭカウンタ２０２では、搬送波レジスタ２０３に書き込まれた搬送波設定値に基づき、内部クロック信号ＩＣＬＫが、最大カウント値を（搬送波設定値−１）としてカウント値０からカウントアップされる。ＰＷＭカウンタ２０２では、カウント値０から最大カウント値（搬送波設定値−１）までカウントアップされると、カウント値がクリアされてカウントアップが繰り返される。
【００８３】
比較器２０５では、ＰＷＭカウンタ２０２によりカウントされるカウント値が、デューティレジスタ２０４に記憶されたデューティ設定値と比較される。比較器２０５からは、ＰＷＭカウンタ２０２のカウント値がデューティ設定値よりも小さい場合、ＰＷＭ信号の出力として、ハイレベルが出力される。一方、ＰＷＭカウンタ２０２のカウント値がデューティ設定値以上の場合、ＰＷＭ信号の出力として、ローレベルが出力される。こうして、比較器２０５からＰＷＭ信号が出力される。
【００８４】
このように、本実施形態によれば、内部クロック信号ＩＣＬＫよりも高精度なシリアルクロック信号ＳＣＬＫを基準に内部クロック信号ＩＣＬＫをカウントする。そして、カウントされたカウント値と理想カウント値との比に基づき、ＰＷＭ信号の搬送波設定値を計算してＰＷＭ信号の搬送波周波数を補正する。したがって、本実施形態によれば、高精度な搬送波周波数でＰＷＭ信号を出力することができる。また、シリアルクロック信号ＳＣＬＫは、ＭＣＵ１２に設けられた既存の発振回路２６により生成されるものであるため、回路の複雑化やコストの上昇を伴うことはない。
【００８５】
なお、ＳＣＬＫカウンタ１８におけるカウントの基準となるシリアルクロック信号ＳＣＬＫの周期を適宜設定することにより、演算器２８における計算の簡略化を図ることができる。例えば、ＳＣＬＫカウンタ１８によるカウントを行うシリアルクロック信号ＳＣＬＫの所定のサイクル数（パルス数）の時間を、ＰＷＭ信号の搬送波周期と同じ時間に設定することもできる。これにより、ＳＣＬＫカウンタ１８のカウント値をそのまま搬送波設定値とすることにより、内部クロック信号ＩＣＬＫの周波数Ｆｉｎｔが変動しても、ＰＷＭ信号について所望の搬送波周波数を得ることができる。
【００８６】
具体的には、ＰＷＭ信号の搬送波周波数１００ｋＨｚ（搬送波周期１０μｓ）を目標とする場合を考える。この場合、図６に示す例では、内部クロック信号ＩＣＬＫをカウントする１６サイクル（１６パルス）の間の時間が搬送波周期１０μｓとなるように、シリアルクロック信号ＳＣＬＫの周期を調整する。すなわち、シリアルクロック信号ＳＣＬＫの周期を（１０／１６）μｓとする。
【００８７】
すると、内部クロック信号ＩＣＬＫの周波数が８ＭＨｚの場合、ＳＣＬＫカウンタ１８のカウント値は、次のようになる。
１０μｓ／（１／Ｆｉｎｔ）＝１０μｓ×８ＭＨｚ＝８０
【００８８】
また、内部クロック信号ＩＣＬＫの周波数が１６ＭＨｚの場合、ＳＣＬＫカウンタ１８のカウント値は、次のようになる。
１０μｓ／（１／Ｆｉｎｔ）＝１０μｓ×１６ＭＨｚ＝１６０
【００８９】
したがって、ＳＣＬＫカウンタ１８のカウント値をそのまま搬送波設定値とすることにより、目標とする搬送波周波数１００ｋＨｚを得ることができる。
【００９０】
次に、上記本実施形態によるＰＷＭ信号出力回路により出力されるＰＷＭ信号を用いた制御処理についてさらに図７を用いて説明する。図７は、本実施形態によるＰＷＭ信号出力回路により出力されるＰＷＭ信号を用いた制御処理を示すフローチャートである。
【００９１】
まず、内蔵発振回路１６の設計値等から想定される内部クロック信号ＩＣＬＫを基準に、ＰＷＭ信号について所望の搬送波周波数及びデューティ比となる搬送波設定値及びデューティ設定値をそれぞれ計算する（ステップＳ１１）。
【００９２】
次いで、ステップＳ１１において計算された搬送波設定値及びデューティ設定値をそれぞれ搬送波レジスタ２０３及びデューティレジスタ２０４にそれぞれ書き込む（ステップＳ１２）。
【００９３】
こうして各レジスタ２０３、２０４に書き込まれた搬送波設定値及びデューティ設定値によりＰＷＭ回路２０においてＰＷＭ信号を生成し、生成されたＰＷＭ信号を用いて、モータ、ブザー等の制御対象を制御する（ステップＳ１３）。
【００９４】
制御対象が制御される間、制御対象に状態変更がある否かをモニタする（ステップＳ１４）。制御対象に状態変更がある場合（ステップＳ１４、ＹＥＳ）、その制御対象の状態変更に応じて、想定される内部クロック信号ＩＣＬＫを基準に、所望の搬送波周波数及びデューティ比となる搬送波設定値及びデューティ設定値を再び計算する（ステップＳ１５）。
【００９５】
ステップＳ１５の後、ステップＳ１２に戻り、ステップＳ１５において計算された搬送波設定値及びデューティ設定値をそれぞれ搬送波レジスタ２０３及びデューティレジスタ２０４に書き込み、上記処理を繰り返す。
【００９６】
一方、制御対象に状態変更がない場合（ステップＳ１４、ＮＯ）、特定のイベントが発生した否かを判定する（ステップＳ１６）。特定のイベントが発生した場合、上述のように、ＳＣＬＫカウンタ１８によるカウント、演算器２８による搬送波設定値及びデューティ設定値の計算、並びに各設定値の各レジスタへの書き込みの一連の処理による搬送波周波数の補正を行う。こうして、高精度な外部クロック信号であるシリアルクロック信号ＳＣＬＫに基づき、搬送波設定値及びデューティ設定値を再び計算してＰＷＭ信号の搬送波周波数を補正する（ステップＳ１７）。
【００９７】
ステップＳ１７の後、ステップＳ１２に戻り、ステップＳ１７において計算された搬送波設定値及びデューティ設定値をそれぞれ搬送波レジスタ２０３及びデューティレジスタ２０４に書き込み、上記処理を繰り返す。
【００９８】
一方、特定のイベントの発生がない場合（ステップＳ１６、ＮＯ）、続いて制御対象の制御を終了するか否かを判定する（ステップＳ１８）。制御対象の制御を終了する場合（ステップＳ１８、ＹＥＳ）、制御対象の処理を終了する。一方、制御対象の制御を終了しない場合（ステップＳ１８、ＮＯ）、ステップＳ１３に戻り、制御対象の制御を継続する。
【００９９】
［第２実施形態］
本発明の第２実施形態によるＰＷＭ信号出力回路について図８及び図９を用いて説明する。図８は、本実施形態によるＰＷＭ信号出力回路に用いられるＰＷＭ回路の構成を示すブロック図である。図９は、本実施形態によるＰＷＭ信号出力回路の動作時における各種信号の波形等を示す波形図である。なお、第１実施形態によるＰＷＭ信号出力回路と同様の構成要素については同一の符号を付し説明を省略し又は簡潔にする。
【０１００】
上記第１実施形態によるＰＷＭ信号出力回路は、ＰＷＭ信号の搬送波周波数の精度向上に有効である。ただし、搬送波設定値を再計算して再計算する前の値と異なる値に設定すると、ＰＷＭ信号のデューティ分解能が変化することになる。本実施形態では、デューティ分解能を維持しつつ、搬送波周波数の精度を向上しうるＰＷＭ信号出力回路について説明する。
【０１０１】
まず、本実施形態によるＰＷＭ信号出力回路を説明するに先立ち、ＰＷＭ信号のデューティ分解能を維持することが可能なＰＷＭ回路について図８を用いて説明する。図８は、ＰＷＭ信号のデューティ分解能を維持することが可能なＰＷＭ回路を示すブロック図である。なお、図８に示すＰＷＭ回路は、本実施形態によるＰＷＭ信号出力回路にもＰＷＭ回路として用いられる。
【０１０２】
図８に示すように、ＰＷＭ回路２１は、ｎ分周器２１１と、ＰＷＭカウンタ２１２と、デューティレジスタ２１４と、比較器２１５とを有している。
【０１０３】
ｎ分周器２１１には、周波数Ｆｉｎｔの内部クロック信号ＩＣＬＫが入力されるようになっている。ｎ分周器２１１は、入力される内部クロック信号ＩＣＬＫをそのまま又は分周比ｎ（ｎは２以上の整数）で分周して、周波数Ｆｐｗｍｃのクロック信号としてＰＷＭカウンタ２１２に入力するものである。
【０１０４】
ＰＷＭカウンタ２１２は、例えば、８ビットのカウンタであり、入力される周波数Ｆｐｗｍｃのクロック信号を、最大カウント値を（２８−１）としてカウント値０からカウントアップするものである。ＰＷＭカウンタ２１２は、カウント値０から最大カウント値（２８−１）までカウントアップすると、カウント値をクリアしてカウントアップを繰り返す。ＰＷＭカウンタ２１２のカウント数は、ＰＷＭ信号のデューティ分解能となる。例えば、ＰＷＭカウンタ２１２が８ビットのカウンタの場合、ＰＷＭ信号のデューティ分解能の分解能も８ビット（２５６階調）となる。
【０１０５】
デューティレジスタ２１４は、例えば、８ビットのレジスタである。デューティレジスタ２１４には、デューティ設定値が書き込まれて記憶されるようになっている。デューティレジスタ２１４に書き込まれたデューティ設定値は、比較器２１５において、ＰＷＭカウンタ２１２のカウント値との比較に用いられる。
【０１０６】
比較器２１５は、ＰＷＭカウンタ２１２によりカウントされるカウント値を、デューティレジスタ２１４に記憶されたデューティ設定値と比較する。比較器２１５は、ＰＷＭカウンタ２１２のカウント値がデューティ設定値よりも小さい場合、ＰＷＭ信号の出力として、ハイレベルを出力する。一方、ＰＷＭカウンタ２１２のカウント値がデューティ設定値以上の場合、ＰＷＭ信号の出力として、ローレベルを出力する。こうして、比較器２１５からＰＷＭ信号が出力される。
【０１０７】
上記図８に示すＰＷＭ回路２１において、例えば、内部クロック信号ＩＣＬＫの周波数Ｆｉｎｔを８ＭＨｚとし、これを４分周して周波数Ｆｐｗｍｃを２ＭＨｚとし、デューティ設定値を１２８とした場合を考える。この場合、ＰＷＭ信号の搬送波周波数は、以下のように計算される。
１／｛（１／Ｆｐｗｍｃ）×２８｝＝Ｆｐｗｍｃ／２８＝７．８１２ｋＨｚ
【０１０８】
また、デューティ比は、デューティ設定値を２８で除することにより求められ、５０％となる。
【０１０９】
上記の場合において、内部クロック信号ＩＣＬＫの周波数Ｆｉｎｔのみが８ＭＨｚから１６ＭＨｚに変動したとき、ＰＷＭ信号の搬送波周波数は、１５．６２５ｋＨｚになる。一方、デューティ比及びデューティ分解能は、内部クロック信号ＩＣＬＫの周波数Ｆｉｎｔに依存しないため、いずれも内部クロック信号ＩＣＬＫの周波数Ｆｉｎｔが８ＭＨｚのときと変わりはない。
【０１１０】
上記の場合では、内部クロック信号ＩＣＬＫの周波数Ｆｉｎｔが変動したときにおいて、デューティ比及びデューティ分解能は変動しないものの、ＰＷＭ信号の搬送波周波数は変動してしまうことになる。搬送波周波数が変動することによる不都合については、上述したとおりである。これに対して、本実施形態によるＰＷＭ信号出力回路は、デューティ比及びデューティ分解能の変動を伴うことなく、搬送波周波数の精度を向上しうるものである。以下、本実施形態によるＰＷＭ信号出力回路について説明する。
【０１１１】
本実施形態によるＰＷＭ信号出力回路の構成では、図４に示す上記第１実施形態による構成において、ＰＷＭ回路２０に代えて、図８に示すＰＷＭ回路２１が用いられている。ＰＷＭ回路２１の分周器２１１には、ＰＷＭ機能搭載ＩＣ１０の内蔵発振回路１６により生成される周波数Ｆｉｎｔの内部クロック信号ＩＣＬＫが入力されるようになっている。
【０１１２】
本実施形態によるＰＷＭ信号出力回路において、ＭＣＵ１２の発振回路２６では、生成するシリアルクロック信号ＳＣＬＫの周期が、目標とするＰＷＭ信号の搬送波の周期の１／（デューティ分解能）に設定される。例えば、デューティ分解能が８ビット（２５６階調）の場合、シリアルクロック信号ＳＣＬＫの周期は、目標とするＰＷＭ信号の搬送波の周期の１／２５６に設定される。
【０１１３】
また、ＳＣＬＫカウンタ１８は、第１実施形態と同様、ＭＣＵ１２の発振回路２６によるシリアルクロック信号ＳＣＬＫを基準に、内蔵発振回路１６による内部クロック信号ＩＣＬＫをカウントするカウンタ部である。ただし、本実施形態では、ＳＣＬＫカウンタ１８は、シリアルクロック信号ＳＣＬＫの１サイクルの間、内部クロック信号ＩＣＬＫをカウントする。ＳＣＬＫカウンタ１８のカウント値としては、シリアルクロック信号ＳＣＬＫの１サイクルの間の内部クロック信号ＩＣＬＫのサイクル数（パルス数）が得られる。
【０１１４】
ＳＣＬＫカウンタ１８のカウント値は、後述するように、ＰＷＭ回路２１におけるｎ分周器２１１の分周比ｎとして用いられる。
【０１１５】
以下、本実施形態によるＰＷＭ信号出力回路の動作についてさらに図９を用いて説明する。以下の説明では、ＰＷＭ信号の搬送波周波数の目標値を上述した７．８１２ｋＨｚとし、デューティ分解能を８ビット（２５６階調）とした場合を例とする。図９は、本実施形態によるＰＷＭ信号出力回路の動作時における各種信号の波形等を示す波形図である。図９には、上段から下段に向かって順に、スレーブセレクト信号ＳＳの波形、シリアルクロック信号ＳＣＬＫの波形、内部クロック信号ＩＣＬＫの波形、及びＳＣＬＫカウンタ１８によるカウントの様子がそれぞれ示されている。なお、内部クロック信号ＩＣＬＫについては、波形の一部を省略して示している。
【０１１６】
まず、第１実施形態と同様に、ＭＣＵ１２によりスレーブセレクト信号ＳＳがローレベルにされることにより、ＰＷＭ機能搭載ＩＣ１０がＭＣＵ１２の通信対象として選択される。
【０１１７】
また、ＭＣＵ１２の発振回路２６では、ＰＷＭ機能搭載ＩＣ１０の内蔵発振回路１６により生成される内部クロック信号ＩＣＬＫよりも高精度なクロック信号ＭＣＬＫが生成される。発振回路２６により生成された高精度なクロック信号ＭＣＬＫは、シリアル通信回路２４及び信号線ＬＳＣＬＫを介して、シリアルクロック信号ＳＣＬＫとしてＰＷＭ機能搭載ＩＣ１０に入力される。
【０１１８】
ここで、ＰＷＭ信号の搬送波周波数の目標値は、７．８１２ｋＨｚであり、デューティ分解能は８ビット（２５６階調）である。したがって、シリアルクロック信号ＳＣＬＫの周期は、（１／７．８１２ｋＨｚ）×（１／２５６）により計算される。よって、シリアルクロック信号ＳＣＬＫの周波数Ｆｓｃｌｋは２ＭＨｚに設定される。
【０１１９】
ＰＷＭ機能搭載ＩＣ１０に入力されたシリアルクロック信号ＳＣＬＫは、ＭＣＵ１２とＰＷＭ機能搭載ＩＣ１０との間のＳＰＩによる通信における同期信号として用いられるほか、ＳＣＬＫカウンタ１８に入力される。
【０１２０】
ＳＣＬＫカウンタ１８には、シリアルクロック信号ＳＣＬＫが入力されるとともに、内蔵発振回路１６により生成された内部クロック信号ＩＣＬＫが入力される。シリアルクロック信号ＳＣＬＫは、内部クロック信号ＩＣＬＫと比較して周波数の精度が高いクロック信号になっている。また、シリアルクロック信号ＳＣＬＫは、内部クロック信号ＩＣＬＫと比較して低周波数のクロック信号になっている。
【０１２１】
ＳＣＬＫカウンタ１８では、ＭＣＵ１２の発振回路２６によるシリアルクロック信号ＳＣＬＫを基準に、内蔵発振回路１６による内部クロック信号ＩＣＬＫがカウントされる。ＳＣＬＫカウンタ１８のカウント値としては、シリアルクロック信号ＳＣＬＫの１サイクルの間における内部クロック信号ＩＣＬＫのサイクル数（パルス数）が得られる。
【０１２２】
具体的には、ＳＣＬＫカウンタ１８では、図６に示すように、シリアルクロック信号ＳＣＬＫの１サイクルの時間ＴＳＣＬＫの間、内部クロック信号ＩＣＬＫがカウントされる。ここで、時間ＴＳＣＬＫは、ＰＷＭ信号の搬送波周期の１／（デューティ分解能）の時間である。これにより、ＳＣＬＫカウンタ１８のカウント値として、シリアルクロック信号ＳＣＬＫの１サイクルの時間ＴＳＣＬＫの間の内部クロック信号ＩＣＬＫのサイクル数が得られる。
【０１２３】
ＳＣＬＫカウンタ１８のカウント値は、シリアルクロック信号ＳＣＬＫの周波数Ｆｓｃｌｋ及び内部クロック信号ＩＣＬＫの周波数Ｆｉｎｔを用いて次式により計算される。
｛１×（１／Ｆｓｃｌｋ）／（１／Ｆｉｎｔ）｝
【０１２４】
こうして計算されたＳＣＬＫカウンタ１８のカウント値は、ＰＷＭ回路２１におけるｎ分周器２１１の分周比ｎとして用いられる。
【０１２５】
ここで、上述のようにシリアルクロック信号ＳＣＬＫの周波数Ｆｓｃｌｋが２ＭＨｚに設定された例について考える。
【０１２６】
内部クロック信号ＩＣＬＫの周波数Ｆｉｎｔが変動のない理想値である８ＭＨｚの場合には、ＳＣＬＫカウンタ１８のカウント値は、上記カウント値の計算式に従って４と計算される。このカウント値がＳＣＬＫカウンタ１８の理想カウント値である。計算されたカウント値４をｎ分周器２１１の分周比とすると、ｎ分周器２１１により内部クロック信号ＩＣＬＫを４分周した搬送波周波数Ｆｐｗｍｃは２ＭＨｚとなる。したがって、上記図８を用いて説明したように、この場合のＰＷＭ信号の搬送波周波数は、以下のように計算される。
１／｛（１／Ｆｐｗｍｃ）×２８｝＝Ｆｐｗｍｃ／２８＝７．８１２ｋＨｚ
【０１２７】
ここで、仮に、内部クロック信号ＩＣＬＫの周波数Ｆｉｎｔが、変動のない理想的な８ＭＨｚからその２倍の１６ＭＨｚに変動した場合、ＳＣＬＫカウンタ１８のカウント値は、上記カウント値の計算式により、理想カウント値である４の２倍の８と計算される。計算されたカウント値８をｎ分周器２１１の分周比とすると、ｎ分周器２１１により内部クロック信号ＩＣＬＫを８分周した搬送波周波数Ｆｐｗｍｃは２ＭＨｚとなる。したがって、この場合のＰＷＭ信号の搬送波周波数も、上記内部クロック信号ＩＣＬＫの変動のない理想的な場合と同様に、以下のように計算される。
１／｛（１／Ｆｐｗｍｃ）×２８｝＝Ｆｐｗｍｃ／２８＝７．８１２ｋＨｚ
【０１２８】
このように、内部クロック信号ＩＣＬＫの周波数Ｆｉｎｔが変動すると、ＳＣＬＫカウンタ１８のカウント値も、周波数Ｆｉｎｔの変動率と同じ変動率で変動する。換言すると、ＳＣＬＫカウンタ１８のカウント値の変動率から内部クロック信号ＩＣＬＫの周波数Ｆｉｎｔの変動率が分かることになる。上記の場合、ＳＣＬＫカウンタ１８のカウント値が理想カウント値から２倍に変動しているため、内部クロック信号ＩＣＬＫの周波数Ｆｉｎｔも、変動のない理想値である８ＭＨｚから２倍の１６ＭＨｚに変動していることが分かる。
【０１２９】
内部クロック信号ＩＣＬＫの周波数Ｆｉｎｔが２倍に変動しているため、ｎ分周器２１１の分周比も４からその２倍の８とする。これにより、目標とする搬送波周波数７．８１２ｋＨｚのＰＷＭ信号を、内部クロックＩＣＬＫの周波数Ｆｉｎｔが変動した場合であっても実現することができる。
【０１３０】
ｎ分周器２１１では、上記のようにＳＣＬＫカウンタ１８のカウント値が、その分周比ｎとして設定される。こうして分周器２１１の分周比ｎを設定してＰＷＭ信号の搬送波周波数を補正することで、ＰＷＭ信号の搬送波周波数を目標値に維持することができる。
【０１３１】
なお、ＰＷＭ信号のデューティ分解能は、ＰＷＭカウンタ２１２の総カウント数であり、内部クロックＩＣＬＫの周波数Ｆｉｎｔが変動した場合であっても変動することはない。例えば、ＰＷＭカウンタ２１２が８ビットカウンタである場合、周波数Ｆｉｎｔが変動した場合であっても、８ビット（２５６階調）であることに変わりない。また、ＰＷＭ信号のデューティ比は、デューティレジスタ２１４に記憶されたデューティ設定値により決定され、内部クロック信号ＩＣＬＫの周波数Ｆｓｃｌｋの変動によりデューティ比が変動することもない。
【０１３２】
上記のようにしてｎ分周器２１１の分周比ｎが設定されたＰＷＭ回路２１におけるＰＷＭ信号の生成は、上述したとおりであるので説明を省略する。
【０１３３】
なお、上記ＳＣＬＫカウンタ１８によるカウント、及びｎ分周器２１１における分周比の設定の一連の処理による搬送波周波数の補正は、特定のイベントが発生したときに行われるようにすることができる。特定のイベントとしては、ＭＣＵ１２又はＰＷＭ機能搭載ＩＣ１０の制御プログラムのメインループが実行されたとき等の所定の時間が経過したときが例示される。また、ＳＰＩによる通信が行われたときが例示される。また、温度モニタ２２により測定される温度が所定の温度になったときが例示される。これらのような特定のイベントが発生する毎に、上記ＳＣＬＫカウンタ１８によるカウント、及びｎ分周器２１１における分周比の設定の一連の処理による搬送波周波数の補正を行うようにすることができる。
【０１３４】
また、上記ＳＣＬＫカウンタ１８によるカウント、及びｎ分周器２１１における分周比の設定の一連の処理による搬送波周波数の補正は、特定のイベントの発生と無関係に、一定の時間間隔で常時行うようにすることもできる。
【０１３５】
このように、本実施形態によれば、内部クロック信号ＩＣＬＫよりも高精度なシリアルクロック信号ＳＣＬＫを基準に内部クロック信号ＩＣＬＫをカウントする。そして、カウントされたカウント値と理想カウント値との比に基づき、ＰＷＭ信号を生成するための内部クロック信号ＩＣＬＫを分周する分周比を計算してＰＷＭ信号の搬送波周波数を補正する。したがって、本実施形態によれば、高精度な搬送波周波数でＰＷＭ信号を出力することができる。また、シリアルクロック信号ＳＣＬＫは、ＭＣＵ１２に設けられた既存の発振回路２６により生成されるものであるため、回路の複雑化やコストの上昇を伴うことはない。また、本実施形態によれば、ＰＷＭ信号のデューティ分解能が変動することもない。
【０１３６】
なお、上記の場合、シリアルクロック信号ＳＣＬＫの１サイクルの間の内部クロック信号ＩＣＬＫをカウントしている。この場合、ＰＷＭカウンタ１８のカウント値が小さいと、シリアルクロック信号ＳＣＬＫと内部クロック信号ＩＣＬＫとの間の位相のずれ等に起因するカウント誤差の影響が大きくなる。ＰＷＭカウンタ１８のカウント値は、シリアルクロック信号ＳＣＬＫと内部クロック信号ＩＣＬＫとの間の周波数の差が小さいほど小さくなる。
【０１３７】
そこで、シリアルクロック信号ＳＣＬＫの２Ｎサイクル（Ｎは１以上の整数）の間の内部クロック信号ＩＣＬＫをカウントし、得られたカウント値を１／２Ｎしてもよい。このようにシリアルクロック信号ＳＣＬＫの２Ｎサイクル分のカウント値を平均することにより、シリアルクロック信号ＳＣＬＫの１サイクルの間の内部クロック信号ＩＣＬＫを高い精度でカウントすることができる。
【０１３８】
例えば、シリアルクロック信号ＳＣＬＫの４サイクルの間の内部クロック信号ＩＣＬＫをカウントした場合、得られたカウント値を１／４する、すなわち２ビットだけ左シフトする。これにより、シリアルクロック信号ＳＣＬＫの１サイクルの間のカウント値を高い精度で得ることができる。
【０１３９】
［第３実施形態］
本発明の第３実施形態によるＰＷＭ信号出力回路について図１０及び図１１を用いて説明する。図１０は、本実施形態によるＰＷＭ信号出力回路を構成するＰＷＭ機能搭載ＩＣ及びＭＣＵの構成を示すブロック図である。図１１は、本実施形態によるＰＷＭ信号出力回路の動作時における各種信号の波形等を示す波形図である。なお、第１実施形態によるＰＷＭ信号出力回路と同様の構成要素については同一の符号を付し説明を省略し又は簡潔にする。
【０１４０】
上記第１実施形態及び第２実施形態では、ＭＣＵ１２からＰＷＭ機能搭載ＩＣ１０に入力されるシリアルクロック信号ＳＣＬＫを用いて、内部クロック信号ＩＣＬＫの変動率を求めている。これらの方法とは逆に、ＰＷＭ機能搭載ＩＣ１０からＭＣＵ１２に対して、ＰＷＭ機能搭載ＩＣ１０の内部クロック信号ＩＣＬＫに基づく信号を入力して、内部クロック信号ＩＣＬＫの変動率を求めることもできる。本実施形態では、後者の方法を用いたＰＷＭ信号出力回路について説明する。
【０１４１】
本実施形態によるＰＷＭ信号出力回路は、上記第１実施形態によるＰＷＭ信号出力回路と同様、ＰＷＭ機能搭載ＩＣ１０の一部と、ＭＣＵ１２の一部とにより構成され、両者は、例えばＳＰＩを介して互いに通信可能に接続されている。
【０１４２】
図１０に示すように、ＰＷＭ機能搭載ＩＣ１０は、シリアル通信回路１４と、内蔵発振回路１６と、ＰＷＭ回路２０と、温度モニタ２２と、パルス信号生成回路３０とを有している。なお、ＰＷＭ機能搭載ＩＣ１０は、これら以外に図示しない構成部を有し、ＰＷＭ信号を生成して出力するＰＷＭ機能以外の他の機能を有するように構成することも可能である。
【０１４３】
一方、ＭＣＵ１２は、シリアル通信回路２４と、発振回路２６と、パルス信号計測カウンタ３２と、演算器３４とを有している。なお、ＭＣＵ１２は、これら以外に図示しない構成部を有し、コントローラとして機能する。
【０１４４】
まず、ＰＷＭ機能搭載ＩＣ１０の各部について説明する。
【０１４５】
シリアル通信回路１４には、第１実施形態による場合と同様、信号線ＬＳＳ、信号線ＬＳＣＬＫ、信号線ＬＭＯＳＩ、及び信号線ＬＭＩＳＯの各信号線が接続されている。
【０１４６】
内蔵発振回路１６は、第１実施形態における内蔵発振回路１６と同様のものである。内蔵発振回路１６により生成された内部クロック信号ＩＣＬＫは、ＰＷＭ回路２０及びパルス信号生成回路３０にそれぞれ入力されるようになっている。
【０１４７】
パルス信号生成回路３０は、内部クロック信号ＩＣＬＫを所定の分周比で分周し、内部クロック信号ＩＣＬＫが分周されてなるパルス信号ＰＵＬＳを生成するものである。パルス信号生成回路３０により生成されたパルス信号ＰＵＬＳは、ＭＣＵ１２のパルス信号計測カウンタ３２に入力されるようになっている。
【０１４８】
ＰＷＭ回路２０は、第１実施形態におけるＰＷＭ回路２０と同様に図５に示す構成を有し、搬送波設定値及びデューティ設定値に基づき、ＰＷＭ信号を生成して出力するものである。ＰＷＭ回路２０においてＰＷＭ信号の生成に用いられる搬送波設定値及びデューティ設定値は、ＳＰＩによる通信により、ＭＣＵ１２の演算器３４からＰＷＭ回路２０に入力されるようになっている。ＰＷＭ回路２０に入力された搬送波設定値及びデューティ設定値は、それぞれＰＷＭ回路２０における搬送波レジスタ２０３及びデューティレジスタ２０４（図５参照）に書き込まれて記憶されるようになっている。
【０１４９】
温度モニタ２２は、第１実施形態における温度モニタ２２と同様のものである。
【０１５０】
次に、ＭＣＵ１２の各部について説明する。
【０１５１】
シリアル通信回路２４には、第１実施形態による場合と同様、信号線ＬＳＳ、信号線ＬＳＣＬＫ、信号線ＬＭＯＳＩ、及び信号線ＬＭＩＳＯの各信号線が接続されている。
【０１５２】
発振回路２６は、第１実施形態における発振回路２６と同様のものである。発振回路２６によるクロック信号ＭＣＬＫは、ＳＰＩによる通信における同期信号となるシリアルクロック信号ＳＣＬＫとして用いられるほか、パルス信号計測カウンタ３２に入力されるようになっている。
【０１５３】
パルス信号計測カウンタ３２には、発振回路２６により生成されるクロック信号ＭＣＬＫとともに、ＰＷＭ機能搭載ＩＣ１０のパルス信号生成回路３０により生成されるパルス信号ＰＵＬＳが入力されるようになっている。パルス信号計測カウンタ３２は、パルス信号生成回路３０によるパルス信号ＰＵＬＳを基準に、発振回路２６によるクロック信号ＭＣＬＫをカウントするカウンタ部である。パルス信号計測カウンタ３２のカウント値は、演算器３４に入力されるようになっている。
【０１５４】
演算器３４は、パルス信号計測カウンタ３２のカウント値が入力され、このカウント値を予め求められているカウント値の理想値である理想カウント値と比較し、比較結果に基づき、搬送波設定値及びデューティ設定値を計算する演算部である。演算器３４による搬送波設定値及びデューティ設定値の計算結果は、ＳＰＩによる通信により、ＰＷＭ機能搭載ＩＣ１０のＰＷＭ回路２０に入力されるようになっている。演算器３４は、こうして搬送波設定値及びデューティ設定値を計算することにより、ＰＷＭ信号の搬送波周波数を補正する。
【０１５５】
以下、本実施形態によるＰＷＭ信号出力回路の動作についてさらに図１１を用いて説明する。図１１は、本実施形態によるＰＷＭ信号出力回路の動作時における各種信号の波形等を示す波形図である。図１１には、上段から下段に向かって順に、パルス信号ＰＵＬＳの波形、発振回路２６によるクロック信号ＭＣＬＫの波形、及びパルス信号計測カウンタ３２によるカウントの様子がそれぞれ示されている。なお、内部クロック信号ＭＣＬＫについては、波形の一部を省略して示している。
【０１５６】
ＭＣＵ１２の発振回路２６では、ＰＷＭ機能搭載ＩＣ１０の内蔵発振回路１６により生成される内部クロック信号ＩＣＬＫよりも高精度なクロック信号ＭＣＬＫが生成される。発振回路２６により生成された高精度なクロック信号ＭＣＬＫは、シリアル通信回路２４及び信号線ＬＳＣＬＫを介して、シリアルクロック信号ＳＣＬＫとしてＰＷＭ機能搭載ＩＣ１０に入力される。ＰＷＭ機能搭載ＩＣ１０に入力されたシリアルクロック信号ＳＣＬＫは、ＭＣＵ１２とＰＷＭ機能搭載ＩＣ１０との間のＳＰＩによる通信における同期信号として用いられる。
【０１５７】
また、発振回路２６により生成された高精度なクロック信号ＭＣＬＫは、パルス信号計測カウンタ３２に入力される。
【０１５８】
また、ＰＷＭ機能搭載ＩＣ１０のパルス信号生成回路３０には、内蔵発振回路１６により生成される内部クロック信号ＩＣＬＫが入力される。パルス信号生成回路３０では、入力された内部クロック信号ＩＣＬＫが所定の分周比で分周される。なお、内部クロック信号ＩＣＬＫを分周する分周比は、適宜設定することができる。こうして、パルス信号生成回路３０では、内部クロック信号ＩＣＬＫを基にしたパルス信号として、内部クロック信号ＩＣＬＫが分周されてなるパルス信号ＰＵＬＳが生成される。生成されたパルス信号ＰＵＬＳは、ＭＣＵ１２のパルス信号計測カウンタ３２に入力される。
【０１５９】
パルス信号計測カウンタ３２には、発振回路２６により生成されたクロック信号ＭＣＬＫが入力されるとともに、パルス信号計測カウンタ３２により生成されたパルス信号ＰＵＬＳが入力される。クロック信号ＭＣＬＫは、内部クロック信号ＩＣＬＫに基づき生成されたパルス信号ＰＵＬＳと比較して周波数の精度が高いクロック信号になっている。また、クロック信号ＭＣＬＫは、パルス信号ＰＵＬＳと比較して高周波数のクロック信号になっている。
【０１６０】
パルス信号計測カウンタ３２では、ＰＷＭ機能搭載ＩＣ１０のパルス信号生成回路３０によるパルス信号ＰＵＬＳを基準に、発振回路２６によるクロック信号ＭＣＬＫがカウントされる。パルス信号計測カウンタ３２のカウント値としては、パルス信号ＰＵＬＳの所定のサイクル数（パルス数）の間におけるクロック信号ＭＣＬＫのサイクル数（パルス数）が得られる。パルス信号計測カウンタ３２のカウント値は、演算器３４に入力される。
【０１６１】
具体的には、パルス信号計測カウンタ３２では、図１１に示すように、パルス信号ＰＵＬＳの１サイクル（１パルス）の間、クロック信号ＭＣＬＫがカウントされる。これにより、パルス信号計測カウンタ３２のカウント値として、パルス信号ＰＵＬＳの１サイクルの間のクロック信号ＭＣＬＫのサイクル数が得られる。
【０１６２】
演算器３４では、パルス信号計測カウンタ３２のカウント値に基づき、ＰＷＭ信号を出力するための搬送波設定値及びデューティ設定値が計算される。これにより、ＰＷＭ信号の搬送波周波数が補正される。以下、搬送波設定値及びデューティ設定値の計算について具体的な数値を用いて説明する。
【０１６３】
例えば、次の場合を考える。すなわち、ＰＷＭ機能搭載ＩＣ１０の内蔵発振回路１６により生成される内部クロック信号ＩＣＬＫの周波数Ｆｉｎｔを８ＭＨｚとする。また、パルス信号ＰＵＬＳを、内部クロック信号ＩＣＬＫを８分周したものとし、その周波数Ｆｐｕｌｓを１ＭＨｚとする。また、ＭＣＵ１２の発振回路２６により生成されるクロック信号ＭＣＬＫの周波数Ｆｍｃｕを３２ＭＨｚとする。
【０１６４】
ここで、パルス信号計測カウンタ３２のカウント値は、次式に従って計算される。
（１／Ｆｐｕｌｓ）／（１／Ｆｍｃｕ）
【０１６５】
上記の場合、パルス信号計測カウンタ３２のカウント値は、上記カウント値の計算式に従って３２と計算される。
【０１６６】
ここで、仮に、内部クロック信号ＩＣＬＫの周波数Ｆｉｎｔが、変動のない理想的な８ＭＨｚからその２倍の１６ＭＨｚに変動した場合、パルス信号ＰＵＬＳの周波数Ｆｐｕｌｓも２倍の２ＭＨｚとなる。このため、パルス信号計測カウンタ３２のカウント値は、上記カウント値の計算式に従って、３２の１／２の１６と計算される。
【０１６７】
このように、内部クロック信号ＩＣＬＫの周波数Ｆｉｎｔが変動すると、パルス信号計測カウンタ３２のカウント値は、周波数Ｆｉｎｔの変動率の逆数となる変動率で変動する。換言すると、パルス信号計測カウンタ３２のカウント値の変動率から内部クロック信号ＩＣＬＫの周波数Ｆｉｎｔの変動率が分かることになる。上記の場合、パルス信号計測カウンタ３２のカウント値が理想カウント値から１／２に変動しているため、内部クロック信号ＩＣＬＫの周波数Ｆｉｎｔは、変動のない理想値である８ＭＨｚから２倍の１６ＭＨｚに変動していることが分かる。
【０１６８】
内部クロック信号ＩＣＬＫの周波数Ｆｉｎｔが２倍に変動しているため、搬送波設定値を２倍の値とし、デューティ設定値も２倍の値とする。例えば、搬送波設定値及びデューティ設定値をもともとそれぞれ８０及び４０に設定していた場合、搬送波設定値を２倍の１６０とし、デューティ設定値も２倍の８０とする。これにより、目標とする搬送波周波数及びデューティ比のＰＷＭ信号を、内部クロックＩＣＬＫの周波数Ｆｉｎｔが変動した場合であっても実現することができる。
【０１６９】
演算器３４では、上記のようにして、パルス信号計測カウンタ３２のカウント値の理想カウント値に対する比であるカウント値の変動率に基づき、ＰＷＭ信号の搬送波設定値及びデューティ設定値が計算される。すなわち、搬送波設定値及びデューティ設定値は、それぞれ内部クロック信号ＩＣＬＫが変動のない理想的な場合の値に対し、パルス信号計測カウンタ３２のカウント値と理想カウント値との比であるカウント値の変動率の逆数を乗じることにより、再計算される。
【０１７０】
なお、演算器３４に用いられるパルス信号計測カウンタ３２の理想カウント値は、内部クロック信号ＩＣＬＫの周波数Ｆｉｎｔに変動がない理想的な場合にパルス信号計測カウンタ３２によりカウントされるカウント値として、予め求められている。予め求められた理想カウント値は、回路の制御プログラムにプログラムされ、また、メモリ等の記憶部に記憶されており、演算器３４による計算に際して読み出される。
【０１７１】
演算器３４において計算された搬送波設定値及びデューティ設定値は、ＳＰＩによる通信により、ＰＷＭ機能搭載ＩＣ１０のＰＷＭ回路２０に入力される。ＰＷＭ回路２０に入力された搬送波設定値及びデューティ設定値は、それぞれ搬送波レジスタ２０３及びデューティレジスタ２０４に書き込まれて記憶される。こうして、搬送波設定値及びデューティ設定値が更新されて搬送波周波数が補正される。
【０１７２】
上記パルス信号計測カウンタ３２によるカウント、演算器３４による搬送波設定値及びデューティ設定値の計算、並びに各設定値の各レジスタへの書き込みの一連の処理による搬送波周波数の補正は、第１実施形態と同様、特定のイベントが発生したときに行われるようにすることができる。また、特定のイベントの発生と無関係に、一定の時間間隔で常時行うようにすることもできる。
【０１７３】
ＰＷＭ回路２０では、上記第１実施形態の場合と同様に、搬送波レジスタ２０３に書き込まれる搬送波設定値、及びデューティレジスタ２０４に書き込まれるデューティ設定値に基づき、ＰＷＭ信号が生成される。
【０１７４】
このように、ＰＷＭ機能搭載ＩＣ１０からＭＣＵ１２に対して、ＰＷＭ機能搭載ＩＣ１０の内部クロック信号ＩＣＬＫに基づくパルス信号ＰＵＬＳを入力して、内部クロック信号ＩＣＬＫの変動率を求めてもよい。
【０１７５】
なお、上記では、内蔵発振回路１６による内部クロック信号ＩＣＬＫが分周されてなるパルス信号ＰＵＬＳをＭＣＵ１２に入力しているが、内部クロック信号ＩＣＬＫを分周することなく、そのままＭＣＵ１２に入力してもよい。
【０１７６】
また、上記では、パルス信号生成回路３０によるパルス信号ＰＵＬＳを基準に、発振回路２６によるクロック信号ＭＣＬＫをカウントしている。しかしながら、パルス信号ＰＵＬＳ又は内部クロック信号ＩＣＬＫよりもクロック信号ＭＣＬＫが低周波数の場合には、上記第１実施形態と同様に、クロック信号ＭＣＬＫを基準に、パルス信号ＰＵＬＳ又は内部クロック信号ＩＣＬＫをカウントしてもよい。
【０１７７】
また、上記では、演算器３４及びパルス信号計測カウンタ３２をＭＣＵ１２に設けている。しかしながら、演算器３４及びパルス信号計測カウンタ３２のいずれか一方又は両方をＰＷＭ機能搭載ＩＣ１０に設けてもよい。
【０１７８】
［変形実施形態］
上記実施形態に限らず、種々の変形が可能である。
【０１７９】
例えば、上記実施形態では、ＭＣＵ１２の発信回路２６によるシリアルクロック信号ＳＣＬＫ又はクロック信号ＭＣＬＫを、ＳＣＬＫカウンタ１８又はパルス信号計測カウンタ３２におけるカウントに用いる場合を例に説明した。しかしながら、カウントに用いる高精度な時間信号は、内蔵クロック信号ＩＣＬＫよりも高精度であればこれらに限定されるものでない。シリアルクロック信号ＳＣＬＫ又はクロック信号ＭＣＬＫに代えて、例えば、ウォッチドッグタイマのランパルス信号、専用端子から入力される専用のクロック信号等を、高精度な時間信号として、ＳＣＬＫカウンタ１８又はパルス信号計測カウンタ３２におけるカウントに用いることができる。
【０１８０】
また、上記実施形態では、演算器２８又は演算器３４をＭＣＵ１２に設けた場合を例に説明したが、演算器２８又は演算器３４は、必ずしもＭＣＵ１２に設ける必要はなく、ＰＷＭ機能搭載ＩＣ１０に設けてもよい。また、演算器２８又は演算器３４は、ＰＷＭ機能搭載ＩＣ１０及びＭＣＵ１２の両者とは別個のＩＣに設けることもできる。
【０１８１】
例えば、図１２は、演算器２８がＰＷＭ機能搭載ＩＣ１０に設けられた変形実施形態によるＰＷＭ信号出力回路を構成するＭＣＵ及びＰＷＭ機能搭載ＩＣの構成を示すブロック図である。図１２に示すように、演算器２８は、ＰＷＭ機能搭載ＩＣ１０に設けることもできる。
【０１８２】
また、上記実施形態では、ＭＣＵ１２とＰＷＭ機能搭載ＩＣ１０とを通信可能に接続する規格としてＳＰＩを用いた場合を例に説明したが、両者を通信可能に接続する規格は、これに限定されるものではなく、種々の規格を用いることができる。
【符号の説明】
【０１８３】
１０…ＰＷＭ機能搭載ＩＣ
１２…ＭＣＵ
１６…内蔵発振回路
１８…ＳＣＬＫカウンタ
２０…ＰＷＭ回路
２２…温度モニタ
２６…発振回路
２８…演算器
３０…パルス信号生成回路
３２…パルス信号計測カウンタ
３４…演算器
【図１】
2016086385.tif 000003
【図２】
2016086385.tif 000004
【図３】
2016086385.tif 000005
【図４】
2016086385.tif 000006
【図５】
2016086385.tif 000007
【図６】
2016086385.tif 000008
【図７】
2016086385.tif 000009
【図８】
2016086385.tif 000010
【図９】
2016086385.tif 000011
【図１０】
2016086385.tif 000012
【図１１】
2016086385.tif 000013
【図１２】
2016086385.tif 000014