(57)【特許請求の範囲】
【請求項１】
マイクロプロセッサと上記マイクロプロセッサによって制御されるモータとを有する制御システムであって、
上記マイクロプロセッサは、
第１値を格納する第１レジスタと、
上記第１値より大きな第２値を格納する第２レジスタと、
上記第２値より大きな第３値を格納する第３レジスタと、
クロック信号を受け、上記クロック信号をカウントする事によって上記第１値と上記第３値との間をカウントアップ及びカウントダウン動作し、それに対応する計数値を発生する第１カウンタと、
上記クロック信号を受け、上記クロック信号をカウントする事によって上記第１値より小さい第４値と上記第２値との間をカウントアップ及びカウントダンウ動作し、それに対応する計数値を発生する第２カウンタと、
上記クロック信号を受け、上記クロック信号をカウントする事によって上記第１値と上記第４値との間と上記第３値と上記第２値との間とをカウントアップ及びカウントダウン動作し、それに対応する計数値を発生する第３カウンタと、
上記第４値と上記第３値との間の第５値を格納する第４レジスタと、
上記第１、上記第２及び上記第３カウンタに結合され、上記第１、上記第２及び上記第３カウンタのカウントアップ及びカウントダウン動作を制御する制御回路と、
比較回路とを含み、
上記第２値と上記第３値との差は、第６値とされ、
上記第１値と上記第４値との差は、上記第６値に対応され、
上記第１カウンタのカウント値と上記第２カウンタのカウント値との差は、上記第６値に対応され、
上記第１カウンタがカウントアップ動作を行っているとき、上記第２カウンタはカウントアップ動作を行うようにされており、
上記第１カウンタがカウントダウン動作を行っているとき、上記第２カウンタはカウントダウン動作を行うようにされており、
上記第３カウンタは、上記第１カウンタのカウント値が上記第２値と一致したとき、上記第３値からカウントダウン動作を行い、
上記第３カウンタは、上記第２カウンタのカウント値が上記第２値と一致したとき、上記第２値からカウントアップ動作を行い、
上記第３カウンタは、上記第２カウンタのカウント値が上記第１値と一致したとき、上記第４値からカウントアップ動作を行い、
上記第３カウンタは、上記第１カウンタのカウント値が上記第１値と一致したとき、上記第１値からカウントダウン動作を行い、
上記比較回路は、上記第５値が上記第１値と上記第２値との間にあるとき、上記第５値と上記第１及び第２カウンタのそれぞれのカウント値とを比較するようにされ、
上記比較回路は、上記第５値が上記第２値以上のとき、上記第５値を、カウントアップ動作を行っている上記第１及び第３カウンタのそれぞれのカウント値、又は、上記第５値とカウンドダウン動作を行っている上記第１及び第３カウンタのそれぞれのカウント値とを比較するようにされ、
上記比較回路は、上記第５値が上記第１値より小さいとき、上記第５値を、カウントダウン動作を行っている上記第２及び第３カウンタのそれぞれのカウント値、又は、カウントアップ動作を行っている上記第２及び第３カウンタのそれぞれのカウント値とを比較するようにされ、
上記レジスタに格納されている値は、上記第１カウンタの値が上記第２値に対応し、または、上記第２カウンタの値が第１値に対応したときにそれぞれ更新され、
それによって、相補ノンオーバーラップＰＭＷ信号を上記マイクロプロセッサから上記モータを駆動するために出力する制御システム。
【請求項２】
請求項１において、
上記マイクロプロセッサは、さらに、上記比較回路の出力を受けるようにされた制御回路を含み、
上記制御回路は、上記相補ノンオーバーラップＰＭＷ信号の正相信号を生成する第１回路と、上記相補ノンオーバーラップＰＭＷ信号の逆相信号を生成する第２回路とを含み、
上記第１回路は、上記第５値が上記第１値より大きい期間において、上記第１カウンタがカウントアップ動作を行っているとき上記第５値に一致している上記第１カウンタのカウント値に応答して、上記正相信号を第１状態から第２状態へ変更させ、上記第１カウンタがカウントダウン動作を行っているとき上記第５値に一致している上記第１カウンタのカウント値に応答して、上記正相信号を上記第２状態から上記第１状態へ変更させ、
上記第１回路は、上記第５値が上記第１値より小さい期間において、上記第３カウンタがカウントアップ動作を行っているとき上記第５値に一致している上記第３カウンタのカウント値に応答して、上記正相信号を上記第１状態から上記第２状態へ変更させ、上記第３カウンタがカウントダウン動作を行っているとき上記第５値に一致している上記第３カウンタのカウント値に応答して、上記正相信号を上記第２状態から上記第１状態へ変更させ、
上記第２回路は、上記第５値が上記第２値より小さい期間において、上記第２カウンタがカウントアップ動作を行っているとき上記第５値に一致している上記第２カウンタのカウント値に応答して、上記逆相信号を第２状態から第１状態へ変更させ、上記第２カウンタがカウントダウン動作を行っているとき上記第５値に一致している上記第２カウンタのカウント値に応答して、上記逆相信号を上記第１状態から上記第２状態へ変更させ、
上記第２回路は、上記第５値が上記第２値より大きい期間において、上記第３カウンタがカウントアップ動作を行っているとき上記第５値に一致している上記第３カウンタのカウント値に応答して、上記正相信号を上記第１状態から上記第２状態へ変更させ、上記第３カウンタがカウントダウン動作を行っているとき上記第５値に一致している上記第３カウンタのカウント値に応答して、上記逆相信号を上記第２状態から上記第１状態へ変更させる制御システム。
【請求項３】
請求項２において、
上記相補ノンオーバーラップＰＭＷ信号は、３相のＰＭＷ信号を含む制御システム。
【請求項４】
請求項２において、
上記第４レジスタ内の上記第５値は、上記第２カウンタのカウント値が上記第４値と上記第５値との間の期間及び上記第１カウンタのカウント値が上記第２値と上記第３値との間の期間において、上記第１乃至第３カウンタのそれぞれのカウント値と比較される制御システム。
【請求項５】
請求項２において、
上記マイクロプロセッサは、さらに、第５レジスタを含み、
上記第５レジスタは、上記第３カウンタがカウント動作を停止している期間の後、新データとして上記第４レジスタへ格納されるべき第７値を格納し、
上記第７値が上記第５レジスタに格納されたとき、上記第１、第２及び第３カウンタのそれぞれのカウント値は、上記第３カウンタがカウント動作を行っている期間の間、上記第７値と比較され、
上記第５値は、上記第１、第２及び第３カウンタのカウントアップ動作又はカウントダウン動作のいずれが一方に利用され、
上記第７値は、上記第１、第２及び第３カウンタのカウントアップ動作又はカウントダウン動作の他方に利用される制御システム。
【請求項６】
半導体集積回路において、相補ノンオーバーラップＰＷＭ信号を形成する方法であって、
第１値と第３値との間を第１カウンタで計数する工程と、
上記第１値より小さい第４値と上記第１値より大きくかつ上記第３値より小さい第２値との間を第２カウンタで計数する工程と、
上記第２値と上記第３値との間及び上記第１値と上記第４値との間を第３カウンタで計数する工程と、
第５値を格納する工程と、
上記相補ノンオーバーラップＰＷＭ信号を発生する工程とを含み、
上記第３カウンタは、上記第１カウンタのカウント値が上記第２値に一致したとき、上記第３値からカウントダウンを行い、
上記研３カウンタは、上記第２カウンタのカウンと値が上記第２値に一致したとき、上記第２値からカウントアップを行い、
上記第３カウンタは、上記第２カウンタのカウント値が上記第１値に一致したとき、上記第４カウント値からカウントアップを行い、
上記第３カウンタは、上記第１カウンタのカウント値が上記第１値に一致したとき、上記第１値からカウントダウンを行い、
上記相補ノンオーバーラップＰＷＭ信号を発生する工程は、
上記第５値が上記第１値と上記第２値との間であるとき、上記第５値を、上記第１及び第２カウンタのそれぞれのカウント値と比較する工程と、
上記第５値が上記第２値より大きいとき、上記第５値を、カウントアップしている第１及び第３カウンタのそれぞれのカウント値又はカウントダウンしている第１及び第３カウンタのそれぞれのカウント値と比較する工程と、
上記第５値が上記第２値より小さいとき、上記第５値を、カウントダウンしている第２及び第３カウンタのそれぞれのカウント値又はカウントアップしている第２及び第３カウンタのそれぞれのカウント値と比較する工程とを含み、
上記レジスタに格納されている値は、カウントダウン動作をしている上記第１カウンタの値が第２値に対応し、または、カウントアップ動作をしている上記第２カウンタの値が第１値に対応した時に、それぞれ更新される、
相補ノンオーバーラップＰＷＭ信号を形成する方法。
【請求項７】
請求項６において、
上記第５値は、中央処理装置によって、選択的に変更される相補ノンオーバーラップＰＷＭ信号を形成する方法。
【請求項８】
請求項６において、
上記半導体集積回路は、シングルチップマイクロコンピュータを含む相補ノンオーパーラップＰＷＭ信号を形成する方法。
【請求項９】
請求項６において、
上記相補ノンオーバーラップＰＷＭ信号は、モーターに供給される相補ノンオーバーラップＰＷＭ信号を形成する方法。
【請求項１０】
請求項９において、
上記モーターは、エアーコンデイショナ、冷凍機、ポンプ、又は、工作機械内に用いられる相補ノンオーバーラップＰＷＭ信号を形成する方法。
【請求項１１】
請求項６において、
上記第３カウンタは、上記第２値と上記第３値との間及び上記第１値と上記第４値との間を計数する１つのカウンタを含む相補ノンオーバーラップＰＷＭ信号を形成する方法。
【請求項１２】
請求項６において、
上記第５値は、上記相補ノンオーパーラップＰＷＭ信号のデューティサイクルに対応する相補ノンオーバーラップＰＷＭ信号を形成する方法。
【請求項１３】
請求項６において、
上記第１及び第２カウンタのカウント値の差は、上記相補ノンオーバーラップＰＷＭ信号のデッドタイムに対応する相補ノンオーバーラップＰＷＭ信号を形成する方法。
【請求項１４】
請求項６において、
上記第１カウンタがカウントアップするとき、上記第２カウンタはカウントアップし、
上記第１カウンタがカウントダウンするとき、上記第２カウンタはカウントダウンする相補ノンオーバーラップＰＷＭ信号を形成する方法。
【請求項１５】
請求項１において、
上記更新されるレジスタは、上記第４レジスタであり、
上記第１カウンタがカウントダウンするときに上記第２値に対応した場合、または、上記第２カウンタが上記第１値に対応した場合、上記第４レジスタを更新する制御システム。
【発明の詳細な説明】
【０００１】
【産業上の利用分野】
この発明は、制御装置と制御システムに関し、例えばモータ駆動用のタイマを内蔵したマイクロコンピュータ、データ処理装置あるいは半導体集積回路装置とそれを用いてモータ駆動等の制御システムに利用して有効な技術に関するものである。
【０００２】
【従来の技術】
マイクロコンピュータは、昭和５９年１１月３０日オーム社発行の「ＬＳＩハンドブック」第５４０〜５４１頁に記載されているように、中央処理装置ＣＰＵを中心にしてプログラム保持用のＲＯＭ（リード・オンリー・メモリ）、データ保持用のＲＡＭ（ランダム・アクセス・メモリ）、及びデータの入出力を行うためのタイマなどの入出力回路などの機能ブロックが１つの半導体基板上において形成されてなる。
【０００３】
かかるマイクロコンピュータをモータの駆動制御に用いる場合がある。例えば、エアーコンデショナなどのモータ制御、ＡＣインダクションサーボモータなどの、いわゆるインバーターモータ制御に適したＰＷＭ（パルス幅変調）出力を行うタイマを内蔵したシングルチップのマイクロコンピュータの例として、平成５年３月（株）日立製作所発行「Ｈ８／３００３  ハードウェアマニュアル」がある。インバータモータは、３相の正弦波信号（Ｕ，Ｖ，Ｗ）で駆動される。上記シングルチップのマイクロコンピュータは、かかる正弦波より高い周波数の搬送波によって近似されたＰＷＭ出力を形成して上記モータを駆動する。
【０００４】
前記タイマは、２つのアップダウンカウンタと３本のコンペアレジスタで３相のＰＷＭ出力を行う。いわゆる１８０°通電方式では、アーム短絡防止のために上下アームの間にいわゆるデッドタイムを設ける必要がある。コンペアレジスタには、それぞれバッファレジスタが付加されており、カウンタが下限値に達したとき（谷）、又は上限値に達したとき（山）に、バッファレジスタからコンペアレジスタへの転送が行われる。
【０００５】
【発明が解決しようとする課題】
しかしながら、上記の「Ｈ８／３００３  ハードウェアマニュアル」に記載のタイマの相補ＰＷＭモードでは、互い相補ノーオーバーラップの関係にあるＰＷＭ出力を６相（３組）出力することができるが、
（１）０％と１００％デューティのパルスは、上限値以上又は下限値以下の値が発生したときに得られるが、タイマカウンタが下限値のときに上記値が与えられると１００％、タイマカウンタが上限値のときに上記値が与えられると０％になる。このため、ソフトウェアでタイマカウンタの方向を判断して、新しいコンペア値をバッファレジスタにライトしなければならない。したがって、上記０％から１００％中の任意のデューティパルスを出力する場合、途中でデータ設定タイミングを変更しなければならないという問題を有する。また、０％、１００％デューティのパルスが半周期ずれてしまう。この結果、モータ駆動の場合に最大トルクを出すことができないという問題を有する。
【０００６】
（２）０％−デッドタイム、１００％−デッドタイムの間の設定が禁止されていて、任意デューティのパルスを出力することができない。ソフトウェアでこの値を避けるようにすることはソフトウェアに対する負担が大きくなってしまう。また、０％〜１００％の任意デューティが実現できないために、速度ないしトルクのリップルが発生してしまうという問題が生じる。（３）山／谷の書き換えができない。設定するタイミングを１周期よりも短くできず、精度の向上が困難であるという問題が生じる。
【０００７】
この発明の目的は、（１）ソフトウェアの負担をかけることなく、デューティ０％〜１００％の出力可能な相補ＰＷＭ出力を行うこと、（２）０％と１００％の位相を合わせること、（３）正相／逆相間のオン−オフ、オフ−オンの切り替え時に必ずデッドタイム（ノーオーバーラップ時間）を持つこと、（４）正相／逆相共にオフする期間はデッドタイムの２倍以下とすること、（５）デューティ５０％を中心に正相／逆相のデューティが対称的であること、（６）比較レジスタのデータの書き換えタイミングが任意であること、（７）デューティの書き換えをデータ転送装置によっても容易に行えることとしたタイマを内蔵した制御装置とそれを用いた制御システムを提供することにある。この発明の前記ならびにそのほかの目的と新規な特徴は、本明細書の記述および添付図面から明らかになるであろう。
【０００８】
【課題を解決するための手段】
本願において開示される発明のうち代表的なものの概要を簡単に説明すれば、下記の通りである。すなわち、（１）デッドタイムに相当する時間差を持った２本のアップカウンタ、及び２本のダウンカウンタを設け、これらが下限値と上限値（１／２周期＋デッドタイム）の間をカウントするようにし、相対的に大きい値をカウントするアップカウンタの上限値と相対的に大きい値をカウントするダウンカウンタの下限値が一致するようにし、相対的に小さい値をカウントするアップカウンタの上限値と相対的に小さい値をカウントするダウンカウンタとが１／２周期に相当するカウント値で交わるようにし、相対的に大きい値をカウントするアップカウンタと相対的に大きい値をカウントするダウンカウンタとがデッドタイムに相当するカウント値で交わるようにし、相対的に小さい値をカウントするアップカウンタと相対的に小さい値をカウントするダウンカウンタとが下限値で接するようにして上下対称のカウントを実現する。
【０００９】
（２）第１の比較レジスタ（ＴＧＲ）と第２の比較レジスタ（ＢＲ）を、上記カウンタと比較可能にし、上記カウンタ値がデッドタイム以下の場合と１／２周期に相当するカウント値以上のとき両方の比較を行い、デッドタイム以上かつ１／２周期に相当するカウント値以下のとき、第１の比較の比較のみを行う。
【００１０】
（３）正相出力がオフレベル状態で、比較レジスタが相対的に小さい値をカウントするアップカウントに一致すると、逆相出力をオンレベルにし、比較レジスタが相対的に小さい値をカウントするダウンカウントに一致すると、逆相出力をオフレベルにし、逆相出力がオフレベルの状態で、比較レジスタが相対的に大きい値をカウントするダウンカウントに一致すると正相出力をオンレベルにし、比較レジスタが相対的に大きい値をカウントするアップカウントに一致すると、正相出力をオフレベルにする。
【００１１】
（４）中央処理装置ＣＰＵは、第２の比較レジスタにライトする。両方の比較を行う領域から第１の比較のみを行う領域に遷移したときに、ハードウェアによって第２の比較レジスタ第１の比較レジスタへデータ転送を行うことを可能にする。更に、アップカウント時の両方の比較を行う領域から第１の比較のみ行う領域に遷移したときに、第２の比較レジスタから第１の比較レジスタへのデータ転送を行うこと、または、ダウンカウント時の両方の比較を行う領域から第１の比較のみを行う領域に遷移したときに、第２の比較レジスタから第１の比較レジスタへのデータ転送を行うことを選択可能にする。
【００１２】
【作用】
上記した手段によれば、（１）５０％出力（１／２周期＋１／４デッドタイムのカウント値）を中心にして、カウント動作、比較動作が対称となり、上下対称出力を行うことができる。（２）かならずオン−オフの出力切り換え、オフ−オンの出力切り換えが山・谷の前後で一対の事象として発生するから、下限値から上限値の任意の値を随時に設定することができる。（３）０％出力、１００％出力の出力設定に制約がなく、０％出力、１００％出力の位相を合わせることができる。（４）一方がオフ状態であるときのみ、他方のオン状態への出力切り換えを行うことにより、必ずデッドタイムを確保することができる。
【００１３】
【実施例】
図１には、この発明が適用されたシングルチップのマイクロコンピュータの一実施例のブロック図が示されている。同図の各回路ブロックは、公知の半導体集積回路の製造技術により、単結晶シリコンのような１個の半導体基板上において形成される。
【００１４】
この実施例のシングルチップのマイクロコンピュータは、中央処理装置ＣＰＵ、クロック発生回路ＣＰＧ、データトランスファコントローラ（データ転送装置）ＤＴＣ、割り込みコントローラＩＮＴ、プログラム等が格納されたリード・オンリー・メモリＲＯＭ、一時記憶等に用いられるランダム・アクセス・メモリＲＡＭ、タイマＡとタイマＢ（ＩＴＵ）、シリアルコミュニケーションインターフェイスＳＣＩ、Ａ／Ｄ変換器、第１ないし第９からなる入出力ポートＩＯＰ１〜ＩＯＰ９の各機能ブロック又は機能モジュールから構成される。
【００１５】
かかる機能ブロック又は機能モジュールは、内部バスによって相互に接続される。内部バスは、アドレスバス、データバスの他、リード信号、ライト信号を含む制御バスによって構成される。制御バスは、バスサイズ信号（WORD) あるいはシステムクロックなどを含んでよい。上記機能ブロック又は機能モジュールは、内部バスを介して中央処理装置ＣＰＵ又はデータトランスファコントローラＤＴＣによってリード／ライトされる。特に制限されないが、内部バスのバス幅は１６ビットから構成される。
【００１６】
この実施例のシングルチップのマイクロコンピュータは、電源端子として接地電位Ｖss、電源電圧Ｖcc、アナログ接地電位ＡＶss、アナログ電源電圧ＡＶcc、その他専用制御端子としてリセットＲＥＳ、スタイバイＳＴＢＹ、モード制御ＭＤ０，ＭＤ１、クロック入力ＥＸＴＡＬ、ＸＴＡＬ等が設けられる。
【００１７】
各入出力ポートは、アドレスバス、データバス、バス制御信号あるいはタイマ、シリアルコミュニケーションインターフェイスＳＣＩ、Ａ／Ｄ変換器の入出力端子と兼用される。すなわち、タイマ、シリアルコミュニケーションインターフェイスＳＣＩ、Ａ／Ｄ変換器は、それぞれ入出力信号を有し、入出力ポートと兼用された端子を介して外部と入出力されるものである。例えば第５ポートＩＯＰ５は、タイマＡの入出力端子と兼用され、第６ポートＩＯＰ６と第７ポートＩＯＰ７は、タイマＢ（ＩＴＵ）の入出力端子と兼用され、第８ポートＩＯＰ８は、シリアルコミュニケーションインターフェイスＳＣＩの入出力端子と兼用されている。アナログデータの入力端子は、第９ポートＩＯＰ９と兼用されている。外部トリガ信号は、上記第５ポートＩＯＰ５と兼用されている。
【００１８】
上記タイマＢ（ＩＴＵ）の入力端子として、外部クロック入力ＴＣＬＫＡ〜ＴＣＬＫＤ、及び入出力端子としてインプットキャプチャ／アウトプットコンペア兼用端子としてＴＩＯＣ０Ａ〜４Ａ、ＴＩＯＣ０Ｂ〜４Ｂ、ＴＩＯＣ０Ｃ、３Ｃ、４Ｃ及びＴＩＯＣ０Ｄ、３Ｄ、４Ｄを有する。このうち、ＴＩＯＣ３Ｂ、ＴＩＯＣ３Ｄ、ＴＩＯＣ４Ａ、ＴＩＯＣ４Ｃ、ＴＩＯＣ４Ｂ、ＴＩＯＣ４Ｄはモータ制御用の６相出力とされ、Ｕ相、Ｕ＃相、Ｖ相、Ｖ＃相、Ｗ相、Ｗ＃相と称する。ここで、＃は論理反転を示している。ＴＣＬＫＡとＴＣＬＫＢ、ＴＣＬＫＣとＴＣＬＫＤはそれぞれ２相のクロックを入力することができる。
【００１９】
上記タイマＡ及びタイマＢのコンペアマッチ信号、オーバーフロー信号、アンダーフロー信号は、Ａ／Ｄ変換開始トリガとしてＡ／Ｄ変換器に与えられる。割り込み信号は、Ａ／Ｄ変換器、タイマＡ、タイマＢ及びシリアルコミュニケーションインターフェイスＳＣＩが出力し、割り込みコントローラＩＮＴがこれを受けて、所定のレジスタなどの指定に基づいて、中央処理装置ＣＰＵに割込要求信号を与えるか、データトランスファコントローラＤＴＣに起動要求信号を与えるかを制御する。かかる切り換えは、ＤＴＥビットによって行われる。つまり、ＤＴＥビットが１にセットされている状態で割込要因が発生すると、データトランスファコントローラＤＴＣに対する起動要求信号が発生され、そのデータ転送が行われると自動的に割込要求がクリアされる。一方、ＤＴＥビットが０にクリアされている状態で割込要因が発生すると、中央処理装置ＣＰＵに対する起動要求信号が発生され、中央処理装置ＣＰＵが所望のデータ処理を行い、割込要因を示すビットをクリアする。
【００２０】
データトランスファコントローラＤＴＣによるデータ転送時に、所定の条件が成立すると、例えば転送カウンタが０になったりすると、割込要因を示すビットをクリアせずに、対応するＤＴＥビットを０にクリアして、中央処理装置ＣＰＵに割込要求を発生するようにする。各割込要因には、独立したＤＴＥビットと独立したベクタが割り当てられている。
【００２１】
データ転送装置としては、上記のようなデータトランスファコントローラＤＴＣのほかに、直接メモリアクセス制御装置ＤＭＡＣのようなものを用いるものであってもよい。上記のようなデータトランスファコントローラＤＴＣの例としては、昭和６３年１２月（株）日立製作所発行「Ｈ８／５３２  ハードウェアマニュアル」などに記載されているものを利用できる。直接メモリアクセス制御装置ＤＭＡＣの例としては、平成５年３月（株）日立製作所発行「Ｈ８／３００３
ハードウェアマニュアル」などに記載されているものを利用できる。
【００２２】
これらのデータ転送装置（ＤＴＣ／ＤＭＡＣ）は、「Ｈ８／３００３  ハードウェアマニュアル」又は特願平４−１３７９５４号に記載されているように、１回の起動によって、複数単位のデータを転送すること、いわゆるブロック転送モードが可能とされる。これらは、ソースアドレスレジスタＳＡＲ、ディスティネーションアドレスレジスタＤＡＲ、ブロックサイズカウンタＴＣＲＨ、ブロックサイズ保持レジスタＴＣＲＬ、ブロック転送カウンタＢＴＣＲを持ち、ブロック単位でのデータ転送を行うことができるようにされる。
【００２３】
図２と図３には、この発明に係るタイマＢ（ＩＴＵ）の一実施例のブロック図が示されている。図２と図３により上記タイマＢ（ＩＴＵ）が構成されるが、これら図２と図３の相互の関係の理解を容易にするため、チャンネル２とチャンネル３，４の一部が重複して描かれている。
【００２４】
タイマＢは、１６ビットタイマにより構成される１６ビット構成のインテグレーテッドタイマユニット（ＩＴＵ）であり、タイマカウンタＴＣＮＴ０〜４からなる５個のカウンタを有し、５チャンネルから構成される。チャンネル０は、４本のアウトプットコンペアレジスタ／インプットキャプチャレジスタ０Ａ〜０Ｄ（ＴＧＲ０Ａ〜ＴＧＲ０Ｄ）を有する。チャンネル１は、２本のアウトプットコンペアレジスタ／インプットキャプチャレジスタ１Ａ、１Ｂ（ＴＧＲ１Ａ、ＴＧＲ１Ｂ）を有する。いわゆる位相計数モードとして、２相の外部クロックにより、アップダウンを行うことができる。チャンネル２は、２本のアウトプットコンペアレジスタ／インプットキャプチャレジスタ２Ａ、２Ｂ（ＴＧＲ２Ａ、ＴＧＲ２Ｂ）を有する。いわゆる位相計数モードとして、２相の外部クロックにより、アップダウンを行うことができる。
【００２５】
チャンネル３は、４本のアウトプットコンペアレジスタ／インプットキャプチャレジスタ３Ａ〜３Ｄ（ＴＧＲ３Ａ〜ＴＧＲ３Ｄ）を有する。チャンネル４は、４本のアウトプットコンペアレジスタ／インプットキャプチャレジスタ４Ａ〜４Ｄ（ＴＧＲ４Ａ〜ＴＧＲ４Ｄ）を有する。上記チャンネル３と４を組み合わせて、いわゆるリセット同期モード及び相補ＰＷＭモードを実行することができる。そのほかに共通のレジスタＴＳＴＲ、ＴＳＹＲと相補ＰＷＭモード用のサブカウンタＴＣＮＴＳ他のレジスタを有する。上記チャンネル０、３、４では、アウトプットコンペアレジスタ／インプットキャプチャレジスタＡとＣ、ＢとＤが後述するようなバッファ動作を可能とされる。
【００２６】
上記位相計数モード、リセット同期モード、及びバッファ動作は、上記「Ｈ８／３００３  ハードウェアマニュアル」ｐｐ．３０７〜４１５などに記載されている。相補ＰＷＭモードのとき、カウンタＴＣＮＴ３，４は並行なアップ／ダウンカウントを行う。カウンタＴＣＮＴ４がダウンカウントして０になったときにアンダーフローが発生し、カウンタＴＣＮＴ３がアップカウントして上記レジスタＴＧＲ３Ａに格納されるデータに一致したとき、コンペアマッチ３Ａを発生する。また、この途中で、上記レジスタＴＧＲ３Ｂ、ＴＧＲ３Ｄ、ＴＧＲ４Ａ、ＴＧＲ４Ｂ、ＴＧＲ４Ｃ、ＴＧＲ４Ｄのそれぞれに格納されるデータに一致したとき、タイマ出力を変化させる。タイマ出力（Ｕ，Ｕ＃、Ｖ，Ｖ＃、Ｗ，Ｗ＃）は、それぞれ正相／逆相の出力を有する。これによって、相補３相のＰＷＭ出力を行うことができる。
【００２７】
この実施例のタイマの特徴は、次の通りである。各チャネル共にφ、φ／４、φ／１６、φ／６４、φ／２４６、φ／１０２４、φ／４０９６のような８種類のカウンタ入力クロックが選択できる。各チャンネル共に、コンペアマッチにより０出力、１出力、トグル出力が選択できる。インプットキャプチャ機能として立ち上がりエッジ、立ち下がりエッジ、両エッジ検出の選択ができる。カウンタクリア動作はコンペアマッチ、又はインプットキャプチャにより可能とされる。同期動作として、複数のタイマカウンタＴＣＮＴへの同時書き込み、コンペアマッチ／インプットキャプチャによる同時クリア、カウンタの同期動作による各レジスタの同期入出力が可能とされる。ＰＷＭモードとして、任意デューティのＰＷＭ出力が可能とされ、同期動作と組み合わせることにより、最大８相のＰＷＭ出力が可能とされる。
【００２８】
チャンネル０、３及び４はバッファ動作が設定可能とされる。つまり、インプットキャプチャレジスタのダブルバッファ構成が可能にされ、アウトプットコンペアレジスタの自動書き換えが可能にされる。チャンネル１と２は、それぞれ独立に位相計数モード、つまり２相エンコーダパルスのアップダウンカウントが可能とされる。そして、チャンネル２の入力クロックをチャンネル１のオーバーフロー／アンダーフローにすることにより３２ビットカウンタとして動作させることができる。
【００２９】
チャンネル３と４は、リセット同期モードとしてそれを組み合わせることにより、のこぎり波比較タイプの６相ＰＷＭ波形を出力することができる。相補ＰＷＭモードとしてそれを組み合わせることにより三角波比較タイプのノンオーバーラップを持った６相ＰＷＭ波形を出力することができる。
【００３０】
【表１】
0003687861.tif 000002
【００３１】
タイマコントロールレジスタＴＣＲは、８ビットのレジスタであり、各チャンネル０〜４に対応してそれぞれ設けられ、タイマカウンタＴＣＮＴの制御を行うのに用いられる。ＴＣＲ０、３、４のビット構成は上記表１のようにされ、ＴＣＲ１、２のビット構成は次の表２のようにされる。
【００３２】
【表２】
0003687861.tif 000003
【００３３】
ビット７、６、５（ＣＣＬＲ２〜０）は、カウンタＴＣＮＴのカンウタクリア要因を選択する制御ビットであり、チャンネル０，３，４においては、Ｂ’０００（Ｂ’は２進数）ならクリア禁止とされ、Ｂ’００１ならレジスタＴＧＲＡのコンペアマッチ／インプットキャプチャでＴＣＮＴクリア、Ｂ’０１０ならレジスタＴＧＲＢのコンペアマッチ／インプットキャプチャでＴＣＮＴクリア、Ｂ’０１１なら同期クリア／同期動作している他のチャンネルのカウンタによりＴＣＮＴクリア、Ｂ’１００ならレジスタＴＧＲＣのコンペアマッチ／インプットキャプチャでＴＣＮＴクリア、Ｂ’１０１ならレジスタＴＧＲＤのコンペアマッチ／インプットキャプチャでＴＣＮＴクリア、Ｂ’１１０と１１１は予約（設定禁止）とされる。
【００３４】
チャンネル１と２では、ビット７は未使用であり、読み出すと１が出力される。チャンネル１と２においては、Ｂ’００ならクリア禁止とされ、Ｂ’０１ならレジスタＴＧＲＡのコンペアマッチ／インプットキャプチャでＴＣＮＴクリア、Ｂ’１０ならレジスタＴＧＲＢのコンペアマッチ／インプットキャプチャでＴＣＮＴクリア、Ｂ’１１なら同期クリア／同期動作している他のチャンネルのカウンタによりＴＣＮＴクリアされる。
【００３５】
ビット４、３（ＣＫＥＧ１，０）は、入力クロックのエッジを選択する制御ビットであり、内部クロックのφでカウントするときには、この設定は無効にされる。Ｂ’００（初期値）なら立ち上がりエッジでカウント、Ｂ’０１なら立ち下がりエッジでカウント、Ｂ’１−なら両エッジでカウントする。ここで−は０でも１でもよいことを意味している。
【００３６】
ビット２、１、０（ＴＰＳＣ２〜０）は、カウンタのクロックを選択する制御ビットであり、チャンネル０においては、Ｂ’０００なら内部クロックφ、Ｂ’００１なら内部クロックφ／４、Ｂ’０１０なら内部クロックφ／１６、Ｂ’０１１なら内部クロックφ／２５６、Ｂ’１００なら外部クロックＡ（ＴＣＬＫＡ端子）、Ｂ’１０１なら外部クロックＢ（ＴＣＬＫＢ端子）、Ｂ’１１０なら外部クロックＣ（ＴＣＬＫＣ端子）、Ｂ’１１１なら外部クロックＤ（ＴＣＬＫＤ端子）が選択される。
【００３７】
チャンネル１においては、Ｂ’０００なら内部クロックφ、Ｂ’００１なら内部クロックφ／４、Ｂ’０１０なら内部クロックφ／１６、Ｂ’０１１なら内部クロックφ／６４、Ｂ’１００なら内部クロックφ／２５６、Ｂ’１０１ならチャンネル２のＴＣＮＴのオーバーフロー／アンダーフロー、Ｂ’１１０なら外部クロックＡ（ＴＣＬＫＡ端子）、Ｂ’１１１なら外部クロックＢ（ＴＣＬＫＢ端子）が選択される。ただし、チャンネル１が位相計数モードのときにはこれらの設定は無効にされる。
【００３８】
チャンネル２においては、Ｂ’０００なら内部クロックφ、Ｂ’００１なら内部クロックφ／４、Ｂ’０１０なら内部クロックφ／１６、Ｂ’０１１なら内部クロックφ／６４、Ｂ’１００なら内部クロックφ／１０２４、Ｂ’１０１なら外部クロックＡ（ＴＣＬＫＡ端子）、Ｂ’１１０なら外部クロックＢ（ＴＣＬＫＢ端子）、Ｂ’１１１なら外部クロックＣ（ＴＣＬＫＣ端子）が選択される。ただし、チャンネル２が位相計数モードのときにはこれらの設定は無効にされる。
【００３９】
チャンネル３と４においては、Ｂ’０００なら内部クロックφ、Ｂ’００１なら内部クロックφ／４、Ｂ’０１０なら内部クロックφ／１６、Ｂ’０１１なら内部クロックφ／６４、Ｂ’１００なら内部クロックφ／２５６、Ｂ’１０１なら内部クロックφ／１０２４、Ｂ’１１０なら外部クロックＡ（ＴＣＬＫＡ端子）、Ｂ’１１１なら外部クロックＢ（ＴＣＬＫＢ端子）が選択される。
【００４０】
タイマモードレジスタＴＭＤＲは、８ビットのリード／ライト可能なレジスタであり、各チャンネルの動作モードの設定を行う。そのビット構成は、表３に示す通りである。このうち、７、６ビットは未使用（予約ビット）であり、リードすると１が出力され、ライトのときには１を書き込みようにする。
【００４１】
【表３】
0003687861.tif 000004
【００４２】
ビット５（ＢＦＢ）は、レジスタＴＧＲＢを通常動作させるかＴＧＲＢとＴＧＲＤを組み合わせてバッファ動作とするかを設定する。ＴＧＲＤを持たないチャンネルではこのビットは未使用となる。ビット４（ＢＦＡ）は、レジスタＴＧＲＡを通常動作させるかＴＧＲＡとＴＧＲＣを組み合わせてバッファ動作とするかを設定する。ＴＧＲＣを持たないチャンネルではこのビットは未使用となる。
【００４３】
ビット３〜０（ＭＤ３〜０）は、タイマの動作モードを設定する制御ビットである。チャンネル０、３、４では位相計数モードの設定はできない。チャンネル０、１、２、４では、リセット同期ＰＷＭモード、相補ＰＷＭモードの設定はできない。ビット３には常に０を書き込みようにする。チャンネル３をリセット同期ＰＷＭモードあるいは相補ＰＷＭモードに設定した場合、チャンネル４の設定は無効になり、上記チャンネル３の設定に従うようにされる。
【００４４】
Ｂ’００００なら通常動作、Ｂ’０００１は予約（設定禁止）、Ｂ’００１０ならＰＷＭモード１、Ｂ’００１１ならＰＷＭモード２、Ｂ’０１００なら位相計数モード１、Ｂ’０１０１なら位相計数モード２、Ｂ’０１１０なら位相計数モード３、Ｂ’０１１１なら位相計数モード４、Ｂ’１０００ならリセット同期ＰＷＭモード、Ｂ’１００１、Ｂ’１０１０、Ｂ’１０１１、Ｂ’１１００は予約（設定禁止）、Ｂ’１１０１なら相補ＰＷＭモード（山で転送）Ｂ’１１１０なら相補ＰＷＭモード（谷で転送）Ｂ’１１１１なら相補ＰＷＭモード（山・谷で転送）となる。
【００４５】
タイマＩ／ＯコントロールレジスタＴＩＯＲは、８ビットのレジスタであり、各チャンネルで各チャンネルのレジスタＴＧＲの機能を制御する。チャンネル０、３、４には各２本（ＴＩＯＲ０Ｈ，Ｌ、ＴＩＯＲ３Ｈ，Ｌ、ＴＩＯＲ４Ｈ，Ｌ）と、チャンネル１と２に各１本（ＴＩＯＲ１，ＴＩＯＲ２）の合計８本が設けられる。そのビット構成を表４に示す。
【００４６】
【表４】
0003687861.tif 000005
【００４７】
チャンネル０において、ＴＩＯＲ０ＨはＴＧＲ０Ａと０Ｂの機能の制御、ＴＩＯＲ０ＬはＴＧＲ０Ｃと０Ｄの機能の制御に用いられる。チャンネル３において、ＴＩＯＲ３ＨはＴＧＲ３Ａと３Ｂの機能の制御、ＴＩＯＲ３ＬはＴＧＲ３Ｃと３Ｄの機能の制御に用いられる。チャンネル４において、ＴＩＯＲ４ＨはＴＧＲ４Ａと４Ｂの機能の制御、ＴＩＯＲ４ＬはＴＧＲ４Ｃと４Ｄの機能の制御に用いられる。チャンネル１において、ＴＩＯＲ１はＴＧＲ１Ａと１Ｂの機能の制御に用いられる。チャンネル２において、ＴＩＯＲ２はＴＧＲ２Ａと２Ｂの機能の制御に用いられる。チャンネル０、３、４のＴＧＲＣ又はＴＧＲＤをバッファモードに設定した時には、ＴＩＯＲの設定にかかわらずにバッファレジスタとして動作する。
【００４８】
レジスタＴＩＯＲｎＨはＴＧＲｎＡとｎＢ（ｎは０、３、４）の機能制御を行い、ＴＩＯＲｎＬはＴＧＲｎＣとｎＤ（ｎは０、３、４）の機能制御を行うようにされる。ビット７〜４（ＩＯＢ３〜０）は、レジスタＴＧＲＢとＴＧＲＤの機能制御を設定する。Ｂ’００００〜０１１１のときにＴＧＲＢとＴＧＲＤはアウトプットコンペアレジスタとして使用され、Ｂ’００００なら出力禁止（初期値）、Ｂ’０００１なら初期出力が０でコンペアマッチで０を出力、Ｂ’００１０なら初期出力が０でコンペアマッチで１を出力、Ｂ’００１１なら初期出力が０でコンペアマッチでトグル出力とされる。Ｂ’０１００なら出力禁止（初期値）、Ｂ’０１０１なら初期出力が１でコンペアマッチで０を出力、Ｂ’０１１０なら初期出力が１でコンペアマッチで１を出力、Ｂ’０１１１なら初期出力が１でコンペアマッチでトグル出力とされる。
【００４９】
Ｂ’１０００〜１１１１のときにＴＧＲＢとＴＧＲＤはインプットキャプチャレジスタとして使用され、Ｂ’１０００ならキャプチャ入力元は端子（ＴＩＯＣｎＢ，ＴＩＯＣｎＤ）で立ち上がりエッジでインプットキャプチャ、Ｂ’１００１ならキャプチャ入力元は端子で立ち下がりエッジでインプットキャプチャ、Ｂ’１０１０とＢ’１０１１ならキャプチャ入力元は端子で両エッジでインプットキャプチャとされる。Ｂ’１１００ならキャプチャ入力元はチャンネル１に供給される外部クロックの立ち上がりエッジでインプットキャプチャ、Ｂ’１１０１ならキャプチャ入力元はチャンネル１／外部クロックの立ち下がりエッジでインプットキャプチャ、Ｂ’１１１０とＢ’１１１１ならキャプチャ入力元はチャンネル１に供給される外部クロックの両エッジでインプットキャプチャとされる。
【００５０】
ビット３〜０（ＩＯＡ３〜０）は、レジスタＴＧＲＡとＴＧＲＣの機能制御を設定する。Ｂ’００００〜０１１１のときにＴＧＲＡはアウトプットコンペアレジスタとして使用され、Ｂ’００００なら出力禁止（初期値）、Ｂ’０００１なら初期出力が０でコンペアマッチで０を出力、Ｂ’００１０なら初期出力が０でコンペアマッチで１を出力、Ｂ’００１１なら初期出力が０でコンペアマッチでトグル出力とされる。Ｂ’０１００なら出力禁止（初期値）、Ｂ’０１０１なら初期出力が１でコンペアマッチで０を出力、Ｂ’０１１０なら初期出力が１でコンペアマッチで１を出力、Ｂ’０１１１なら初期出力が１でコンペアマッチでトグル出力とされる。
【００５１】
Ｂ’１０００〜１１１１のときにＴＧＲＡとＴＧＲＣはインプットキャプチャレジスタとして使用され、Ｂ’１０００ならキャプチャ入力元の端子に供給されるクロックの立ち上がりエッジでインプットキャプチャ、Ｂ’１００１ならキャプチャ入力元は端子に供給されるクロックの立ち下がりエッジでインプットキャプチャ、Ｂ’１０１０とＢ’１０１１ならキャプチャ入力元は端子に供給れるクロックの両エッジでインプットキャプチャとされる。Ｂ’１１００ならキャプチャ入力元はチャンネル１に供給される外部クロックの立ち上がりエッジでインプットキャプチャ、Ｂ’１１０１ならキャプチャ入力元はチャンネル１に供給される外部クロックの立ち下がりエッジでインプットキャプチャ、Ｂ’１１１０とＢ’１１１１ならキャプチャ入力元はチャンネル１に供給さる外部クロックの両エッジでインプットキャプチャとされる。
【００５２】
レジスタＴＩＯＲ１（ＴＩＯＲ２）はＴＧＲ１Ｂ（ＴＧＲ２Ｂ）の機能制御を行うようにされる。ビット７〜４（ＩＯＢ３〜０）は、レジスタＴＧＲ１Ｂ（ＴＧＲ２Ｂ）の機能制御を設定する。Ｂ’００００〜０１１１のときにＴＧＲ１Ｂ（ＴＧＲ２Ｂ）はアウトプットコンペアレジスタとして使用され、Ｂ’００００なら出力禁止（初期値）、Ｂ’０００１なら初期出力が０でコンペアマッチで０を出力、Ｂ’００１０なら初期出力が０でコンペアマッチで１を出力、Ｂ’００１１なら初期出力が０でコンペアマッチでトグル出力とされる。Ｂ’０１００なら出力禁止（初期値）、Ｂ’０１０１なら初期出力が１でコンペアマッチで０を出力、Ｂ’０１１０なら初期出力が１でコンペアマッチで１を出力、Ｂ’０１１１なら初期出力が１でコンペアマッチでトグル出力とされる。
【００５３】
Ｂ’１０００〜１１１１のときにＴＧＲ１Ｂ（ＴＧＲ２Ｂ）はインプットキャプチャレジスタとして使用され、Ｂ’１０００ならキャプチャ入力元の端子に供給されるクロックの立ち上がりエッジでインプットキャプチャ、Ｂ’１００１ならキャプチャ入力元は端子に供給されるクロックの立ち下がりエッジでインプットキャプチャ、Ｂ’１０１０とＢ’１０１１ならキャプチャ入力元は端子に供給れるクロックの両エッジでインプットキャプチャとされる。Ｂ’１１００ならキャプチャ入力元はチャンネル１に供給される外部クロックの立ち上がりエッジでインプットキャプチャ、Ｂ’１１０１ならキャプチャ入力元はチャンネル１に供給される外部クロックの立ち下がりエッジでインプットキャプチャ、Ｂ’１１１０とＢ’１１１１ならキャプチャ入力元はチャンネル１に供給される外部クロックの両エッジでインプットキャプチャとされる。
【００５４】
ビット３〜０（ＩＯＡ３〜０）は、レジスタＴＧＲ１Ａ（ＴＧＲ２Ａ）の機能制御を設定する。Ｂ’００００〜０１１１のときにＴＧＲ１Ａ（ＴＧＲ２Ａ）はアウトプットコンペアレジスタとして使用され、Ｂ’００００なら出力禁止（初期値）、Ｂ’０００１なら初期出力が０でコンペアマッチで０を出力、Ｂ’００１０なら初期出力が０でコンペアマッチで１を出力、Ｂ’００１１なら初期出力が０でコンペアマッチでトグル出力とされる。Ｂ’０１００なら出力禁止（初期値）、Ｂ’０１０１なら初期出力が１でコンペアマッチで０を出力、Ｂ’０１１０なら初期出力が１でコンペアマッチで１を出力、Ｂ’０１１１なら初期出力が１でコンペアマッチでトグル出力とされる。
【００５５】
Ｂ’１０００〜１１１１のときにＴＧＲ１Ａ（ＴＧＲ２Ａ）はインプットキャプチャレジスタとして使用され、Ｂ’１０００ならキャプチャ入力元の端子に供給されるクロックの立ち上がりエッジでインプットキャプチャ、Ｂ’１００１ならキャプチャ入力元は端子に供給されるクロックの立ち下がりエッジでインプットキャプチャ、Ｂ’１０１０とＢ’１０１１ならキャプチャ入力元は端子に供給されるクロックの両エッジでインプットキャプチャとされる。Ｂ’１１００ならキャプチャ入力元はチャンネル１に供給される外部クロックの立ち上がりエッジでインプットキャプチャ、Ｂ’１１０１ならキャプチャ入力元はチャンネル１に供給される外部クロックの立ち下がりエッジでインプットキャプチャ、Ｂ’１１１０とＢ’１１１１ならキャプチャ入力元はチャンネル１に供給される外部クロックの両エッジでインプットキャプチャとされる。
【００５６】
タイマインタラプトイネーブルレジスタＴＩＥＲは、８ビットのレジスタであり、オーバーフロー割り込み要求、ジェネラルレジスタ（ＴＧＲ）のコンペアマッチ／インプットキャプチャ割り込み要求及びＡ／Ｄ変換開始要求信号の発生の許可／禁止を制御する。各チャンネル０〜４に１本ずつ合計５本のレジスタＴＩＥＲ０〜４が設けられる。ＴＩＥＲ０、３、４のビット構成を表５に、ＴＩＥＲ１、２のビット構成を表６に示す。
【００５７】
【表５】
0003687861.tif 000006
【００５８】
【表６】
0003687861.tif 000007
【００５９】
ビット７（ＴＴＧＥ）は、レジスタＴＧＲＡのインプットキャプチャ／コンペアマッチ（チャンネル４はカウンタのオーバーフロー／アンダーフロー）によって、０ならＡ／Ｄ変換開始要求の発生を禁止、１ならＡ／Ｄ変換開始要求の発生を許可する。ビット６は未使用であり、読み出すと１が出力される。
【００６０】
ビット５（ＴＣＩＥＵ）は、アンダーフローインタラプトイネーブルであり、チャンネル１、２でタイマステータスレジスタＴＳＲのアンダーフローフラグ（ＴＣＦＵ）が１にセットされたとき、かかるＴＣＦＵによる割り込み要求を０なら禁止し、１なら許可する。
【００６１】
ビット４（ＴＣＩＥＶ）は、オーバーフローインタラプトイネーブルであり、チャンネル１、２でタイマステータスレジスタＴＳＲのオーバーフローフラグ（ＴＣＦＶ）が１にセットされたとき、かかるＴＣＦＶによる割り込み要求を０なら禁止し、１なら許可する。
【００６２】
ビット３（ＴＧＩＥＤ）は、ＴＧＲインタラプトイネーブルＤであり、チャンネル０、３、４においてタイマステータスレジスタＴＳＲのＴＧＦＤが１にセットされたとき、かかるＴＧＦＤビットによる割り込み要求を０なら禁止し、１なら許可する。チャンネル１と２は未使用とされ、読み出すと１が出力される。
【００６３】
ビット２（ＴＧＩＥＣ）は、ＴＧＲインタラプトイネーブルＣであり、チャンネル０、３、４においてタイマステータスレジスタＴＳＲのＴＧＦＣが１にセットされたとき、かかるＴＧＦＣビットによる割り込み要求を０なら禁止し、１なら許可する。チャンネル１と２は未使用とされ、読み出すと１が出力される。
【００６４】
ビット１（ＴＧＩＥＢ）は、ＴＧＲインタラプトイネーブルＢであり、チャンネル０〜４においてタイマステータスレジスタＴＳＲのＴＧＦＢが１にセットされたとき、かかるＴＧＦＢビットによる割り込み要求を０なら禁止し、１なら許可する。
【００６５】
ビット０（ＴＧＩＥＡ）は、ＴＧＲインタラプタイネーブルＡであり、チャンネル０〜４においてタイマステータスレジスタＴＳＲのＴＧＦＡが１にセットされたとき、かかるＴＧＦＡビットによる割り込み要求を０なら禁止し、１なら許可する。
【００６６】
タイマーステータスレジスタＴＳＲは、８ビットのレジスタであり、各チャンネル０〜４に１本ずつ合計５本のレジスタＴＳＲ０〜４が設けられる。ＴＳＲ０のビット構成を表７に、ＴＳＲ１，２のビット構成を表８に、ＴＳＲ３，４のビット構成を表９にそれぞれ示す。
【００６７】
【表７】
0003687861.tif 000008
【００６８】
【表８】
0003687861.tif 000009
【００６９】
【表９】
0003687861.tif 000010
【００７０】
ビット７（ＴＣＦＤ）はカウント方向フラグであり、チャンネル１〜４のＴＣＮＴのカウント方向を示すステータスフラグである。チャンネル０では未使用であり、読み出すと１が出力される。ＴＣＦＤが０ならダウンカウントを示し、１ならアップカウントを示している。ビット６はチャンネル０〜４において未使用であり、読み出すと１が出力される。
【００７１】
ビット５（ＴＣＦＵ）はアンダーフローフラグであり、チャンネル１と２のＴＣＮＴのアンダーフローの発生を示し、チャンネル０、３、４では未使用とされる。それ故、読み出すと上記のように１が出力される。かかるフラグＴＣＦＵのクリア条件は、ＴＣＦＵ＝１の状態でＴＣＦＵを読み出した後にＴＣＦＵに０を書き込んだときである。１にされるセット条件は、ＴＣＮＴの値がアンダーフロー（Ｂ’００００→Ｂ’ＦＦＦＦ）したときである。
【００７２】
ビット４（ＴＣＦＶ）はＴＣＮＴのオーバーフローフラグの発生を示すスタータスフラグであり、クリア条件は、ＴＣＦＶ＝１の状態でＴＣＦＶを読み出した後にＴＣＦＶに０を書き込んだときであり、１にされるセット条件は、ＴＣＮＴの値がオーバーフロー（Ｂ’ＦＦＦＦ→Ｂ’００００）したときである。
【００７３】
ビット３（ＴＧＦＤ）はインプットキャプチャ／アウトプットコンペアフラグＤであり、チャンネル０、３、４のＴＧＲＤのインプットキャプチャ又はコンペアマッチの発生を示すスタータスフラグである。チャンネル１と２は未使用であり、読み出すと１が出力される。０のクリア条件は、ＴＧＦＤ＝１の状態でＴＧＦＤを読み出した後にＴＧＦＤに０を書き込んだときである。１にセットされる条件は、（１）ＴＧＲＤがアウトプットコンペアレジスタとして機能している場合、ＴＣＮＴ＝ＴＧＲＤになったとき、（２）ＴＧＲＤがインプットキャプチャレジスタとして機能している場合、インプットキャプチャ信号によりＴＣＮＴの値がＴＧＲＤに転送されたときである。
【００７４】
ビット２（ＴＧＦＣ）はインプットキャプチャ／アウトプットコンペアフラグＣであり、チャンネル０、３、４のＴＧＲＣのインプットキャプチャ又はコンペアマッチの発生を示すステータスフラグである。チャンネル１と２は未使用であり、読み出すと１が出力される。０のクリア条件は、ＴＧＦＣ＝１の状態でＴＧＦＣを読み出した後にＴＧＦＣに０を書き込んだときである。１にされるセット条件は、（１）ＴＧＲＣがアウトプットコンペアレジスタとして機能している場合、ＴＣＮＴ＝ＴＧＲＣになったとき、（２）ＴＧＲＣがインプットキャプチャレジスタとして機能している場合、インプットキャプチャ信号によりＴＣＮＴの値がＴＧＲＣに転送されたときである。
【００７５】
ビット１（ＴＧＦＢ）はインプットキャプチャ／アウトプットコンペアフラグＣであり、チャンネル０〜４のＴＧＲＢのインプットキャプチャ又はコンペアマッチの発生を示すステータスフラグである。０のクリア条件は、ＴＧＦＢ＝１の状態でＴＧＦＢを読み出した後にＴＧＦＢに０を書き込んだときである。１にセットされる条件は、（１）ＴＧＲＢがアウトプットコンペアレジスタとして機能している場合、ＴＣＮＴ＝ＴＧＲＢになったとき、（２）ＴＧＲＢがインプットキャプチャレジスタとして機能している場合、インプットキャプチャ信号によりＴＣＮＴの値がＴＧＲＢに転送されたときである。
【００７６】
ビット０（ＴＧＦＡ）はインプットキャプチャ／アウトプットコンペアフラグＣであり、チャンネル０〜４のＴＧＲＡのインプットキャプチャ又はコンペアマッチの発生を示すステータスフラグである。０のクリア条件は、ＴＧＦＡ＝１の状態でＴＧＦＡを読み出した後にＴＧＦＡに０を書き込んだときである。１にセットされる条件は、（１）ＴＧＲＡがアウトプットコンペアレジスタとして機能している場合、ＴＣＮＴ＝ＴＧＲＡになったとき、（２）ＴＧＲＡがインプットキャプチャレジスタとして機能している場合、インプットキャプチャ信号によりＴＣＮＴの値がＴＧＲＡに転送されたときである。
【００７７】
タイマカウンタＴＣＮＴは、１６ビットのカウンタであり、常に１６ビットの単位でアクセスされ、各チャンネル０〜４に１本、合計で５本のタイマカンウタＴＣＮＴ０〜４が設けられている。ＴＣＮＴ０はアップカウンタ、ＴＣＮＴ１，２は位相計数モードのときアップ／ダウンカウンタであり、その他はアップカンタである。ＴＣＮＴ３，４は相補ＰＷＭモードのときアップ／ダウンカンウタであり、それ以外はアップカンウタである。
【００７８】
ジェネラルレジスタＴＧＲは、１６ビットのレジスタであり、チャンネル０、３、４に各４本、チャンネル１と２に各２本の合計１６本が設けられている。チャンネル０、３、４においては、アウトプットコンペア／インプットキャプチャ兼用レジスタであり、ＴＧＲＣとＴＧＲＡ、ＴＧＴＤとＴＧＲＢの組み合わせでバッファ動作が設定可能にされる。チャンネル１と２においては、ＴＧＲＡとＴＧＲＢはアウトプットコンペア／インプットキャプチャ兼用レジスタとされる。
【００７９】
タイマスタートレジスタＴＳＴＲは、８ビットのレジスタであり、チャンネル０〜４のカンウタＴＣＮＴの動作／停止を選択する。そのビット構成は表１０に示す。各ビット（ビット５、４、３は未使用）において０のときタイマカウンタＴＣＮＴを停止、１のときにカウンタ動作させる。
【００８０】
【表１０】
0003687861.tif 000011
【００８１】
【表１１】
0003687861.tif 000012
【００８２】
タイマシンクロレジスタＴＳＹＲは、８ビットのレジスタであり、チャンネル０〜４のタイマカウンタＴＣＮＴ０〜４の独立動作／同期動作を選択する。対応するビットを１にセットしたチャンネルが同期動作を行う。そのビット構成を上記表１１に示す。
【００８３】
ビット５〜３を除いた各ビットのＳＹＮＣ４〜０はチャンネル４〜０の独立動作／同期動作を選択する。これらのビットが０なら、対応するチャンネルのタイマカウンタＴＣＮＴ４〜０は独立動作（ＴＣＮＴ４〜０の書き込み／クリアは他のチャンネルと無関係）、１ならチャンネル４〜０は同期動作とされ、ＴＣＮＴ４〜０の同期書き込み／同期クリアが可能にされる。同期書き込みは、同期動作を指定した１本のＴＣＮＴへの書き込み行うと、同期動作を指定した他のカウンタへも同じ値が書き込まれる。同期クリアは、同期動作を指定した１本のＴＣＮＴのクリア条件が発生すると、同期動作を指定されたその他のカウンタもクリアされる。
【００８４】
タイマアウトプットマスタイネーブルレジスタＴＯＥＲは、８ビットのレジスタであり、チャンネル３と４の出力設定の許可／禁止を行う。そのビット構成を表１２に示す。ビット７と６は未使用であり、リードすると１が出力される。ライトのときには１を書き込むようにする。
【００８５】
【表１２】
0003687861.tif 000013
【００８６】
ビット５（ＯＥ４Ｄ）が０ならＴＩＯＣ４Ｄ端子のＩＴＵ出力は禁止され（入出力ポートとして動作）、１ならＴＩＯＣ４Ｄ端子のＩＴＵ出力が許可される。ビット４（ＯＥ４Ｃ）が０ならＴＩＯＣ４Ｃ端子のＩＴＵ出力は禁止され（入出力ポートとして動作）、１ならＴＩＯＣ４Ｃ端子のＩＴＵ出力が許可される。ビット３（ＯＥ３Ｄ）が０ならＴＩＯＣ３Ｄ端子のＩＴＵ出力は禁止され（入出力ポートとして動作）、１ならＴＩＯＣ３Ｄ端子のＩＴＵ出力が許可される。ビット２（ＯＥ４Ｂ）が０ならＴＩＯＣ４Ｂ端子のＩＴＵ出力は禁止され（入出力ポートとして動作）、１ならＴＩＯＣ４Ｂ端子のＩＴＵ出力が許可される。ビット１（ＯＥ４Ａ）が０ならＴＩＯＣ４Ａ端子のＩＴＵ出力は禁止され（入出力ポートとして動作）、１ならＴＩＯＣ４Ａ端子のＩＴＵ出力が許可される。ビット０（ＯＥ３Ｂ）が０ならＴＩＯＣ３Ｂ端子のＩＴＵ出力は禁止され（入出力ポートとして動作）、１ならＴＩＯＣ３Ｂ端子のＩＴＵ出力が許可される。
【００８７】
タイマアウトプットコントロールレジスタＴＯＣＲは、８ビットのレジスタであり、相補ＰＷＭモード／リセット同期ＰＷＭモード出力の外部トリガによる出力禁止、ＰＷＭ周期に同期したトグル出力の許可／禁止及びＰＷＭ出力の出力レベル反転の制御を行う。そのビット構成を表１３に示す。
【００８８】
【表１３】
0003687861.tif 000014
【００８９】
ビット７（ＰＳＹＮ１）はＰＷＭ同期出力の制御を行い、０のときにはＰＷＭ出力がオフされたとき、そのときの出力中のレベルを保持する。１のときにはＰＷＭ出力がオフされとき、チャンネル３，４のタイマカウンタＴＣＮＴ３，４を停止しなければカウンタの動作に同期して出力する。つまり、ＰＷＭ出力オフによる影響を受けない。ビット６（ＰＳＹＮ０）はＰＷＭ周期に同期したドグル出力の禁止／許可を設定するものであり、０のときにはＰＷＭ周期に同期したトグル出力を禁止し、１のときにはＰＷＭ周期に同期したトグル出力を許可する。
【００９０】
ビット５（ＴＰＩＥ）はＰＷＭ出力遮断割り込みイネーブルであり、リセット同期ＰＷＭモード／相補ＰＷＭモード時のＩＴＵの外部トリガによる出力遮断信号の入力時の割り込み要求（ＴＰＩＳＤ）を許可／禁止の設定を行う。つまり、０のときには外部トリガ入力時のＰＷＭ出力遮断割り込み要求（ＴＰＩＳＤ）を禁止し、１なら許可する。
【００９１】
ビット４（ＸＴＧＤ）は外部トリガデスエーブルであり、リセット同期ＰＷＭモード／相補ＰＷＭモード時のＩＴＵの外部トリガの禁止を設定する。つまり、０のときには外部トリガ入力を禁止し、１ならＴＩＯＣ３Ｃ端子はＩＴＵ出力を禁止するための外部トリガ入力端子とされる。
【００９２】
ビット３（ＸＴＥＧ）は外部トリガエッジであり、リセット同期ＰＷＭモード／相補ＰＷＭモード時のＩＴＵの外部トリガのエッジを設定する。つまり、０のときには立ち上がりエッジで出力を遮断し、１なら立ち下がりエッジで出力を遮断する。
【００９３】
ビット２（ＰＯＦＦ）はＰＷＭ出力ＯＦＦフラグであり、リセット同期ＰＷＭモード／相補ＰＷＭモード時のＩＴＵ出力をオフ（ＯＦＦ）されたときにセットされる。そのクリアは、タイマ出力（クリア条件）ＰＯＦＦ＝１の状態でリードした後に０をラトしたときである。遮断データ出力（セット条件）は、（１）１をライトしたとき、（２）ＸＴＧＤ＝０のときＴＩＯＣ３Ｃに指定したトリガが入力されたときである。
【００９４】
ビット１と０（ＯＬＳ０，１）は出力レベルセレクト４，３であり、リセット同期ＰＷＭモード／相補ＰＷＭモードの出力レベルを選択する。各端子の初期設定は、ＴＩＯＣ３Ｂ、ＴＩＯＣ４Ａ、ＴＩＯＣ４Ｂの各出力レベルは、カウンタ４とアップカウンタ時コンペアマッチを発生すると０出力、カウンタ４とダウンカウンタ時コンペアマッチを発生すると１出力に、ＴＩＯＣ３Ｄ、ＴＩＯＣ４Ｃ、ＴＩＯＣ４Ｄの出力レベルは、カウンタ３とアップカウンタ時コンペアマッチを発生すると１出力、カウンタ３とダウンカウンタ時コンペアマッチを発生すると０出力になる。
【００９５】
【表１４】
0003687861.tif 000015
【００９６】
タイマ出力遮断データレジスタＴＯＳＲは、８ビットのレジスタであり、リセット同期ＰＷＭモード／相補ＰＷＭモードの時、ＴＯＣＲ／ＰＯＦＦビットが１にセットされたとき本レジスタの設定値が出力される。そのビット構成を上記表１４に示す。ビット７と６は未使用とされ、リードすると１が出力され、ライトのときには１にする。
【００９７】
ビット５（ＯＳ４Ｄ）は、ＴＩＯＣ４Ｄ端子の遮断出力データを設定し、０ならＴＩＯＣ４Ｄ端子の遮断出力は０となり、１ならＴＩＯＣ４Ｄ端子の遮断出力は１となる。ビット４（ＯＳ４Ｃ）は、ＴＩＯＣ４Ｃ端子のＩＴＵ出力の許可／禁止を設定し、０ならＴＩＯＣ４Ｃ端子の遮断出力は０となり、１ならＴＩＯＣ４Ｃ端子の遮断出力は１となる。ビット３（ＯＳ３Ｄ）は、ＴＩＯＣ３Ｄ端子の遮断出力データを設定し、０ならＴＩＯＣ３Ｄ端子の遮断出力は０となり、１ならＴＩＯＣ３Ｄ端子の遮断出力は１となる。
【００９８】
ビット２（ＯＳ４Ｂ）は、ＴＩＯＣ４Ｂ端子の遮断出力データを設定し、０ならＴＩＯＣ４Ｂ端子の遮断出力は０となり、１ならＴＩＯＣ４Ｂ端子の遮断出力は１となる。ビット１（ＯＳ４Ａ）は、ＴＩＯＣ４Ａ端子の遮断出力データを設定し、０ならＴＩＯＣ４Ａ端子の遮断出力は０となり、１ならＴＩＯＣ４Ａ端子の遮断出力は１となる。ビット０（ＯＳ３Ｂ）は、ＴＩＯＣ３Ｂ端子の遮断出力データを設定し、０ならＴＩＯＣ３Ｂ端子の遮断出力は０となり、１ならＴＩＯＣ３Ｂ端子の遮断出力は１となる。
【００９９】
タイマゲートコントロールレジスタＴＧＣＲは、８ビットのレジスタであり、リセット同期ＰＷＭモード／相補ＰＷＭモードの時、ブラシレスＤＣモータ制御に必要な波形出力の制御を行う。そのビット構成を表１５に示す。ビット７は未使用とされ、リードすると１が出力され、ライトのときには１にする。
【０１００】
【表１５】
0003687861.tif 000016
【０１０１】
ビット６（ＢＤＣ）は、ブラシレスＤＣモータであり、ブラシレスＤＣモータ制御のためのゲート信号出力、チョッピング出力の機能を選択する。かかるＢＤＣが０なら通常出力とされ、１ならブラシレスＤＣモータ用ゲート信号／チョッピング出力とされる。ビット５（Ｎ）は、逆相出力であり、逆相端子の出力にゲート信号を出力するか、ゲート信号とリセット同期ＰＷＭ／相補ＰＷＭ出力をチョッピングして出力するか選択する。つまり、Ｎが０なら逆相端子出力にゲート信号を直接出力し、１なら逆相端子出力にゲート信号とリセット同期ＰＷＭ／相補ＰＷＭ出力をチャッピングして出力する。ビット４（Ｐ）は、正相出力であり、正相端子の出力にゲート信号を出力するか、ゲート信号とリセット同期ＰＷＭ／相補ＰＷＭ出力をチョッピングして出力するか選択する。つまり、Ｐが０なら正相端子出力にゲート信号を直接出力し、１なら正相端子出力にゲート信号とリセット同期ＰＷＭ／相補ＰＷＭ出力をチャッピングして出力する。
【０１０２】
ビット３（ＦＢ）は、帰還入力であり、ゲート信号を生成するための帰還入力を外部入力とするかレジスタ入力とするかを選択する。かかるＦＢが０なら帰還入力は外部入力（入力元はチャンネル０のＴＧＲＡ、ＴＧＲＢ、ＴＧＲＣのインプットキャプチャ信号）、１なら帰還入力はレジスタ入力（ＴＧＣＲのＵＦ，ＶＦ，ＷＦの設定値）とされる。ビット２〜０のＷＦ，ＶＦ，ＵＦは上記帰還入力データの設定である。
【０１０３】
サブカウンタＴＣＮＴＳは、１６ビットのアップダウンカウンタであり、チャンネル３に１本設けられている。このカウンタＴＣＮＴＳは、相補ＰＷＭモードに設定したときにのみ有効であり、リード専用とカウンタとされる。
【０１０４】
デッドタイムレジスタＴＤＤＲは、１６ビットのレジスタであり、3 チャンネルに１本設けられている。このレジスタＴＤＤＲは、相補ＰＷＭモード時のみ有効なレジスタであり、相補ＰＷＭモード時のＴＣＮＴ３とＴＣＮＴ４のオフセット値を設定する。相補ＰＷＭモード時にＴＣＮＴ３とＴＣＮＴ４をクリアして再スタートするときは、ＴＤＤＲの値がＴＣＮＴ３にロードされてカウント動作を開始する。このレジスタＴＤＤＲの８ビット単位でのアクセスは禁止され、常に１６ビット単位でアクセスされる。
【０１０５】
ＰＷＭキャリア周期レジスタＴＣＤＲは１６ビットのレジスタであり、チャンネル３に１本設けられている。このレジスタＴＣＤＲは、相補ＰＷＭモード時のみ有効なレジスタであり、相補ＰＷＭモード時にＴＣＮＴ４にセットされている値と常時比較され、一致するとＴＣＮＴ３，ＴＣＮＴ４はダウンカウントに切り替わる。三角波を生成する場合は、ＴＣＤＲに１／２ＰＷＭ周期を設定する。このレジスタＴＣＤＲは、ＣＰＵによりライトすることは出来ない。このレジスタＴＣＤＲのバッファレジスタであるＴＣＢＲに値を設定すると、相補ＰＷＭモード設定時に選択した転送タイミングで転送される。
【０１０６】
ＰＷＭキャリア周期バッファレジスタＴＣＢＲは１６ビットのレジスタであり、チャンネル３に１本設けられている。このレジスタＴＣＤＲは、相補ＰＷＭモード時のみ有効なレジスタであり、相補ＰＷＭモード時にＴＣＤＲのバッファレジスタとして機能する。このレジスタＴＣＢＲに値を設定すると、相補ＰＷＭモード設定時に選択した転送タイミングでＴＤＣＲに転送される。
【０１０７】
上記のタイマにおける動作概略は、次の通りである。
（１）通常動作
各チャンネル０〜４には、タイマカウンタＴＣＮＴとジェネラルレジスタＴＧＲが設けられている。タイマカウンタＴＣＮＴは、アップ／ダウンカウント動作を行い、フリーランニング動作、周期カウント動作、又は外部イベントカウント動作が可能である。ジェネラルレジスタＴＧＲは、それぞれインプットキャプチャレジスタ又はアウトプットコンペアレジスタとして使用することができる。
【０１０８】
（２）同期動作
同期動作を設定したチャンネルのタイマカウンタＴＣＮＴは、同期プリセット動作を行う。すなわち、同期動作に設定されたチャンネルのうち任意のＴＣＮＴを書き換えると他のチャンネルのＴＣＮＴも同時に書き換えられる。また、同期動作に設定された複数のチャンネルのＴＳＹＲのタイマ同期ビットの設定により、ＴＣＮＴの同期クリアが可能である。
【０１０９】
（３）バッファ動作
ジェネラルレジスタＴＧＲＡとＴＧＲＣ、ＴＧＲＢとＴＧＲＤの組み合わせでバッファ動作をさせることができる。ＴＧＲＣがＴＧＲＡのバッファレジスタとして機能し、ＴＧＲＤがＴＧＲＢのバッファレジスタとして機能する。
【０１１０】
（４）カスケード接続機能
チャンネル１のタイマカウンタＴＣＮＴ１とチャンネル２のタイマカウンタＴＣＮＴ２を接続して３２ビットカウンタとして動作させることができる。
【０１１１】
（５）ＰＷＭモード
ＰＷＭ波形を出力するモードであり、出力レベルはＴＩＯＲにより設定される。各ジェネラルレジスタＴＧＲの設定により、デューティ０％〜１００％のＰＷＭ波形が出力できる。
【０１１２】
（６）位相計数モード
チャンネル１と２で外部クロック入力端子から入力される２つのクロックの位相を検出して、ＴＣＮＴのアップ／ダウンさせるモードである。位相計数モードに設定すると、対応するＴＣＬＫ端子はクロック入力となり、またＴＣＮＴはアップ／ダウンカウント動作を行い、２相エンコーダパルスの入力として使用できる。
【０１１３】
（７）リセット同期ＰＷＭモード
チャンネル３と４を組み合わせて、正相・逆相のＰＷＭ波形を３相出力する。３相のＰＷＭ波形は、一方の変化点が共通となる関係になる。リセット同期ＰＷＭモードに設定すると、ジェネラルレジスタＴＧＲ３Ａ，ＴＧＲ３Ｂ，ＴＧＲ４Ａ，ＴＧＲ４Ｂは自動的にアウトプットコンペアレジスタとして機能する。また、ＴＩＯＣ３Ａ，ＴＩＯＣ３Ｂ，ＴＩＯＣ４Ａ，ＴＩＯＣ４Ｂ，ＴＩＯＤ４Ｃ，ＴＩＯＣ４Ｄの各端子は、自動的にＰＷＭ出力端子となり、ＴＣＮＴ３はアップカウント動作を行い、ＴＣＮＴ４は独立に動作する。ただし、ＴＧＲ４Ａ〜Ｂとは切り離されている。
【０１１４】
（８）相補ＰＷＭモード
チャンネル３と４を組み合わせて、正相・逆相がノンオーバーラップの関係にあるＰＷＭ波形を３相出力する。相補ＰＷＭモードに設定すると、ジェネラルレジスタＴＧＲ３Ａ，ＴＧＲ３Ｂ，ＴＧＲ４Ａ，ＴＧＲ４Ｂは自動的にアウトプットコンペアレジスタとして機能する。また、ＴＩＯＣ３Ａ，ＴＩＯＣ３Ｂ，ＴＩＯＣ４Ａ，ＴＩＯＣ４Ｂ，ＴＩＯＤ４Ｃ，ＴＩＯＣ４Ｄの各端子は、自動的にＰＷＭ出力端子となり、ＴＣＮＴ３とＴＣＮＴ４はアップ／ダウンカウント動作を行う。
【０１１５】
上記バッファ動作は、ジェネラルレジスタＴＧＲＡ〜ＴＧＲＤまで４本あるチャンネル０、３、４が持つ機能である。バッファ動作は、インプットキャプチャ機能時、コンペア機能時のそれぞれで動作内容が異なる。バッファ動作時のレジスタの組み合わせは前記の通りである。
【０１１６】
図４には、ジェラルレジスタがアウトプットコンペアレジスタの場合のバッファ動作構成図が示されている。ジェネラルレジスタとＴＣＮＴが比較器により比較され、コンペアマッチが発生すると、信号転送路としてのバッファ回路が活性化されて当該チャンネルのバッファレジスタの値がジェネラルレジスタに転送される。
【０１１７】
図５には、ジェラルレジスタがインプットキャプチャレジスタの場合のバッファ動作構成図が示されている。インプットキャプチャ信号によりバッファ回路が活性化されて、カウンタＴＣＮＴの値をジェネラルレジスタに転送すると同時に、それまで格納されていたジェネラルレジスタの値がバッファレジスタに転送される。
【０１１８】
図６には、バッファ動作の設定手順を説明するためのフローチャート図が示されている。ジェネラルレジスタの機能をタイマＩ／ＯコントロールレジスタＴＩＯＲに設定する。次に、ＴＦＣＲのバッファ動作ビットを設定し、ＴＳＴＲのＣＳＴビットを設定してカウント動作を開始させる。
【０１１９】
図７には、バッファ動作の一例を説明するためのタイミング図が示されている。同図においては、チャンネル０をＰＷＭモードに設定し、ジェネラルレジスタＴＧＲ０ＡとＴＧＲ０Ｃをバッファ動作に設定した場合が示されている。同図においては、ＴＣＮＴはコンペアマッチＢ（ＴＧＲ０Ｂの値）によりクリアされ、出力はコンペアマッチＡ（ＴＧＲ０Ａの値）で１出力、コンペアマッチＢで０出力するようにされる。上記のようなバッファ動作が設定されていると、コンペアマッチＡが発生すると、出力を１に変化させると同時にバッファレジスタＴＧＲ０Ｃの値（Ｂ’０２００）がジェネラルレジスタＴＧＲ０Ａに転送される。この動作は、上記コンペアマッチＡが発生する度に繰り返して行われる。
【０１２０】
図８には、バッファ動作の他の一例を説明するためのタイミング図が示されている。同図においては、ジェネラルレジスタＴＧＲＡをインプットキャプチャレジスタに設定し、かかるＴＧＲＡとＴＧＲＣをバッファ動作に設定した場合が示されている。同図におては、ＴＣＮＴはＴＧＲＡのインプットキャプチャでカウンタクリア、ＴＩＯＣＡ端子のインプットキャプチャ入力エッジは立ち上がりエッジ／立ち下がりエッジの両エッジが選択されている。上記のようなバッファ動作が設定されているため、インプットキャプチャＡによりＴＣＮＴの値がＴＧＲＡに格納される同時に、それまでＴＧＲＡに格納されていた値がＴＧＲＣに転送される。
【０１２１】
図９には、カスケード接続機能の設定手順を説明するためのフローチャート図が示されている。タイマ動作モード設定では、各チャンネルの動作モードを設定する。次に、カスケード接続設定はＴＣＲのタイマプリスケーラビットを設定することにより行われる。そして、ＴＳＴＲのＣＳＴビットを設定してカウント動作を開始させる。
【０１２２】
図１０には、カスケード接続動作の一例を説明するためのタイミング図が示されている。同図では、通常動作モード（ＴＧＲはコンペアマッチレジスタに設定）時で、チャンネル１はＴＣＮＴ２のオーバーフローでカウント動作し、チャンネル２は内部クロックφ／１６の両エッジをカウントするような動作を行う。つまり、ＴＣＮＴ２クロックの立ち下がりでタイマカウンタＴＣＮＴ２はＢ’ＦＦＦＦ→Ｂ’００００になり、ＴＣＮＴ１クロックを発生させる。これにより、タイマカウンタＴＣＮＴ１はＢ’０００１→Ｂ’０００２に変化する。レジスタＴＧＲ１ＡにＢ’０００１が格納されているので、コンペアマッチ信号が発生される。
【０１２３】
図１１には、カスケード接続動作の他の一例を説明するためのタイミング図が示されている。同図では、通常動作モード（ＴＧＲはキャプチャレジスタに設定）時で、チャンネル１はＴＣＮＴ２のオーバーフローでカウント動作し、チャンネル２は内部クロックφ／１６の両エッジをカウントするような動作を行う。つまり、ＴＣＮＴ２クロックの立ち下がりでタイマカウンタＴＣＮＴ２はＢ’ＦＦＦＦ→Ｂ’００００になり、ＴＣＮＴ１クロックを発生させる。これにより、タイマカウンタＴＣＮＴ１はＢ’０３Ａ１→Ｂ’０３Ａ２に変化する。キャプチャ入力ＴＩＯＣＡ１とＴＩＯＣ２Ａが入力されると、レジスタＴＧＲ１ＡにはＴＣＮＴ１の計数値Ｂ’０３Ａ２が格納され、レジスタＴＧＲ２ＡにＴＣＮＴ２の計数値Ｂ’０００１が格納される。
【０１２４】
図１２には、カスケード接続動作の更に他の一例を説明するためのタイミング図が示されている。同図では、位相計数モード時で、チャンネル１は通常モード／ＴＣＮＴ２のオーバーフロー／アンダーフローでカウント動作し、チャンネル２は位相計数モード／ＴＣＬＫＡ，ＴＣＬＫＢに入力される外部クロックの位相差でアップ／ダンウカウントを行う。つまり、ＴＣＮＴ２はＴＣＬＫＡの位相が進んでいるときには、Ｂ’ＦＦＦＤ→Ｂ’ＦＦＦＥ→Ｂ’ＦＦＦＦ→Ｂ’００００のようなアップ計数動作を行い、このオーバーフローによりＴＣＮＴ１はＢ’００００→Ｂ’０００１のアップ計数動作を行う。そして、その計数値がＢ’０００２になったときに、ＴＣＮＴ２はＴＣＬＫＡの位相が遅れると、Ｂ’０００２→Ｂ’０００１→Ｂ’００００→Ｂ’ＦＦＦＦのようなダウン計数動作を行い、このアンダーフローによりＴＣＮＴ１はＢ’０００１→Ｂ’００００のようなダウン計数動作を行う。このようなカスケード接続により、位相計数モードのダイナミックレンジを広げることができる。
【０１２５】
ＰＷＭモードは出力端子よりそれぞれＰＷＭ波形出力を出力する。カウンタのクリア又はオーバーフローによって各端子の出力値はＴＯＩＲで指定した初期値が出力される。各レジスタのコンペアマッチによるレベルは０出力、１出力、トグル出力のなかから選択できる。初期値とコンペアマッチとの出力レベルを同じにすると、出力レベルが変化しないためにＰＷＭ波形出力にはならない。ＴＧＲのコンペアマッチをＴＣＮＴのカウンタクリア要因とすることにより、そのレジスタに周期を設定することができる。ＰＷＭモードでは、デューティ０〜１００％のＰＷＭ波形を出力することができる。全チャンネル独立にＰＷＭモードに設定でき、同期動作も可能である。ＰＷＭモード１は、ＴＧＲＡとＴＧＲＢと、ＴＧＲＣとＴＧＲＤをペアで使用してＰＷＭ波形を生成し、最大８本のＰＷＭ波形出力が可能である。ＰＷＭモード２は、ＴＧＲの１本を専用周期レジスタとし、他をＰＷＭ出力に使用する。同期動作と併用することにより最大１５相補のＰＷＭ波形出力が可能となる。
【０１２６】
図１３には、ＰＷＭモードの設定手順を説明するためのフローチャート図が示されている。第１に、ＴＣＲのＴＰＳＣ２〜０ビットを設定してカウンタクロックの選択を行う。第２に、上記ＴＣＲのＣＣＬＲ１，ＣＣＬＲ０ビットを設定してカウンタクリア要因の選択を行う。第３に、ＴＩＯＲを設定して波形出力レベルの選択を行う。第４に、ＴＧＲＡに時間データを設定する。第５に、ＴＧＲＢの時間データを設定する。第６に、ＴＰＭＲのＰＷＭモードビットを設定する。第７に、ＴＳＴＲのＣＳＴビットを設定してカウント動作を開始させる。
【０１２７】
図１４には、ＰＷＭモードの動作を説明するための動作波形図が示されている。ＰＷＭモードに設定すると、ＴＩＯＣＡ〜ＴＩＯＣＤ端子は出力端子となり、ＴＧＲのコンペアマッチにより指定した波形出力を行う。同図においては、ＴＣＮＴのカウンタクリア要因をＴＧＲＡのコンペアマッチとし、ＴＧＲＢの初期値を０、コンペアマッチで１出力とした場合が示されている。この場合には、ＴＧＲＡに設定した値が周期となり、ＴＧＲＢに設定した値がデューティになる。
【０１２８】
図１５と図１６には、ＰＷＭモードの他の動作を説明するための動作波形図が示されている。図１５（Ａ）では、ＴＣＮＴのカウンタクリア要因をＴＧＲＡのコンペアマッチとし、ＴＧＲＢの初期値を０、コンペアマッチで１出力とした場合が示されている。この場合においては、ＴＧＲＡに設定した値が周期となり、ＴＧＲＢに設定した値がデューティになり、このＴＧＲＢの書き換えによりＴＧＲＡ＜ＴＧＲＢにするとデュティ０％の出力が得られる。図１５（Ｂ）では、上記ＴＧＲＢの書き換えによりＴＧＲＡとＴＧＲＢのコンペアマッチが同時に発生すると出力が変化しない。そのため、ＴＧＲＢ＜ＴＧＲＡのように書き換えてもデューティ１００％が出力される。図１６では、ＴＧＲＢの書き換えによりＴＧＲＡとＴＧＲＢのコンペアマッチが同時に発生すると出力が変化しない。そのため、ＴＧＲＢ＜ＴＧＲＡのように書き換えてもデューティ１００％が出力される。そして、再度の書き換えによりＴＧＲＢ＞ＴＧＲＡのように書き換えると、デューティ１００％の次の周期はデューティ０％に変化する。
【０１２９】
位相計数モードは、２本の外部クロック入力の位相差を検出し、ＴＣＮＴをアップ／ダウンカウント動作させる。このモードはチャンネル１と２で設定可能である。位相計数モードに設定すると、ＴＣＲのＴＰＳＣビットの設定にかかわらずカウンタクロックは外部クロックをとり、ＴＣＮＴはアップ／ダウンカウンタとして動作する。ただし、ＴＩＯＲの機能は有効であり、インプットキャプチャ／コンペアマッチ機能や割り込み機能は使用することができる。この機能は２相コンコーダパルスの入力処理に使用できる。位相計数モードの設定手順は、ＴＭＤＲのＭＤ２〜０ビットを指定することにより行われる。
【０１３０】
図１７には、位相計数モードの動作の一例を説明するためのタイミング図が示されている。同図には、位相計数モード１が示されている。このモードのカウントアップ条件は、チャンネル１（２）ではＴＣＬＫＡ（ＴＣＬＫＣ）がハイレベルのときにＴＣＬＫＢ（ＴＣＬＫＤ）がハイレベルに立ち上がるとカウントアップを行う。ＴＣＬＫＡ（ＴＣＬＫＣ）がロウレベルのときにＴＣＬＫＢ（ＴＣＬＫＤ）がロウレベルに立ち下がるとカウントアップを行う。また、ＴＣＬＫＢ（ＴＣＬＫＤ）がロウレベルのときにＴＣＬＫＡ（ＴＣＬＫＣ）がハイレベルに立ち上がるとカウントアップを行う。ＴＣＬＫＢ（ＴＣＬＫＤ）がロウレベルのときにＴＣＬＫＡ（ＴＣＬＫＣ）がロウレベルに立ち下がるとカウントアップを行う。つまり、ＴＣＬＫＡ（ＴＣＬＫＣ）の位相がＴＣＬＫＢ（ＴＣＬＫＤ）に比べて進んでいるときにカウントアップ動作を行う。
【０１３１】
このモードのカウントダウン条件は、チャンネル１（２）ではＴＣＬＫＡ（ＴＣＬＫＣ）がハイレベルのときにＴＣＬＫＢ（ＴＣＬＫＤ）がロウレベルに立ち下がるとカウントダウンを行う。ＴＣＬＫＡ（ＴＣＬＫＣ）がロウレベルのときにＴＣＬＫＢ（ＴＣＬＫＤ）がハイレベルに立ち上がるとカウントアップを行う。また、ＴＣＬＫＢ（ＴＣＬＫＤ）がハイレベルのときにＴＣＬＫＡ（ＴＣＬＫＣ）がハイレベルに立ち上がるとカウントダウンを行う。ＴＣＬＫＢ（ＴＣＬＫＤ）がロウレベルのときにＴＣＬＫＡ（ＴＣＬＫＣ）がロウレベルに立ち下がるとカウントダウンを行う。つまり、ＴＣＬＫＡ（ＴＣＬＫＣ）の位相がＴＣＬＫＢ（ＴＣＬＫＤ）に比べて遅れているときにカウントダウン動作を行う。
【０１３２】
図示しないけれども、位相計数モード２では、チャンネル１（２）のＴＣＬＫＢ（ＴＣＬＫＢ）がハイレベルのときにＴＣＬＫＡ（ＴＣＬＫＣ）がロウレベルに立ち下がるときにカウントアップを行い、ＴＣＬＫＢ（ＴＣＬＫＢ）がロウレベルのときにＴＣＬＫＡ（ＴＣＬＫＣ）がロウレベルに立ち下がるときにカウントダウンを行う。
【０１３３】
位相計数モード３では、チャンネル１（２）のＴＣＬＫＡ（ＴＣＬＫＣ）がハイレベルのときにＴＣＬＫＢ（ＴＣＬＫＤ）がハイレベルに立ち上がるとき、又はＴＣＬＫＡ（ＴＣＬＫＣ）がロウレベルのときにＴＣＬＫＢ（ＴＣＬＫＤ）がロウレベルに立ち下がるときカウントアップを行い、ＴＣＬＫＡ（ＴＣＬＫＣ）がハイレベルのときにＴＣＬＫＢ（ＴＣＬＫＤ）がロウレベルに立ち下がるとき、又はＴＣＬＫＡ（ＴＣＬＫＣ）がロウレベルのときにＴＣＬＫＢ（ＴＣＬＫＤ）がハイレベルに立ち上がるときカウントダウンを行う。
【０１３４】
位相計数モード４では、チャンネル１（２）のＴＣＬＫＢ（ＴＣＬＫＤ）がハイレベルのときにＴＣＬＫＡ（ＴＣＬＫＣ）がロウレベルに立ち下がるときにカウントアップを行い、ＴＣＬＫＡ（ＴＣＬＫＣ）がハイレベルのときにＴＣＬＫＢ（ＴＣＬＫＤ）がロウレベルに立ち下がるときにカウントダウンを行う。
【０１３５】
リセット同期ＰＷＭモードは、チャンネル３と４を組み合わせることにより、一方の波形変化点が共通の関係となるＰＷＭ波形（正相・逆相）を３相出力する。リセット同期モードに設定すると、ＴＩＯＣ３Ａ，ＴＩＯＣ３Ｂ，ＴＩＯＣ４Ａ，ＴＩＯＣ４Ｃ，ＴＩＯＣ４Ｂ及びＴＩＯＶ４Ｄ端子は自動的にＰＷＭ端子となり、タイマカウンタＴＣＮＴ３はアップカウンタとして機能する。
【０１３６】
図１８には、リセット同期ＰＷＭモードの設定手順を説明するためのフローチャート図が示されている。リセット同期ＰＷＭモードの設定手順は、次の通りである。第１に、レジスタＴＳＴＲのＳＴＲビットを０にクリアしてカウント動作を停止させる。第２に、レジスタＴＣＲのＴＰＳＣ２〜０ビットを設定して、カウンタクロックの選択を行う。第３に、上記レジスタＴＣＲのＣＣＬＲ１，ＣＣＬＲ０ビットを設定して、カウンタクリア要因の選択を行う。第４に、レジスタＴＭＤＲをリセット同期ＰＷＭモードに設定する。第５に、カウンタＴＣＮＴ３にＢ’００００をライトしてカウンタの設定を行う。第６に、レジスタＴＧＲ３Ａに周期を設定し、ＴＧＲ３Ｂ，ＴＧＲ４Ａ，ＴＧＲ４ＢにＰＷＭ出力波形変化タイミングを設定する。そして、第７に、レジスタＴＳＴＲのＣＳＴ３ビットを１にセットしてカウント動作を開始させる。
【０１３７】
図１９には、リセット同期ＰＷＭモードの動作を説明するためのタイミング図が示されている。リセット同期ＰＷＭモードでは、カウンタＴＣＮＴ３はアップカウンタとして動作する。このとき、カウンタＴＣＮＴ４は独立動作する。カウンタＴＣＮＴ３の計数値がレジスタＴＧＲ３Ａの値とコンペアマッチするとカウンタＴＣＮＴ３はクリアされてＢ’００００からカウントアップを再開する。ＰＷＭ端子は、それぞれレジスタＴＧＲ３Ｂ，ＴＧＲ４Ａ，ＴＧＲ４ＢとカウンタＴＣＮＴ３とのコンペアマッチ及びカウンタクリアが発生する度に、トグル出力を行う。前記ＴＧＣＲを用いて、各ＰＷＭ出力端子からのパルス出力を許可したり、固定出力としたりすることができる。
【０１３８】
相補ＰＷＭモードは、チャンネル３と４を組み合わせることにより、正相と逆相がノンオーバーラップの関係にあるＰＷＭ波形を３相出力する。相補ＰＷＭモードに設定すると、ＴＩＯＣ３Ｂ，ＴＩＯＣ３Ｄ，ＴＩＯＣ４Ａ，ＴＩＯＣ４Ｂ，ＴＩＯＣ４Ｃ，ＴＩＯＣ４Ｄ端子は、自動的にＰＷＭ出力端子となり、ＴＩＯＣ３Ａ端子は、ＰＷＭ周期に同期したトグル出力、ＴＩＯＣ３Ｂ端子はＰＷＭ出力を遮断するための外部トリガ入力端子として設定することが可能である。また、カウンタＴＣＮＴ３，ＴＣＮＴ４は、アップ／ダウンカウンタとして機能するものである。
【０１３９】
図２０には、相補ＰＷＭモードの設定手順を説明するためのフローチャート図が示されている。相補ＰＷＭモードの設定手順は、次の通りである。第１に、レジスタＴＭＤＲに対して相補ＰＷＭモードの設定を行う。第２に、レジスタＴＯＣＲの外部トリガイネーブルビットを設定して、外部入力による出力遮断の許可／禁止の設定を行う。第３に、上記レジスタＴＯＣＲのＰＷＭ同期出力２，１ビットを設定して、ＰＷＭ周期に同期したトグル出力の許可／禁止の設定を行う。第４に、上記レジスタＴＯＣＲの出力レベルセレクト４，３ビットを設定して、ＰＷＭ出力レベルの設定を行う。第５に、各ジェネラルレジスタＴＧＲ、各バッファレジスタにデータを設定し、デユーティの初期値設定を行う。第６に、レジスタＴＣＤＲ，ＴＤＤＲ，ＴＧＲ３Ａ，ＴＧＲ３Ｃにデータを設定し、デッドタイム，キャリア周期を設定する。そして、第７に、レジスタＴＳＴＲのＣＳＴビットを設定して、カウント動作を開始させる。
【０１４０】
図２１には、相補ＰＷＭモードの動作を説明するための波形図が示されている。タイマモードレジスタＴＭＤＲのモード３〜０を設定することにより、チャンネル３，４を相補ＰＷＭモードに設定する。タイマアウトプットコントロールレジスタＴＯＣＲの出力レベルセレクト４，３を設定してＰＷＭパルスのアクティブレベルを選択し、出力は各カウンタＴＣＮＴ３，４とレジスタＴＧＲが一致することによるレベル出力である。タイマデッドタイムレジスタＴＤＤＲにデッドタイムを設定し、タイマ周期データレジスタＴＤＣＲにキャリア周期の１／２を、ＴＧＲ３Ａにキャリア周期の１／２にデッドタイム分を加えて値を設定する。そして、出力するＰＷＭデューティ値をレジスタＴＧＲ３Ｂ，ＴＧＲ４Ａ，ＴＧＲ４Ｂのデューティレジスタに設定する。そして、タイマスタートレジスタＴＳＴＲをセットして、ＴＣＮＴ３，４のカウント動作をスタートさせる。
【０１４１】
図２１において、Ｔａの期間では、カウンタＴＣＮＴ３，ＴＣＮＴ４の２つのカウンタとの比較を行う。Ｔｂ期間では、カウンタＴＣＮＴ３，ＴＣＮＴ４及びＴＣＮＴＳの３つのカウンタとの比較を行う。同図において、アップカウント時にレジスタＴＧＲ４ＡがカウンタＴＣＮＴ３とコンペアマッチを起こすと正相に０を出力し、カウンタＴＣＮＴ４とコンペアマッチを起こすと逆相に１を出力する。ダウンカウント時にレジスタＴＧＲ４ＡがカウンタＴＣＮＴ４とコンペアマッチを起こすと逆相に０を出力し、カウンタＴＣＮＴ３とコンペアマッチを起こすと正相に１を出力する。このとき、Ｔｂ期間では、いままでのＴＧＲ４Ａのデータ（旧値）と次周期の新しいデューティとを同時に比較し、サブカウンタＴＣＮＴＳによってデッドタイムを保ちながらデューティを切り換えるようにする。つまり、新しいデューティがＴＤＤＲ以下の値に設定されると、ＴＧＲ４Ａの新値とサブカウンタＴＣＴＮＳとのコンペアマッチにより正相に０を出力する。また、ＴＧＲ４Ａの新値とＴＣＮＴ４とのコンペアマッチにより逆相に１を出力す。
【０１４２】
図２２には、上記相補ＰＷＭモードにおける０％と１００％の出力例を説明するための波形図が示されている。この発明の相補ＰＷＭモードにおいては、デューティ０％と１００％を出力することができる。同図には、０％と１００％出力時の波形とそのときのレジスタ設定値が示されている。デューティ１００％を出力する場合は、ジェネラルレジスタＴＧＲ４ＡにＴＧＲ３Ａと同じ値を設定することにより出力することが可能である。また、デューティ０％を出力する場合は、ジェネラルレジスタＴＧＲ４ＡにＢ’００００を設定することにより出力することが可能である。同図に示すように、デューティ１００％からデューティ０％に変化させた場合は、デッドタイム分だけハイレベルの期間が短くなる。
【０１４３】
図２３には、上記相補ＰＷＭモードにおけるトグル出力機能を説明するための波形図が示されている。この発明に係る相補ＰＷＭモードにおいては、アウトプットコントロールレジスタＴＯＣＲのＰＳＹＮ１，ＰＳＹＮ０ビットを設定することにより、キャリア周期に同期したトグル出力が可能である。このときＴＩＯＣ３Ａ端子は自動的にこの同期出力端子になり、同図のような出力波形を得ることができる。つまり、同期出力の初期値は１出力である。また、この出力はＰＷＭ出力の外部遮断信号入力のトリガによって、そのときの出力レベルを保持するか、カウンタＴＣＮＴ３，４を停止するまで同期出力を続けるかを選択することが可能である。
【０１４４】
図２４には、上記相補ＰＷＭモードにおけるＰＷＭデューティデータ転送タイミングを説明するための波形図が示されている。この発明に係る相補ＰＷＭモードにおいては、タイマモードレジスタＴＭＤＲでモードを選択するときに、バッファレジスタからジェネラルレジスタに転送するタイミングを設定する。同図には、１／２ＰＷＭ周期毎にデータを転送する場合の動作例を示す。バッファレジスタからテンポラリレジスタ（Ｔemp  Ｒ）への転送は、サブカウンタＴＣＮＴＳが動作していない期間は常時行われる。また、テンポラリレジスタからジェネラルレジスタへの転送は、この場合ＴＣＤＲとＴＣＮＴ３がダウンカウント時にコンペアマッチを発生するタイミング、及びデッドタイムレジスタＴＤＤＲとＴＣＮＴ４がアップカウント時にコンペアマッチ発生するタイミングの２つのタイミングで行われる。このため、バッファレジスタの書き換えが１／２周期に１回も行われなかった場合、ジェネラルレジスタの値は同図の（１）のように１ＰＷＭ周期の間変化しない。また、バッファレジスタを１／２ＰＷＭ周期の間に２回書き換えた場合は、（２）のようにデータdata5 が抜けるものとなる。
【０１４５】
相補ＰＷＭモードでは、タイマアウトプットコントロールレジスタＴＯＣＲの外部トリガデイスエーブルビットをクリアすることにより、指定したトリガが入力されると、ＰＷＭ出力からタイマ出力遮断レジスタＴＯＳＲの値に出力値が自動的に切り替わる。外部トリガはＴＩＯＣ３Ｃ端子に入力し、キャプチャ入力と同じようにエッジを指定することが可能である。
【０１４６】
図２５ないし図２７には、上記相補ＰＷＭモードにおける１００％から０％までのそれぞれ出力例を説明するための波形図が示されている。図２４の通り、ＴＧＲへの書替えは一定のタイミングで行われるが、ここでは説明の簡略化のため、実際のコンペアマッチに用いられるコンペア値をＴＧＲとして示している。図２５（Ａ）には、デューティを設定するレジスタＴＧＲにＴＧＲ３Ａと同じ値を設定することによりデューティ１００％を出力する例が示されている。同図（Ｂ）には、１００＜ｄｕｔｙ≦Ｔｄの範囲での出力する例が示されている。この範囲では、下側の反転出力はロウレベルのままとされる。
【０１４７】
図２６（Ａ）には、１００−Ｔｄ＜ｄｕｔｙ＜Ｔｄの範囲の例が示され、同図（Ｂ）には、Ｔｄ＜ｄｕｔｙ＜０の範囲の例が示されている。そして、図２７にはデューティを設定するレジスタＴＧＲにはＢ’００００を設定してデューティ０％を出力する例が示されている。この発明に係る相補ＰＷＭモードでは、デューティ５０％を中心にして、正相／逆相の上下が対称的となる相補ＰＷＭ出力を得ることができる。
【０１４８】
図２８には、アップダウンコントロール部の一実施例のブロック図が示されている。同図の上の部分がアップダウンコントール部であり、図２のコントロールロジックに含まれる。同図の下の部分が相補ＰＷＭの実行部である。アップダウンコントロール部の基本機能は、図２９の状態遷移図及び図３０の概略波形図を参照して次に説明する。
【０１４９】
アップダウンコントロール部の基本機能は、
（１）アップダウン切り替え信号ＵＤの生成。
（２）山での新旧値設定ダブル比較期間信号ＴＡの生成。
（３）谷での新旧値設定ダブル比較期間信号ＴＢの生成。
（４）バッファ転送信号ＢＴＲの生成。
（５）サブカウンタ（ＴＣＮＴＳ）のロード信号Ｔ５ＡＣＴの生成。
（６）サブカウンタのリロード値選択信号の生成。
（７）上記を実現するため、レジスタと比較するカウンタを選択する切り替え信号ＴＳＬの生成。
（８）上記を実現するため、カウンタと比較するレジスタを選択する切り替え信号ＲＳＬの生成。
（９）１／２ＰＷＭ周期出力信号（１／２ＣＹＣ）の生成。
である。
【０１５０】
図３０の概略波形図からも分かるように、アップダウンコントロール部は上記の各信号ＵＤ，ＴＡ，ＴＢの組み合わせからＴＡ０、ＴＤ、ＴＡ１、ＴＢ０、ＴＵ及びＴＢ１の６つの状態に分類され、各々の状態で全ての信号を生成する。その状態遷移は図２９に示す通りである。
【０１５１】
（１）状態ＴＡ０のオペレーション
ＴＡ０に移ると同時にＴＢを０にリセットして谷でのダブル比較を解除させる。ＴＡ０では基本的には、ＵＤ＝１、ＴＡ＝０、ＴＢ＝０である。待つイベントはＴＣＮＴ３＝ＴＤＣＲであって、ＴＣＮＴ３とＴＣＤＲを選択する信号ＴＳＬとＲＳＬを出力する（ＴＳＬ＝０，ＲＳＬ＝０）。ＴＣＮＴ３＝ＴＣＤＲが発生すると、ＴＡを１にセットして状態ＴＤに遷移する。
【０１５２】
（２）状態ＴＤのオペレーション
ＴＤでは基本的には、ＵＤ＝１、ＴＡ＝１、ＴＢ＝０である。待つイベントはＴＣＮＴ４＝ＴＤＣＲであって、かかるＴＣＮＴ４とＴＤＣＲを選択する信号ＴＳＬとＲＳＬを出力する（ＴＳＬ＝１，ＲＳＬ＝０）。ＴＣＮＴ４＝ＴＤＣＲが発生すると、ＵＤを０にリセットしてＴＡ１に遷移する。
【０１５３】
（３）ＴＡ１のオペレーション
ＴＡ１では基本的には、ＵＤ＝０、ＴＡ＝１（山でのダブルカウント）、ＴＢ＝０である。待つイベントはＴＣＮＴ３＝ＴＤＣＲであって、かかるＴＣＮＴ３とＴＤＣＲを選択する信号ＴＳＬとＲＳＬを出力する（ＴＳＬ＝１，ＲＳＬ＝０）。ＴＣＮＴ３＝ＴＤＣＲが発生すると、オペレーションなしでＴＢ０に遷移する。
【０１５４】
（４）ＴＢ０のオペレーション
ＴＢ０に移ると同時にＴＡを０にリセットする。ＴＢ０では基本的には、ＵＤ＝０、ＴＡ＝０、ＴＢ＝０である。待つイベントはＴＣＮＴ４＝ＴＤＤＲであって、かかるＴＣＮＴ４とＴＤＤＲを選択する信号ＴＳＬとＲＳＬを出力する（ＴＳＬ＝１，ＲＳＬ＝１）。ＴＣＮＴ４＝ＴＤＤＲが発生すると、ＴＢを１にセットしてＴＵに遷移する。
【０１５５】
（５）ＴＵのオペレーション
ＴＵでは基本的には、ＵＤ＝０、ＴＡ＝０、ＴＢ＝１である。待つイベントはＴＣＮＴ３＝ＴＤＤＲでって、かかるＴＣＮＴ３とＴＤＤＲを選択する信号ＴＳＬとＲＳＬを出力する（ＴＳＬ＝０，ＲＳＬ＝１）。ＴＣＮＴ３＝ＴＤＤＲが発生すると、ＵＤを１にセットしてＴＢ１に遷移する。
【０１５６】
（６）ＴＢ１のオペレーション
ＴＢ１では基本的には、ＵＤ＝１、ＴＡ＝０、ＴＢ＝１である。待つイベントはＴＣＮＴ４＝ＴＤＤＲであって、かかるＴＣＮＴ４とＴＤＤＲを選択する信号ＴＳＬとＲＳＬを出力する（ＴＳＬ＝１，ＲＳＬ＝１）。ＴＣＮＴ４＝ＴＤＤＲが発生すると、オペレーションなしにＴＡ０に遷移する。
【０１５７】
上記ＴＡ，ＴＢのセット／リセット時のオペレーションの違いを図３１の概略波形図を参照して補足説明すると次の通りである。ＴＡ、ＴＢは新旧設定値のダブル比較期間信号である。新設定値とカウンタ値との比較は、ＴＣＮＴ３＝ＴＤＣＲ又はＴＣＮＴ４＝ＴＤＤＲが成立した直後から開始するため、ＴＡ、ＴＢのセットは次の状態に移る前に、言い換えるならば、イベントが発生した直後に行う。一方、リセットは次の状態に移った後で行う。
【０１５８】
図３２と図３３には、ＴＡ，ＴＢのセットとＵＤの切り替えタイミングを説明するための波形図が示されている。ＴＡ，ＴＢのセットとＵＤの切り替えは次の状態に移った後でステートマシンが実行するのではなく、イベントが発生した直後に行うようにされる。図３２にはカウントクロックが最高速のφの場合が示され、図３３にはカウントクロックが最低速のφ／２５６の場合が示されている。上記各場合において、デッドタイムＴｄが１であり、ｍｃｔ３，ｍｃｔ４は内部一致信号である。なお、ＣＫ１，ＣＫ２は、システムクロックφから生成したいわゆる２相ノーオーバーラップクロックである。ＴＣＫはカウンタのカウントアップクロックである。デッドタイムはＢ’０００１とした場合の例である。
【０１５９】
上記により、ＴＡ，ＴＢ，ＵＤは以下の論理式で表される。
ＴＡ＝ＴＡ０＊ｍｃｔ３＋ＴＤ＋ＴＡ１      ・・・・・・・・・・・（１）
ＴＢ＝ＴＢ０＊ｍｃｔ４＋ＴＵ＋ＴＢ１      ・・・・・・・・・・・（２）
ＵＤ＝ＴＡ０＋／ｍｃｔ４＊ＴＤ＋ｍｃｔ３＊ＴＵ＋ＴＢ１    ・・・（３）
ここで、ｍｃｔ３はＴＣＮＴ３との一致信号であり、ｍｃｔ４はＴＣＮＴ４との一致信号である。また、＊は論理積を表し、＋は論理和を表しし、／はロウレベルをアクティブレベルとするオーバーバーを表している。
【０１６０】
ステートの遷移のイベント検出は、ｎｅｘｔに介してはＣＫ２＊ＴＣＫ、ＳＴＡＴＥに関してはＣＫ１＊（ＴＣＫ↑ＣＫ２）の立ち上がりエッジで行われる。ここで、↑ＣＫ２はＣＫ２の立ち上がりエッジで１サイクル遅らせることを示している。
【０１６１】
バッファ転送信号ＢＴＲは、周期設定用レジスタ、旧設定用レジスタ、新設定用レジスタに対して、新しい設定値を書き込むための信号である。この信号ＢＴＲはタイマモードレジスタＴＭＤＲのＭＤ０〜ＭＤ３ビットの設定により、カウンタの山でバッファ転送、カウンタの谷でバッファ転送、カウンタの山谷でバッファ転送するかを選択することができる。カウンタの山谷両方でバッファ転送する方法は、倍周期書き替えということができる。
【０１６２】
図３４の概略波形図に示すように、バッファ転送信号ＢＴＲの生成は、カウンタの山で転送する場合には山のダブル比較期間が終了した直後、すなわち、ＴＢ＝０の時点で１サイクル発生する。図示しないけれども、カウンタの谷で転送する場合、ＴＡ＝０の時点で、上記倍周期書き替えの時には両方で発生する。
【０１６３】
図３５には、バッファ転送信号生成タイミングチャート図が示されている。図３４のＥＶＥＮＴとＴＣＫの論理積を半サイクル遅らせた内部信号をＢＥＶＥとし、これとＣＫ１の論理積をｅｖｅｎｔとする。ＴＡ０は山部でのダブル比較期間の開始を、ＴＢ０は谷部でのダブル比較期間の開始をみているＳＴＡＴＥである。このＳＴＡＴＥにはいると同時にＴＭＤＲの条件を参照して、谷でのバッファ転送を選択していれば所定のタイミングでｂｔｒを生成する。別の見方をすると、ＴＡ０は谷部でのダブル比較期間の終了を、ＴＢ０は山部でのダブル比較期間の終了を見ているＳＴＡＴＥである。上記ｂｔｒは、このＳＴＡＴＥでイベントが発生するとＴＭＤＲの条件にかかわらず０にリセットされる。内部信号ｅｖｅｎｔとｂｔｒの論理積によりバッファ転送信号ＢＴＲが生成される。
【０１６４】
図３６には、サブカウンタ関係信号の生成を補足説明するための概略波形図が示されている。サブカウンタＴＣＮＴＳは、山部及び谷部のダブル比較期間でのみ動作するカウンタである。そこで、サブカウンタはロード信号により書き込みを行い、それ以外の期間はカウント動作するようにしている。したがって、上記ロード信号は、ＴＡ，ＴＢの論理和の否定（Ｔ５ＡＣＴ＝／（ＴＡ＋ＴＢ）により生成される。
【０１６５】
サブカウンタのリロード値選択信号の生成は、次の通りである。サブカウンタのカウント動作開始時の初期値は山部及び谷部のダブル比較期間で異なり、リロードレジスタ１及びリロードレジスタ２に格納されている。したがって、サブカウンタの書き込みの前には２つのレジスタから１つを選択する必要がある。このリロード値選択信号にはＵＤ（又はその反転信号）を用いる。
【０１６６】
図３７には、カウンタ／レジスタ選択信号の生成を説明するための概略波形図が示されている。カウンタ選択信号ＴＤＬとレジスタ選択信号ＲＳＬは、状態の遷移によりセット／リセットされる。したがって、ＳＴＡＴＥの遷移タイミングであるＣＫ１に同期してセット／リセットされる。カウンタ選択信号ＴＳＬとレジスタ選択信号ＲＳＬは、以下の論理式により表される。
ＴＳＬ＝ＴＤ＋ＴＢ０＋ＴＢ１                ・・・・・・・・・・（４）
ＲＳＬ＝ＴＢ０＋ＴＵ＋ＴＢ１                ・・・・・・・・・・（５）
【０１６７】
１／ＰＷＭ周期出力信号１／２ＣＹＣの生成は、次の通りである。相補ＰＷＭモードでは、周期設定レジスタとカウンタＴＣＮＴ３のコンペアマッチ、すなわち、ＴＧＲ３Ａ＝ＴＣＮＴ３が発生するたびに、又はリロード値設定レジスタ（Ｂ’００００）とカウンタＴＣＮＴ４のコンペアマッチ、すなわち、ＴＣＮＴ４＝０が発生するたびに、トグル動作を繰り返す１／２ＰＷＭ周期に同期した信号を、ＴＩＯＣ３Ａから出力することができ、この出力を１／２ＣＹＣとする。相補ＰＷＭモードが設定されると、１／２ＣＹＣ＝０となる。相補ＰＷＭモード関連の設定が終了し、タイマスタートレジスタてＴＳＴＲのＳＴＲ３，ＳＴＲ４ビットを１に設定した後、最初のカウントクロックで出力は１／２ＣＹＣ＝１となり、以後上記のトグル動作を繰り返す。
【０１６８】
図３８には、この発明に係る割り込みＡ／Ｄ変換スタートトリガのタイミングチャート図が示されている。相補ＰＷＭモードでは、周期設定レジスタとカウンタＴＣＮＴ３とのコンペアマッチ、すなわち、ＴＧＲ３Ａ＝ＴＣＮＴ３と、カウンタＴＣＮＴ４のアンダーフロー、すなわち、ＴＣＴＮ４＝０により割り込みを発生することができる。割り込みの許可は、タイマインタラプトイネーブルレジスタＴＩＥＲの設定により可能とされる。
【０１６９】
相補ＰＷＭモードでは、周期設定レジスタとカウンタＴＣＮＴ３のコンペアマッチ、すなわち、ＴＧＲ３Ａ＝ＴＣＮＴ３と、カウンタＴＣＮＴ４のアンダーフロー、すなわち、ＴＣＮＴ４＝０によりＡ／Ｄ変換スタートトリガを発生することができる。このＡ／Ｄ変換スタートトリガの許可は、上記タイマインタラプトイネーブルレジスタＴＩＥＲのＴＴＥＧビットの設定により可能とされる。
【０１７０】
比較器は随時比較を行っているため、選択されているカウンタ及びレジスタが初期値の状態でも一致信号を出力する。アップダウンコントロール部では、この一致信号をＥＶＥＮＴ信号として使用しているため、初期状態の一致信号で状態が遷移してしまうと正しく動作しなくなる。そこで、一致信号は、タイマースタートレジスタＴＳＴＲのＳＴＲ３，ＳＴＲ４ビットが１でカウント動作しているときのみ有効とする必要がある。すなわち、次式（６）のように内部一致信号とスタートビットの論理積をとり、ＥＶＥＮＴ信号とするものである。
ＥＶＥＮＴ＝ＳＴＲ３＊ｍｔｃ３＋ＳＴＲ４＊ｍｔｃ４    ・・・・・（６）
【０１７１】
図３９には、上記相補ＰＷＭ制御を説明するための構成図が示されている。この発明に係る相補ＰＷＭ制御の基本的な考え方は、デッドタイムを保証するため、同一カウント方向の２つの平行線を一対として扱い、トグル型ではなくセット／リセット型で出力波形を生成するものである。
【０１７２】
（1)ＤＯＷＮカウント時においては、設定値とＴＣＮＴ３の一致で正相をオンにし、設定値とＴＣＮＴ４の一致で逆相をオフにする。
（２）ＵＰカウント時においては、設定値とＴＣＮＴ４の一致で正相をオフにし、設定値とＴＣＮＴ３の一致で逆相をオンにする。
【０１７３】
ここで、点ｘの値は、ＴＣＮＴ４とＴＧＲ３Ａとの差をｌとすると、次の式（７）〜（１０）で求めることができる。
ｌ＝ＴＧＲ３Ａ−ＴＣＮＴ４                      ・・・・・・・・（７）
ｘ＝ＴＧＲ３Ａ＋ｌ
＝２＊ＴＧＲ３Ａ−ＴＣＮＴ４                  ・・・・・・・・（８）
ｙ＝ｘ
＝２＊ＴＧＲ３Ａ−ＴＣＮＴ４                  ・・・・・・・・（９）
ＴＣＮＴ４＝２＊ＴＧＲ３Ａ−ｙ                  ・・・・・・・（１０）
【０１７４】
したがって、上記の式で処理するとカウンタの更新時に再計算するのではなく設定値ｙを書き換えたときに限り計算処理を実行し、その結果をレジスタに記憶することで相補ＰＷＭ出力が可能となる。谷の部分でも同様に扱うようにする。この定数計算処理は、新旧両方で比較が不要な期間Ｔｘで空いている比較器を利用して実行する。
【０１７５】
例えば、前記平成５年３月（株）日立製作所発行「Ｈ８／３００３ハードウェアマニュアル」記載のタイマのように、従来では、欠如していた前記サブカウンタＴＣＮＴＳでカウントしていた部分を上記のように計算処理で求め、さらに原理的に１つのサイクルが−Ｔｄ−（Ｔｃ／２）〜＋Ｔｄ＋（Ｔｃ／２）の期間であることから、従来の１サイクルＴｃのほかに２＊Ｔｄの期間だけ新旧両方の値でカウント値と比較し、一致検出を行うことが特徴である。
【０１７６】
図４０には、上記のような計算方式に対応したアップダウンコントロール部のブロック図が示されている。上記のような計算方式による制御においては、従来のタイマに対して、次のようなハードウェアソースが新たに必要となる。
【０１７７】
（１）加減算機能付比較器ＡＵ＆ＣＭＰ
この加減算機能付比較器ＡＵ＆ＣＭＰは、期間ＴａとＴｂで新旧両方の設定値をそれぞれのカウント値と比較し、さらにカウンタの存在しない部分の値を計算処理するために必要となる。
（２）テンポラリレジスタＴＥＭＰ
新旧両方でそれぞれのカウンタ値と比較するため、その期間ＴａとＴｂだけユーザーレジスタ書き換え禁止期間が発生する。この書き換え禁止期間を回避するためバッファレジスタの値を一時的に記憶するテンポラリレジスタＴＥＭＰが設けられる。
（３）ジェネラルレジスタＴＧＲ＃、ＴＢＲ＃
上記期間Ｔａ，Ｔｂで比較するＴＧＲの計算値とＴＢＲの計算値を一時的に記憶するためのものである。
（４）選択器ＭＵＸ
上記の期間ＴａとＴｂで比較動作及び計算処理を実行するためにそれぞれのレジスタ値を適宜選択するものである。
【０１７８】
図４０に示した前記の方式では、計算処理を行うために演算器やテンポラリレジスタが必要であった。そこで、図２〜図３８で説明した通り、計算処理を行わずに相補ＰＷＭを実現し、論理規模を小さくすることもできる。つまり、図４１のブロック図に示すように、山、谷のＶ字型部をカウントする専用のカウンタＴＣＮＴＳを設ける。こらにこのカウンタＴＣＮＴＳを利用することで、図４０演算器やテンポリレジスタを削減することができる。さらに、このカウンタＴＣＮＴＳを別のチャンネルとして用いるようにしてもよい。
【０１７９】
前述の通り、この発明に係る相補ＰＷＭモードでは、一定の期間（デッドタイム）間隔を持つ、２本のアップカウントと、２本のダウンカウントを行うことが必要である。このカウンタ動作の具体的な実現方法は、種々変更可能である。例えば、４本のカウンタ、すなわち、２本のアップカウンタと２本のダウンカウンタで構成することもできる。また、上記実施例のような３本のアップダウンカウンタで構成することもでき、あるいは計算で求めることもできる。
【０１８０】
カウンタの動作範囲も下限値を０とする必要はない。例えば、デューティ５０％の上下対称軸を０としてもよい。更に、比較器の構成なども種々変更が可能である。１本の比較レジスタは、全てのカウンタと比較を行うものであるので、カウンタに対応する本数の比較器を持てばよい。初期設定時にＴＣＮＴ３にデッドタイムを、ＴＣＮＴ４にＢ’００００を書くようにするとよい。待機時（ＣＳＴ＝０）にＴＣＮＴ３の値をＴＤＤＲに転送するようにすれば、ＴＤＤＲを独立に設定する必要がない。
【０１８１】
図４２には、この発明にかかるタイマＢの相補ＰＷＭモードとデータトランスファコントローラ（データ転送装置）ＤＴＣの動作の一例を説明するためのアドレスマップ図が示され、図４３にはその動作タイミング図が示されている。
【０１８２】
相補ＰＷＭモード１の場合、タイマＢのコンペアマッチＴＧＲ３Ａ（山）割り込みによって、データトランスファコントローラＤＴＣを起動する。上記ＤＴＣによって、ＲＡＭ上のコンペア値をバッファレジスタ（ＴＧＲ３Ｄ，ＴＧＲ４Ｃ，ＴＧＲ４Ｄ）上に転送する。かかるレジスタは、連続領域となるように配置する。かかるデータ転送は、いわゆるブロック転送モードを用いる。つまり、転送元アドレスレジスタと転送先アドレスレジスタと、ブロックサイズと、転送回数を指定することにより、１回の起動で、上記の例の場合には３ワード分の転送を行う。かかる３ワード（ＴＧＲ３Ｄ，ＴＧＲ４Ｃ，ＴＧＲ４Ｄ）は、前記の通り、連続アドレスとされ、上記のＤＴＣによって連続してライトが可能とされる。ブロック転送モードについては、前記平成５年３月（株）日立製作所発行「Ｈ８／３００３ハードウェアマニュアル」又は特願平４−１３７９５４号に記載されている。
【０１８３】
上述のようにコンペアマッチＴＧＲ３Ａ割り込みが発生するとデータトランスファコントローラＤＴＣが起動される。上記ＤＴＣは、上記ＲＡＭからバッファレジスタへのブロック転送を行う。山のデッドタイム領域においては、前述の通りに、バッファレジスタからＴＲへの転送は行われない。デッドタイム領域をすぎると、ＴＲに保持した内容をＴＧＲに、ＢＲの内容をＴＲに転送する。図４３において、斜線を付した部分はコンペアに供される期間を示すものである。相補ＰＷＭモード２の場合、タイマのアンダーフロー（ＴＣＮＴ４＝０）割り込みによって、上記ＤＴＣを起動する他は、上記図４２及び図４３と同様である。また、リセット同期ＰＷＭモードも、概略図４２及び図４３と同様である。
【０１８４】
図４４には、タイマＢの相補ＰＷＭモードとデータトランスファコントローラＤＴＣの動作の他の例を説明するためのアドレスマップ図が示されている。モータを駆動するような場合、モータの駆動状態をモニタしつつ、コンペア値を設定する場合がある。かかる場合には、前記図４２のように、予めコンペア値をＲＡＭ上に設定しておくようなことはない。最新のコンペア値を所定のＲＡＭ上に配置しておき、毎回上記ＤＴＣで同じＲＡＭアドレスから、ＩＴＵのバッファレジスタに転送する。この場合、ＤＴＣの転送カウンタを１に設定しておく。割り込みが発生すると、ＲＡＭ上の１ブロックのコンペア値の転送を行い、このデータ転送が終わった時点で、中央処理装置ＣＰＵに割り込みを要求し、かかるＣＰＵにおいて次のコンペア値の準備や、ＤＴＣのレジスタの再設定を行うようにする。
【０１８５】
相補ＰＷＭモード３で、山／谷でデータを更新する場合、タイマのコンペアマッチＴＣＮＴ３＝ＴＧＲ３Ａ（山）、アンダーフローＴＣＮＴ４＝０（谷）割り込みによる例外処理ルーチンの先頭アドレス（例外処理ベクタ）も共通にしておくと便利である。中央処理装置ＣＰＵは、タイマカウンタＴＣＮＴ３，４がアップカウント状態にあるか、ダウンカウント状態にあるかを判断する必要がなく、すなわち、山でデータを更新するか、谷でデータを更新するかを判定する必要がない。最新のコンペア値をＲＡＭ上の所定のアドレスに書き込めばよい。山／谷でのデータの書き換え（倍周期書き換え）を可能にし、制御精度を向上させることができる。
【０１８６】
図４５に、タイマＢ（ＩＴＵ）のリード／ライト制御回路の一実施例のブロック図が示されている。かかるタイマのレジスタのうち、初期設定にのみ必要なレジスタの書き換えを禁止するビットとしてＣＮＴＬビットが設けられている。かかるＣＮＴＬビットが０にクリアされているとき、書き換え許可状態にされ、ＣＮＴＬビットが１にセットされていると書き換え禁止状態にされる。書き換えを禁止可能なレジスタの例としては、ＴＣＲ３，４、ＴＭＤＲ３，４、ＴＩＯＲ３Ｈ，Ｌ、ＴＩＯＲ４Ｈ，Ｌ、ＴＩＥＲ３，４、ＴＯＥＲ、ＴＯＣＲ、ＴＯＳＲ、ＴＧＣＲがある。アドレスはＢ’ＦＦＦＣ０〜ＦＦＣ９、ＦＦＣＣ〜ＦＦＣＦに配置される。ＴＳＲは除いている。タイマ全体はアドレスＢ’ＦＦ８０〜ＦＦＥＦに配置される。
【０１８７】
アドレスデコーダ回路によって、アドレスを検出する。かかるアドレスデコーダによって、アドレスＢ’ＦＦＣ０〜ＦＦＣＦを検出した信号はナンドゲートＧ１に入力される。ナンドゲートＧ１の他方の入力は、ＣＮＴＬビットとライト信号とされる。上記ナンドゲートＧ１の出力の反転が、アンドゲートＧ２に入力される。アンドゲートＧ２の出力がタイマＢ（ＩＴＵ）の選択信号とされる。すなわち、アドレスＢ’ＦＦＣ０〜ＦＦＣ９、ＦＦＣＣ〜ＦＦＣＦが選択されたとき、かつ、ＣＮＴＬビットが１にセットされており、かつ、ライト動作のときに、ナンドゲートＧ１の出力が０になり、アンドゲートＧ２の出力も０レベルになってＩＴＵの選択が禁止される。言い換えるならば、ＩＴＵに対するライト動作が禁止される。その外の条件では、ナンドゲートＧ１の出力が１になり、アドレスＢ’ＦＦ８０〜ＦＦＥＦが選択されたときに、ＩＵＴが選択されてリード／ライト動作が行われる。上記のように初期設定のみが必要な制御レジスタのライト動作を禁止することにより、誤書き込みによる誤動作を抑止することができる。
【０１８８】
図４６には、この発明が適用されたシングルチップマイクロコンピュータを用いた制御システムの一実施例の概略ブロック図が示されている。この実施例では、ＡＣインダクションサーボモータなどのモータ制御に向けられている。タイマＢ（ＩＴＵ）による相補３相のＰＷＭ出力（ＴＩＯＣ３Ｂ〔Ｕ〕、ＴＩＯＣ３Ｄ〔Ｕ＃〕、ＴＩＯＣ４Ａ〔Ｖ〕、ＴＩＯＣ４Ｃ〔Ｖ＃〕、ＴＩＯＣ４Ｂ〔Ｗ〕、ＴＩＯＣ４Ｄ〔Ｗ＃〕）を用いて、インバータ回路などのバッファ回路を介してモータを駆動している。インバータ回路の前段にバッファ回路を接続したりすることもできる。出力極性を選択できるので、バッファ回路の段数によって出力極性を選択することができる。
【０１８９】
これらの正相／逆相出力が、インバータ回路の直列に接続されたトランジスタのゲートに入力されている。前述の通り、１６ビットタイマによる相補３相のＰＷＭ出力の正相／逆相の変化点には、デッドタイムを挿入することができるから、上記インバータ回路の直列に接続されたトランジスタが同時にオン状態になり、不所望の貫通電流を発生してしまうことがない。また、正相／逆相が、両方共にオフの時間を、デッドタイムの２倍以下にしているから、上記インバータ回路の直列に接続されたトランジスタが同時にオフ状態になり、不安定な状態を不所望の長時間にわたって発生してしまうことがない。
【０１９０】
かかるインバータ回路の出力が、モータを駆動する。例えば、上記インバータ回路の出力がモータの内部で、例えばいわゆるＹ結線（又はスター結線）された固定子捲線に与えられ、２出力がハイレベル、１出力がロウレベルにされると、抵抗分割によって電源電圧の２／３が生成される。同様に、１出力がハイレベルに、２出力がロウレベルにされると、抵抗分割によって電源電圧の１／３が生成される。かかるハイレベルの期間をＰＷＭ制御することによって、出力電圧を変化させていくことができる。タイマＢ（ＩＴＵ）の相補ＰＷＭモードのカウンタの周波数を搬送波として、所望の正弦波信号などをパルス信号で近似した出力を可能にする。パルスのハイレベルの幅が、所望の正弦波信号などの振幅に対応するようにされる。
【０１９１】
インバータ回路は、電源回路・コンバータ回路・平滑回路から電圧が供給される。かかる電源回路・コンバータ回路・平滑回路の一部又は全部をインバータ回路と一体的に構成してもよい。この出力電流が所望の値以上であることを検出して、この過電流検出信号を遮断入力としてＴＩＯＣ３Ａに入力する。ＴＯＣＲのＸＴＧＤビットを０にクリアしておくことにより過電流が検出され、遮断入力が入力されると、ＴＯＳＲのＯＳ４Ｄ，ＯＳ４Ｃ，ＯＳ３Ｄ，ＯＳ４Ｂ，ＯＳ４Ａ，ＯＳ３Ｂビットで指定した内容が、それぞれＷ＃，Ｖ＃，Ｕ＃，Ｗ，Ｖ，Ｕとして出力されて、インバータモータを停止させることができる。また、ハードウェア的な出力の停止の他、ソフトウェア処理が必要であれば、上記過電流検出信号を割り込み入力ＮＭＩに入力すればよい。あるいは、インプットキャプチャＴＧＲ３Ａ割り込みを用いてもよい。遮断入力機能を使うことにより、中央処理装置ＣＰＵのソフトウェア処理によって出力値を固定するより、短い時間で出力を遮断することができる。また、電圧の低下などを検出して、上記同様な処理を行うようにすることもできる。
【０１９２】
２相のインバータ駆動電流を検出して、Ａ／Ｄ変換器のアナログ入力ＡＩＮ４，５に入力する。これらのアナログ入力は、上記タイマＢ（ＩＴＵ）のＴＣＮＴ３のコンペアマッチＡ及び／またはＴＣＮＴ４のアンダーフローによって起動され、２チャンネル同時ないし連続的にＡ／Ｄ変換する。
【０１９３】
モータに接続された２相エンコーダパルス（光学式エンコーダまたは回転エンコーダなど）を、波形整形回路を介して、１６ビットタイマチャンネル１のカウントクロック入力（ＴＣＬＫＣ，ＴＣＬＫＤ）として入力される。この場合、チャンネル１は位相計数モードで動作する。これによって、モータの位置と速度の検出を行うことができ、これに基づいてモータ制御の相切り替えを行う転流処理を行う。
【０１９４】
モータの位置検出については、上記のほかに種々の方法をとることができる。例えば、モータの誘起電圧をＡ／Ｄ変換器によって検出して、モータの磁極位置を判定して位置検出を行うことができる。また、モータのホール素子の出力３本を１６ビットタイマチャンネル０のインプットキャプチャ入力（ＴＩＯＣ０Ａ，ＴＩＯＣ０Ｂ，ＴＩＯＣ０Ｃ）に入力する。モータの磁極位置検出、回転速度を検出したりすることもできる。チャンネル０にレジスタが４本あるため、これを有効に利用することができる。
【０１９５】
速度の指令などが、上位ＣＰＵ又はマイクロコンピュータから与えられる。これは、エンコーダの出力とは別のパルス列として、１６ビットタイマチャンネル２のカウントクロック入力（ＴＣＬＫＡ，ＴＣＬＫＢ）に入力される。この場合、チャンネル２は位相計数モードで動作する。上位のＣＰＵの他に、ボリュームなどが出力するエンコーダ信号であってもよい。かかるエンコーダパルスによってアップダウンカウントされたタイマカウンタの値を速度の指令などのパラメータとして理解することができる。マイクロコンピュータは、速度指令に合致するように、回転速度検出結果に基づいてＰＷＭ出力制御を行う。
【０１９６】
ＳＣＩは、そのほかの通信を行う。例えば、パネルやＥＥＰＲＯＭなどとの通信を行う。ＥＥＰＲＯＭには固有のパラメータ情報を格納しておくことができる。あるいは、別のＣＰＵ又はマイクロコンピュータとの通信を行う。タイマＢ（ＩＴＵ）のそのほか出力（ＴＩＯＣ０Ａなど）、及びタイマＡの出力は別のドライバ回路を介して、例えばファンモータなどの、別のＤＣモータあるいはステッピングモータを駆動する。ＩＯＰ１〜３の出力は、各種スイッチやリレーなどの制御を行う。
【０１９７】
チャンネル３のコンペアマッチＴＣＮＴ３＝ＴＧＲ３Ａ及びチャンネル４のアンダーフローＴＣＮＴ４＝０によってＡ／Ｄ変換器を起動して、２相のインバータ駆動電流（Ｉ１，Ｉ２）を検出し、変換終了割り込みによって、この検出された電流値をＣＰＵが処理して、以後のチャンネル３と４のコンペア値（ＴＧＲ３Ｄ，ＴＧＲ４Ｃ，ＴＧＲ４Ｄ）の設定に反映させる。モータ内部の固定子捲線が、いわゆるＹ結線（又はスター結線）、又はΔ結線されている場合には、電流値の総和は０になるから、３相目に流れる電流は計算−（Ｉ１＋Ｉ２）によって求めることができ、これを間接的に検出することができる。かかる電流を検出して、ＰＷＭ制御（パルス幅制御）を行うことにより、モータの出力トルクを制御することができ、例えばトルクリップルなどを低減させることができる。
【０１９８】
センサ回路の出力をＡ／Ｄ変換器のアナログ入力ＡＩＮ０〜３、６、７に入力する。センサ回路には、モータ駆動部分の温度検出や、電源回路の電圧検出、電流検出などを含むことができる。アナログ入力ＡＩＮ０〜３は、タイマＡのコンペアマッチによって起動され、例えば、グループモード・シングルモードで変換する。例えば、タイマＡのコンペアマッチを１ｍｓ間隔で発生して、一定時間間隔でセンサ情報のサンプリングを行う。また、センサ回路の動作状況を出力して、外部トリガ（ＡＤＴＲＧ）に入力する。この外部トリガによって、例えばアナログ入力ＡＩＮ６の変換が起動される。一定時間毎などにこれを検出して、所望の処理を行い、以降の相補ＰＷＭモードのコンぺア値の設定に反映させる。
【０１９９】
図４７には、この発明にかかるタイマ回路のチャンネル０とチャンネル１との接続例を説明するためのブロック図が示されている。モータに接続された２相のエンコーダパルスは、波形整形回路を介して１６ビットタイマチャンネル１のカウントクロック入力（ＴＣＬＫＣ，ＴＣＬＫＤ）として入力される。かかるチャンネル１は、前記レジスタＴＭＤＲのＭＤ３〜０ビットによって前記位相計数モードに設定される。
【０２００】
カウンタＴＣＮＴ０は内部クロックをカウントアップクロックにして、絶対的な時間を計測する。つまり、カウンタＴＣＮＴ０はフリーランニング動作を行う。前述の通り、前記レジスタＴＩＯＲ０ＡのＩＯＢ３〜０ビットによって、チャンネル０のインプットキャプチャ信号Ｂにチャンネル１のクロック、すなわち、ＴＣＬＫＣ，ＴＣＬＫＤから生成されるカウンタＴＣＮＴ１のカウントアップ／ダウンクロックを入力する。
【０２０１】
上記レジスタＴＭＤＲのＢＦＢビットを１にセットして、前記レジスタＴＧＲ０ＢとＴＧＲ０Ｄをバッファ動作とする。すなわち、上記ＴＣＮＴ１のカウントアップ／ダウンクロックが発生すると、ＴＣＮＴ０の内容が上記ＴＧＲ０Ｂに転送される。また、このときＴＧＲ０Ｂが保持していた内容がＴＧＲ０Ｄに転送される。ＴＧＲ０ＢとＴＧＲ０Ｄの内容の差をとることによって、エンコーダパルスのパルス幅を計測することができる。ひいては、エンコーダ、すなわち、インバータモータの速度を計測することができる。
【０２０２】
前記の通り、上記レジスタＴＩＯＲ１のＩＯＡ３〜０ビット、ＩＯＢ３〜０ビットによって、チャンネル０のコンペアマッチ信号Ａ，Ｂをチャンネル１のインプットキャプチャ信号として入力する。コンペアマッチ信号を一定時間ごとに発生させることによって、前記レジスタＴＧＲ０Ａ、ＴＧＲ０Ｃで設定された一定期間毎に、２相のエンコーダのカウント値が前記レジスタＴＧＲ１Ａ，ＴＧＲ１Ｂに転送される。例えば、ＴＧＲ０ＣにＴＧＲ０Ａの半分の時間を設定する。ＴＧＲ０Ａのコンペアマッチ毎に、エンコーダのカウント値がＴＧＲ１Ａに得られ、ひいてはモータの回転位置、言い換えるならば、エンコーダすなわちインバータモータの位置を計測することができる。また、ＴＧＲ１Ｂに直前のコンペアマッチＴＧＲ０Ｃの時のエンコーダのカウント値が格納されているから、ＴＧＲ０Ａ−ＴＧＲ０Ｃの期間に、ＴＧＲ１Ａ−ＴＧＲ１Ｂのカウント値だけエンコーダが回転したことになり、エンコーダひいてはモータの回転速度を計測することができる。このように、モータの回転速度を検出することによって、モータのすべり率などを計測することができ、モータの制御に利用することができ、モータの位置を検出することによって最適な制御信号をモータに与えることができる。
【０２０３】
図４８には、上記図４７の実施例の動作を説明するためのタイミング図が示されている。カウンタＴＣＮＴ０は前記の通りにフリーランニング動作を行い、Ｂ’００００〜Ｂ’ＦＦＦＦのカウント動作を行う。上記カウンタＴＣＮＴ１のカウント信号をキャプチャ信号としてＴＣＮＴ０の内容がＴＧＲ０Ｂに転送される。次のキャプチャ信号が発生すると、ＴＧＲ０Ｂの内容がＴＧＲ０Ｄに転送され、ＴＣＮＴ０の内容がＴＧＲ０Ｂに転送される。ＴＯＲ０Ｄ−ＴＧＲ０Ｂの差によってＴＣＮＴ１のカウント間隔を計測することができる。
【０２０４】
ＴＣＮＴ０とＴＲＧ０Ａ，ＴＧＴ０Ｃが比較され、一致すると中央処理装置ＣＰＵの処理によって所望の一定時間に相当する値がＴＧＲ０Ａ及びＴＧＲ０Ｃに加算される。すなわち、ＴＧＲ０Ａ，ＴＧＲ０Ｃのコンペアマッチ信号は前記一定時間毎に発生する。ＴＧＲ０Ａのコンペアマッチ信号をキャプチャ信号として、ＴＣＮＴ１の内容がＴＧＲ１Ａに転送される。ＴＧＲ０Ｃのコンペアマッチ信号をキャプチャ信号としてＴＣＮＴ１の内容がＴＧＲ１Ｂに転送される。一定時間毎、例えばＴＧＲ０Ａのコンペアマッチ毎のＴＣＮＴ１の値を計測で、エンコーダの位置を計測できる。また、ＴＧＲ１Ａ−ＴＧＲ１Ｂの差によって、別の一定期間ＴＧＲ０Ａ−ＴＦＲ０Ｂの時間内のＴＣＮＴ１の変化量を計測することができ、エンコーダの変化量・速度を計測することができる。これによって、モータの位置と速度を計測することができる。ＴＣＬＫＣとＴＣＬＫＤによって、ＴＣＮＴ１のカウントアップクロックが生成される。
【０２０５】
図４９には、前記相補ＰＷＭモード３の場合のＡ／Ｄ変換器の動作タイミングを説明するためのタイミング図が示されている。前記レジスタＴＩＥＲ３のＴＴＧＥビット、及び前記レジスタＴＩＥＲ４のＴＴＧＥビットを１にセットして、チャンネル３のコンペアマッチＡ及びチャンネル４のアンダーフローの両方でＡ／Ｄ変換器を起動させる。Ａ／Ｄ変換器は、制御レジスタにより入力チャンネルＡＩＮ４，５に設定し、タイマによる起動を選択した状態にしておく。起動要因が発生しない状態では待機状態である。チャンネル３のコンペアマッチＴＧＲ３Ａ及びチャンネル４のアンダーフローの論理和信号がＡ／Ｄ変換器の起動信号としてタイマからＡ／Ｄ変換器に与えられる。
【０２０６】
相補ＰＷＭモード１の場合には、チャンネル３のコンペアマッチＴＣＮＴ３＝ＴＧＲ３Ａのみ、相補ＰＷＭモード２の場合にはチャンネル４のアンダーフローＴＣＮＴ４＝０のみ、相補ＰＷＭモード３の場合には、上記のようにチャンネル３のコンペアマッチ及びチャンネル４のアンダーフローの両方が選択され、Ａ／Ｄ変換器の起動信号としてタイマからＡ／Ｄ変換器に与えられる。
【０２０７】
上記選択した起動信号が発生するとＡ／Ｄ変換が開始され、入力端子ＡＩＮ４及びＡＩＮ５から入力されたアナログ信号が変換され、データレジスタに格納される。これによって、モータの駆動電流を計測することができる。そのほか、一定時間毎にＡ／Ｄ変換器のそのほかの入力チャンネルを変換したい場合には、タイマＡのコンペアマッチなどによる割り込み処理で、中央処理装置ＣＰＵに割り込み処理を行わせ、この割り込み処理によってＣＰＵがＡ／Ｄ変換器の制御レジスタを再設定して、所望のアナログ入力を変換して、そのほかのセンサ情報などを入力することができる。この結果を、例えば中央処理装置ＣＰＵはパラメータ情報として所望の処理を行う、以降のチャンネル３，４のコンペア値（ＴＧＲ３Ｃ，ＴＧＲ４Ｃ，ＴＧＲ４Ｄ）の設定に反映させる。
【０２０８】
かかる変換の終了後は、制御レジスタにより入力チャンネルをＡＩＮ４，ＡＩＮ５に設定し、タイマによる起動を選択した状態にしておくことにより、再びチャンネル３のコンペアマッチＴＣＮＴ３＝ＴＧＲ３Ａ（山）又はチャンネル４のアンダーフローＴＣＮＴ４＝０が発生すると、上記ＡＩＮ４，ＡＩＮ５が変換されてモータの駆動電流が計測される。このようにして、ＰＷＭ出力に同期したモータ電流の計測ができる。ハードウェアによってＡ／Ｄ変換器を起動できるので山／谷の時点からモータの駆動電流を計測するまでの時間を短縮し、検出精度を向上させることができる。２相分の電流を同時サンプリングすることにより、電流精度を向上させてＰＷＭ制御精度を向上させることができる。
【０２０９】
図５０には、上記Ａ／Ｄ変換器の一実施例のブロック図が示されている。Ａ／Ｄ変換器は、コントロールロジック、バスインターフェイス、制御レジスタＡＤＣＲＳ、ＡＤＣＲ、データレジスタＡＤＤＲＡ〜ＡＤＤＲＨ、２ビット分圧、６ビット分圧及び２ビット分圧を行う抵抗分圧回路（Ｄ／Ａ変換）、アナログマルチプレクサ、サンプルホールド・レベルシフト回路Ａ，Ｂ、コンパレータアレイ（差動増幅器）Ａ，Ｂ、逐次比較レジスタから構成される。一対のサンプルホールド・レベルシフト回路Ａ，Ｂによる一対のアナログ入力の同時サンプリングを行うことが可能にされている。
【０２１０】
Ａ／Ｄ変換器の外部入力としては、電源（Ｖcc、Ｖss、ＡＶcc、ＡＶss、ＶＲＥＦ）、アナログ入力ＡＩＮ０〜ＡＩＮ７、外部トリガ信号ＡＤＴＲＧがある。シングルチップマイクロコンピュータの内部信号としては、タイマＡとＢからの起動信号、アドレスバス、リード信号、ライト信号、バスサイズ信号、要因クリア信号が与えられ、バスインターフェイスを介して内部データバスとの間でデータの入出力が行われる。また、割込信号ＡＤＩを出力する。かかる割込信号ＡＤＩは、割り込みコントローラＩＮＴに与えられて、上記データトランスファコントローラＤＴＣの起動信号又は中央処理装置ＣＰＵの割込要求とされる。
【０２１１】
コントロールロジックは、中央処理装置ＣＰＵから与えられるアドレスバスからのアドレス信号、リード信号、ライト信号に基づいて、内部データバスとの間でバスインターフェイスを介して制御レジスタＡＤＣＳＲ、ＡＤＣＲ、データレジスタＡＤＤＲＡ〜ＡＤＤＲＨとの間でデータの入出力を行う。コントロールロジックには、外部トリガ信号ＡＤＴＲＧ及びタイマＡ，Ｂからの起動信号が入力される。コントロールロジックは、上記制御レジスタＡＤＣＳＲ、ＡＤＣＲの内容に基づいて、アナログ入力動作制御を行う。そして、コントロールロジックは、上記割込信号ＡＤＩを出力する。
【０２１２】
制御レジスタＡＤＣＳＲ、ＡＤＣＲは、中央処理装置ＣＰＵから内部データバス、バスインターフェイスを介してリード／ライトが行われ、コントロールロジックの動作を指示し、上記アナログ入力の状態を表示する。つまり、入力チャンネルの選択・変換モードの選択等を行う。Ａ／Ｄ変換モードには、後述するように１チャンネルの変換を行うセレクトモードと、複数チャンネルの変換を行うグループモードがあり、これに加えて１回の変換を行うシングルモードと繰り返して変換を行うスキャンモードがある。
【０２１３】
【表１６】
0003687861.tif 000017
【０２１４】
制御レジスタＡＤＣＳＲは、Ａ／Ｄコントロール／スタータスレジスタであり、８ビットのリードＲ又はライトＷが可能なレジスタであり、Ａ／Ｄ変換の動作制御とステータスの表示を行う。このレジスタＡＤＣＲＳはリセット時にＢ’００にイニシャライズ（初期値）にされ、そのビット構成を上記表１６に示す。
【０２１５】
ビット７のＡＤＦは、Ａ／Ｄ変換の終了を示すスタータスフラグであり、クリア条件は、ＡＤＦ＝１の状態で、ＡＤＦフラグをリードした後にＡＤＦフラグに０をライトしたとき、ＡＤＩ割り込みによりデータ転送装置ＤＴＣ又はＤＭＡＣが起動されたときである。セット条件は、シングルモードのときに、指定した全てのチャンネルの変換を終了し、Ａ／Ｄ変換が終了したときと、スキャンモードのときに、指定した全てのチャンネルを一巡して変換したときである。
【０２１６】
ビット６のＡＤＩＥは、Ａ／Ｄ変換の終了による割り込み（ＡＤＩ）要求の許可又は禁止を選択する。ＡＤＩＥ＝０ならＡ／Ｄ変換の終了による割り込み（ＡＤＩ）要求を禁止（初期値）し、ＡＤＩＥ＝１ならＡ／Ｄ変換の終了による割り込み（ＡＤＩ）要求を許可する。
【０２１７】
ビット５のＡＤＳＴは、Ａ／Ｄ変換の開始又は停止を選択する。Ａ／Ｄ変換中は１を保持する。ＡＤＳＴは、Ａ／Ｄ外部トリガ入力端子（ＡＤＴＲＧ）、又はタイマのトリガ信号によって１にセットされる。ＡＤＳＴ＝０のときはＡ／Ｄ変換を停止し、ＡＤＳＴ＝１のときシングルモードならＡ／Ｄ変換を開始し、指定したチャンネルの変換が終了すると自動的に０にクリアされる。ＡＤＳＴ＝１のときスキャンモードならＡ／Ｄ変換を開始し、ソフトウェアにより０にクリアされまで連続変換を行う。
【０２１８】
ビット４のＣＫＳは、クロックセレクト信号であり、Ａ／Ｄ変換時間の設定を行う。変換時間の切り替えは変換停止中に行われる。ＣＫＳ＝０のときには変換時間が２０ステート（基準クロックφを選択）となり、ＣＫＳ＝１のときには変換時間が４０ステート（基準クロックφ／２を選択）となる。
【０２１９】
ビット３のＧＲＰはグループモード信号であり、Ａ／Ｄ変換チャンネルの選択をセレクトモード又はグループモードに指定する。このＧＲＰビットの設定は、Ａ／Ｄ変換停止中に行われる。ＧＲＰ＝０のときにはセレクトモードとされ、ＧＲＰ＝１のときにはグループモードとされる。
【０２２０】
ビット２〜０はチャンネルセレクト信号であり、上記ＧＲＰビットとともにアナログ入力チャンネルを選択する。入力チャンネルの設定は、Ａ／Ｄ変換停止中に行われる。ＧＲＰ＝０のときにはセレクトモードのときには上記３ビットＣＨ２〜ＣＨ０の組み合わせによりＡＮ０〜ＡＮ７のいずれか１つが選ばれる。ＧＲＰ＝１のときにはグループモードのときには上記３ビットＣＨ２〜ＣＨ０がＢ’０００ときにＡＮ０のみが選択され、それ以外は上記ＡＮ０とビットＣＨ１とＣＨ２の組み合わせによりＡＮ１〜ＡＮ７が上記ＡＮ０と同時に選ばれる。
【０２２１】
制御レジスタＡＤＣＲは、Ａ／Ｄコントロールレジスタであり、８ビットのリードＲ又はライトＷが可能なレジスタであり、Ａ／Ｄ変換の動作制御を行う。このレジスタＡＤＣＳはリセット時にＢ’００にイニシャライズ（初期値）にされ、そのビット構成を次の表１７に示す。
【０２２２】
【表１７】
0003687861.tif 000018
【０２２３】
ビット７のＩＮＦは、インターバルビットであり、インターバル動作を指定する。インターバル動作では、ＢＵＳＹ信号が活性状態のとき、新しいＡ／Ｄ変換動作を開始しない。ＡＤＦフラグを０にクリアすることにより、ＢＵＳＹ信号を活性状態にして、新しいＡ／Ｄ変換動作を開始させることができる。ＩＮＦ＝０は通常動作であり、ＩＮＦ＝１が上記インターバル動作である。
【０２２４】
ビット６のＰＷＲは、電源ビットであり、変換開始モードを設定する。変換開始モードについては、高速変換モードと低消費電力モードからなる。
【０２２５】
ビット５〜４のＴＲＧＳ１，ＴＲＧＳ０は、タイマトリガセレクトビットであり、トリガ信号によるＡ／Ｄ変換開始の許可又は禁止を選択する。ＴＲＧＳ１，ＴＲＧＳ０の設定は、Ａ／Ｄ変換停止中に設定される。上記２ビットのＴＲＧＳ１，ＴＲＧＳ０の組み合わせより、次の４通りが選択できる。（１）ソフトウェアによるＡ／Ｄ変換の開始のみを許可する。（２）タイマトリガ（タイマＢ）によるＡ／Ｄ変換の開始を許可する。タイマＢのいずれの信号をトリガするかは、ＴＩＥＲのＴＴＧＥビットで選択することができる。複数のトリガ、例えばＴＧＲ３ＡのコンペアマッチとＴＣＮＴ４のアンダーフローを用いることができる。（３）タイマトリガ（タイマＡ）によるＡ／Ｄ変換の開始を許可する。（４）外部トリガ端子によるＡ／Ｄ変換の開始を許可する。
【０２２６】
ビット３のＳＣＡＮは、スキャンモードであり、Ａ／Ｄ変換の動作モードをシングルモード又はスキャンモードの選択を行う。ＳＣＡＮ＝０ならシングルモードとなり１回の変換を行う。ＳＣＡＮ＝１ならスキャンモードとなり、繰り返し変換を行う。
【０２２７】
ビット３のＤＳＭＰは、同時サンプリングモードであり、２チャンネルの同時サンプリング動作を許可又は禁止する。この同時サンプリング動作の詳細につていは後に説明する。ＤＳＭＰ＝０なら通常サンプリング動作する。ＤＳＭＰ＝１なら同時サンプリング動作とし、所定のタイミングでサンプルホールド・レベルシフト回路Ａ，Ｂに一対のアナログ入力が同時に入力されて保持される。
【０２２８】
ビット１と０のＢＵＦＥ１，ＢＵＦＥ０はバッファイネーブルであり、データレジスタＡＤＤＲＡ〜ＡＤＤＲＤをバッファレジスタとして使用するかしないかを選択する。
【０２２９】
データレジスタＡＤＤＲＡ〜ＡＤＤＲＨは、中央処理装置ＣＰＵから内部データバス及びバスインターフェイスを介してリード／ライトが可能であり、アナログ入力データ、言い換えるならば、Ａ／Ｄ変換結果が格納される。特に制限されないが、これらのデータレジスタＡＤＤＲＡ〜ＡＤＤＲＨは、それぞれが１６ビットからなり、Ａ／Ｄ変換されたデータが１０ビットであるときには、下位８ビットが下位バイト（ビット７〜０）に、上位２ビットが上位バイト（ビット９と８）に転送保持される。上位バイトのビット１５〜１０は使用されないが、リードすると常に０が読み出されるようにされる。この実施例では、データの読み出しは、バイト又はワード選択ができるようにされる。つまり、１０ビット分解能のＡ／Ｄ変換出力はワードモードとして読み出され、８ビット分解能のＡ／Ｄ変換出力はバイトモードとして上位８ビット（ビット９〜２）が読み出されるようにされる。
【０２３０】
アナログマルチプレクサは、コントロールロジックの出力する選択信号に基づいてアナログ入力ＡＩＮ０〜ＡＩＮ７を選択し、それに対応したアナログ信号を内部に取り込む。このアナログマルチプレクサは、上記図１の入出力ポートＩＯＰ９に含まれるようにしてもよい。
【０２３１】
サンプルホールド・レベルシフト回路は、コントロールロジックから出力されるサンプリング信号に基づいて、アナログマルチプレクサで選択されたアナログ入力信号をサンプリングしてホールド（蓄積）する。この実施例では、２個のサンプルホールド回路ＡとＢが設けられており、それぞれには独立したサンプリング信号ＡとＢが与えられる。それ故、上記サンプリング信号ＡとＢにより独立したタイミングでサンプリングすることも、同時にサンプリングすることもできるようにされる。図４６のシステムにおいて、２つのアナログ入力チャンネルＡＩＮ４，ＡＩＮ５を同時にサンプリングすると都合がよい。モータ駆動電流を同時に検出でき、更に３本目の電流を計算する際にも相互の電流値の精度を向上でき、モータ駆動の精度を向上することができる。
【０２３２】
レベルシトフ回路ＡとＢは、レベルシフト信号ＡとＢにより上記ホールドされた入力信号をレベルシフトさせる。このレベルシフト動作は、１回目のＡ／Ｄ変換結果に基づいて行われる。例えば、基準電圧ＶＲＦＥ対応したアナログ入力範囲を４等分した電圧範囲のうち、ＶＲＥＦ／４〜ＶＲＥＦ／２のサブレンジ領域内に上記ホールドされた入力信号をシフトさせる。
【０２３３】
コンパレータアレイＡとＢは、それぞれが５個の差動増幅回路で構成される。これらのコンパレータアレイＡとＢは、サンプルホールド回路ＡとＢにホールドされた入力信号と、局所抵抗分圧回路により形成された複数の基準電圧（５本）とを比較し、比較結果を出力する。すなわち、２ビット分の比較を同時に行うことができる。比較結果は、コントロールロジックにより２進信号化されて逐次比較レジスタに格納される。
【０２３４】
１回目の比較では、抵抗分圧回路の上位２ビットとの比較を行う。この比較結果に基づいてレベルシフト信号ＡとＢがそれぞれ形成されて、レベルシフト回路ＡとＢにより上記のようにサブレンジ領域内にホールドされた入力信号をシフトさせる。２回目以降の変換動作は、局所分圧回路（６ビット分圧）により１／６４の分圧電圧を形成し、そのうちの２ビット分がセレクタを通して選択され、更に２ビット分圧により分圧された電圧が上記コンパレータアレイＡ又はＢに供給されることにより行われる。このような動作を繰り返すことにより最下位ビットまでの変換動作が行われる。Ａ／Ｄ変換動作の終了時に、コントロールロジック（逐次比較レジスタ）に保持された変換データがデータレジスタＡＤＤＲＡ〜ＡＤＤＲＨのいずれかに転送される。
【０２３５】
抵抗分圧回路（Ｄ／Ａ変換）は、例えば１０ビット分解能とされるときには、基準電圧Ｖref とアナログ接地電圧ＡＶssの間を１０２４個の抵抗により分圧された分圧電圧を形成することが必要とされる。このようにすると、抵抗数が増大してしまうので、この実施例では上記のように上位２ビット分圧、６ビット分圧及び下位２ビット分圧の３つの分圧回路に分けることにより、抵抗数を大幅に低減させている。つまり、この実施例の分圧抵抗回路は、上位２ビット分圧回路と６ビットと２ビットに分けられた局所分圧回路で構成される。上位２ビット分圧回路は、ＶＥＲＦ、３ＲＥＦ／４、ＶＲＥＦ／２、ＶＲＥＦ／４及び０Ｖを形成して、レジスタシフト回路及びコンパレータアレイに供給する。
【０２３６】
６ビット局所分圧回路は、上記ＶＲＥＦ／４〜ＶＲＥＦ／２の範囲を１／６４に分圧してなる６４通りの分圧電圧を形成し、逐次比較レジスタの内容による指定に基づいてセレクタが制御されて上位から順に２ビット分ずつに対応された分圧電圧を出力する。この分圧出力は、さらに下位２ビット分圧により分圧されてコンパレータアレイに供給されてＡ／Ｄ変換動作に用いられる。アナログ電圧ＡＶcc、ＡＶssは、アナログ部（マルチプレクサ、サンプルホールド回路、コンパレータアレイなど）の電源とされる。
【０２３７】
図５１には、この発明に係るシングルチップマイクロコンピュータの動作の一例を説明するためのフローチャート図が示されている。リセットを解除することにより、マイクロコンピュータの初期設定が行われる。これには前記タイマＩＴＵやＤＴＣ及びＡ／Ｄ変換器の初期設定も含まれる。Ａ／Ｄ変換器は、ＩＴＵのトリガに従って入力チャンネルＡＩＮ４，５を変換するように設定される。タイマＡは、インターバルタイマとして動作を開始させる。
【０２３８】
上記のような初期設定が終了すると、モータの起動要求待ち状態になる。モータの起動要求は、例えば上位のＣＰＵから入出力ポートを介して与えられる。このモータの起動要求が入力されると、所望の処理に従ってコンペア値が算出されて、これがＲＡＭ上の第１の領域に配置される。
【０２３９】
次に、ＩＴＵが起動され、相補ＰＷＭ出力が行われ、割り込み待ち状態になる。コンペアマッチＴＣＮＴ３＝ＴＧＲ３Ａ（ＩＭＩＡ３）割り込み（山）あるいはアンダーフローＴＣＮＴ４＝０（ＵＶＩ４）割り込み（谷）が発生すると、Ａ／Ｄ変換器に起動信号が与えられて自動的ないしハードウェア的に初期設定に従って入力チャンネルＡＩＮ４，５がＡ／Ｄ変換される。また、上記ＩＭＩＡ３割り込み（山）あるいはＵＶＩ４割り込み（谷）によってＤＴＣが起動され、前記ＲＡＭ上の所定のアドレスからＩＴＵのバッファレジスタＴＧＲ３Ｄ，ＴＧＲ４Ｃ，ＴＧＲ４Ｄにコンペア値が転送され、ＰＷＭのデューティが変更される。
【０２４０】
ＣＰＵの割り込み処理ルーチンによってＴＧＲ１Ａをリードしてモータ位置の確認が行われる。また、ＴＧＲ０Ｂ，ＴＧＲ０Ｄをリードして、その差分（ＴＧＲ０Ｂ−ＴＧＲ０Ｄ）を計算することにより、モータの速度が確認される。Ａ／Ｄ変換結果をリードして、２相分のモータ駆動電流を得るとともに、これに基づいて３相目のモータ駆動電流を算出する。
【０２４１】
ＴＣＮＴ２をリードして速度司令を確認する。そのほか、予めＲＡＭ上の第２の領域に保持していたセンサ回路の入力値をリードする。上記のモータの位置・速度、モータ駆動電流、そのほかのセンサの入力値を参照して所望の処理を行って新しいコンペア値が算出され、これをＲＡＭ上の第１の領域に書き込む。例えば、モータの速度と速度司令とを比較し、モータの速度が遅いならばモータのトルクを大きくするようにする。このとき、モータの駆動電流値をモニタしつつ、トルクを変更するようにすることにより、トルクリップルを低減させることができる。
【０２４２】
そして、上記割り込み待ち状態に戻る。一方、ＴＩＯＣ３Ａ端子によるインプットキャプチャ（ＩＭＩＣ３）割り込みが発生すると、自動的に出力値が遮断され、ＴＯＳＲの値が出力されてＰＷＭ出力値が固定される。ＣＰＵの割り込み処理ルーチンによって、モータの停止処理が行われる。その後、モータの起動要求待ち状態になる。
【０２４３】
タイマＡのインターバルタイマ割り込みが発生すると、Ａ／Ｄ変換器の設定変更を行い、ソフトウェアの起動によってモータ駆動電流以外のセンサ入力値をＡ／Ｄ変換する。変換された結果は、ＲＡＭ上の第２の領域に保持される。そして、Ａ／Ｄ変換器の設定を元に戻してリターンする。
【０２４４】
コンペアマッチＴＣＮＴ０＝ＴＧＲ０Ａ（ＩＭＩＡ０）割り込みが発生すると、ＴＧＲ０Ａ，ＴＧＲ０Ｃの値に所望の一定値を加算してリターンする。
【０２４５】
各相の変調関数を
ｕ＝（１／２）（ｍ×ｓｉｎ（ωｔ）＋１）
ｖ＝（１／２）（ｍ×ｓｉｎ（ωｔ−２π／３）＋１）
ｗ＝（１／２）（ｍ×ｓｉｎ（ωｔ＋２π／３）＋１）
とする。すなわち、正弦波の正方向に振幅が大きいときデューティを大きく、負方向に大きいときデューティを小さくするようにする。このとき、復調された結線間の電圧波は、電圧がＥのとき一例として
Ｕ−Ｖ＝（３／２）1/2 ×Ｅ×ｍ×ｓｉｎ（ωｔ＋π／６）とされる。その他の結線間の電圧波は、上記と１２０°（２π／３）の位相差を持つ正弦波となる。かかる電圧に従って、コイルに電流が流れることによって、モータを回転させることができる。相補ＰＷＭの周期を、かかる関数の周期（１／ω）より十分に小さくし、ＰＷＭの山／谷に相当する各時点での上記変調関数の振幅に比例した、ＰＷＭデューティを得られるように、コンペア値を設定する。
【０２４６】
図５２には、上記ＰＷＭの波形図が示されている。同図には、１サイクルを１５分割した場合の正弦波ＰＷＭ波形が示されており、（Ａ）には変調率ｍを１とし、（Ｂ）には変調率ｍを０．６にした場合が示されている。この変調率ｍは０から１までの値をとり得るものである。
【０２４７】
上記のように、モータの速度と速度司令を比較し、この結果に基づいてトルクの計算を行う。トルクの制御は、加減速のトルクやモータ負荷に見合ったトルクをモータに与えるようにする必要がある。トルク制御の結果に基づいて、必要なトルクを得るのに必要な電流と位相が計算される。モータの駆動電流値のＡ／Ｄ変換器によるモニタ結果とし比較して、モータの位置（例えば磁極位置）をモニタしたりしつつ、上記関数ｍ、ωを決定し、これに従ってコンペア値、ひいてはＰＷＭデューティを得るようにするものである。この実施例のＩＴＵ（タイマＢ）では、０％〜Ｔｄ、１００％−Ｔｄ〜１００％も含めて、任意のデューティのＰＷＭ出力を形成することができる。０％〜Ｔｄ、１００％−Ｔｄ〜１００％の出力を可能にしたことにより、結線間の最大電圧・最小電圧の低下、すなわち、振幅の低下を防止することができる。０％、１００％のデューティを同期して出力させることができるから、結線間の最大電圧・最小電圧の低下、すなわち、振幅の低下を防止することができる。
【０２４８】
図５３には、この発明に係るシングルチップマイクロコンピュータを用いた制御システムの他の一実施例の概略ブロック図が示されている。同図の制御システムは、特に制限されないが、ブラシレスＤＣモータの制御システムに向けられている。
【０２４９】
この実施例では、１６ビットタイマによる相補３相のＰＷＭ出力（ＴＩＯＣ３Ｂ〔Ｕ〕、ＴＩＯＣ３Ｄ〔Ｕ＃〕、ＴＩＯＣ４Ａ〔Ｖ〕、ＴＩＯＣ４Ｃ〔Ｖ＃〕、ＴＩＯＣ４Ｂ〔Ｗ〕、ＴＩＯＣ４Ｄ〔Ｗ＃〕）を用い、インバータ回路を介してモータを駆動している。この場合、リセット同期ＰＷＭモードが使用される。
【０２５０】
ブラシレスＤＣモータに装着されたホール素子の出力が、タイマＢのインプットキャプチャ入力（ＴＩＯＣ０Ａ，ＴＩＯＣ０Ｂ，ＴＩＯＣ０Ｃ）に入力される。このインプットキャプチャ動作によってモータの位置検出を行うことができる。例えば、ホール素子が６０°間隔で配置されているとする。インプットキャプチャによって、ホール素子の位置、すなわち、モータの位置を判定することができる。このとき、インプットキャプチャ値を逐次蓄積しておくことにより、例えば６０°毎の時間、ひいてはモータの回転速度を測定することもできる。
【０２５１】
速度制御演算は、上記モータの速度と速度司令とを比較して、電流値を計測する。位置検出の結果とに基づいて、Ｕ，Ｖ，Ｗ相の上下アームの通流状態の切り換えが行われる。１２０°通電方式では、Ｕ，Ｖ，Ｗ相のいずれか１つの相が順番に駆動される。駆動されていない相は、例えば前記レジスタＴＯＥＲの所定ビットを０にクリアして、タイマの出力を禁止してポート出力として所定のレベルを出力することができる。
【０２５２】
あるいは、前記レジスタＴＧＣＲのＦＢビットを０にクリアしてホール素子の入力（ＴＩＯＣ０Ａ，ＴＩＯＣ０Ｂ，ＴＩＯＣ０Ｃ）のインプットキャプチャ信号をフィードバック入力として用い、１相のリセット同期ＰＷＭ出力を許可し、そのほかを所定のレベルにすることができる。例えば、ＴＧＣＲのＰビットを１にセットし、Ｎビットを０にクリアした状態では、ＴＩＯＣ０Ａの立ち上がりエッジからＴＩＯＣ０Ｂの立ち上がりエッジまでＵ相のリセット同期ＰＷＭ出力を行い、ＴＩＯＣ０Ｂの立ち上がりエッジからＴＩＯＣ０Ａの立ち上がりエッジまでＵ相出力をロウレベルにする。ＴＩＯＣ０Ａの立ち下がりエッジからＴＩＯＣ０Ｂの立ち下がりエッジまでＵ＃相はハイレベル出力を行い、ＴＩＯＣ０Ｂの立ち下がりエッジからＴＩＯＣ０Ａの立ち下がりエッジまでＵ＃相出力をロウレベルにする。
【０２５３】
図５４に、図５３の制御システムにおけるタイマ出力のタイミング図が示されている。同図は、レジスタＴＧＣＲをＢＤＣ＝１、Ｎ＝０、Ｐ＝１、ＦＢ＝０としたリセット同期ＰＷＭモードによって、いわゆる１２０°通電方式を実現した例である。Ｕ相は、ＴＩＯＣ０Ａの立ち下がりエッジから、ＴＩＯＣ０Ｂの立ち下がりエッジまで、Ｕ＃相は、ＴＩＯＣ０Ａの立ち上がりエッジからＴＩＯＣ０Ｂの立ち上がりエッジまで出力される。出力が禁止された場合、ロウレベルを出力る。正相のみリセット同期ＰＷＭはけいが出力される。逆相はゲート信号が出力される。
【０２５４】
上記実施例によれば、以下の作用効果が得られる。すなわち、
（１）  サブカウンタＴＣＮＴＳを設けて、上限（Ｔｃ／２＋ＤＴＲ）から下限０までカウントする平行な２本のアップカウント及びダウンカウントを実現することにより、０％〜１００％のデューティのＰＷＭ出力を得ることができ、設定範囲の制約を無くしてソフトウェアの負担を軽減させることができるという効果が得られる。
【０２５５】
（２）  デューティ５０％に対して対称にでき、上アーム（Ｕ，Ｖ，Ｗ）と下アーム（Ｕ＃，Ｖ＃，Ｗ＃）を対称にできる。上アームと下アームが同時にオンすることがないから、正相及び逆相出力がいずれも非活性状態の期間の長さをデッドタイムの２倍以下にできる。このことはインバータモータの駆動に適しており、任意のデューティが出力可能であり、速度ないしトルクのリップルを無くして円滑な回転制御が可能になるという効果が得られる。
【０２５６】
（３）  比較レジスタの更新タイミングを山、谷又は山と谷の両方の中から選択することにより、書き換え禁止期間を無くしてソフトウェアの負担を軽減することができ、０％出力、１００％出力に同期して出力可能にし、インバータモータの駆動の最大トルクを発生することができるという効果返られる。
【０２５７】
（４）  比較レジスタの更新タイミングを山と谷の両方で書き換え可能にしたことにより、制御の精度を向上させることができるという効果が得られる。
【０２５８】
（５）  １つの比較器に対して入力するカウンタ（ＴＣＮＴ３，ＴＣＮＴ４）と入力する比較レジスタ（ＴＤＣＲ、ＴＤＤＲ）を選択可能にすることにより、物理的・物理的規模の増加を抑制することができるという効果が得られる。
【０２５９】
（６）  ＢＲのバッファとなるＴＲを設けることにより、レジスタの書き換えタイミングを任意にすることができ、ソフトウェアに負担をかけることがないという効果が得られる。
【０２６０】
（７）  制御などのレジスタの書き込みを禁止可能にしたことにより、初期設定のみが必要な制御レジスタの誤書き込みによるタイマの誤動作を防止することができるという効果が得られる。
【０２６１】
（８）  バッファレジスタを連続領域とすることによって、ＤＴＣなどのデータ転送装置によるライトを可能にし、かかるＤＴＣをコンペアマッチ（上限値）又はアンダーフロー（下限値）によって起動することによって、ソフトウェアの負担なく、ＰＷＭデューティの設定を行うことができるという効果が得られる。
【０２６２】
（９）  インターバルタイマのコンペアマッチ周期によるアップダウンタイマのカウント値（２相エンコーダ）をキャプチャ可能としたことにより、位置検出をすることができる。アップダウンタイマのカウント入力のパルス幅を検出して速度の検出ができる。速度ないし位置サンプリング周期に同期した速度／位置検出を可能にして、外部回路を削除し、ソフトウェアの負担を軽減させることができる。インバータモータのエンコーダの出力を、上記アップダウンタイマのクロック入力とすることにより、インバータモータのサンプリング周期に同期した速度／位置検出を可能にすることができるという効果が得られる。エンコーダ入力のカウンタをカスケード接続可能にして、モータの位置検出のダイナミックレンジを広げることができる。
【０２６３】
（１０）  １つのカウンタ（ＴＣＮＴ０）に対して、インプットキャプチャ入力３本以上設け、インバータモータのホール素子の出力を入力することにより、インバータモータが所定の位置になった時間を測定することができ、ひいては速度／位置検出を可能とすることができるという効果が得られる。
【０２６４】
（１１）  ２相エンコーダを２組としたことにより、一方をモータのエンコーダ入力としつつ、他方を別の入力とすることができ、例えば速度指令列を入力することができるという効果が得られる。
【０２６５】
（１２）  山と谷の両方でＡ／Ｄ変換器を起動可能にし、モータ駆動電流を電流−電圧変換したアナログ入力をＡ／Ｄ変換器に入力することにより、ＰＷＭ出力に同期してモータ駆動電流の計測を行うことができ、モータ駆動の制御を容易にすることができるという効果が得られる。Ａ／Ｄ変換器に複数のサンプルホールド回路を設けて、３相のモータ駆動電流のうち、複数を同時にサンプリングすることができ、モータ駆動電流の測定精度を向上でき、ひいてはモータの制御精度を向上することができる。
【０２６６】
（１３）  内部クロックのエッジ検出を選択可能にしたことにより、内部信号本数を増やすことなく、また、制御レジスタの制御ビットを有効に利用して選択可能なカウントアップクロックを増やすことができるという効果が得られる。
【０２６７】
以上本発明によりなされた発明を実施例に基づき具体的に説明したが、本願発明は前記実施例に限定されるものではなく、その要旨を逸脱しない範囲で種々変更可能であることはいうまでもない。例えば、タイマの全体的なチャンネルの数は５チャンネル＋サブカウンタに限定されず、追加や削除が可能である。チャンネル３ないし４及びサブカウンタに相当する機能を有していればよい。例えば、サブカウンタを汎用のタイマカウンタとして使用できるようにしてもよい。あるいは、全体のチャンネル数を１６チャンネルなどとしてもよい。一体のモジュールないし機能ブロックとして構成するほか、分割していわゆるタイマネットワークなどのように、相互に接続するようにしてもよい。タイマジェネラルレジスタＴＧＲの数も任意の数とすることができる。動作モードや制御レジスタの構成についても種々変更が可能である。制御システムの種類、モータの種類などに応じてモータの位置及び速度を計測することができるモードやＴＧＲの数を用意しておけばよい。
【０２６８】
マイクロコンピュータのその他の機能ブロックについても何ら制約されない。ＣＰＵやそのほかのモジュールないし機能ブロックの一部又は全部は内蔵されなくてもよい。例えばＣＰＵを取り除いて、外部のマイクロプロセッサからリード／ライト可能な半導体集積回路装置で構成することもできる。タイマ入出力端子は、入出力ポートと兼用されず、独立の端子としてもよい。Ａ／Ｄ変換器の構成やＤＴＣの構成も種々変更可能である。ＤＴＣなどのデータ転送装置によって、ＰＷＭ出力のデューティを設定するレジスタを容易に書き換えられるようにしておくことが望ましい。
【０２６９】
応用システムも前記実施例に限定されない。一部の機能を削除したり、あるいは新規な機能を追加したりすることは容易である。モータの種類もＡＣ同期モータ、ＤＣサーボモータなどでもよい。固定子のコイルを駆動する電流を制御して、かかる電流による誘導磁場によって回転するモータであればよい。相補ＰＷＭモードを用いる１８０°通電方式を用いるモータとしては、特に、かご型インダクションモータなどが代表的とされ、産業用汎用インバータなどに用いることができる。応用システムもエアーコンデショナー、冷凍機、ポンプ、工作機械などに用いることができる。
【０２７０】
以上の説明では主として本発明者によってなされた発明をその背景となった利用分野であるマイクロコンピュータに適用した場合について説明したが、それに限定されるものではなく、その他の半導体集積回路装置又はデータ処理装置にも適用可能であり、本発明は少なくともモータを制御可能な６相ＰＷＭ出力機能を有する半導体集積回路装置又はデータ処理装置等の制御装置及びそれを用いた制御システムに広く利用することができる。
【０２７１】
【発明の効果】
本願において開示される発明のうち代表的なものによって得られる効果を簡単に説明すれば、下記の通りである。すなわち、
（１）デッドタイムに相当する時間差を持った２本のアップカウンタ、及び２本のダウンカウンタを設け、これを上限値と下限値（１／２周期＋デッドタイム）の間をカウントするようにし、相対的に大き値をカウントするアップカウントと、相対的に大きな値をカウントするダウンカウントとが上限値に接するようにし、相対的に小さな値をカウントするアップカウントと相対的に小さな値をカウントするダウンカウントとが１／２周期に相当するカウント値で交わるようにし、相対的に大きな値をカウントするアップカウントと相対的に大きな値をカウントするダウンカウントとがデッドタイムに相当するカウント値で交わるようにし、相対的に小さな値をカウントするアップカウントと相対的に小さな値をカウントするダウンカウントとが下限値で接するようにし、上下対称のカウントを実現しする。
【０２７２】
かつ、（２）第１の比較レジスタ（ＴＧＲ）と第２の比較レジスタ（ＢＲ）を、上記カウンタと比較可能にし、上記カウント値がデッドタイム以下の場合と、１／２周期に相当するカウント値以上のとき両方の比較を行い、デッドタイム以上かつ１／２周期に相当するカウント値以下のとき第１の比較のみを行う。
【０２７３】
かつ、（３）正相出力がオフレベルの状態で、比較レジスタが相対的に小さい値をカウントするアップカウントに一致すると、逆相出力をオンレベルにし、比較レジスタが相対的に大きい値をカウントするダウンカウントに一致すると、逆相出力をオフレベルにし、逆相出力がオフレベルの状態で比較レジスタが相対的に大きい値をカウントするアップカウントに一致すると、正相出力をオフレベルにし、比較レジスタが相対的に大きい値をカウントするダウンカウントに一致すると、正相出力をオンレベルにする。
【０２７４】
かつ、（４）ＣＰＵは第２の比較レジスタにライトし、両方の比較を行う領域から第１の比較のみを行う領域に遷移したときに、第２の比較レジスタから第１の比較レジスタへのデータ転送を行うことを可能にする。更に、アップカウント時の両方を行う領域から、第１の比較のみを行う領域に遷移したときに、第２の比較レジスタから第１の比較レジスタへのデータ転送を行うこと、または、ダウンカウント時の両方の比較を行う領域から第１の比較のみを行う領域に遷移したときに、第２の比較レジスタから第１の比較レジスタへデータ転送を行うこと、または、アップ及びダウンカウント時の両方の比較を行う領域から第１の比較のみを行う領域に遷移したときに、第２の比較レジスタから第１の比較レジスタへのデータ転送を行うことを選択可能にする。
【０２７５】
上記により、（１）ソストウェアに負担をかけることなく、デューティ０〜１００％  Ｗ出力可能な相補ＰＷＭ出力を行うことができる。（２）０％、１００％の位相を合わせることができる。（３）正相／逆相間のオン−オフの切り換え時に、必ずデッドタイム（ノンオーバーラップ時間）を持つことができる。（４）正相／逆相共にオフする期間は、デッドタイムの２倍以下であるようにすることができる。（５）デューティ５０％を中心に正相／逆相のデューティを対称にすることができる。（６）比較レジスタのデータの書き換えタイミングを任意にすることができる。これらにより、画一的な操作を可能にし、ソフトウェアの負担を軽減することができ、円滑で効率的なモータの駆動を行うことができる。
【図面の簡単な説明】
【図１】この発明が適用されたシングルチップのマイクロコンピュータの一実施例を示すブロック図である。
【図２】この発明に係るタイマＢ（ＩＴＵ）の一実施例を示す一部ブロック図である。
【図３】この発明に係るタイマＢ（ＩＴＵ）の一実施例を示す残り一部のブロック図である。
【図４】上記タイマＢにおけるジェラルレジスタがアウトプットコンペアレジスタの場合の動作構成図である。
【図５】上記タイマＢにおけるジェラルレジスタがインプットキャプチャレジスタの場合の動作構成図である。
【図６】この発明に係るバッファ動作の設定手順を示すフローチャート図である。
【図７】この発明に係るバッファ動作の一例を説明するためのタイミング図である。
【図８】この発明にかかるバッファ動作の他の一例を説明するためのタイミング図である。
【図９】この発明に係るカスケード接続機能の設定手順を説明するためのフローチャート図である。
【図１０】この発明に係るカスケード接続動作の一例を示すタイミング図である。
【図１１】この発明に係るカスケード接続動作の他の一例を説明するためのタイミング図である。
【図１２】この発明に係るカスケード接続動作の更に他の一例を説明するためのタイミング図である。
【図１３】この発明に係るＰＷＭモードの設定手順を説明するためのフロチャート図である。
【図１４】この発明に係るＰＷＭモードの動作を説明するための動作波形図である。
【図１５】この発明に係るＰＷＭモードの他の動作を説明するための動作波形図である。
【図１６】この発明に係るＰＷＭモードの他の動作を説明するための動作波形図である。
【図１７】この発明に係る位相計数モードの動作の一例を説明するためのタイミング図である。
【図１８】この発明に係るリセット同期ＰＷＭモードの設定手順を説明するためのフローチャート図である。
【図１９】この発明に係るリセット同期ＰＷＭモードの動作を説明するためのタイミング図である。
【図２０】この発明に係る相補ＰＷＭモードの設定手順を説明するためのフローチャート図である。
【図２１】この発明に係る相補ＰＷＭモードの動作を説明するための波形図である。
【図２２】この発明に係る相補ＰＷＭモードにおける０％と１００％の出力例を説明するための波形図である。
【図２３】この発明に係る相補ＰＷＭモードにおけるトグル出力機能を説明するための波形図である。
【図２４】この発明に係る相補ＰＷＭモードにおけるＰＷＭデューティデータ転送タイミングを説明するための波形図である。
【図２５】この発明に係る相補ＰＷＭモードにおける出力例を説明するための波形図である。
【図２６】この発明に係る相補ＰＷＭモードにおける出力例を説明するための波形図である。
【図２７】この発明に係る相補ＰＷＭモードにおける出力例を説明するための波形図である。
【図２８】この発明に係るタイマにおけるアップダウンコントロール部の一実施例を示すブロック図である。
【図２９】この発明に係るタイマにおけるアップダウンコントロール部の動作を説明するための状態遷移図である。
【図３０】この発明に係るタイマにおけるアップダウンコントロール部の動作を説明するための概略波形図である。
【図３１】上記アップダウンコントロール部におけるＴＡ，ＴＢのセット／リセット時のオペレーションの違いを説明するための概略波形図である。
【図３２】上記アップダウンコントロール部におけるＴＡ，ＴＢのセットとＵＤの切り替えタイミングを説明するための波形図である。
【図３３】上記アップダウンコントロール部におけるＴＡ，ＴＢのセットとＵＤの切り替えタイミングを説明するための波形図である。
【図３４】上記アップダウンコントロール部におけるバッファ転送信号ＢＴＲの生成を説明するための概略波形図である。
【図３５】上記アップダウンコントロール部におけるバッファ転送信号生成タイミングチャート図である。
【図３６】この発明に係るサブカウンタ関係信号の生成を補足説明するための概略波形図である。
【図３７】この発明に係るカウタにおけるカウンタ／レジスタ選択信号の生成を説明するための概略波形図である。
【図３８】この発明に係る割り込みＡ／Ｄ変換スタートトリガのタイミングチャート図である。
【図３９】この発明に係る相補ＰＷＭ制御を説明するための構成図である。
【図４０】この発明に係るアップダウンコントロール部の他の一実施例を示すブロック図である。
【図４１】この発明に係るアップダウンコントロール部の更に他の一実施例を示すブロック図である。
【図４２】この発明にかかるタイマＢの相補ＰＷＭモードとデータトランスファコントローラＤＴＣの動作の一例を説明するためのアドレスマップ図である。
【図４３】この発明に係るタイマＢの相補ＰＷＭモードとデータトランスファコントローラＤＴＣの動作の他の例を説明するためのアドレスマップ図である。
【図４４】この発明に係るタイマＢの相補ＰＷＭモードとデータトランスファコントローラＤＴＣの動作の他の例を説明するためのアドレスマップ図である。
【図４５】この発明に係るタイマＢのリード／ライト制御回路の一実施例を示すブロック図である。
【図４６】この発明が適用されたシングルチップマイクロコンピュータを用いた制御システムの一実施例を示す概略ブロック図である。
【図４７】この発明にかかるタイマ回路のチャンネル０とチャンネル１との接続例を説明するためのブロック図である。
【図４８】図４７の実施例の動作を説明するためのタイミング図である。
【図４９】この発明に係る相補ＰＷＭモード３の場合のＡ／Ｄ変換器の動作タイミングを説明するためのタイミング図である。
【図５０】この発明に係るＡ／Ｄ変換器の一実施例を示すブロック図である。
【図５１】この発明に係るシングルチップマイクロコンピュータの動作の一例を説明するためのフローチャート図である。
【図５２】この発明を説明するためのＰＷＭの波形図である。
【図５３】この発明に係るシングルチップマイクロコンピュータを用いた制御システムの他の一実施例を示す概略ブロック図である。
【図５４】図５３の制御システムにおけるタイマ出力のタイミング図である。
【符号の説明】
ＣＰＵ…中央処理装置、ＲＡＭ…ランダム・アクセス・メモリ、ＲＯＭ…リード・オンリー・メモリ、ＳＣＩ…シリアルコミュニケーションインターフェイス、ＩＴＵ…タイマ、ＤＴＣ…データ転送装置（データトランスファコントローラ）、ＣＰＧ…クロック発生回路、ＩＯＰ１〜８…入出力ポート、
ＴＧＲ０Ａ〜ＴＧＲ４Ｄ…ジェネラルレジスタ、ＴＩＯＣ０Ａ〜ＴＩＯＣ４Ｄ…入出力端子、ＴＣＬＫＡ〜ＴＣＬＫＤ…クロック入力、ＴＣＲ（０〜５）…タイマコントロールレジスタ、ＴＭＤＲ（０〜５）タイマモードレジスタ、ＴＩＯＲ（０Ｌ〜５Ｈ）…タイマＩ／Ｏコントロールレジスタ、ＴＣＮＴ（０〜５）タイマカウンタ、ＴＳＴＲ…タイマスタートレジスタ、ＴＹＳＲ…タイマシンクロレジスタ、ＴＩＥＲ３，４…タイマインタラプトイネーブルレジスタ、ＴＳＲ３，４…タイマステータスレジスタ、ＴＯＥＲ…タイマアウトプットマスタイネーブルレジスタ、ＴＯＣＲ…タイマアウトプットコントロールレジスタ、ＴＧＣＲ…タイマゲートコントロールレジスタ、ＴＯＳＲ…タイマ出力遮断データレジスタ、ＴＣＤＲ…タイマ周期データレジスタ、ＴＤＤＲ…タイマデッドタイムレジスタ、
ＡＤＤＲＡ〜ＡＤＤＲＨ…データレジスタ、ＡＤＣＲ，ＡＤＣＳＲ…制御レジスタ、ＢＩＦ…バッファ回路、ＭＤＢ…モジュール内バス、ＤＢ…内部データバス、
【図１】
0003687861.tif 000019
【図２】
0003687861.tif 000020
【図３】
0003687861.tif 000021
【図４】
0003687861.tif 000022
【図５】
0003687861.tif 000023
【図６】
0003687861.tif 000024
【図７】
0003687861.tif 000025
【図８】
0003687861.tif 000026
【図９】
0003687861.tif 000027
【図１０】
0003687861.tif 000028
【図１１】
0003687861.tif 000029
【図１２】
0003687861.tif 000030
【図１３】
0003687861.tif 000031
【図１４】
0003687861.tif 000032
【図１５】
0003687861.tif 000033
【図１６】
0003687861.tif 000034
【図１７】
0003687861.tif 000035
【図１８】
0003687861.tif 000036
【図１９】
0003687861.tif 000037
【図２０】
0003687861.tif 000038
【図２１】
0003687861.tif 000039
【図２２】
0003687861.tif 000040
【図２３】
0003687861.tif 000041
【図２４】
0003687861.tif 000042
【図２５】
0003687861.tif 000043
【図２６】
0003687861.tif 000044
【図２７】
0003687861.tif 000045
【図２８】
0003687861.tif 000046
【図２９】
0003687861.tif 000047
【図３０】
0003687861.tif 000048
【図３１】
0003687861.tif 000049
【図３２】
0003687861.tif 000050
【図３３】
0003687861.tif 000051
【図３４】
0003687861.tif 000052
【図３５】
0003687861.tif 000053
【図３６】
0003687861.tif 000054
【図３７】
0003687861.tif 000055
【図３８】
0003687861.tif 000056
【図３９】
0003687861.tif 000057
【図４０】
0003687861.tif 000058
【図４１】
0003687861.tif 000059
【図４２】
0003687861.tif 000060
【図４３】
0003687861.tif 000061
【図４４】
0003687861.tif 000062
【図４５】
0003687861.tif 000063
【図４６】
0003687861.tif 000064
【図４７】
0003687861.tif 000065
【図４８】
0003687861.tif 000066
【図４９】
0003687861.tif 000067
【図５０】
0003687861.tif 000068
【図５１】
0003687861.tif 000069
【図５２】
0003687861.tif 000070
【図５３】
0003687861.tif 000071
【図５４】
0003687861.tif 000072