JP3687861B2 - 制御システム及び相補ノンオーバーラップpwm信号を形成する方法 - Google Patents
制御システム及び相補ノンオーバーラップpwm信号を形成する方法 Download PDFInfo
- Publication number
- JP3687861B2 JP3687861B2 JP08592795A JP8592795A JP3687861B2 JP 3687861 B2 JP3687861 B2 JP 3687861B2 JP 08592795 A JP08592795 A JP 08592795A JP 8592795 A JP8592795 A JP 8592795A JP 3687861 B2 JP3687861 B2 JP 3687861B2
- Authority
- JP
- Japan
- Prior art keywords
- value
- counter
- count
- output
- register
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Expired - Fee Related
Links
Images
Classifications
-
- H—ELECTRICITY
- H02—GENERATION; CONVERSION OR DISTRIBUTION OF ELECTRIC POWER
- H02P—CONTROL OR REGULATION OF ELECTRIC MOTORS, ELECTRIC GENERATORS OR DYNAMO-ELECTRIC CONVERTERS; CONTROLLING TRANSFORMERS, REACTORS OR CHOKE COILS
- H02P5/00—Arrangements specially adapted for regulating or controlling the speed or torque of two or more electric motors
-
- H—ELECTRICITY
- H02—GENERATION; CONVERSION OR DISTRIBUTION OF ELECTRIC POWER
- H02P—CONTROL OR REGULATION OF ELECTRIC MOTORS, ELECTRIC GENERATORS OR DYNAMO-ELECTRIC CONVERTERS; CONTROLLING TRANSFORMERS, REACTORS OR CHOKE COILS
- H02P27/00—Arrangements or methods for the control of AC motors characterised by the kind of supply voltage
- H02P27/04—Arrangements or methods for the control of AC motors characterised by the kind of supply voltage using variable-frequency supply voltage, e.g. inverter or converter supply voltage
- H02P27/06—Arrangements or methods for the control of AC motors characterised by the kind of supply voltage using variable-frequency supply voltage, e.g. inverter or converter supply voltage using dc to ac converters or inverters
- H02P27/08—Arrangements or methods for the control of AC motors characterised by the kind of supply voltage using variable-frequency supply voltage, e.g. inverter or converter supply voltage using dc to ac converters or inverters with pulse width modulation
-
- G—PHYSICS
- G05—CONTROLLING; REGULATING
- G05B—CONTROL OR REGULATING SYSTEMS IN GENERAL; FUNCTIONAL ELEMENTS OF SUCH SYSTEMS; MONITORING OR TESTING ARRANGEMENTS FOR SUCH SYSTEMS OR ELEMENTS
- G05B11/00—Automatic controllers
- G05B11/01—Automatic controllers electric
- G05B11/26—Automatic controllers electric in which the output signal is a pulse-train
- G05B11/28—Automatic controllers electric in which the output signal is a pulse-train using pulse-height modulation; using pulse-width modulation
-
- H—ELECTRICITY
- H02—GENERATION; CONVERSION OR DISTRIBUTION OF ELECTRIC POWER
- H02P—CONTROL OR REGULATION OF ELECTRIC MOTORS, ELECTRIC GENERATORS OR DYNAMO-ELECTRIC CONVERTERS; CONTROLLING TRANSFORMERS, REACTORS OR CHOKE COILS
- H02P23/00—Arrangements or methods for the control of AC motors characterised by a control method other than vector control
- H02P23/0077—Characterised by the use of a particular software algorithm
Landscapes
- Engineering & Computer Science (AREA)
- Power Engineering (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Automation & Control Theory (AREA)
- Inverter Devices (AREA)
- Electronic Switches (AREA)
- Feedback Control In General (AREA)
- Control Of Stepping Motors (AREA)
- Microcomputers (AREA)
Description
【産業上の利用分野】
この発明は、制御装置と制御システムに関し、例えばモータ駆動用のタイマを内蔵したマイクロコンピュータ、データ処理装置あるいは半導体集積回路装置とそれを用いてモータ駆動等の制御システムに利用して有効な技術に関するものである。
【0002】
【従来の技術】
マイクロコンピュータは、昭和59年11月30日オーム社発行の「LSIハンドブック」第540〜541頁に記載されているように、中央処理装置CPUを中心にしてプログラム保持用のROM(リード・オンリー・メモリ)、データ保持用のRAM(ランダム・アクセス・メモリ)、及びデータの入出力を行うためのタイマなどの入出力回路などの機能ブロックが1つの半導体基板上において形成されてなる。
【0003】
かかるマイクロコンピュータをモータの駆動制御に用いる場合がある。例えば、エアーコンデショナなどのモータ制御、ACインダクションサーボモータなどの、いわゆるインバーターモータ制御に適したPWM(パルス幅変調)出力を行うタイマを内蔵したシングルチップのマイクロコンピュータの例として、平成5年3月(株)日立製作所発行「H8/3003 ハードウェアマニュアル」がある。インバータモータは、3相の正弦波信号(U,V,W)で駆動される。上記シングルチップのマイクロコンピュータは、かかる正弦波より高い周波数の搬送波によって近似されたPWM出力を形成して上記モータを駆動する。
【0004】
前記タイマは、2つのアップダウンカウンタと3本のコンペアレジスタで3相のPWM出力を行う。いわゆる180°通電方式では、アーム短絡防止のために上下アームの間にいわゆるデッドタイムを設ける必要がある。コンペアレジスタには、それぞれバッファレジスタが付加されており、カウンタが下限値に達したとき(谷)、又は上限値に達したとき(山)に、バッファレジスタからコンペアレジスタへの転送が行われる。
【0005】
【発明が解決しようとする課題】
しかしながら、上記の「H8/3003 ハードウェアマニュアル」に記載のタイマの相補PWMモードでは、互い相補ノーオーバーラップの関係にあるPWM出力を6相(3組)出力することができるが、
(1)0%と100%デューティのパルスは、上限値以上又は下限値以下の値が発生したときに得られるが、タイマカウンタが下限値のときに上記値が与えられると100%、タイマカウンタが上限値のときに上記値が与えられると0%になる。このため、ソフトウェアでタイマカウンタの方向を判断して、新しいコンペア値をバッファレジスタにライトしなければならない。したがって、上記0%から100%中の任意のデューティパルスを出力する場合、途中でデータ設定タイミングを変更しなければならないという問題を有する。また、0%、100%デューティのパルスが半周期ずれてしまう。この結果、モータ駆動の場合に最大トルクを出すことができないという問題を有する。
【0006】
(2)0%−デッドタイム、100%−デッドタイムの間の設定が禁止されていて、任意デューティのパルスを出力することができない。ソフトウェアでこの値を避けるようにすることはソフトウェアに対する負担が大きくなってしまう。また、0%〜100%の任意デューティが実現できないために、速度ないしトルクのリップルが発生してしまうという問題が生じる。(3)山/谷の書き換えができない。設定するタイミングを1周期よりも短くできず、精度の向上が困難であるという問題が生じる。
【0007】
この発明の目的は、(1)ソフトウェアの負担をかけることなく、デューティ0%〜100%の出力可能な相補PWM出力を行うこと、(2)0%と100%の位相を合わせること、(3)正相/逆相間のオン−オフ、オフ−オンの切り替え時に必ずデッドタイム(ノーオーバーラップ時間)を持つこと、(4)正相/逆相共にオフする期間はデッドタイムの2倍以下とすること、(5)デューティ50%を中心に正相/逆相のデューティが対称的であること、(6)比較レジスタのデータの書き換えタイミングが任意であること、(7)デューティの書き換えをデータ転送装置によっても容易に行えることとしたタイマを内蔵した制御装置とそれを用いた制御システムを提供することにある。この発明の前記ならびにそのほかの目的と新規な特徴は、本明細書の記述および添付図面から明らかになるであろう。
【0008】
【課題を解決するための手段】
本願において開示される発明のうち代表的なものの概要を簡単に説明すれば、下記の通りである。すなわち、(1)デッドタイムに相当する時間差を持った2本のアップカウンタ、及び2本のダウンカウンタを設け、これらが下限値と上限値(1/2周期+デッドタイム)の間をカウントするようにし、相対的に大きい値をカウントするアップカウンタの上限値と相対的に大きい値をカウントするダウンカウンタの下限値が一致するようにし、相対的に小さい値をカウントするアップカウンタの上限値と相対的に小さい値をカウントするダウンカウンタとが1/2周期に相当するカウント値で交わるようにし、相対的に大きい値をカウントするアップカウンタと相対的に大きい値をカウントするダウンカウンタとがデッドタイムに相当するカウント値で交わるようにし、相対的に小さい値をカウントするアップカウンタと相対的に小さい値をカウントするダウンカウンタとが下限値で接するようにして上下対称のカウントを実現する。
【0009】
(2)第1の比較レジスタ(TGR)と第2の比較レジスタ(BR)を、上記カウンタと比較可能にし、上記カウンタ値がデッドタイム以下の場合と1/2周期に相当するカウント値以上のとき両方の比較を行い、デッドタイム以上かつ1/2周期に相当するカウント値以下のとき、第1の比較の比較のみを行う。
【0010】
(3)正相出力がオフレベル状態で、比較レジスタが相対的に小さい値をカウントするアップカウントに一致すると、逆相出力をオンレベルにし、比較レジスタが相対的に小さい値をカウントするダウンカウントに一致すると、逆相出力をオフレベルにし、逆相出力がオフレベルの状態で、比較レジスタが相対的に大きい値をカウントするダウンカウントに一致すると正相出力をオンレベルにし、比較レジスタが相対的に大きい値をカウントするアップカウントに一致すると、正相出力をオフレベルにする。
【0011】
(4)中央処理装置CPUは、第2の比較レジスタにライトする。両方の比較を行う領域から第1の比較のみを行う領域に遷移したときに、ハードウェアによって第2の比較レジスタ第1の比較レジスタへデータ転送を行うことを可能にする。更に、アップカウント時の両方の比較を行う領域から第1の比較のみ行う領域に遷移したときに、第2の比較レジスタから第1の比較レジスタへのデータ転送を行うこと、または、ダウンカウント時の両方の比較を行う領域から第1の比較のみを行う領域に遷移したときに、第2の比較レジスタから第1の比較レジスタへのデータ転送を行うことを選択可能にする。
【0012】
【作用】
上記した手段によれば、(1)50%出力(1/2周期+1/4デッドタイムのカウント値)を中心にして、カウント動作、比較動作が対称となり、上下対称出力を行うことができる。(2)かならずオン−オフの出力切り換え、オフ−オンの出力切り換えが山・谷の前後で一対の事象として発生するから、下限値から上限値の任意の値を随時に設定することができる。(3)0%出力、100%出力の出力設定に制約がなく、0%出力、100%出力の位相を合わせることができる。(4)一方がオフ状態であるときのみ、他方のオン状態への出力切り換えを行うことにより、必ずデッドタイムを確保することができる。
【0013】
【実施例】
図1には、この発明が適用されたシングルチップのマイクロコンピュータの一実施例のブロック図が示されている。同図の各回路ブロックは、公知の半導体集積回路の製造技術により、単結晶シリコンのような1個の半導体基板上において形成される。
【0014】
この実施例のシングルチップのマイクロコンピュータは、中央処理装置CPU、クロック発生回路CPG、データトランスファコントローラ(データ転送装置)DTC、割り込みコントローラINT、プログラム等が格納されたリード・オンリー・メモリROM、一時記憶等に用いられるランダム・アクセス・メモリRAM、タイマAとタイマB(ITU)、シリアルコミュニケーションインターフェイスSCI、A/D変換器、第1ないし第9からなる入出力ポートIOP1〜IOP9の各機能ブロック又は機能モジュールから構成される。
【0015】
かかる機能ブロック又は機能モジュールは、内部バスによって相互に接続される。内部バスは、アドレスバス、データバスの他、リード信号、ライト信号を含む制御バスによって構成される。制御バスは、バスサイズ信号(WORD) あるいはシステムクロックなどを含んでよい。上記機能ブロック又は機能モジュールは、内部バスを介して中央処理装置CPU又はデータトランスファコントローラDTCによってリード/ライトされる。特に制限されないが、内部バスのバス幅は16ビットから構成される。
【0016】
この実施例のシングルチップのマイクロコンピュータは、電源端子として接地電位Vss、電源電圧Vcc、アナログ接地電位AVss、アナログ電源電圧AVcc、その他専用制御端子としてリセットRES、スタイバイSTBY、モード制御MD0,MD1、クロック入力EXTAL、XTAL等が設けられる。
【0017】
各入出力ポートは、アドレスバス、データバス、バス制御信号あるいはタイマ、シリアルコミュニケーションインターフェイスSCI、A/D変換器の入出力端子と兼用される。すなわち、タイマ、シリアルコミュニケーションインターフェイスSCI、A/D変換器は、それぞれ入出力信号を有し、入出力ポートと兼用された端子を介して外部と入出力されるものである。例えば第5ポートIOP5は、タイマAの入出力端子と兼用され、第6ポートIOP6と第7ポートIOP7は、タイマB(ITU)の入出力端子と兼用され、第8ポートIOP8は、シリアルコミュニケーションインターフェイスSCIの入出力端子と兼用されている。アナログデータの入力端子は、第9ポートIOP9と兼用されている。外部トリガ信号は、上記第5ポートIOP5と兼用されている。
【0018】
上記タイマB(ITU)の入力端子として、外部クロック入力TCLKA〜TCLKD、及び入出力端子としてインプットキャプチャ/アウトプットコンペア兼用端子としてTIOC0A〜4A、TIOC0B〜4B、TIOC0C、3C、4C及びTIOC0D、3D、4Dを有する。このうち、TIOC3B、TIOC3D、TIOC4A、TIOC4C、TIOC4B、TIOC4Dはモータ制御用の6相出力とされ、U相、U#相、V相、V#相、W相、W#相と称する。ここで、#は論理反転を示している。TCLKAとTCLKB、TCLKCとTCLKDはそれぞれ2相のクロックを入力することができる。
【0019】
上記タイマA及びタイマBのコンペアマッチ信号、オーバーフロー信号、アンダーフロー信号は、A/D変換開始トリガとしてA/D変換器に与えられる。割り込み信号は、A/D変換器、タイマA、タイマB及びシリアルコミュニケーションインターフェイスSCIが出力し、割り込みコントローラINTがこれを受けて、所定のレジスタなどの指定に基づいて、中央処理装置CPUに割込要求信号を与えるか、データトランスファコントローラDTCに起動要求信号を与えるかを制御する。かかる切り換えは、DTEビットによって行われる。つまり、DTEビットが1にセットされている状態で割込要因が発生すると、データトランスファコントローラDTCに対する起動要求信号が発生され、そのデータ転送が行われると自動的に割込要求がクリアされる。一方、DTEビットが0にクリアされている状態で割込要因が発生すると、中央処理装置CPUに対する起動要求信号が発生され、中央処理装置CPUが所望のデータ処理を行い、割込要因を示すビットをクリアする。
【0020】
データトランスファコントローラDTCによるデータ転送時に、所定の条件が成立すると、例えば転送カウンタが0になったりすると、割込要因を示すビットをクリアせずに、対応するDTEビットを0にクリアして、中央処理装置CPUに割込要求を発生するようにする。各割込要因には、独立したDTEビットと独立したベクタが割り当てられている。
【0021】
データ転送装置としては、上記のようなデータトランスファコントローラDTCのほかに、直接メモリアクセス制御装置DMACのようなものを用いるものであってもよい。上記のようなデータトランスファコントローラDTCの例としては、昭和63年12月(株)日立製作所発行「H8/532 ハードウェアマニュアル」などに記載されているものを利用できる。直接メモリアクセス制御装置DMACの例としては、平成5年3月(株)日立製作所発行「H8/3003
ハードウェアマニュアル」などに記載されているものを利用できる。
【0022】
これらのデータ転送装置(DTC/DMAC)は、「H8/3003 ハードウェアマニュアル」又は特願平4−137954号に記載されているように、1回の起動によって、複数単位のデータを転送すること、いわゆるブロック転送モードが可能とされる。これらは、ソースアドレスレジスタSAR、ディスティネーションアドレスレジスタDAR、ブロックサイズカウンタTCRH、ブロックサイズ保持レジスタTCRL、ブロック転送カウンタBTCRを持ち、ブロック単位でのデータ転送を行うことができるようにされる。
【0023】
図2と図3には、この発明に係るタイマB(ITU)の一実施例のブロック図が示されている。図2と図3により上記タイマB(ITU)が構成されるが、これら図2と図3の相互の関係の理解を容易にするため、チャンネル2とチャンネル3,4の一部が重複して描かれている。
【0024】
タイマBは、16ビットタイマにより構成される16ビット構成のインテグレーテッドタイマユニット(ITU)であり、タイマカウンタTCNT0〜4からなる5個のカウンタを有し、5チャンネルから構成される。チャンネル0は、4本のアウトプットコンペアレジスタ/インプットキャプチャレジスタ0A〜0D(TGR0A〜TGR0D)を有する。チャンネル1は、2本のアウトプットコンペアレジスタ/インプットキャプチャレジスタ1A、1B(TGR1A、TGR1B)を有する。いわゆる位相計数モードとして、2相の外部クロックにより、アップダウンを行うことができる。チャンネル2は、2本のアウトプットコンペアレジスタ/インプットキャプチャレジスタ2A、2B(TGR2A、TGR2B)を有する。いわゆる位相計数モードとして、2相の外部クロックにより、アップダウンを行うことができる。
【0025】
チャンネル3は、4本のアウトプットコンペアレジスタ/インプットキャプチャレジスタ3A〜3D(TGR3A〜TGR3D)を有する。チャンネル4は、4本のアウトプットコンペアレジスタ/インプットキャプチャレジスタ4A〜4D(TGR4A〜TGR4D)を有する。上記チャンネル3と4を組み合わせて、いわゆるリセット同期モード及び相補PWMモードを実行することができる。そのほかに共通のレジスタTSTR、TSYRと相補PWMモード用のサブカウンタTCNTS他のレジスタを有する。上記チャンネル0、3、4では、アウトプットコンペアレジスタ/インプットキャプチャレジスタAとC、BとDが後述するようなバッファ動作を可能とされる。
【0026】
上記位相計数モード、リセット同期モード、及びバッファ動作は、上記「H8/3003 ハードウェアマニュアル」pp.307〜415などに記載されている。相補PWMモードのとき、カウンタTCNT3,4は並行なアップ/ダウンカウントを行う。カウンタTCNT4がダウンカウントして0になったときにアンダーフローが発生し、カウンタTCNT3がアップカウントして上記レジスタTGR3Aに格納されるデータに一致したとき、コンペアマッチ3Aを発生する。また、この途中で、上記レジスタTGR3B、TGR3D、TGR4A、TGR4B、TGR4C、TGR4Dのそれぞれに格納されるデータに一致したとき、タイマ出力を変化させる。タイマ出力(U,U#、V,V#、W,W#)は、それぞれ正相/逆相の出力を有する。これによって、相補3相のPWM出力を行うことができる。
【0027】
この実施例のタイマの特徴は、次の通りである。各チャネル共にφ、φ/4、φ/16、φ/64、φ/246、φ/1024、φ/4096のような8種類のカウンタ入力クロックが選択できる。各チャンネル共に、コンペアマッチにより0出力、1出力、トグル出力が選択できる。インプットキャプチャ機能として立ち上がりエッジ、立ち下がりエッジ、両エッジ検出の選択ができる。カウンタクリア動作はコンペアマッチ、又はインプットキャプチャにより可能とされる。同期動作として、複数のタイマカウンタTCNTへの同時書き込み、コンペアマッチ/インプットキャプチャによる同時クリア、カウンタの同期動作による各レジスタの同期入出力が可能とされる。PWMモードとして、任意デューティのPWM出力が可能とされ、同期動作と組み合わせることにより、最大8相のPWM出力が可能とされる。
【0028】
チャンネル0、3及び4はバッファ動作が設定可能とされる。つまり、インプットキャプチャレジスタのダブルバッファ構成が可能にされ、アウトプットコンペアレジスタの自動書き換えが可能にされる。チャンネル1と2は、それぞれ独立に位相計数モード、つまり2相エンコーダパルスのアップダウンカウントが可能とされる。そして、チャンネル2の入力クロックをチャンネル1のオーバーフロー/アンダーフローにすることにより32ビットカウンタとして動作させることができる。
【0029】
チャンネル3と4は、リセット同期モードとしてそれを組み合わせることにより、のこぎり波比較タイプの6相PWM波形を出力することができる。相補PWMモードとしてそれを組み合わせることにより三角波比較タイプのノンオーバーラップを持った6相PWM波形を出力することができる。
【0030】
【表1】
【0031】
タイマコントロールレジスタTCRは、8ビットのレジスタであり、各チャンネル0〜4に対応してそれぞれ設けられ、タイマカウンタTCNTの制御を行うのに用いられる。TCR0、3、4のビット構成は上記表1のようにされ、TCR1、2のビット構成は次の表2のようにされる。
【0032】
【表2】
【0033】
ビット7、6、5(CCLR2〜0)は、カウンタTCNTのカンウタクリア要因を選択する制御ビットであり、チャンネル0,3,4においては、B’000(B’は2進数)ならクリア禁止とされ、B’001ならレジスタTGRAのコンペアマッチ/インプットキャプチャでTCNTクリア、B’010ならレジスタTGRBのコンペアマッチ/インプットキャプチャでTCNTクリア、B’011なら同期クリア/同期動作している他のチャンネルのカウンタによりTCNTクリア、B’100ならレジスタTGRCのコンペアマッチ/インプットキャプチャでTCNTクリア、B’101ならレジスタTGRDのコンペアマッチ/インプットキャプチャでTCNTクリア、B’110と111は予約(設定禁止)とされる。
【0034】
チャンネル1と2では、ビット7は未使用であり、読み出すと1が出力される。チャンネル1と2においては、B’00ならクリア禁止とされ、B’01ならレジスタTGRAのコンペアマッチ/インプットキャプチャでTCNTクリア、B’10ならレジスタTGRBのコンペアマッチ/インプットキャプチャでTCNTクリア、B’11なら同期クリア/同期動作している他のチャンネルのカウンタによりTCNTクリアされる。
【0035】
ビット4、3(CKEG1,0)は、入力クロックのエッジを選択する制御ビットであり、内部クロックのφでカウントするときには、この設定は無効にされる。B’00(初期値)なら立ち上がりエッジでカウント、B’01なら立ち下がりエッジでカウント、B’1−なら両エッジでカウントする。ここで−は0でも1でもよいことを意味している。
【0036】
ビット2、1、0(TPSC2〜0)は、カウンタのクロックを選択する制御ビットであり、チャンネル0においては、B’000なら内部クロックφ、B’001なら内部クロックφ/4、B’010なら内部クロックφ/16、B’011なら内部クロックφ/256、B’100なら外部クロックA(TCLKA端子)、B’101なら外部クロックB(TCLKB端子)、B’110なら外部クロックC(TCLKC端子)、B’111なら外部クロックD(TCLKD端子)が選択される。
【0037】
チャンネル1においては、B’000なら内部クロックφ、B’001なら内部クロックφ/4、B’010なら内部クロックφ/16、B’011なら内部クロックφ/64、B’100なら内部クロックφ/256、B’101ならチャンネル2のTCNTのオーバーフロー/アンダーフロー、B’110なら外部クロックA(TCLKA端子)、B’111なら外部クロックB(TCLKB端子)が選択される。ただし、チャンネル1が位相計数モードのときにはこれらの設定は無効にされる。
【0038】
チャンネル2においては、B’000なら内部クロックφ、B’001なら内部クロックφ/4、B’010なら内部クロックφ/16、B’011なら内部クロックφ/64、B’100なら内部クロックφ/1024、B’101なら外部クロックA(TCLKA端子)、B’110なら外部クロックB(TCLKB端子)、B’111なら外部クロックC(TCLKC端子)が選択される。ただし、チャンネル2が位相計数モードのときにはこれらの設定は無効にされる。
【0039】
チャンネル3と4においては、B’000なら内部クロックφ、B’001なら内部クロックφ/4、B’010なら内部クロックφ/16、B’011なら内部クロックφ/64、B’100なら内部クロックφ/256、B’101なら内部クロックφ/1024、B’110なら外部クロックA(TCLKA端子)、B’111なら外部クロックB(TCLKB端子)が選択される。
【0040】
タイマモードレジスタTMDRは、8ビットのリード/ライト可能なレジスタであり、各チャンネルの動作モードの設定を行う。そのビット構成は、表3に示す通りである。このうち、7、6ビットは未使用(予約ビット)であり、リードすると1が出力され、ライトのときには1を書き込みようにする。
【0041】
【表3】
【0042】
ビット5(BFB)は、レジスタTGRBを通常動作させるかTGRBとTGRDを組み合わせてバッファ動作とするかを設定する。TGRDを持たないチャンネルではこのビットは未使用となる。ビット4(BFA)は、レジスタTGRAを通常動作させるかTGRAとTGRCを組み合わせてバッファ動作とするかを設定する。TGRCを持たないチャンネルではこのビットは未使用となる。
【0043】
ビット3〜0(MD3〜0)は、タイマの動作モードを設定する制御ビットである。チャンネル0、3、4では位相計数モードの設定はできない。チャンネル0、1、2、4では、リセット同期PWMモード、相補PWMモードの設定はできない。ビット3には常に0を書き込みようにする。チャンネル3をリセット同期PWMモードあるいは相補PWMモードに設定した場合、チャンネル4の設定は無効になり、上記チャンネル3の設定に従うようにされる。
【0044】
B’0000なら通常動作、B’0001は予約(設定禁止)、B’0010ならPWMモード1、B’0011ならPWMモード2、B’0100なら位相計数モード1、B’0101なら位相計数モード2、B’0110なら位相計数モード3、B’0111なら位相計数モード4、B’1000ならリセット同期PWMモード、B’1001、B’1010、B’1011、B’1100は予約(設定禁止)、B’1101なら相補PWMモード(山で転送)B’1110なら相補PWMモード(谷で転送)B’1111なら相補PWMモード(山・谷で転送)となる。
【0045】
タイマI/OコントロールレジスタTIORは、8ビットのレジスタであり、各チャンネルで各チャンネルのレジスタTGRの機能を制御する。チャンネル0、3、4には各2本(TIOR0H,L、TIOR3H,L、TIOR4H,L)と、チャンネル1と2に各1本(TIOR1,TIOR2)の合計8本が設けられる。そのビット構成を表4に示す。
【0046】
【表4】
【0047】
チャンネル0において、TIOR0HはTGR0Aと0Bの機能の制御、TIOR0LはTGR0Cと0Dの機能の制御に用いられる。チャンネル3において、TIOR3HはTGR3Aと3Bの機能の制御、TIOR3LはTGR3Cと3Dの機能の制御に用いられる。チャンネル4において、TIOR4HはTGR4Aと4Bの機能の制御、TIOR4LはTGR4Cと4Dの機能の制御に用いられる。チャンネル1において、TIOR1はTGR1Aと1Bの機能の制御に用いられる。チャンネル2において、TIOR2はTGR2Aと2Bの機能の制御に用いられる。チャンネル0、3、4のTGRC又はTGRDをバッファモードに設定した時には、TIORの設定にかかわらずにバッファレジスタとして動作する。
【0048】
レジスタTIORnHはTGRnAとnB(nは0、3、4)の機能制御を行い、TIORnLはTGRnCとnD(nは0、3、4)の機能制御を行うようにされる。ビット7〜4(IOB3〜0)は、レジスタTGRBとTGRDの機能制御を設定する。B’0000〜0111のときにTGRBとTGRDはアウトプットコンペアレジスタとして使用され、B’0000なら出力禁止(初期値)、B’0001なら初期出力が0でコンペアマッチで0を出力、B’0010なら初期出力が0でコンペアマッチで1を出力、B’0011なら初期出力が0でコンペアマッチでトグル出力とされる。B’0100なら出力禁止(初期値)、B’0101なら初期出力が1でコンペアマッチで0を出力、B’0110なら初期出力が1でコンペアマッチで1を出力、B’0111なら初期出力が1でコンペアマッチでトグル出力とされる。
【0049】
B’1000〜1111のときにTGRBとTGRDはインプットキャプチャレジスタとして使用され、B’1000ならキャプチャ入力元は端子(TIOCnB,TIOCnD)で立ち上がりエッジでインプットキャプチャ、B’1001ならキャプチャ入力元は端子で立ち下がりエッジでインプットキャプチャ、B’1010とB’1011ならキャプチャ入力元は端子で両エッジでインプットキャプチャとされる。B’1100ならキャプチャ入力元はチャンネル1に供給される外部クロックの立ち上がりエッジでインプットキャプチャ、B’1101ならキャプチャ入力元はチャンネル1/外部クロックの立ち下がりエッジでインプットキャプチャ、B’1110とB’1111ならキャプチャ入力元はチャンネル1に供給される外部クロックの両エッジでインプットキャプチャとされる。
【0050】
ビット3〜0(IOA3〜0)は、レジスタTGRAとTGRCの機能制御を設定する。B’0000〜0111のときにTGRAはアウトプットコンペアレジスタとして使用され、B’0000なら出力禁止(初期値)、B’0001なら初期出力が0でコンペアマッチで0を出力、B’0010なら初期出力が0でコンペアマッチで1を出力、B’0011なら初期出力が0でコンペアマッチでトグル出力とされる。B’0100なら出力禁止(初期値)、B’0101なら初期出力が1でコンペアマッチで0を出力、B’0110なら初期出力が1でコンペアマッチで1を出力、B’0111なら初期出力が1でコンペアマッチでトグル出力とされる。
【0051】
B’1000〜1111のときにTGRAとTGRCはインプットキャプチャレジスタとして使用され、B’1000ならキャプチャ入力元の端子に供給されるクロックの立ち上がりエッジでインプットキャプチャ、B’1001ならキャプチャ入力元は端子に供給されるクロックの立ち下がりエッジでインプットキャプチャ、B’1010とB’1011ならキャプチャ入力元は端子に供給れるクロックの両エッジでインプットキャプチャとされる。B’1100ならキャプチャ入力元はチャンネル1に供給される外部クロックの立ち上がりエッジでインプットキャプチャ、B’1101ならキャプチャ入力元はチャンネル1に供給される外部クロックの立ち下がりエッジでインプットキャプチャ、B’1110とB’1111ならキャプチャ入力元はチャンネル1に供給さる外部クロックの両エッジでインプットキャプチャとされる。
【0052】
レジスタTIOR1(TIOR2)はTGR1B(TGR2B)の機能制御を行うようにされる。ビット7〜4(IOB3〜0)は、レジスタTGR1B(TGR2B)の機能制御を設定する。B’0000〜0111のときにTGR1B(TGR2B)はアウトプットコンペアレジスタとして使用され、B’0000なら出力禁止(初期値)、B’0001なら初期出力が0でコンペアマッチで0を出力、B’0010なら初期出力が0でコンペアマッチで1を出力、B’0011なら初期出力が0でコンペアマッチでトグル出力とされる。B’0100なら出力禁止(初期値)、B’0101なら初期出力が1でコンペアマッチで0を出力、B’0110なら初期出力が1でコンペアマッチで1を出力、B’0111なら初期出力が1でコンペアマッチでトグル出力とされる。
【0053】
B’1000〜1111のときにTGR1B(TGR2B)はインプットキャプチャレジスタとして使用され、B’1000ならキャプチャ入力元の端子に供給されるクロックの立ち上がりエッジでインプットキャプチャ、B’1001ならキャプチャ入力元は端子に供給されるクロックの立ち下がりエッジでインプットキャプチャ、B’1010とB’1011ならキャプチャ入力元は端子に供給れるクロックの両エッジでインプットキャプチャとされる。B’1100ならキャプチャ入力元はチャンネル1に供給される外部クロックの立ち上がりエッジでインプットキャプチャ、B’1101ならキャプチャ入力元はチャンネル1に供給される外部クロックの立ち下がりエッジでインプットキャプチャ、B’1110とB’1111ならキャプチャ入力元はチャンネル1に供給される外部クロックの両エッジでインプットキャプチャとされる。
【0054】
ビット3〜0(IOA3〜0)は、レジスタTGR1A(TGR2A)の機能制御を設定する。B’0000〜0111のときにTGR1A(TGR2A)はアウトプットコンペアレジスタとして使用され、B’0000なら出力禁止(初期値)、B’0001なら初期出力が0でコンペアマッチで0を出力、B’0010なら初期出力が0でコンペアマッチで1を出力、B’0011なら初期出力が0でコンペアマッチでトグル出力とされる。B’0100なら出力禁止(初期値)、B’0101なら初期出力が1でコンペアマッチで0を出力、B’0110なら初期出力が1でコンペアマッチで1を出力、B’0111なら初期出力が1でコンペアマッチでトグル出力とされる。
【0055】
B’1000〜1111のときにTGR1A(TGR2A)はインプットキャプチャレジスタとして使用され、B’1000ならキャプチャ入力元の端子に供給されるクロックの立ち上がりエッジでインプットキャプチャ、B’1001ならキャプチャ入力元は端子に供給されるクロックの立ち下がりエッジでインプットキャプチャ、B’1010とB’1011ならキャプチャ入力元は端子に供給されるクロックの両エッジでインプットキャプチャとされる。B’1100ならキャプチャ入力元はチャンネル1に供給される外部クロックの立ち上がりエッジでインプットキャプチャ、B’1101ならキャプチャ入力元はチャンネル1に供給される外部クロックの立ち下がりエッジでインプットキャプチャ、B’1110とB’1111ならキャプチャ入力元はチャンネル1に供給される外部クロックの両エッジでインプットキャプチャとされる。
【0056】
タイマインタラプトイネーブルレジスタTIERは、8ビットのレジスタであり、オーバーフロー割り込み要求、ジェネラルレジスタ(TGR)のコンペアマッチ/インプットキャプチャ割り込み要求及びA/D変換開始要求信号の発生の許可/禁止を制御する。各チャンネル0〜4に1本ずつ合計5本のレジスタTIER0〜4が設けられる。TIER0、3、4のビット構成を表5に、TIER1、2のビット構成を表6に示す。
【0057】
【表5】
【0058】
【表6】
【0059】
ビット7(TTGE)は、レジスタTGRAのインプットキャプチャ/コンペアマッチ(チャンネル4はカウンタのオーバーフロー/アンダーフロー)によって、0ならA/D変換開始要求の発生を禁止、1ならA/D変換開始要求の発生を許可する。ビット6は未使用であり、読み出すと1が出力される。
【0060】
ビット5(TCIEU)は、アンダーフローインタラプトイネーブルであり、チャンネル1、2でタイマステータスレジスタTSRのアンダーフローフラグ(TCFU)が1にセットされたとき、かかるTCFUによる割り込み要求を0なら禁止し、1なら許可する。
【0061】
ビット4(TCIEV)は、オーバーフローインタラプトイネーブルであり、チャンネル1、2でタイマステータスレジスタTSRのオーバーフローフラグ(TCFV)が1にセットされたとき、かかるTCFVによる割り込み要求を0なら禁止し、1なら許可する。
【0062】
ビット3(TGIED)は、TGRインタラプトイネーブルDであり、チャンネル0、3、4においてタイマステータスレジスタTSRのTGFDが1にセットされたとき、かかるTGFDビットによる割り込み要求を0なら禁止し、1なら許可する。チャンネル1と2は未使用とされ、読み出すと1が出力される。
【0063】
ビット2(TGIEC)は、TGRインタラプトイネーブルCであり、チャンネル0、3、4においてタイマステータスレジスタTSRのTGFCが1にセットされたとき、かかるTGFCビットによる割り込み要求を0なら禁止し、1なら許可する。チャンネル1と2は未使用とされ、読み出すと1が出力される。
【0064】
ビット1(TGIEB)は、TGRインタラプトイネーブルBであり、チャンネル0〜4においてタイマステータスレジスタTSRのTGFBが1にセットされたとき、かかるTGFBビットによる割り込み要求を0なら禁止し、1なら許可する。
【0065】
ビット0(TGIEA)は、TGRインタラプタイネーブルAであり、チャンネル0〜4においてタイマステータスレジスタTSRのTGFAが1にセットされたとき、かかるTGFAビットによる割り込み要求を0なら禁止し、1なら許可する。
【0066】
タイマーステータスレジスタTSRは、8ビットのレジスタであり、各チャンネル0〜4に1本ずつ合計5本のレジスタTSR0〜4が設けられる。TSR0のビット構成を表7に、TSR1,2のビット構成を表8に、TSR3,4のビット構成を表9にそれぞれ示す。
【0067】
【表7】
【0068】
【表8】
【0069】
【表9】
【0070】
ビット7(TCFD)はカウント方向フラグであり、チャンネル1〜4のTCNTのカウント方向を示すステータスフラグである。チャンネル0では未使用であり、読み出すと1が出力される。TCFDが0ならダウンカウントを示し、1ならアップカウントを示している。ビット6はチャンネル0〜4において未使用であり、読み出すと1が出力される。
【0071】
ビット5(TCFU)はアンダーフローフラグであり、チャンネル1と2のTCNTのアンダーフローの発生を示し、チャンネル0、3、4では未使用とされる。それ故、読み出すと上記のように1が出力される。かかるフラグTCFUのクリア条件は、TCFU=1の状態でTCFUを読み出した後にTCFUに0を書き込んだときである。1にされるセット条件は、TCNTの値がアンダーフロー(B’0000→B’FFFF)したときである。
【0072】
ビット4(TCFV)はTCNTのオーバーフローフラグの発生を示すスタータスフラグであり、クリア条件は、TCFV=1の状態でTCFVを読み出した後にTCFVに0を書き込んだときであり、1にされるセット条件は、TCNTの値がオーバーフロー(B’FFFF→B’0000)したときである。
【0073】
ビット3(TGFD)はインプットキャプチャ/アウトプットコンペアフラグDであり、チャンネル0、3、4のTGRDのインプットキャプチャ又はコンペアマッチの発生を示すスタータスフラグである。チャンネル1と2は未使用であり、読み出すと1が出力される。0のクリア条件は、TGFD=1の状態でTGFDを読み出した後にTGFDに0を書き込んだときである。1にセットされる条件は、(1)TGRDがアウトプットコンペアレジスタとして機能している場合、TCNT=TGRDになったとき、(2)TGRDがインプットキャプチャレジスタとして機能している場合、インプットキャプチャ信号によりTCNTの値がTGRDに転送されたときである。
【0074】
ビット2(TGFC)はインプットキャプチャ/アウトプットコンペアフラグCであり、チャンネル0、3、4のTGRCのインプットキャプチャ又はコンペアマッチの発生を示すステータスフラグである。チャンネル1と2は未使用であり、読み出すと1が出力される。0のクリア条件は、TGFC=1の状態でTGFCを読み出した後にTGFCに0を書き込んだときである。1にされるセット条件は、(1)TGRCがアウトプットコンペアレジスタとして機能している場合、TCNT=TGRCになったとき、(2)TGRCがインプットキャプチャレジスタとして機能している場合、インプットキャプチャ信号によりTCNTの値がTGRCに転送されたときである。
【0075】
ビット1(TGFB)はインプットキャプチャ/アウトプットコンペアフラグCであり、チャンネル0〜4のTGRBのインプットキャプチャ又はコンペアマッチの発生を示すステータスフラグである。0のクリア条件は、TGFB=1の状態でTGFBを読み出した後にTGFBに0を書き込んだときである。1にセットされる条件は、(1)TGRBがアウトプットコンペアレジスタとして機能している場合、TCNT=TGRBになったとき、(2)TGRBがインプットキャプチャレジスタとして機能している場合、インプットキャプチャ信号によりTCNTの値がTGRBに転送されたときである。
【0076】
ビット0(TGFA)はインプットキャプチャ/アウトプットコンペアフラグCであり、チャンネル0〜4のTGRAのインプットキャプチャ又はコンペアマッチの発生を示すステータスフラグである。0のクリア条件は、TGFA=1の状態でTGFAを読み出した後にTGFAに0を書き込んだときである。1にセットされる条件は、(1)TGRAがアウトプットコンペアレジスタとして機能している場合、TCNT=TGRAになったとき、(2)TGRAがインプットキャプチャレジスタとして機能している場合、インプットキャプチャ信号によりTCNTの値がTGRAに転送されたときである。
【0077】
タイマカウンタTCNTは、16ビットのカウンタであり、常に16ビットの単位でアクセスされ、各チャンネル0〜4に1本、合計で5本のタイマカンウタTCNT0〜4が設けられている。TCNT0はアップカウンタ、TCNT1,2は位相計数モードのときアップ/ダウンカウンタであり、その他はアップカンタである。TCNT3,4は相補PWMモードのときアップ/ダウンカンウタであり、それ以外はアップカンウタである。
【0078】
ジェネラルレジスタTGRは、16ビットのレジスタであり、チャンネル0、3、4に各4本、チャンネル1と2に各2本の合計16本が設けられている。チャンネル0、3、4においては、アウトプットコンペア/インプットキャプチャ兼用レジスタであり、TGRCとTGRA、TGTDとTGRBの組み合わせでバッファ動作が設定可能にされる。チャンネル1と2においては、TGRAとTGRBはアウトプットコンペア/インプットキャプチャ兼用レジスタとされる。
【0079】
タイマスタートレジスタTSTRは、8ビットのレジスタであり、チャンネル0〜4のカンウタTCNTの動作/停止を選択する。そのビット構成は表10に示す。各ビット(ビット5、4、3は未使用)において0のときタイマカウンタTCNTを停止、1のときにカウンタ動作させる。
【0080】
【表10】
【0081】
【表11】
【0082】
タイマシンクロレジスタTSYRは、8ビットのレジスタであり、チャンネル0〜4のタイマカウンタTCNT0〜4の独立動作/同期動作を選択する。対応するビットを1にセットしたチャンネルが同期動作を行う。そのビット構成を上記表11に示す。
【0083】
ビット5〜3を除いた各ビットのSYNC4〜0はチャンネル4〜0の独立動作/同期動作を選択する。これらのビットが0なら、対応するチャンネルのタイマカウンタTCNT4〜0は独立動作(TCNT4〜0の書き込み/クリアは他のチャンネルと無関係)、1ならチャンネル4〜0は同期動作とされ、TCNT4〜0の同期書き込み/同期クリアが可能にされる。同期書き込みは、同期動作を指定した1本のTCNTへの書き込み行うと、同期動作を指定した他のカウンタへも同じ値が書き込まれる。同期クリアは、同期動作を指定した1本のTCNTのクリア条件が発生すると、同期動作を指定されたその他のカウンタもクリアされる。
【0084】
タイマアウトプットマスタイネーブルレジスタTOERは、8ビットのレジスタであり、チャンネル3と4の出力設定の許可/禁止を行う。そのビット構成を表12に示す。ビット7と6は未使用であり、リードすると1が出力される。ライトのときには1を書き込むようにする。
【0085】
【表12】
【0086】
ビット5(OE4D)が0ならTIOC4D端子のITU出力は禁止され(入出力ポートとして動作)、1ならTIOC4D端子のITU出力が許可される。ビット4(OE4C)が0ならTIOC4C端子のITU出力は禁止され(入出力ポートとして動作)、1ならTIOC4C端子のITU出力が許可される。ビット3(OE3D)が0ならTIOC3D端子のITU出力は禁止され(入出力ポートとして動作)、1ならTIOC3D端子のITU出力が許可される。ビット2(OE4B)が0ならTIOC4B端子のITU出力は禁止され(入出力ポートとして動作)、1ならTIOC4B端子のITU出力が許可される。ビット1(OE4A)が0ならTIOC4A端子のITU出力は禁止され(入出力ポートとして動作)、1ならTIOC4A端子のITU出力が許可される。ビット0(OE3B)が0ならTIOC3B端子のITU出力は禁止され(入出力ポートとして動作)、1ならTIOC3B端子のITU出力が許可される。
【0087】
タイマアウトプットコントロールレジスタTOCRは、8ビットのレジスタであり、相補PWMモード/リセット同期PWMモード出力の外部トリガによる出力禁止、PWM周期に同期したトグル出力の許可/禁止及びPWM出力の出力レベル反転の制御を行う。そのビット構成を表13に示す。
【0088】
【表13】
【0089】
ビット7(PSYN1)はPWM同期出力の制御を行い、0のときにはPWM出力がオフされたとき、そのときの出力中のレベルを保持する。1のときにはPWM出力がオフされとき、チャンネル3,4のタイマカウンタTCNT3,4を停止しなければカウンタの動作に同期して出力する。つまり、PWM出力オフによる影響を受けない。ビット6(PSYN0)はPWM周期に同期したドグル出力の禁止/許可を設定するものであり、0のときにはPWM周期に同期したトグル出力を禁止し、1のときにはPWM周期に同期したトグル出力を許可する。
【0090】
ビット5(TPIE)はPWM出力遮断割り込みイネーブルであり、リセット同期PWMモード/相補PWMモード時のITUの外部トリガによる出力遮断信号の入力時の割り込み要求(TPISD)を許可/禁止の設定を行う。つまり、0のときには外部トリガ入力時のPWM出力遮断割り込み要求(TPISD)を禁止し、1なら許可する。
【0091】
ビット4(XTGD)は外部トリガデスエーブルであり、リセット同期PWMモード/相補PWMモード時のITUの外部トリガの禁止を設定する。つまり、0のときには外部トリガ入力を禁止し、1ならTIOC3C端子はITU出力を禁止するための外部トリガ入力端子とされる。
【0092】
ビット3(XTEG)は外部トリガエッジであり、リセット同期PWMモード/相補PWMモード時のITUの外部トリガのエッジを設定する。つまり、0のときには立ち上がりエッジで出力を遮断し、1なら立ち下がりエッジで出力を遮断する。
【0093】
ビット2(POFF)はPWM出力OFFフラグであり、リセット同期PWMモード/相補PWMモード時のITU出力をオフ(OFF)されたときにセットされる。そのクリアは、タイマ出力(クリア条件)POFF=1の状態でリードした後に0をラトしたときである。遮断データ出力(セット条件)は、(1)1をライトしたとき、(2)XTGD=0のときTIOC3Cに指定したトリガが入力されたときである。
【0094】
ビット1と0(OLS0,1)は出力レベルセレクト4,3であり、リセット同期PWMモード/相補PWMモードの出力レベルを選択する。各端子の初期設定は、TIOC3B、TIOC4A、TIOC4Bの各出力レベルは、カウンタ4とアップカウンタ時コンペアマッチを発生すると0出力、カウンタ4とダウンカウンタ時コンペアマッチを発生すると1出力に、TIOC3D、TIOC4C、TIOC4Dの出力レベルは、カウンタ3とアップカウンタ時コンペアマッチを発生すると1出力、カウンタ3とダウンカウンタ時コンペアマッチを発生すると0出力になる。
【0095】
【表14】
【0096】
タイマ出力遮断データレジスタTOSRは、8ビットのレジスタであり、リセット同期PWMモード/相補PWMモードの時、TOCR/POFFビットが1にセットされたとき本レジスタの設定値が出力される。そのビット構成を上記表14に示す。ビット7と6は未使用とされ、リードすると1が出力され、ライトのときには1にする。
【0097】
ビット5(OS4D)は、TIOC4D端子の遮断出力データを設定し、0ならTIOC4D端子の遮断出力は0となり、1ならTIOC4D端子の遮断出力は1となる。ビット4(OS4C)は、TIOC4C端子のITU出力の許可/禁止を設定し、0ならTIOC4C端子の遮断出力は0となり、1ならTIOC4C端子の遮断出力は1となる。ビット3(OS3D)は、TIOC3D端子の遮断出力データを設定し、0ならTIOC3D端子の遮断出力は0となり、1ならTIOC3D端子の遮断出力は1となる。
【0098】
ビット2(OS4B)は、TIOC4B端子の遮断出力データを設定し、0ならTIOC4B端子の遮断出力は0となり、1ならTIOC4B端子の遮断出力は1となる。ビット1(OS4A)は、TIOC4A端子の遮断出力データを設定し、0ならTIOC4A端子の遮断出力は0となり、1ならTIOC4A端子の遮断出力は1となる。ビット0(OS3B)は、TIOC3B端子の遮断出力データを設定し、0ならTIOC3B端子の遮断出力は0となり、1ならTIOC3B端子の遮断出力は1となる。
【0099】
タイマゲートコントロールレジスタTGCRは、8ビットのレジスタであり、リセット同期PWMモード/相補PWMモードの時、ブラシレスDCモータ制御に必要な波形出力の制御を行う。そのビット構成を表15に示す。ビット7は未使用とされ、リードすると1が出力され、ライトのときには1にする。
【0100】
【表15】
【0101】
ビット6(BDC)は、ブラシレスDCモータであり、ブラシレスDCモータ制御のためのゲート信号出力、チョッピング出力の機能を選択する。かかるBDCが0なら通常出力とされ、1ならブラシレスDCモータ用ゲート信号/チョッピング出力とされる。ビット5(N)は、逆相出力であり、逆相端子の出力にゲート信号を出力するか、ゲート信号とリセット同期PWM/相補PWM出力をチョッピングして出力するか選択する。つまり、Nが0なら逆相端子出力にゲート信号を直接出力し、1なら逆相端子出力にゲート信号とリセット同期PWM/相補PWM出力をチャッピングして出力する。ビット4(P)は、正相出力であり、正相端子の出力にゲート信号を出力するか、ゲート信号とリセット同期PWM/相補PWM出力をチョッピングして出力するか選択する。つまり、Pが0なら正相端子出力にゲート信号を直接出力し、1なら正相端子出力にゲート信号とリセット同期PWM/相補PWM出力をチャッピングして出力する。
【0102】
ビット3(FB)は、帰還入力であり、ゲート信号を生成するための帰還入力を外部入力とするかレジスタ入力とするかを選択する。かかるFBが0なら帰還入力は外部入力(入力元はチャンネル0のTGRA、TGRB、TGRCのインプットキャプチャ信号)、1なら帰還入力はレジスタ入力(TGCRのUF,VF,WFの設定値)とされる。ビット2〜0のWF,VF,UFは上記帰還入力データの設定である。
【0103】
サブカウンタTCNTSは、16ビットのアップダウンカウンタであり、チャンネル3に1本設けられている。このカウンタTCNTSは、相補PWMモードに設定したときにのみ有効であり、リード専用とカウンタとされる。
【0104】
デッドタイムレジスタTDDRは、16ビットのレジスタであり、3 チャンネルに1本設けられている。このレジスタTDDRは、相補PWMモード時のみ有効なレジスタであり、相補PWMモード時のTCNT3とTCNT4のオフセット値を設定する。相補PWMモード時にTCNT3とTCNT4をクリアして再スタートするときは、TDDRの値がTCNT3にロードされてカウント動作を開始する。このレジスタTDDRの8ビット単位でのアクセスは禁止され、常に16ビット単位でアクセスされる。
【0105】
PWMキャリア周期レジスタTCDRは16ビットのレジスタであり、チャンネル3に1本設けられている。このレジスタTCDRは、相補PWMモード時のみ有効なレジスタであり、相補PWMモード時にTCNT4にセットされている値と常時比較され、一致するとTCNT3,TCNT4はダウンカウントに切り替わる。三角波を生成する場合は、TCDRに1/2PWM周期を設定する。このレジスタTCDRは、CPUによりライトすることは出来ない。このレジスタTCDRのバッファレジスタであるTCBRに値を設定すると、相補PWMモード設定時に選択した転送タイミングで転送される。
【0106】
PWMキャリア周期バッファレジスタTCBRは16ビットのレジスタであり、チャンネル3に1本設けられている。このレジスタTCDRは、相補PWMモード時のみ有効なレジスタであり、相補PWMモード時にTCDRのバッファレジスタとして機能する。このレジスタTCBRに値を設定すると、相補PWMモード設定時に選択した転送タイミングでTDCRに転送される。
【0107】
上記のタイマにおける動作概略は、次の通りである。
(1)通常動作
各チャンネル0〜4には、タイマカウンタTCNTとジェネラルレジスタTGRが設けられている。タイマカウンタTCNTは、アップ/ダウンカウント動作を行い、フリーランニング動作、周期カウント動作、又は外部イベントカウント動作が可能である。ジェネラルレジスタTGRは、それぞれインプットキャプチャレジスタ又はアウトプットコンペアレジスタとして使用することができる。
【0108】
(2)同期動作
同期動作を設定したチャンネルのタイマカウンタTCNTは、同期プリセット動作を行う。すなわち、同期動作に設定されたチャンネルのうち任意のTCNTを書き換えると他のチャンネルのTCNTも同時に書き換えられる。また、同期動作に設定された複数のチャンネルのTSYRのタイマ同期ビットの設定により、TCNTの同期クリアが可能である。
【0109】
(3)バッファ動作
ジェネラルレジスタTGRAとTGRC、TGRBとTGRDの組み合わせでバッファ動作をさせることができる。TGRCがTGRAのバッファレジスタとして機能し、TGRDがTGRBのバッファレジスタとして機能する。
【0110】
(4)カスケード接続機能
チャンネル1のタイマカウンタTCNT1とチャンネル2のタイマカウンタTCNT2を接続して32ビットカウンタとして動作させることができる。
【0111】
(5)PWMモード
PWM波形を出力するモードであり、出力レベルはTIORにより設定される。各ジェネラルレジスタTGRの設定により、デューティ0%〜100%のPWM波形が出力できる。
【0112】
(6)位相計数モード
チャンネル1と2で外部クロック入力端子から入力される2つのクロックの位相を検出して、TCNTのアップ/ダウンさせるモードである。位相計数モードに設定すると、対応するTCLK端子はクロック入力となり、またTCNTはアップ/ダウンカウント動作を行い、2相エンコーダパルスの入力として使用できる。
【0113】
(7)リセット同期PWMモード
チャンネル3と4を組み合わせて、正相・逆相のPWM波形を3相出力する。3相のPWM波形は、一方の変化点が共通となる関係になる。リセット同期PWMモードに設定すると、ジェネラルレジスタTGR3A,TGR3B,TGR4A,TGR4Bは自動的にアウトプットコンペアレジスタとして機能する。また、TIOC3A,TIOC3B,TIOC4A,TIOC4B,TIOD4C,TIOC4Dの各端子は、自動的にPWM出力端子となり、TCNT3はアップカウント動作を行い、TCNT4は独立に動作する。ただし、TGR4A〜Bとは切り離されている。
【0114】
(8)相補PWMモード
チャンネル3と4を組み合わせて、正相・逆相がノンオーバーラップの関係にあるPWM波形を3相出力する。相補PWMモードに設定すると、ジェネラルレジスタTGR3A,TGR3B,TGR4A,TGR4Bは自動的にアウトプットコンペアレジスタとして機能する。また、TIOC3A,TIOC3B,TIOC4A,TIOC4B,TIOD4C,TIOC4Dの各端子は、自動的にPWM出力端子となり、TCNT3とTCNT4はアップ/ダウンカウント動作を行う。
【0115】
上記バッファ動作は、ジェネラルレジスタTGRA〜TGRDまで4本あるチャンネル0、3、4が持つ機能である。バッファ動作は、インプットキャプチャ機能時、コンペア機能時のそれぞれで動作内容が異なる。バッファ動作時のレジスタの組み合わせは前記の通りである。
【0116】
図4には、ジェラルレジスタがアウトプットコンペアレジスタの場合のバッファ動作構成図が示されている。ジェネラルレジスタとTCNTが比較器により比較され、コンペアマッチが発生すると、信号転送路としてのバッファ回路が活性化されて当該チャンネルのバッファレジスタの値がジェネラルレジスタに転送される。
【0117】
図5には、ジェラルレジスタがインプットキャプチャレジスタの場合のバッファ動作構成図が示されている。インプットキャプチャ信号によりバッファ回路が活性化されて、カウンタTCNTの値をジェネラルレジスタに転送すると同時に、それまで格納されていたジェネラルレジスタの値がバッファレジスタに転送される。
【0118】
図6には、バッファ動作の設定手順を説明するためのフローチャート図が示されている。ジェネラルレジスタの機能をタイマI/OコントロールレジスタTIORに設定する。次に、TFCRのバッファ動作ビットを設定し、TSTRのCSTビットを設定してカウント動作を開始させる。
【0119】
図7には、バッファ動作の一例を説明するためのタイミング図が示されている。同図においては、チャンネル0をPWMモードに設定し、ジェネラルレジスタTGR0AとTGR0Cをバッファ動作に設定した場合が示されている。同図においては、TCNTはコンペアマッチB(TGR0Bの値)によりクリアされ、出力はコンペアマッチA(TGR0Aの値)で1出力、コンペアマッチBで0出力するようにされる。上記のようなバッファ動作が設定されていると、コンペアマッチAが発生すると、出力を1に変化させると同時にバッファレジスタTGR0Cの値(B’0200)がジェネラルレジスタTGR0Aに転送される。この動作は、上記コンペアマッチAが発生する度に繰り返して行われる。
【0120】
図8には、バッファ動作の他の一例を説明するためのタイミング図が示されている。同図においては、ジェネラルレジスタTGRAをインプットキャプチャレジスタに設定し、かかるTGRAとTGRCをバッファ動作に設定した場合が示されている。同図におては、TCNTはTGRAのインプットキャプチャでカウンタクリア、TIOCA端子のインプットキャプチャ入力エッジは立ち上がりエッジ/立ち下がりエッジの両エッジが選択されている。上記のようなバッファ動作が設定されているため、インプットキャプチャAによりTCNTの値がTGRAに格納される同時に、それまでTGRAに格納されていた値がTGRCに転送される。
【0121】
図9には、カスケード接続機能の設定手順を説明するためのフローチャート図が示されている。タイマ動作モード設定では、各チャンネルの動作モードを設定する。次に、カスケード接続設定はTCRのタイマプリスケーラビットを設定することにより行われる。そして、TSTRのCSTビットを設定してカウント動作を開始させる。
【0122】
図10には、カスケード接続動作の一例を説明するためのタイミング図が示されている。同図では、通常動作モード(TGRはコンペアマッチレジスタに設定)時で、チャンネル1はTCNT2のオーバーフローでカウント動作し、チャンネル2は内部クロックφ/16の両エッジをカウントするような動作を行う。つまり、TCNT2クロックの立ち下がりでタイマカウンタTCNT2はB’FFFF→B’0000になり、TCNT1クロックを発生させる。これにより、タイマカウンタTCNT1はB’0001→B’0002に変化する。レジスタTGR1AにB’0001が格納されているので、コンペアマッチ信号が発生される。
【0123】
図11には、カスケード接続動作の他の一例を説明するためのタイミング図が示されている。同図では、通常動作モード(TGRはキャプチャレジスタに設定)時で、チャンネル1はTCNT2のオーバーフローでカウント動作し、チャンネル2は内部クロックφ/16の両エッジをカウントするような動作を行う。つまり、TCNT2クロックの立ち下がりでタイマカウンタTCNT2はB’FFFF→B’0000になり、TCNT1クロックを発生させる。これにより、タイマカウンタTCNT1はB’03A1→B’03A2に変化する。キャプチャ入力TIOCA1とTIOC2Aが入力されると、レジスタTGR1AにはTCNT1の計数値B’03A2が格納され、レジスタTGR2AにTCNT2の計数値B’0001が格納される。
【0124】
図12には、カスケード接続動作の更に他の一例を説明するためのタイミング図が示されている。同図では、位相計数モード時で、チャンネル1は通常モード/TCNT2のオーバーフロー/アンダーフローでカウント動作し、チャンネル2は位相計数モード/TCLKA,TCLKBに入力される外部クロックの位相差でアップ/ダンウカウントを行う。つまり、TCNT2はTCLKAの位相が進んでいるときには、B’FFFD→B’FFFE→B’FFFF→B’0000のようなアップ計数動作を行い、このオーバーフローによりTCNT1はB’0000→B’0001のアップ計数動作を行う。そして、その計数値がB’0002になったときに、TCNT2はTCLKAの位相が遅れると、B’0002→B’0001→B’0000→B’FFFFのようなダウン計数動作を行い、このアンダーフローによりTCNT1はB’0001→B’0000のようなダウン計数動作を行う。このようなカスケード接続により、位相計数モードのダイナミックレンジを広げることができる。
【0125】
PWMモードは出力端子よりそれぞれPWM波形出力を出力する。カウンタのクリア又はオーバーフローによって各端子の出力値はTOIRで指定した初期値が出力される。各レジスタのコンペアマッチによるレベルは0出力、1出力、トグル出力のなかから選択できる。初期値とコンペアマッチとの出力レベルを同じにすると、出力レベルが変化しないためにPWM波形出力にはならない。TGRのコンペアマッチをTCNTのカウンタクリア要因とすることにより、そのレジスタに周期を設定することができる。PWMモードでは、デューティ0〜100%のPWM波形を出力することができる。全チャンネル独立にPWMモードに設定でき、同期動作も可能である。PWMモード1は、TGRAとTGRBと、TGRCとTGRDをペアで使用してPWM波形を生成し、最大8本のPWM波形出力が可能である。PWMモード2は、TGRの1本を専用周期レジスタとし、他をPWM出力に使用する。同期動作と併用することにより最大15相補のPWM波形出力が可能となる。
【0126】
図13には、PWMモードの設定手順を説明するためのフローチャート図が示されている。第1に、TCRのTPSC2〜0ビットを設定してカウンタクロックの選択を行う。第2に、上記TCRのCCLR1,CCLR0ビットを設定してカウンタクリア要因の選択を行う。第3に、TIORを設定して波形出力レベルの選択を行う。第4に、TGRAに時間データを設定する。第5に、TGRBの時間データを設定する。第6に、TPMRのPWMモードビットを設定する。第7に、TSTRのCSTビットを設定してカウント動作を開始させる。
【0127】
図14には、PWMモードの動作を説明するための動作波形図が示されている。PWMモードに設定すると、TIOCA〜TIOCD端子は出力端子となり、TGRのコンペアマッチにより指定した波形出力を行う。同図においては、TCNTのカウンタクリア要因をTGRAのコンペアマッチとし、TGRBの初期値を0、コンペアマッチで1出力とした場合が示されている。この場合には、TGRAに設定した値が周期となり、TGRBに設定した値がデューティになる。
【0128】
図15と図16には、PWMモードの他の動作を説明するための動作波形図が示されている。図15(A)では、TCNTのカウンタクリア要因をTGRAのコンペアマッチとし、TGRBの初期値を0、コンペアマッチで1出力とした場合が示されている。この場合においては、TGRAに設定した値が周期となり、TGRBに設定した値がデューティになり、このTGRBの書き換えによりTGRA<TGRBにするとデュティ0%の出力が得られる。図15(B)では、上記TGRBの書き換えによりTGRAとTGRBのコンペアマッチが同時に発生すると出力が変化しない。そのため、TGRB<TGRAのように書き換えてもデューティ100%が出力される。図16では、TGRBの書き換えによりTGRAとTGRBのコンペアマッチが同時に発生すると出力が変化しない。そのため、TGRB<TGRAのように書き換えてもデューティ100%が出力される。そして、再度の書き換えによりTGRB>TGRAのように書き換えると、デューティ100%の次の周期はデューティ0%に変化する。
【0129】
位相計数モードは、2本の外部クロック入力の位相差を検出し、TCNTをアップ/ダウンカウント動作させる。このモードはチャンネル1と2で設定可能である。位相計数モードに設定すると、TCRのTPSCビットの設定にかかわらずカウンタクロックは外部クロックをとり、TCNTはアップ/ダウンカウンタとして動作する。ただし、TIORの機能は有効であり、インプットキャプチャ/コンペアマッチ機能や割り込み機能は使用することができる。この機能は2相コンコーダパルスの入力処理に使用できる。位相計数モードの設定手順は、TMDRのMD2〜0ビットを指定することにより行われる。
【0130】
図17には、位相計数モードの動作の一例を説明するためのタイミング図が示されている。同図には、位相計数モード1が示されている。このモードのカウントアップ条件は、チャンネル1(2)ではTCLKA(TCLKC)がハイレベルのときにTCLKB(TCLKD)がハイレベルに立ち上がるとカウントアップを行う。TCLKA(TCLKC)がロウレベルのときにTCLKB(TCLKD)がロウレベルに立ち下がるとカウントアップを行う。また、TCLKB(TCLKD)がロウレベルのときにTCLKA(TCLKC)がハイレベルに立ち上がるとカウントアップを行う。TCLKB(TCLKD)がロウレベルのときにTCLKA(TCLKC)がロウレベルに立ち下がるとカウントアップを行う。つまり、TCLKA(TCLKC)の位相がTCLKB(TCLKD)に比べて進んでいるときにカウントアップ動作を行う。
【0131】
このモードのカウントダウン条件は、チャンネル1(2)ではTCLKA(TCLKC)がハイレベルのときにTCLKB(TCLKD)がロウレベルに立ち下がるとカウントダウンを行う。TCLKA(TCLKC)がロウレベルのときにTCLKB(TCLKD)がハイレベルに立ち上がるとカウントアップを行う。また、TCLKB(TCLKD)がハイレベルのときにTCLKA(TCLKC)がハイレベルに立ち上がるとカウントダウンを行う。TCLKB(TCLKD)がロウレベルのときにTCLKA(TCLKC)がロウレベルに立ち下がるとカウントダウンを行う。つまり、TCLKA(TCLKC)の位相がTCLKB(TCLKD)に比べて遅れているときにカウントダウン動作を行う。
【0132】
図示しないけれども、位相計数モード2では、チャンネル1(2)のTCLKB(TCLKB)がハイレベルのときにTCLKA(TCLKC)がロウレベルに立ち下がるときにカウントアップを行い、TCLKB(TCLKB)がロウレベルのときにTCLKA(TCLKC)がロウレベルに立ち下がるときにカウントダウンを行う。
【0133】
位相計数モード3では、チャンネル1(2)のTCLKA(TCLKC)がハイレベルのときにTCLKB(TCLKD)がハイレベルに立ち上がるとき、又はTCLKA(TCLKC)がロウレベルのときにTCLKB(TCLKD)がロウレベルに立ち下がるときカウントアップを行い、TCLKA(TCLKC)がハイレベルのときにTCLKB(TCLKD)がロウレベルに立ち下がるとき、又はTCLKA(TCLKC)がロウレベルのときにTCLKB(TCLKD)がハイレベルに立ち上がるときカウントダウンを行う。
【0134】
位相計数モード4では、チャンネル1(2)のTCLKB(TCLKD)がハイレベルのときにTCLKA(TCLKC)がロウレベルに立ち下がるときにカウントアップを行い、TCLKA(TCLKC)がハイレベルのときにTCLKB(TCLKD)がロウレベルに立ち下がるときにカウントダウンを行う。
【0135】
リセット同期PWMモードは、チャンネル3と4を組み合わせることにより、一方の波形変化点が共通の関係となるPWM波形(正相・逆相)を3相出力する。リセット同期モードに設定すると、TIOC3A,TIOC3B,TIOC4A,TIOC4C,TIOC4B及びTIOV4D端子は自動的にPWM端子となり、タイマカウンタTCNT3はアップカウンタとして機能する。
【0136】
図18には、リセット同期PWMモードの設定手順を説明するためのフローチャート図が示されている。リセット同期PWMモードの設定手順は、次の通りである。第1に、レジスタTSTRのSTRビットを0にクリアしてカウント動作を停止させる。第2に、レジスタTCRのTPSC2〜0ビットを設定して、カウンタクロックの選択を行う。第3に、上記レジスタTCRのCCLR1,CCLR0ビットを設定して、カウンタクリア要因の選択を行う。第4に、レジスタTMDRをリセット同期PWMモードに設定する。第5に、カウンタTCNT3にB’0000をライトしてカウンタの設定を行う。第6に、レジスタTGR3Aに周期を設定し、TGR3B,TGR4A,TGR4BにPWM出力波形変化タイミングを設定する。そして、第7に、レジスタTSTRのCST3ビットを1にセットしてカウント動作を開始させる。
【0137】
図19には、リセット同期PWMモードの動作を説明するためのタイミング図が示されている。リセット同期PWMモードでは、カウンタTCNT3はアップカウンタとして動作する。このとき、カウンタTCNT4は独立動作する。カウンタTCNT3の計数値がレジスタTGR3Aの値とコンペアマッチするとカウンタTCNT3はクリアされてB’0000からカウントアップを再開する。PWM端子は、それぞれレジスタTGR3B,TGR4A,TGR4BとカウンタTCNT3とのコンペアマッチ及びカウンタクリアが発生する度に、トグル出力を行う。前記TGCRを用いて、各PWM出力端子からのパルス出力を許可したり、固定出力としたりすることができる。
【0138】
相補PWMモードは、チャンネル3と4を組み合わせることにより、正相と逆相がノンオーバーラップの関係にあるPWM波形を3相出力する。相補PWMモードに設定すると、TIOC3B,TIOC3D,TIOC4A,TIOC4B,TIOC4C,TIOC4D端子は、自動的にPWM出力端子となり、TIOC3A端子は、PWM周期に同期したトグル出力、TIOC3B端子はPWM出力を遮断するための外部トリガ入力端子として設定することが可能である。また、カウンタTCNT3,TCNT4は、アップ/ダウンカウンタとして機能するものである。
【0139】
図20には、相補PWMモードの設定手順を説明するためのフローチャート図が示されている。相補PWMモードの設定手順は、次の通りである。第1に、レジスタTMDRに対して相補PWMモードの設定を行う。第2に、レジスタTOCRの外部トリガイネーブルビットを設定して、外部入力による出力遮断の許可/禁止の設定を行う。第3に、上記レジスタTOCRのPWM同期出力2,1ビットを設定して、PWM周期に同期したトグル出力の許可/禁止の設定を行う。第4に、上記レジスタTOCRの出力レベルセレクト4,3ビットを設定して、PWM出力レベルの設定を行う。第5に、各ジェネラルレジスタTGR、各バッファレジスタにデータを設定し、デユーティの初期値設定を行う。第6に、レジスタTCDR,TDDR,TGR3A,TGR3Cにデータを設定し、デッドタイム,キャリア周期を設定する。そして、第7に、レジスタTSTRのCSTビットを設定して、カウント動作を開始させる。
【0140】
図21には、相補PWMモードの動作を説明するための波形図が示されている。タイマモードレジスタTMDRのモード3〜0を設定することにより、チャンネル3,4を相補PWMモードに設定する。タイマアウトプットコントロールレジスタTOCRの出力レベルセレクト4,3を設定してPWMパルスのアクティブレベルを選択し、出力は各カウンタTCNT3,4とレジスタTGRが一致することによるレベル出力である。タイマデッドタイムレジスタTDDRにデッドタイムを設定し、タイマ周期データレジスタTDCRにキャリア周期の1/2を、TGR3Aにキャリア周期の1/2にデッドタイム分を加えて値を設定する。そして、出力するPWMデューティ値をレジスタTGR3B,TGR4A,TGR4Bのデューティレジスタに設定する。そして、タイマスタートレジスタTSTRをセットして、TCNT3,4のカウント動作をスタートさせる。
【0141】
図21において、Taの期間では、カウンタTCNT3,TCNT4の2つのカウンタとの比較を行う。Tb期間では、カウンタTCNT3,TCNT4及びTCNTSの3つのカウンタとの比較を行う。同図において、アップカウント時にレジスタTGR4AがカウンタTCNT3とコンペアマッチを起こすと正相に0を出力し、カウンタTCNT4とコンペアマッチを起こすと逆相に1を出力する。ダウンカウント時にレジスタTGR4AがカウンタTCNT4とコンペアマッチを起こすと逆相に0を出力し、カウンタTCNT3とコンペアマッチを起こすと正相に1を出力する。このとき、Tb期間では、いままでのTGR4Aのデータ(旧値)と次周期の新しいデューティとを同時に比較し、サブカウンタTCNTSによってデッドタイムを保ちながらデューティを切り換えるようにする。つまり、新しいデューティがTDDR以下の値に設定されると、TGR4Aの新値とサブカウンタTCTNSとのコンペアマッチにより正相に0を出力する。また、TGR4Aの新値とTCNT4とのコンペアマッチにより逆相に1を出力す。
【0142】
図22には、上記相補PWMモードにおける0%と100%の出力例を説明するための波形図が示されている。この発明の相補PWMモードにおいては、デューティ0%と100%を出力することができる。同図には、0%と100%出力時の波形とそのときのレジスタ設定値が示されている。デューティ100%を出力する場合は、ジェネラルレジスタTGR4AにTGR3Aと同じ値を設定することにより出力することが可能である。また、デューティ0%を出力する場合は、ジェネラルレジスタTGR4AにB’0000を設定することにより出力することが可能である。同図に示すように、デューティ100%からデューティ0%に変化させた場合は、デッドタイム分だけハイレベルの期間が短くなる。
【0143】
図23には、上記相補PWMモードにおけるトグル出力機能を説明するための波形図が示されている。この発明に係る相補PWMモードにおいては、アウトプットコントロールレジスタTOCRのPSYN1,PSYN0ビットを設定することにより、キャリア周期に同期したトグル出力が可能である。このときTIOC3A端子は自動的にこの同期出力端子になり、同図のような出力波形を得ることができる。つまり、同期出力の初期値は1出力である。また、この出力はPWM出力の外部遮断信号入力のトリガによって、そのときの出力レベルを保持するか、カウンタTCNT3,4を停止するまで同期出力を続けるかを選択することが可能である。
【0144】
図24には、上記相補PWMモードにおけるPWMデューティデータ転送タイミングを説明するための波形図が示されている。この発明に係る相補PWMモードにおいては、タイマモードレジスタTMDRでモードを選択するときに、バッファレジスタからジェネラルレジスタに転送するタイミングを設定する。同図には、1/2PWM周期毎にデータを転送する場合の動作例を示す。バッファレジスタからテンポラリレジスタ(Temp R)への転送は、サブカウンタTCNTSが動作していない期間は常時行われる。また、テンポラリレジスタからジェネラルレジスタへの転送は、この場合TCDRとTCNT3がダウンカウント時にコンペアマッチを発生するタイミング、及びデッドタイムレジスタTDDRとTCNT4がアップカウント時にコンペアマッチ発生するタイミングの2つのタイミングで行われる。このため、バッファレジスタの書き換えが1/2周期に1回も行われなかった場合、ジェネラルレジスタの値は同図の(1)のように1PWM周期の間変化しない。また、バッファレジスタを1/2PWM周期の間に2回書き換えた場合は、(2)のようにデータdata5 が抜けるものとなる。
【0145】
相補PWMモードでは、タイマアウトプットコントロールレジスタTOCRの外部トリガデイスエーブルビットをクリアすることにより、指定したトリガが入力されると、PWM出力からタイマ出力遮断レジスタTOSRの値に出力値が自動的に切り替わる。外部トリガはTIOC3C端子に入力し、キャプチャ入力と同じようにエッジを指定することが可能である。
【0146】
図25ないし図27には、上記相補PWMモードにおける100%から0%までのそれぞれ出力例を説明するための波形図が示されている。図24の通り、TGRへの書替えは一定のタイミングで行われるが、ここでは説明の簡略化のため、実際のコンペアマッチに用いられるコンペア値をTGRとして示している。図25(A)には、デューティを設定するレジスタTGRにTGR3Aと同じ値を設定することによりデューティ100%を出力する例が示されている。同図(B)には、100<duty≦Tdの範囲での出力する例が示されている。この範囲では、下側の反転出力はロウレベルのままとされる。
【0147】
図26(A)には、100−Td<duty<Tdの範囲の例が示され、同図(B)には、Td<duty<0の範囲の例が示されている。そして、図27にはデューティを設定するレジスタTGRにはB’0000を設定してデューティ0%を出力する例が示されている。この発明に係る相補PWMモードでは、デューティ50%を中心にして、正相/逆相の上下が対称的となる相補PWM出力を得ることができる。
【0148】
図28には、アップダウンコントロール部の一実施例のブロック図が示されている。同図の上の部分がアップダウンコントール部であり、図2のコントロールロジックに含まれる。同図の下の部分が相補PWMの実行部である。アップダウンコントロール部の基本機能は、図29の状態遷移図及び図30の概略波形図を参照して次に説明する。
【0149】
アップダウンコントロール部の基本機能は、
(1)アップダウン切り替え信号UDの生成。
(2)山での新旧値設定ダブル比較期間信号TAの生成。
(3)谷での新旧値設定ダブル比較期間信号TBの生成。
(4)バッファ転送信号BTRの生成。
(5)サブカウンタ(TCNTS)のロード信号T5ACTの生成。
(6)サブカウンタのリロード値選択信号の生成。
(7)上記を実現するため、レジスタと比較するカウンタを選択する切り替え信号TSLの生成。
(8)上記を実現するため、カウンタと比較するレジスタを選択する切り替え信号RSLの生成。
(9)1/2PWM周期出力信号(1/2CYC)の生成。
である。
【0150】
図30の概略波形図からも分かるように、アップダウンコントロール部は上記の各信号UD,TA,TBの組み合わせからTA0、TD、TA1、TB0、TU及びTB1の6つの状態に分類され、各々の状態で全ての信号を生成する。その状態遷移は図29に示す通りである。
【0151】
(1)状態TA0のオペレーション
TA0に移ると同時にTBを0にリセットして谷でのダブル比較を解除させる。TA0では基本的には、UD=1、TA=0、TB=0である。待つイベントはTCNT3=TDCRであって、TCNT3とTCDRを選択する信号TSLとRSLを出力する(TSL=0,RSL=0)。TCNT3=TCDRが発生すると、TAを1にセットして状態TDに遷移する。
【0152】
(2)状態TDのオペレーション
TDでは基本的には、UD=1、TA=1、TB=0である。待つイベントはTCNT4=TDCRであって、かかるTCNT4とTDCRを選択する信号TSLとRSLを出力する(TSL=1,RSL=0)。TCNT4=TDCRが発生すると、UDを0にリセットしてTA1に遷移する。
【0153】
(3)TA1のオペレーション
TA1では基本的には、UD=0、TA=1(山でのダブルカウント)、TB=0である。待つイベントはTCNT3=TDCRであって、かかるTCNT3とTDCRを選択する信号TSLとRSLを出力する(TSL=1,RSL=0)。TCNT3=TDCRが発生すると、オペレーションなしでTB0に遷移する。
【0154】
(4)TB0のオペレーション
TB0に移ると同時にTAを0にリセットする。TB0では基本的には、UD=0、TA=0、TB=0である。待つイベントはTCNT4=TDDRであって、かかるTCNT4とTDDRを選択する信号TSLとRSLを出力する(TSL=1,RSL=1)。TCNT4=TDDRが発生すると、TBを1にセットしてTUに遷移する。
【0155】
(5)TUのオペレーション
TUでは基本的には、UD=0、TA=0、TB=1である。待つイベントはTCNT3=TDDRでって、かかるTCNT3とTDDRを選択する信号TSLとRSLを出力する(TSL=0,RSL=1)。TCNT3=TDDRが発生すると、UDを1にセットしてTB1に遷移する。
【0156】
(6)TB1のオペレーション
TB1では基本的には、UD=1、TA=0、TB=1である。待つイベントはTCNT4=TDDRであって、かかるTCNT4とTDDRを選択する信号TSLとRSLを出力する(TSL=1,RSL=1)。TCNT4=TDDRが発生すると、オペレーションなしにTA0に遷移する。
【0157】
上記TA,TBのセット/リセット時のオペレーションの違いを図31の概略波形図を参照して補足説明すると次の通りである。TA、TBは新旧設定値のダブル比較期間信号である。新設定値とカウンタ値との比較は、TCNT3=TDCR又はTCNT4=TDDRが成立した直後から開始するため、TA、TBのセットは次の状態に移る前に、言い換えるならば、イベントが発生した直後に行う。一方、リセットは次の状態に移った後で行う。
【0158】
図32と図33には、TA,TBのセットとUDの切り替えタイミングを説明するための波形図が示されている。TA,TBのセットとUDの切り替えは次の状態に移った後でステートマシンが実行するのではなく、イベントが発生した直後に行うようにされる。図32にはカウントクロックが最高速のφの場合が示され、図33にはカウントクロックが最低速のφ/256の場合が示されている。上記各場合において、デッドタイムTdが1であり、mct3,mct4は内部一致信号である。なお、CK1,CK2は、システムクロックφから生成したいわゆる2相ノーオーバーラップクロックである。TCKはカウンタのカウントアップクロックである。デッドタイムはB’0001とした場合の例である。
【0159】
上記により、TA,TB,UDは以下の論理式で表される。
TA=TA0*mct3+TD+TA1 ・・・・・・・・・・・(1)
TB=TB0*mct4+TU+TB1 ・・・・・・・・・・・(2)
UD=TA0+/mct4*TD+mct3*TU+TB1 ・・・(3)
ここで、mct3はTCNT3との一致信号であり、mct4はTCNT4との一致信号である。また、*は論理積を表し、+は論理和を表しし、/はロウレベルをアクティブレベルとするオーバーバーを表している。
【0160】
ステートの遷移のイベント検出は、nextに介してはCK2*TCK、STATEに関してはCK1*(TCK↑CK2)の立ち上がりエッジで行われる。ここで、↑CK2はCK2の立ち上がりエッジで1サイクル遅らせることを示している。
【0161】
バッファ転送信号BTRは、周期設定用レジスタ、旧設定用レジスタ、新設定用レジスタに対して、新しい設定値を書き込むための信号である。この信号BTRはタイマモードレジスタTMDRのMD0〜MD3ビットの設定により、カウンタの山でバッファ転送、カウンタの谷でバッファ転送、カウンタの山谷でバッファ転送するかを選択することができる。カウンタの山谷両方でバッファ転送する方法は、倍周期書き替えということができる。
【0162】
図34の概略波形図に示すように、バッファ転送信号BTRの生成は、カウンタの山で転送する場合には山のダブル比較期間が終了した直後、すなわち、TB=0の時点で1サイクル発生する。図示しないけれども、カウンタの谷で転送する場合、TA=0の時点で、上記倍周期書き替えの時には両方で発生する。
【0163】
図35には、バッファ転送信号生成タイミングチャート図が示されている。図34のEVENTとTCKの論理積を半サイクル遅らせた内部信号をBEVEとし、これとCK1の論理積をeventとする。TA0は山部でのダブル比較期間の開始を、TB0は谷部でのダブル比較期間の開始をみているSTATEである。このSTATEにはいると同時にTMDRの条件を参照して、谷でのバッファ転送を選択していれば所定のタイミングでbtrを生成する。別の見方をすると、TA0は谷部でのダブル比較期間の終了を、TB0は山部でのダブル比較期間の終了を見ているSTATEである。上記btrは、このSTATEでイベントが発生するとTMDRの条件にかかわらず0にリセットされる。内部信号eventとbtrの論理積によりバッファ転送信号BTRが生成される。
【0164】
図36には、サブカウンタ関係信号の生成を補足説明するための概略波形図が示されている。サブカウンタTCNTSは、山部及び谷部のダブル比較期間でのみ動作するカウンタである。そこで、サブカウンタはロード信号により書き込みを行い、それ以外の期間はカウント動作するようにしている。したがって、上記ロード信号は、TA,TBの論理和の否定(T5ACT=/(TA+TB)により生成される。
【0165】
サブカウンタのリロード値選択信号の生成は、次の通りである。サブカウンタのカウント動作開始時の初期値は山部及び谷部のダブル比較期間で異なり、リロードレジスタ1及びリロードレジスタ2に格納されている。したがって、サブカウンタの書き込みの前には2つのレジスタから1つを選択する必要がある。このリロード値選択信号にはUD(又はその反転信号)を用いる。
【0166】
図37には、カウンタ/レジスタ選択信号の生成を説明するための概略波形図が示されている。カウンタ選択信号TDLとレジスタ選択信号RSLは、状態の遷移によりセット/リセットされる。したがって、STATEの遷移タイミングであるCK1に同期してセット/リセットされる。カウンタ選択信号TSLとレジスタ選択信号RSLは、以下の論理式により表される。
TSL=TD+TB0+TB1 ・・・・・・・・・・(4)
RSL=TB0+TU+TB1 ・・・・・・・・・・(5)
【0167】
1/PWM周期出力信号1/2CYCの生成は、次の通りである。相補PWMモードでは、周期設定レジスタとカウンタTCNT3のコンペアマッチ、すなわち、TGR3A=TCNT3が発生するたびに、又はリロード値設定レジスタ(B’0000)とカウンタTCNT4のコンペアマッチ、すなわち、TCNT4=0が発生するたびに、トグル動作を繰り返す1/2PWM周期に同期した信号を、TIOC3Aから出力することができ、この出力を1/2CYCとする。相補PWMモードが設定されると、1/2CYC=0となる。相補PWMモード関連の設定が終了し、タイマスタートレジスタてTSTRのSTR3,STR4ビットを1に設定した後、最初のカウントクロックで出力は1/2CYC=1となり、以後上記のトグル動作を繰り返す。
【0168】
図38には、この発明に係る割り込みA/D変換スタートトリガのタイミングチャート図が示されている。相補PWMモードでは、周期設定レジスタとカウンタTCNT3とのコンペアマッチ、すなわち、TGR3A=TCNT3と、カウンタTCNT4のアンダーフロー、すなわち、TCTN4=0により割り込みを発生することができる。割り込みの許可は、タイマインタラプトイネーブルレジスタTIERの設定により可能とされる。
【0169】
相補PWMモードでは、周期設定レジスタとカウンタTCNT3のコンペアマッチ、すなわち、TGR3A=TCNT3と、カウンタTCNT4のアンダーフロー、すなわち、TCNT4=0によりA/D変換スタートトリガを発生することができる。このA/D変換スタートトリガの許可は、上記タイマインタラプトイネーブルレジスタTIERのTTEGビットの設定により可能とされる。
【0170】
比較器は随時比較を行っているため、選択されているカウンタ及びレジスタが初期値の状態でも一致信号を出力する。アップダウンコントロール部では、この一致信号をEVENT信号として使用しているため、初期状態の一致信号で状態が遷移してしまうと正しく動作しなくなる。そこで、一致信号は、タイマースタートレジスタTSTRのSTR3,STR4ビットが1でカウント動作しているときのみ有効とする必要がある。すなわち、次式(6)のように内部一致信号とスタートビットの論理積をとり、EVENT信号とするものである。
EVENT=STR3*mtc3+STR4*mtc4 ・・・・・(6)
【0171】
図39には、上記相補PWM制御を説明するための構成図が示されている。この発明に係る相補PWM制御の基本的な考え方は、デッドタイムを保証するため、同一カウント方向の2つの平行線を一対として扱い、トグル型ではなくセット/リセット型で出力波形を生成するものである。
【0172】
(1)DOWNカウント時においては、設定値とTCNT3の一致で正相をオンにし、設定値とTCNT4の一致で逆相をオフにする。
(2)UPカウント時においては、設定値とTCNT4の一致で正相をオフにし、設定値とTCNT3の一致で逆相をオンにする。
【0173】
ここで、点xの値は、TCNT4とTGR3Aとの差をlとすると、次の式(7)〜(10)で求めることができる。
l=TGR3A−TCNT4 ・・・・・・・・(7)
x=TGR3A+l
=2*TGR3A−TCNT4 ・・・・・・・・(8)
y=x
=2*TGR3A−TCNT4 ・・・・・・・・(9)
TCNT4=2*TGR3A−y ・・・・・・・(10)
【0174】
したがって、上記の式で処理するとカウンタの更新時に再計算するのではなく設定値yを書き換えたときに限り計算処理を実行し、その結果をレジスタに記憶することで相補PWM出力が可能となる。谷の部分でも同様に扱うようにする。この定数計算処理は、新旧両方で比較が不要な期間Txで空いている比較器を利用して実行する。
【0175】
例えば、前記平成5年3月(株)日立製作所発行「H8/3003ハードウェアマニュアル」記載のタイマのように、従来では、欠如していた前記サブカウンタTCNTSでカウントしていた部分を上記のように計算処理で求め、さらに原理的に1つのサイクルが−Td−(Tc/2)〜+Td+(Tc/2)の期間であることから、従来の1サイクルTcのほかに2*Tdの期間だけ新旧両方の値でカウント値と比較し、一致検出を行うことが特徴である。
【0176】
図40には、上記のような計算方式に対応したアップダウンコントロール部のブロック図が示されている。上記のような計算方式による制御においては、従来のタイマに対して、次のようなハードウェアソースが新たに必要となる。
【0177】
(1)加減算機能付比較器AU&CMP
この加減算機能付比較器AU&CMPは、期間TaとTbで新旧両方の設定値をそれぞれのカウント値と比較し、さらにカウンタの存在しない部分の値を計算処理するために必要となる。
(2)テンポラリレジスタTEMP
新旧両方でそれぞれのカウンタ値と比較するため、その期間TaとTbだけユーザーレジスタ書き換え禁止期間が発生する。この書き換え禁止期間を回避するためバッファレジスタの値を一時的に記憶するテンポラリレジスタTEMPが設けられる。
(3)ジェネラルレジスタTGR#、TBR#
上記期間Ta,Tbで比較するTGRの計算値とTBRの計算値を一時的に記憶するためのものである。
(4)選択器MUX
上記の期間TaとTbで比較動作及び計算処理を実行するためにそれぞれのレジスタ値を適宜選択するものである。
【0178】
図40に示した前記の方式では、計算処理を行うために演算器やテンポラリレジスタが必要であった。そこで、図2〜図38で説明した通り、計算処理を行わずに相補PWMを実現し、論理規模を小さくすることもできる。つまり、図41のブロック図に示すように、山、谷のV字型部をカウントする専用のカウンタTCNTSを設ける。こらにこのカウンタTCNTSを利用することで、図40演算器やテンポリレジスタを削減することができる。さらに、このカウンタTCNTSを別のチャンネルとして用いるようにしてもよい。
【0179】
前述の通り、この発明に係る相補PWMモードでは、一定の期間(デッドタイム)間隔を持つ、2本のアップカウントと、2本のダウンカウントを行うことが必要である。このカウンタ動作の具体的な実現方法は、種々変更可能である。例えば、4本のカウンタ、すなわち、2本のアップカウンタと2本のダウンカウンタで構成することもできる。また、上記実施例のような3本のアップダウンカウンタで構成することもでき、あるいは計算で求めることもできる。
【0180】
カウンタの動作範囲も下限値を0とする必要はない。例えば、デューティ50%の上下対称軸を0としてもよい。更に、比較器の構成なども種々変更が可能である。1本の比較レジスタは、全てのカウンタと比較を行うものであるので、カウンタに対応する本数の比較器を持てばよい。初期設定時にTCNT3にデッドタイムを、TCNT4にB’0000を書くようにするとよい。待機時(CST=0)にTCNT3の値をTDDRに転送するようにすれば、TDDRを独立に設定する必要がない。
【0181】
図42には、この発明にかかるタイマBの相補PWMモードとデータトランスファコントローラ(データ転送装置)DTCの動作の一例を説明するためのアドレスマップ図が示され、図43にはその動作タイミング図が示されている。
【0182】
相補PWMモード1の場合、タイマBのコンペアマッチTGR3A(山)割り込みによって、データトランスファコントローラDTCを起動する。上記DTCによって、RAM上のコンペア値をバッファレジスタ(TGR3D,TGR4C,TGR4D)上に転送する。かかるレジスタは、連続領域となるように配置する。かかるデータ転送は、いわゆるブロック転送モードを用いる。つまり、転送元アドレスレジスタと転送先アドレスレジスタと、ブロックサイズと、転送回数を指定することにより、1回の起動で、上記の例の場合には3ワード分の転送を行う。かかる3ワード(TGR3D,TGR4C,TGR4D)は、前記の通り、連続アドレスとされ、上記のDTCによって連続してライトが可能とされる。ブロック転送モードについては、前記平成5年3月(株)日立製作所発行「H8/3003ハードウェアマニュアル」又は特願平4−137954号に記載されている。
【0183】
上述のようにコンペアマッチTGR3A割り込みが発生するとデータトランスファコントローラDTCが起動される。上記DTCは、上記RAMからバッファレジスタへのブロック転送を行う。山のデッドタイム領域においては、前述の通りに、バッファレジスタからTRへの転送は行われない。デッドタイム領域をすぎると、TRに保持した内容をTGRに、BRの内容をTRに転送する。図43において、斜線を付した部分はコンペアに供される期間を示すものである。相補PWMモード2の場合、タイマのアンダーフロー(TCNT4=0)割り込みによって、上記DTCを起動する他は、上記図42及び図43と同様である。また、リセット同期PWMモードも、概略図42及び図43と同様である。
【0184】
図44には、タイマBの相補PWMモードとデータトランスファコントローラDTCの動作の他の例を説明するためのアドレスマップ図が示されている。モータを駆動するような場合、モータの駆動状態をモニタしつつ、コンペア値を設定する場合がある。かかる場合には、前記図42のように、予めコンペア値をRAM上に設定しておくようなことはない。最新のコンペア値を所定のRAM上に配置しておき、毎回上記DTCで同じRAMアドレスから、ITUのバッファレジスタに転送する。この場合、DTCの転送カウンタを1に設定しておく。割り込みが発生すると、RAM上の1ブロックのコンペア値の転送を行い、このデータ転送が終わった時点で、中央処理装置CPUに割り込みを要求し、かかるCPUにおいて次のコンペア値の準備や、DTCのレジスタの再設定を行うようにする。
【0185】
相補PWMモード3で、山/谷でデータを更新する場合、タイマのコンペアマッチTCNT3=TGR3A(山)、アンダーフローTCNT4=0(谷)割り込みによる例外処理ルーチンの先頭アドレス(例外処理ベクタ)も共通にしておくと便利である。中央処理装置CPUは、タイマカウンタTCNT3,4がアップカウント状態にあるか、ダウンカウント状態にあるかを判断する必要がなく、すなわち、山でデータを更新するか、谷でデータを更新するかを判定する必要がない。最新のコンペア値をRAM上の所定のアドレスに書き込めばよい。山/谷でのデータの書き換え(倍周期書き換え)を可能にし、制御精度を向上させることができる。
【0186】
図45に、タイマB(ITU)のリード/ライト制御回路の一実施例のブロック図が示されている。かかるタイマのレジスタのうち、初期設定にのみ必要なレジスタの書き換えを禁止するビットとしてCNTLビットが設けられている。かかるCNTLビットが0にクリアされているとき、書き換え許可状態にされ、CNTLビットが1にセットされていると書き換え禁止状態にされる。書き換えを禁止可能なレジスタの例としては、TCR3,4、TMDR3,4、TIOR3H,L、TIOR4H,L、TIER3,4、TOER、TOCR、TOSR、TGCRがある。アドレスはB’FFFC0〜FFC9、FFCC〜FFCFに配置される。TSRは除いている。タイマ全体はアドレスB’FF80〜FFEFに配置される。
【0187】
アドレスデコーダ回路によって、アドレスを検出する。かかるアドレスデコーダによって、アドレスB’FFC0〜FFCFを検出した信号はナンドゲートG1に入力される。ナンドゲートG1の他方の入力は、CNTLビットとライト信号とされる。上記ナンドゲートG1の出力の反転が、アンドゲートG2に入力される。アンドゲートG2の出力がタイマB(ITU)の選択信号とされる。すなわち、アドレスB’FFC0〜FFC9、FFCC〜FFCFが選択されたとき、かつ、CNTLビットが1にセットされており、かつ、ライト動作のときに、ナンドゲートG1の出力が0になり、アンドゲートG2の出力も0レベルになってITUの選択が禁止される。言い換えるならば、ITUに対するライト動作が禁止される。その外の条件では、ナンドゲートG1の出力が1になり、アドレスB’FF80〜FFEFが選択されたときに、IUTが選択されてリード/ライト動作が行われる。上記のように初期設定のみが必要な制御レジスタのライト動作を禁止することにより、誤書き込みによる誤動作を抑止することができる。
【0188】
図46には、この発明が適用されたシングルチップマイクロコンピュータを用いた制御システムの一実施例の概略ブロック図が示されている。この実施例では、ACインダクションサーボモータなどのモータ制御に向けられている。タイマB(ITU)による相補3相のPWM出力(TIOC3B〔U〕、TIOC3D〔U#〕、TIOC4A〔V〕、TIOC4C〔V#〕、TIOC4B〔W〕、TIOC4D〔W#〕)を用いて、インバータ回路などのバッファ回路を介してモータを駆動している。インバータ回路の前段にバッファ回路を接続したりすることもできる。出力極性を選択できるので、バッファ回路の段数によって出力極性を選択することができる。
【0189】
これらの正相/逆相出力が、インバータ回路の直列に接続されたトランジスタのゲートに入力されている。前述の通り、16ビットタイマによる相補3相のPWM出力の正相/逆相の変化点には、デッドタイムを挿入することができるから、上記インバータ回路の直列に接続されたトランジスタが同時にオン状態になり、不所望の貫通電流を発生してしまうことがない。また、正相/逆相が、両方共にオフの時間を、デッドタイムの2倍以下にしているから、上記インバータ回路の直列に接続されたトランジスタが同時にオフ状態になり、不安定な状態を不所望の長時間にわたって発生してしまうことがない。
【0190】
かかるインバータ回路の出力が、モータを駆動する。例えば、上記インバータ回路の出力がモータの内部で、例えばいわゆるY結線(又はスター結線)された固定子捲線に与えられ、2出力がハイレベル、1出力がロウレベルにされると、抵抗分割によって電源電圧の2/3が生成される。同様に、1出力がハイレベルに、2出力がロウレベルにされると、抵抗分割によって電源電圧の1/3が生成される。かかるハイレベルの期間をPWM制御することによって、出力電圧を変化させていくことができる。タイマB(ITU)の相補PWMモードのカウンタの周波数を搬送波として、所望の正弦波信号などをパルス信号で近似した出力を可能にする。パルスのハイレベルの幅が、所望の正弦波信号などの振幅に対応するようにされる。
【0191】
インバータ回路は、電源回路・コンバータ回路・平滑回路から電圧が供給される。かかる電源回路・コンバータ回路・平滑回路の一部又は全部をインバータ回路と一体的に構成してもよい。この出力電流が所望の値以上であることを検出して、この過電流検出信号を遮断入力としてTIOC3Aに入力する。TOCRのXTGDビットを0にクリアしておくことにより過電流が検出され、遮断入力が入力されると、TOSRのOS4D,OS4C,OS3D,OS4B,OS4A,OS3Bビットで指定した内容が、それぞれW#,V#,U#,W,V,Uとして出力されて、インバータモータを停止させることができる。また、ハードウェア的な出力の停止の他、ソフトウェア処理が必要であれば、上記過電流検出信号を割り込み入力NMIに入力すればよい。あるいは、インプットキャプチャTGR3A割り込みを用いてもよい。遮断入力機能を使うことにより、中央処理装置CPUのソフトウェア処理によって出力値を固定するより、短い時間で出力を遮断することができる。また、電圧の低下などを検出して、上記同様な処理を行うようにすることもできる。
【0192】
2相のインバータ駆動電流を検出して、A/D変換器のアナログ入力AIN4,5に入力する。これらのアナログ入力は、上記タイマB(ITU)のTCNT3のコンペアマッチA及び/またはTCNT4のアンダーフローによって起動され、2チャンネル同時ないし連続的にA/D変換する。
【0193】
モータに接続された2相エンコーダパルス(光学式エンコーダまたは回転エンコーダなど)を、波形整形回路を介して、16ビットタイマチャンネル1のカウントクロック入力(TCLKC,TCLKD)として入力される。この場合、チャンネル1は位相計数モードで動作する。これによって、モータの位置と速度の検出を行うことができ、これに基づいてモータ制御の相切り替えを行う転流処理を行う。
【0194】
モータの位置検出については、上記のほかに種々の方法をとることができる。例えば、モータの誘起電圧をA/D変換器によって検出して、モータの磁極位置を判定して位置検出を行うことができる。また、モータのホール素子の出力3本を16ビットタイマチャンネル0のインプットキャプチャ入力(TIOC0A,TIOC0B,TIOC0C)に入力する。モータの磁極位置検出、回転速度を検出したりすることもできる。チャンネル0にレジスタが4本あるため、これを有効に利用することができる。
【0195】
速度の指令などが、上位CPU又はマイクロコンピュータから与えられる。これは、エンコーダの出力とは別のパルス列として、16ビットタイマチャンネル2のカウントクロック入力(TCLKA,TCLKB)に入力される。この場合、チャンネル2は位相計数モードで動作する。上位のCPUの他に、ボリュームなどが出力するエンコーダ信号であってもよい。かかるエンコーダパルスによってアップダウンカウントされたタイマカウンタの値を速度の指令などのパラメータとして理解することができる。マイクロコンピュータは、速度指令に合致するように、回転速度検出結果に基づいてPWM出力制御を行う。
【0196】
SCIは、そのほかの通信を行う。例えば、パネルやEEPROMなどとの通信を行う。EEPROMには固有のパラメータ情報を格納しておくことができる。あるいは、別のCPU又はマイクロコンピュータとの通信を行う。タイマB(ITU)のそのほか出力(TIOC0Aなど)、及びタイマAの出力は別のドライバ回路を介して、例えばファンモータなどの、別のDCモータあるいはステッピングモータを駆動する。IOP1〜3の出力は、各種スイッチやリレーなどの制御を行う。
【0197】
チャンネル3のコンペアマッチTCNT3=TGR3A及びチャンネル4のアンダーフローTCNT4=0によってA/D変換器を起動して、2相のインバータ駆動電流(I1,I2)を検出し、変換終了割り込みによって、この検出された電流値をCPUが処理して、以後のチャンネル3と4のコンペア値(TGR3D,TGR4C,TGR4D)の設定に反映させる。モータ内部の固定子捲線が、いわゆるY結線(又はスター結線)、又はΔ結線されている場合には、電流値の総和は0になるから、3相目に流れる電流は計算−(I1+I2)によって求めることができ、これを間接的に検出することができる。かかる電流を検出して、PWM制御(パルス幅制御)を行うことにより、モータの出力トルクを制御することができ、例えばトルクリップルなどを低減させることができる。
【0198】
センサ回路の出力をA/D変換器のアナログ入力AIN0〜3、6、7に入力する。センサ回路には、モータ駆動部分の温度検出や、電源回路の電圧検出、電流検出などを含むことができる。アナログ入力AIN0〜3は、タイマAのコンペアマッチによって起動され、例えば、グループモード・シングルモードで変換する。例えば、タイマAのコンペアマッチを1ms間隔で発生して、一定時間間隔でセンサ情報のサンプリングを行う。また、センサ回路の動作状況を出力して、外部トリガ(ADTRG)に入力する。この外部トリガによって、例えばアナログ入力AIN6の変換が起動される。一定時間毎などにこれを検出して、所望の処理を行い、以降の相補PWMモードのコンぺア値の設定に反映させる。
【0199】
図47には、この発明にかかるタイマ回路のチャンネル0とチャンネル1との接続例を説明するためのブロック図が示されている。モータに接続された2相のエンコーダパルスは、波形整形回路を介して16ビットタイマチャンネル1のカウントクロック入力(TCLKC,TCLKD)として入力される。かかるチャンネル1は、前記レジスタTMDRのMD3〜0ビットによって前記位相計数モードに設定される。
【0200】
カウンタTCNT0は内部クロックをカウントアップクロックにして、絶対的な時間を計測する。つまり、カウンタTCNT0はフリーランニング動作を行う。前述の通り、前記レジスタTIOR0AのIOB3〜0ビットによって、チャンネル0のインプットキャプチャ信号Bにチャンネル1のクロック、すなわち、TCLKC,TCLKDから生成されるカウンタTCNT1のカウントアップ/ダウンクロックを入力する。
【0201】
上記レジスタTMDRのBFBビットを1にセットして、前記レジスタTGR0BとTGR0Dをバッファ動作とする。すなわち、上記TCNT1のカウントアップ/ダウンクロックが発生すると、TCNT0の内容が上記TGR0Bに転送される。また、このときTGR0Bが保持していた内容がTGR0Dに転送される。TGR0BとTGR0Dの内容の差をとることによって、エンコーダパルスのパルス幅を計測することができる。ひいては、エンコーダ、すなわち、インバータモータの速度を計測することができる。
【0202】
前記の通り、上記レジスタTIOR1のIOA3〜0ビット、IOB3〜0ビットによって、チャンネル0のコンペアマッチ信号A,Bをチャンネル1のインプットキャプチャ信号として入力する。コンペアマッチ信号を一定時間ごとに発生させることによって、前記レジスタTGR0A、TGR0Cで設定された一定期間毎に、2相のエンコーダのカウント値が前記レジスタTGR1A,TGR1Bに転送される。例えば、TGR0CにTGR0Aの半分の時間を設定する。TGR0Aのコンペアマッチ毎に、エンコーダのカウント値がTGR1Aに得られ、ひいてはモータの回転位置、言い換えるならば、エンコーダすなわちインバータモータの位置を計測することができる。また、TGR1Bに直前のコンペアマッチTGR0Cの時のエンコーダのカウント値が格納されているから、TGR0A−TGR0Cの期間に、TGR1A−TGR1Bのカウント値だけエンコーダが回転したことになり、エンコーダひいてはモータの回転速度を計測することができる。このように、モータの回転速度を検出することによって、モータのすべり率などを計測することができ、モータの制御に利用することができ、モータの位置を検出することによって最適な制御信号をモータに与えることができる。
【0203】
図48には、上記図47の実施例の動作を説明するためのタイミング図が示されている。カウンタTCNT0は前記の通りにフリーランニング動作を行い、B’0000〜B’FFFFのカウント動作を行う。上記カウンタTCNT1のカウント信号をキャプチャ信号としてTCNT0の内容がTGR0Bに転送される。次のキャプチャ信号が発生すると、TGR0Bの内容がTGR0Dに転送され、TCNT0の内容がTGR0Bに転送される。TOR0D−TGR0Bの差によってTCNT1のカウント間隔を計測することができる。
【0204】
TCNT0とTRG0A,TGT0Cが比較され、一致すると中央処理装置CPUの処理によって所望の一定時間に相当する値がTGR0A及びTGR0Cに加算される。すなわち、TGR0A,TGR0Cのコンペアマッチ信号は前記一定時間毎に発生する。TGR0Aのコンペアマッチ信号をキャプチャ信号として、TCNT1の内容がTGR1Aに転送される。TGR0Cのコンペアマッチ信号をキャプチャ信号としてTCNT1の内容がTGR1Bに転送される。一定時間毎、例えばTGR0Aのコンペアマッチ毎のTCNT1の値を計測で、エンコーダの位置を計測できる。また、TGR1A−TGR1Bの差によって、別の一定期間TGR0A−TFR0Bの時間内のTCNT1の変化量を計測することができ、エンコーダの変化量・速度を計測することができる。これによって、モータの位置と速度を計測することができる。TCLKCとTCLKDによって、TCNT1のカウントアップクロックが生成される。
【0205】
図49には、前記相補PWMモード3の場合のA/D変換器の動作タイミングを説明するためのタイミング図が示されている。前記レジスタTIER3のTTGEビット、及び前記レジスタTIER4のTTGEビットを1にセットして、チャンネル3のコンペアマッチA及びチャンネル4のアンダーフローの両方でA/D変換器を起動させる。A/D変換器は、制御レジスタにより入力チャンネルAIN4,5に設定し、タイマによる起動を選択した状態にしておく。起動要因が発生しない状態では待機状態である。チャンネル3のコンペアマッチTGR3A及びチャンネル4のアンダーフローの論理和信号がA/D変換器の起動信号としてタイマからA/D変換器に与えられる。
【0206】
相補PWMモード1の場合には、チャンネル3のコンペアマッチTCNT3=TGR3Aのみ、相補PWMモード2の場合にはチャンネル4のアンダーフローTCNT4=0のみ、相補PWMモード3の場合には、上記のようにチャンネル3のコンペアマッチ及びチャンネル4のアンダーフローの両方が選択され、A/D変換器の起動信号としてタイマからA/D変換器に与えられる。
【0207】
上記選択した起動信号が発生するとA/D変換が開始され、入力端子AIN4及びAIN5から入力されたアナログ信号が変換され、データレジスタに格納される。これによって、モータの駆動電流を計測することができる。そのほか、一定時間毎にA/D変換器のそのほかの入力チャンネルを変換したい場合には、タイマAのコンペアマッチなどによる割り込み処理で、中央処理装置CPUに割り込み処理を行わせ、この割り込み処理によってCPUがA/D変換器の制御レジスタを再設定して、所望のアナログ入力を変換して、そのほかのセンサ情報などを入力することができる。この結果を、例えば中央処理装置CPUはパラメータ情報として所望の処理を行う、以降のチャンネル3,4のコンペア値(TGR3C,TGR4C,TGR4D)の設定に反映させる。
【0208】
かかる変換の終了後は、制御レジスタにより入力チャンネルをAIN4,AIN5に設定し、タイマによる起動を選択した状態にしておくことにより、再びチャンネル3のコンペアマッチTCNT3=TGR3A(山)又はチャンネル4のアンダーフローTCNT4=0が発生すると、上記AIN4,AIN5が変換されてモータの駆動電流が計測される。このようにして、PWM出力に同期したモータ電流の計測ができる。ハードウェアによってA/D変換器を起動できるので山/谷の時点からモータの駆動電流を計測するまでの時間を短縮し、検出精度を向上させることができる。2相分の電流を同時サンプリングすることにより、電流精度を向上させてPWM制御精度を向上させることができる。
【0209】
図50には、上記A/D変換器の一実施例のブロック図が示されている。A/D変換器は、コントロールロジック、バスインターフェイス、制御レジスタADCRS、ADCR、データレジスタADDRA〜ADDRH、2ビット分圧、6ビット分圧及び2ビット分圧を行う抵抗分圧回路(D/A変換)、アナログマルチプレクサ、サンプルホールド・レベルシフト回路A,B、コンパレータアレイ(差動増幅器)A,B、逐次比較レジスタから構成される。一対のサンプルホールド・レベルシフト回路A,Bによる一対のアナログ入力の同時サンプリングを行うことが可能にされている。
【0210】
A/D変換器の外部入力としては、電源(Vcc、Vss、AVcc、AVss、VREF)、アナログ入力AIN0〜AIN7、外部トリガ信号ADTRGがある。シングルチップマイクロコンピュータの内部信号としては、タイマAとBからの起動信号、アドレスバス、リード信号、ライト信号、バスサイズ信号、要因クリア信号が与えられ、バスインターフェイスを介して内部データバスとの間でデータの入出力が行われる。また、割込信号ADIを出力する。かかる割込信号ADIは、割り込みコントローラINTに与えられて、上記データトランスファコントローラDTCの起動信号又は中央処理装置CPUの割込要求とされる。
【0211】
コントロールロジックは、中央処理装置CPUから与えられるアドレスバスからのアドレス信号、リード信号、ライト信号に基づいて、内部データバスとの間でバスインターフェイスを介して制御レジスタADCSR、ADCR、データレジスタADDRA〜ADDRHとの間でデータの入出力を行う。コントロールロジックには、外部トリガ信号ADTRG及びタイマA,Bからの起動信号が入力される。コントロールロジックは、上記制御レジスタADCSR、ADCRの内容に基づいて、アナログ入力動作制御を行う。そして、コントロールロジックは、上記割込信号ADIを出力する。
【0212】
制御レジスタADCSR、ADCRは、中央処理装置CPUから内部データバス、バスインターフェイスを介してリード/ライトが行われ、コントロールロジックの動作を指示し、上記アナログ入力の状態を表示する。つまり、入力チャンネルの選択・変換モードの選択等を行う。A/D変換モードには、後述するように1チャンネルの変換を行うセレクトモードと、複数チャンネルの変換を行うグループモードがあり、これに加えて1回の変換を行うシングルモードと繰り返して変換を行うスキャンモードがある。
【0213】
【表16】
【0214】
制御レジスタADCSRは、A/Dコントロール/スタータスレジスタであり、8ビットのリードR又はライトWが可能なレジスタであり、A/D変換の動作制御とステータスの表示を行う。このレジスタADCRSはリセット時にB’00にイニシャライズ(初期値)にされ、そのビット構成を上記表16に示す。
【0215】
ビット7のADFは、A/D変換の終了を示すスタータスフラグであり、クリア条件は、ADF=1の状態で、ADFフラグをリードした後にADFフラグに0をライトしたとき、ADI割り込みによりデータ転送装置DTC又はDMACが起動されたときである。セット条件は、シングルモードのときに、指定した全てのチャンネルの変換を終了し、A/D変換が終了したときと、スキャンモードのときに、指定した全てのチャンネルを一巡して変換したときである。
【0216】
ビット6のADIEは、A/D変換の終了による割り込み(ADI)要求の許可又は禁止を選択する。ADIE=0ならA/D変換の終了による割り込み(ADI)要求を禁止(初期値)し、ADIE=1ならA/D変換の終了による割り込み(ADI)要求を許可する。
【0217】
ビット5のADSTは、A/D変換の開始又は停止を選択する。A/D変換中は1を保持する。ADSTは、A/D外部トリガ入力端子(ADTRG)、又はタイマのトリガ信号によって1にセットされる。ADST=0のときはA/D変換を停止し、ADST=1のときシングルモードならA/D変換を開始し、指定したチャンネルの変換が終了すると自動的に0にクリアされる。ADST=1のときスキャンモードならA/D変換を開始し、ソフトウェアにより0にクリアされまで連続変換を行う。
【0218】
ビット4のCKSは、クロックセレクト信号であり、A/D変換時間の設定を行う。変換時間の切り替えは変換停止中に行われる。CKS=0のときには変換時間が20ステート(基準クロックφを選択)となり、CKS=1のときには変換時間が40ステート(基準クロックφ/2を選択)となる。
【0219】
ビット3のGRPはグループモード信号であり、A/D変換チャンネルの選択をセレクトモード又はグループモードに指定する。このGRPビットの設定は、A/D変換停止中に行われる。GRP=0のときにはセレクトモードとされ、GRP=1のときにはグループモードとされる。
【0220】
ビット2〜0はチャンネルセレクト信号であり、上記GRPビットとともにアナログ入力チャンネルを選択する。入力チャンネルの設定は、A/D変換停止中に行われる。GRP=0のときにはセレクトモードのときには上記3ビットCH2〜CH0の組み合わせによりAN0〜AN7のいずれか1つが選ばれる。GRP=1のときにはグループモードのときには上記3ビットCH2〜CH0がB’000ときにAN0のみが選択され、それ以外は上記AN0とビットCH1とCH2の組み合わせによりAN1〜AN7が上記AN0と同時に選ばれる。
【0221】
制御レジスタADCRは、A/Dコントロールレジスタであり、8ビットのリードR又はライトWが可能なレジスタであり、A/D変換の動作制御を行う。このレジスタADCSはリセット時にB’00にイニシャライズ(初期値)にされ、そのビット構成を次の表17に示す。
【0222】
【表17】
【0223】
ビット7のINFは、インターバルビットであり、インターバル動作を指定する。インターバル動作では、BUSY信号が活性状態のとき、新しいA/D変換動作を開始しない。ADFフラグを0にクリアすることにより、BUSY信号を活性状態にして、新しいA/D変換動作を開始させることができる。INF=0は通常動作であり、INF=1が上記インターバル動作である。
【0224】
ビット6のPWRは、電源ビットであり、変換開始モードを設定する。変換開始モードについては、高速変換モードと低消費電力モードからなる。
【0225】
ビット5〜4のTRGS1,TRGS0は、タイマトリガセレクトビットであり、トリガ信号によるA/D変換開始の許可又は禁止を選択する。TRGS1,TRGS0の設定は、A/D変換停止中に設定される。上記2ビットのTRGS1,TRGS0の組み合わせより、次の4通りが選択できる。(1)ソフトウェアによるA/D変換の開始のみを許可する。(2)タイマトリガ(タイマB)によるA/D変換の開始を許可する。タイマBのいずれの信号をトリガするかは、TIERのTTGEビットで選択することができる。複数のトリガ、例えばTGR3AのコンペアマッチとTCNT4のアンダーフローを用いることができる。(3)タイマトリガ(タイマA)によるA/D変換の開始を許可する。(4)外部トリガ端子によるA/D変換の開始を許可する。
【0226】
ビット3のSCANは、スキャンモードであり、A/D変換の動作モードをシングルモード又はスキャンモードの選択を行う。SCAN=0ならシングルモードとなり1回の変換を行う。SCAN=1ならスキャンモードとなり、繰り返し変換を行う。
【0227】
ビット3のDSMPは、同時サンプリングモードであり、2チャンネルの同時サンプリング動作を許可又は禁止する。この同時サンプリング動作の詳細につていは後に説明する。DSMP=0なら通常サンプリング動作する。DSMP=1なら同時サンプリング動作とし、所定のタイミングでサンプルホールド・レベルシフト回路A,Bに一対のアナログ入力が同時に入力されて保持される。
【0228】
ビット1と0のBUFE1,BUFE0はバッファイネーブルであり、データレジスタADDRA〜ADDRDをバッファレジスタとして使用するかしないかを選択する。
【0229】
データレジスタADDRA〜ADDRHは、中央処理装置CPUから内部データバス及びバスインターフェイスを介してリード/ライトが可能であり、アナログ入力データ、言い換えるならば、A/D変換結果が格納される。特に制限されないが、これらのデータレジスタADDRA〜ADDRHは、それぞれが16ビットからなり、A/D変換されたデータが10ビットであるときには、下位8ビットが下位バイト(ビット7〜0)に、上位2ビットが上位バイト(ビット9と8)に転送保持される。上位バイトのビット15〜10は使用されないが、リードすると常に0が読み出されるようにされる。この実施例では、データの読み出しは、バイト又はワード選択ができるようにされる。つまり、10ビット分解能のA/D変換出力はワードモードとして読み出され、8ビット分解能のA/D変換出力はバイトモードとして上位8ビット(ビット9〜2)が読み出されるようにされる。
【0230】
アナログマルチプレクサは、コントロールロジックの出力する選択信号に基づいてアナログ入力AIN0〜AIN7を選択し、それに対応したアナログ信号を内部に取り込む。このアナログマルチプレクサは、上記図1の入出力ポートIOP9に含まれるようにしてもよい。
【0231】
サンプルホールド・レベルシフト回路は、コントロールロジックから出力されるサンプリング信号に基づいて、アナログマルチプレクサで選択されたアナログ入力信号をサンプリングしてホールド(蓄積)する。この実施例では、2個のサンプルホールド回路AとBが設けられており、それぞれには独立したサンプリング信号AとBが与えられる。それ故、上記サンプリング信号AとBにより独立したタイミングでサンプリングすることも、同時にサンプリングすることもできるようにされる。図46のシステムにおいて、2つのアナログ入力チャンネルAIN4,AIN5を同時にサンプリングすると都合がよい。モータ駆動電流を同時に検出でき、更に3本目の電流を計算する際にも相互の電流値の精度を向上でき、モータ駆動の精度を向上することができる。
【0232】
レベルシトフ回路AとBは、レベルシフト信号AとBにより上記ホールドされた入力信号をレベルシフトさせる。このレベルシフト動作は、1回目のA/D変換結果に基づいて行われる。例えば、基準電圧VRFE対応したアナログ入力範囲を4等分した電圧範囲のうち、VREF/4〜VREF/2のサブレンジ領域内に上記ホールドされた入力信号をシフトさせる。
【0233】
コンパレータアレイAとBは、それぞれが5個の差動増幅回路で構成される。これらのコンパレータアレイAとBは、サンプルホールド回路AとBにホールドされた入力信号と、局所抵抗分圧回路により形成された複数の基準電圧(5本)とを比較し、比較結果を出力する。すなわち、2ビット分の比較を同時に行うことができる。比較結果は、コントロールロジックにより2進信号化されて逐次比較レジスタに格納される。
【0234】
1回目の比較では、抵抗分圧回路の上位2ビットとの比較を行う。この比較結果に基づいてレベルシフト信号AとBがそれぞれ形成されて、レベルシフト回路AとBにより上記のようにサブレンジ領域内にホールドされた入力信号をシフトさせる。2回目以降の変換動作は、局所分圧回路(6ビット分圧)により1/64の分圧電圧を形成し、そのうちの2ビット分がセレクタを通して選択され、更に2ビット分圧により分圧された電圧が上記コンパレータアレイA又はBに供給されることにより行われる。このような動作を繰り返すことにより最下位ビットまでの変換動作が行われる。A/D変換動作の終了時に、コントロールロジック(逐次比較レジスタ)に保持された変換データがデータレジスタADDRA〜ADDRHのいずれかに転送される。
【0235】
抵抗分圧回路(D/A変換)は、例えば10ビット分解能とされるときには、基準電圧Vref とアナログ接地電圧AVssの間を1024個の抵抗により分圧された分圧電圧を形成することが必要とされる。このようにすると、抵抗数が増大してしまうので、この実施例では上記のように上位2ビット分圧、6ビット分圧及び下位2ビット分圧の3つの分圧回路に分けることにより、抵抗数を大幅に低減させている。つまり、この実施例の分圧抵抗回路は、上位2ビット分圧回路と6ビットと2ビットに分けられた局所分圧回路で構成される。上位2ビット分圧回路は、VERF、3REF/4、VREF/2、VREF/4及び0Vを形成して、レジスタシフト回路及びコンパレータアレイに供給する。
【0236】
6ビット局所分圧回路は、上記VREF/4〜VREF/2の範囲を1/64に分圧してなる64通りの分圧電圧を形成し、逐次比較レジスタの内容による指定に基づいてセレクタが制御されて上位から順に2ビット分ずつに対応された分圧電圧を出力する。この分圧出力は、さらに下位2ビット分圧により分圧されてコンパレータアレイに供給されてA/D変換動作に用いられる。アナログ電圧AVcc、AVssは、アナログ部(マルチプレクサ、サンプルホールド回路、コンパレータアレイなど)の電源とされる。
【0237】
図51には、この発明に係るシングルチップマイクロコンピュータの動作の一例を説明するためのフローチャート図が示されている。リセットを解除することにより、マイクロコンピュータの初期設定が行われる。これには前記タイマITUやDTC及びA/D変換器の初期設定も含まれる。A/D変換器は、ITUのトリガに従って入力チャンネルAIN4,5を変換するように設定される。タイマAは、インターバルタイマとして動作を開始させる。
【0238】
上記のような初期設定が終了すると、モータの起動要求待ち状態になる。モータの起動要求は、例えば上位のCPUから入出力ポートを介して与えられる。このモータの起動要求が入力されると、所望の処理に従ってコンペア値が算出されて、これがRAM上の第1の領域に配置される。
【0239】
次に、ITUが起動され、相補PWM出力が行われ、割り込み待ち状態になる。コンペアマッチTCNT3=TGR3A(IMIA3)割り込み(山)あるいはアンダーフローTCNT4=0(UVI4)割り込み(谷)が発生すると、A/D変換器に起動信号が与えられて自動的ないしハードウェア的に初期設定に従って入力チャンネルAIN4,5がA/D変換される。また、上記IMIA3割り込み(山)あるいはUVI4割り込み(谷)によってDTCが起動され、前記RAM上の所定のアドレスからITUのバッファレジスタTGR3D,TGR4C,TGR4Dにコンペア値が転送され、PWMのデューティが変更される。
【0240】
CPUの割り込み処理ルーチンによってTGR1Aをリードしてモータ位置の確認が行われる。また、TGR0B,TGR0Dをリードして、その差分(TGR0B−TGR0D)を計算することにより、モータの速度が確認される。A/D変換結果をリードして、2相分のモータ駆動電流を得るとともに、これに基づいて3相目のモータ駆動電流を算出する。
【0241】
TCNT2をリードして速度司令を確認する。そのほか、予めRAM上の第2の領域に保持していたセンサ回路の入力値をリードする。上記のモータの位置・速度、モータ駆動電流、そのほかのセンサの入力値を参照して所望の処理を行って新しいコンペア値が算出され、これをRAM上の第1の領域に書き込む。例えば、モータの速度と速度司令とを比較し、モータの速度が遅いならばモータのトルクを大きくするようにする。このとき、モータの駆動電流値をモニタしつつ、トルクを変更するようにすることにより、トルクリップルを低減させることができる。
【0242】
そして、上記割り込み待ち状態に戻る。一方、TIOC3A端子によるインプットキャプチャ(IMIC3)割り込みが発生すると、自動的に出力値が遮断され、TOSRの値が出力されてPWM出力値が固定される。CPUの割り込み処理ルーチンによって、モータの停止処理が行われる。その後、モータの起動要求待ち状態になる。
【0243】
タイマAのインターバルタイマ割り込みが発生すると、A/D変換器の設定変更を行い、ソフトウェアの起動によってモータ駆動電流以外のセンサ入力値をA/D変換する。変換された結果は、RAM上の第2の領域に保持される。そして、A/D変換器の設定を元に戻してリターンする。
【0244】
コンペアマッチTCNT0=TGR0A(IMIA0)割り込みが発生すると、TGR0A,TGR0Cの値に所望の一定値を加算してリターンする。
【0245】
各相の変調関数を
u=(1/2)(m×sin(ωt)+1)
v=(1/2)(m×sin(ωt−2π/3)+1)
w=(1/2)(m×sin(ωt+2π/3)+1)
とする。すなわち、正弦波の正方向に振幅が大きいときデューティを大きく、負方向に大きいときデューティを小さくするようにする。このとき、復調された結線間の電圧波は、電圧がEのとき一例として
U−V=(3/2)1/2 ×E×m×sin(ωt+π/6)とされる。その他の結線間の電圧波は、上記と120°(2π/3)の位相差を持つ正弦波となる。かかる電圧に従って、コイルに電流が流れることによって、モータを回転させることができる。相補PWMの周期を、かかる関数の周期(1/ω)より十分に小さくし、PWMの山/谷に相当する各時点での上記変調関数の振幅に比例した、PWMデューティを得られるように、コンペア値を設定する。
【0246】
図52には、上記PWMの波形図が示されている。同図には、1サイクルを15分割した場合の正弦波PWM波形が示されており、(A)には変調率mを1とし、(B)には変調率mを0.6にした場合が示されている。この変調率mは0から1までの値をとり得るものである。
【0247】
上記のように、モータの速度と速度司令を比較し、この結果に基づいてトルクの計算を行う。トルクの制御は、加減速のトルクやモータ負荷に見合ったトルクをモータに与えるようにする必要がある。トルク制御の結果に基づいて、必要なトルクを得るのに必要な電流と位相が計算される。モータの駆動電流値のA/D変換器によるモニタ結果とし比較して、モータの位置(例えば磁極位置)をモニタしたりしつつ、上記関数m、ωを決定し、これに従ってコンペア値、ひいてはPWMデューティを得るようにするものである。この実施例のITU(タイマB)では、0%〜Td、100%−Td〜100%も含めて、任意のデューティのPWM出力を形成することができる。0%〜Td、100%−Td〜100%の出力を可能にしたことにより、結線間の最大電圧・最小電圧の低下、すなわち、振幅の低下を防止することができる。0%、100%のデューティを同期して出力させることができるから、結線間の最大電圧・最小電圧の低下、すなわち、振幅の低下を防止することができる。
【0248】
図53には、この発明に係るシングルチップマイクロコンピュータを用いた制御システムの他の一実施例の概略ブロック図が示されている。同図の制御システムは、特に制限されないが、ブラシレスDCモータの制御システムに向けられている。
【0249】
この実施例では、16ビットタイマによる相補3相のPWM出力(TIOC3B〔U〕、TIOC3D〔U#〕、TIOC4A〔V〕、TIOC4C〔V#〕、TIOC4B〔W〕、TIOC4D〔W#〕)を用い、インバータ回路を介してモータを駆動している。この場合、リセット同期PWMモードが使用される。
【0250】
ブラシレスDCモータに装着されたホール素子の出力が、タイマBのインプットキャプチャ入力(TIOC0A,TIOC0B,TIOC0C)に入力される。このインプットキャプチャ動作によってモータの位置検出を行うことができる。例えば、ホール素子が60°間隔で配置されているとする。インプットキャプチャによって、ホール素子の位置、すなわち、モータの位置を判定することができる。このとき、インプットキャプチャ値を逐次蓄積しておくことにより、例えば60°毎の時間、ひいてはモータの回転速度を測定することもできる。
【0251】
速度制御演算は、上記モータの速度と速度司令とを比較して、電流値を計測する。位置検出の結果とに基づいて、U,V,W相の上下アームの通流状態の切り換えが行われる。120°通電方式では、U,V,W相のいずれか1つの相が順番に駆動される。駆動されていない相は、例えば前記レジスタTOERの所定ビットを0にクリアして、タイマの出力を禁止してポート出力として所定のレベルを出力することができる。
【0252】
あるいは、前記レジスタTGCRのFBビットを0にクリアしてホール素子の入力(TIOC0A,TIOC0B,TIOC0C)のインプットキャプチャ信号をフィードバック入力として用い、1相のリセット同期PWM出力を許可し、そのほかを所定のレベルにすることができる。例えば、TGCRのPビットを1にセットし、Nビットを0にクリアした状態では、TIOC0Aの立ち上がりエッジからTIOC0Bの立ち上がりエッジまでU相のリセット同期PWM出力を行い、TIOC0Bの立ち上がりエッジからTIOC0Aの立ち上がりエッジまでU相出力をロウレベルにする。TIOC0Aの立ち下がりエッジからTIOC0Bの立ち下がりエッジまでU#相はハイレベル出力を行い、TIOC0Bの立ち下がりエッジからTIOC0Aの立ち下がりエッジまでU#相出力をロウレベルにする。
【0253】
図54に、図53の制御システムにおけるタイマ出力のタイミング図が示されている。同図は、レジスタTGCRをBDC=1、N=0、P=1、FB=0としたリセット同期PWMモードによって、いわゆる120°通電方式を実現した例である。U相は、TIOC0Aの立ち下がりエッジから、TIOC0Bの立ち下がりエッジまで、U#相は、TIOC0Aの立ち上がりエッジからTIOC0Bの立ち上がりエッジまで出力される。出力が禁止された場合、ロウレベルを出力る。正相のみリセット同期PWMはけいが出力される。逆相はゲート信号が出力される。
【0254】
上記実施例によれば、以下の作用効果が得られる。すなわち、
(1) サブカウンタTCNTSを設けて、上限(Tc/2+DTR)から下限0までカウントする平行な2本のアップカウント及びダウンカウントを実現することにより、0%〜100%のデューティのPWM出力を得ることができ、設定範囲の制約を無くしてソフトウェアの負担を軽減させることができるという効果が得られる。
【0255】
(2) デューティ50%に対して対称にでき、上アーム(U,V,W)と下アーム(U#,V#,W#)を対称にできる。上アームと下アームが同時にオンすることがないから、正相及び逆相出力がいずれも非活性状態の期間の長さをデッドタイムの2倍以下にできる。このことはインバータモータの駆動に適しており、任意のデューティが出力可能であり、速度ないしトルクのリップルを無くして円滑な回転制御が可能になるという効果が得られる。
【0256】
(3) 比較レジスタの更新タイミングを山、谷又は山と谷の両方の中から選択することにより、書き換え禁止期間を無くしてソフトウェアの負担を軽減することができ、0%出力、100%出力に同期して出力可能にし、インバータモータの駆動の最大トルクを発生することができるという効果返られる。
【0257】
(4) 比較レジスタの更新タイミングを山と谷の両方で書き換え可能にしたことにより、制御の精度を向上させることができるという効果が得られる。
【0258】
(5) 1つの比較器に対して入力するカウンタ(TCNT3,TCNT4)と入力する比較レジスタ(TDCR、TDDR)を選択可能にすることにより、物理的・物理的規模の増加を抑制することができるという効果が得られる。
【0259】
(6) BRのバッファとなるTRを設けることにより、レジスタの書き換えタイミングを任意にすることができ、ソフトウェアに負担をかけることがないという効果が得られる。
【0260】
(7) 制御などのレジスタの書き込みを禁止可能にしたことにより、初期設定のみが必要な制御レジスタの誤書き込みによるタイマの誤動作を防止することができるという効果が得られる。
【0261】
(8) バッファレジスタを連続領域とすることによって、DTCなどのデータ転送装置によるライトを可能にし、かかるDTCをコンペアマッチ(上限値)又はアンダーフロー(下限値)によって起動することによって、ソフトウェアの負担なく、PWMデューティの設定を行うことができるという効果が得られる。
【0262】
(9) インターバルタイマのコンペアマッチ周期によるアップダウンタイマのカウント値(2相エンコーダ)をキャプチャ可能としたことにより、位置検出をすることができる。アップダウンタイマのカウント入力のパルス幅を検出して速度の検出ができる。速度ないし位置サンプリング周期に同期した速度/位置検出を可能にして、外部回路を削除し、ソフトウェアの負担を軽減させることができる。インバータモータのエンコーダの出力を、上記アップダウンタイマのクロック入力とすることにより、インバータモータのサンプリング周期に同期した速度/位置検出を可能にすることができるという効果が得られる。エンコーダ入力のカウンタをカスケード接続可能にして、モータの位置検出のダイナミックレンジを広げることができる。
【0263】
(10) 1つのカウンタ(TCNT0)に対して、インプットキャプチャ入力3本以上設け、インバータモータのホール素子の出力を入力することにより、インバータモータが所定の位置になった時間を測定することができ、ひいては速度/位置検出を可能とすることができるという効果が得られる。
【0264】
(11) 2相エンコーダを2組としたことにより、一方をモータのエンコーダ入力としつつ、他方を別の入力とすることができ、例えば速度指令列を入力することができるという効果が得られる。
【0265】
(12) 山と谷の両方でA/D変換器を起動可能にし、モータ駆動電流を電流−電圧変換したアナログ入力をA/D変換器に入力することにより、PWM出力に同期してモータ駆動電流の計測を行うことができ、モータ駆動の制御を容易にすることができるという効果が得られる。A/D変換器に複数のサンプルホールド回路を設けて、3相のモータ駆動電流のうち、複数を同時にサンプリングすることができ、モータ駆動電流の測定精度を向上でき、ひいてはモータの制御精度を向上することができる。
【0266】
(13) 内部クロックのエッジ検出を選択可能にしたことにより、内部信号本数を増やすことなく、また、制御レジスタの制御ビットを有効に利用して選択可能なカウントアップクロックを増やすことができるという効果が得られる。
【0267】
以上本発明によりなされた発明を実施例に基づき具体的に説明したが、本願発明は前記実施例に限定されるものではなく、その要旨を逸脱しない範囲で種々変更可能であることはいうまでもない。例えば、タイマの全体的なチャンネルの数は5チャンネル+サブカウンタに限定されず、追加や削除が可能である。チャンネル3ないし4及びサブカウンタに相当する機能を有していればよい。例えば、サブカウンタを汎用のタイマカウンタとして使用できるようにしてもよい。あるいは、全体のチャンネル数を16チャンネルなどとしてもよい。一体のモジュールないし機能ブロックとして構成するほか、分割していわゆるタイマネットワークなどのように、相互に接続するようにしてもよい。タイマジェネラルレジスタTGRの数も任意の数とすることができる。動作モードや制御レジスタの構成についても種々変更が可能である。制御システムの種類、モータの種類などに応じてモータの位置及び速度を計測することができるモードやTGRの数を用意しておけばよい。
【0268】
マイクロコンピュータのその他の機能ブロックについても何ら制約されない。CPUやそのほかのモジュールないし機能ブロックの一部又は全部は内蔵されなくてもよい。例えばCPUを取り除いて、外部のマイクロプロセッサからリード/ライト可能な半導体集積回路装置で構成することもできる。タイマ入出力端子は、入出力ポートと兼用されず、独立の端子としてもよい。A/D変換器の構成やDTCの構成も種々変更可能である。DTCなどのデータ転送装置によって、PWM出力のデューティを設定するレジスタを容易に書き換えられるようにしておくことが望ましい。
【0269】
応用システムも前記実施例に限定されない。一部の機能を削除したり、あるいは新規な機能を追加したりすることは容易である。モータの種類もAC同期モータ、DCサーボモータなどでもよい。固定子のコイルを駆動する電流を制御して、かかる電流による誘導磁場によって回転するモータであればよい。相補PWMモードを用いる180°通電方式を用いるモータとしては、特に、かご型インダクションモータなどが代表的とされ、産業用汎用インバータなどに用いることができる。応用システムもエアーコンデショナー、冷凍機、ポンプ、工作機械などに用いることができる。
【0270】
以上の説明では主として本発明者によってなされた発明をその背景となった利用分野であるマイクロコンピュータに適用した場合について説明したが、それに限定されるものではなく、その他の半導体集積回路装置又はデータ処理装置にも適用可能であり、本発明は少なくともモータを制御可能な6相PWM出力機能を有する半導体集積回路装置又はデータ処理装置等の制御装置及びそれを用いた制御システムに広く利用することができる。
【0271】
【発明の効果】
本願において開示される発明のうち代表的なものによって得られる効果を簡単に説明すれば、下記の通りである。すなわち、
(1)デッドタイムに相当する時間差を持った2本のアップカウンタ、及び2本のダウンカウンタを設け、これを上限値と下限値(1/2周期+デッドタイム)の間をカウントするようにし、相対的に大き値をカウントするアップカウントと、相対的に大きな値をカウントするダウンカウントとが上限値に接するようにし、相対的に小さな値をカウントするアップカウントと相対的に小さな値をカウントするダウンカウントとが1/2周期に相当するカウント値で交わるようにし、相対的に大きな値をカウントするアップカウントと相対的に大きな値をカウントするダウンカウントとがデッドタイムに相当するカウント値で交わるようにし、相対的に小さな値をカウントするアップカウントと相対的に小さな値をカウントするダウンカウントとが下限値で接するようにし、上下対称のカウントを実現しする。
【0272】
かつ、(2)第1の比較レジスタ(TGR)と第2の比較レジスタ(BR)を、上記カウンタと比較可能にし、上記カウント値がデッドタイム以下の場合と、1/2周期に相当するカウント値以上のとき両方の比較を行い、デッドタイム以上かつ1/2周期に相当するカウント値以下のとき第1の比較のみを行う。
【0273】
かつ、(3)正相出力がオフレベルの状態で、比較レジスタが相対的に小さい値をカウントするアップカウントに一致すると、逆相出力をオンレベルにし、比較レジスタが相対的に大きい値をカウントするダウンカウントに一致すると、逆相出力をオフレベルにし、逆相出力がオフレベルの状態で比較レジスタが相対的に大きい値をカウントするアップカウントに一致すると、正相出力をオフレベルにし、比較レジスタが相対的に大きい値をカウントするダウンカウントに一致すると、正相出力をオンレベルにする。
【0274】
かつ、(4)CPUは第2の比較レジスタにライトし、両方の比較を行う領域から第1の比較のみを行う領域に遷移したときに、第2の比較レジスタから第1の比較レジスタへのデータ転送を行うことを可能にする。更に、アップカウント時の両方を行う領域から、第1の比較のみを行う領域に遷移したときに、第2の比較レジスタから第1の比較レジスタへのデータ転送を行うこと、または、ダウンカウント時の両方の比較を行う領域から第1の比較のみを行う領域に遷移したときに、第2の比較レジスタから第1の比較レジスタへデータ転送を行うこと、または、アップ及びダウンカウント時の両方の比較を行う領域から第1の比較のみを行う領域に遷移したときに、第2の比較レジスタから第1の比較レジスタへのデータ転送を行うことを選択可能にする。
【0275】
上記により、(1)ソストウェアに負担をかけることなく、デューティ0〜100% W出力可能な相補PWM出力を行うことができる。(2)0%、100%の位相を合わせることができる。(3)正相/逆相間のオン−オフの切り換え時に、必ずデッドタイム(ノンオーバーラップ時間)を持つことができる。(4)正相/逆相共にオフする期間は、デッドタイムの2倍以下であるようにすることができる。(5)デューティ50%を中心に正相/逆相のデューティを対称にすることができる。(6)比較レジスタのデータの書き換えタイミングを任意にすることができる。これらにより、画一的な操作を可能にし、ソフトウェアの負担を軽減することができ、円滑で効率的なモータの駆動を行うことができる。
【図面の簡単な説明】
【図1】この発明が適用されたシングルチップのマイクロコンピュータの一実施例を示すブロック図である。
【図2】この発明に係るタイマB(ITU)の一実施例を示す一部ブロック図である。
【図3】この発明に係るタイマB(ITU)の一実施例を示す残り一部のブロック図である。
【図4】上記タイマBにおけるジェラルレジスタがアウトプットコンペアレジスタの場合の動作構成図である。
【図5】上記タイマBにおけるジェラルレジスタがインプットキャプチャレジスタの場合の動作構成図である。
【図6】この発明に係るバッファ動作の設定手順を示すフローチャート図である。
【図7】この発明に係るバッファ動作の一例を説明するためのタイミング図である。
【図8】この発明にかかるバッファ動作の他の一例を説明するためのタイミング図である。
【図9】この発明に係るカスケード接続機能の設定手順を説明するためのフローチャート図である。
【図10】この発明に係るカスケード接続動作の一例を示すタイミング図である。
【図11】この発明に係るカスケード接続動作の他の一例を説明するためのタイミング図である。
【図12】この発明に係るカスケード接続動作の更に他の一例を説明するためのタイミング図である。
【図13】この発明に係るPWMモードの設定手順を説明するためのフロチャート図である。
【図14】この発明に係るPWMモードの動作を説明するための動作波形図である。
【図15】この発明に係るPWMモードの他の動作を説明するための動作波形図である。
【図16】この発明に係るPWMモードの他の動作を説明するための動作波形図である。
【図17】この発明に係る位相計数モードの動作の一例を説明するためのタイミング図である。
【図18】この発明に係るリセット同期PWMモードの設定手順を説明するためのフローチャート図である。
【図19】この発明に係るリセット同期PWMモードの動作を説明するためのタイミング図である。
【図20】この発明に係る相補PWMモードの設定手順を説明するためのフローチャート図である。
【図21】この発明に係る相補PWMモードの動作を説明するための波形図である。
【図22】この発明に係る相補PWMモードにおける0%と100%の出力例を説明するための波形図である。
【図23】この発明に係る相補PWMモードにおけるトグル出力機能を説明するための波形図である。
【図24】この発明に係る相補PWMモードにおけるPWMデューティデータ転送タイミングを説明するための波形図である。
【図25】この発明に係る相補PWMモードにおける出力例を説明するための波形図である。
【図26】この発明に係る相補PWMモードにおける出力例を説明するための波形図である。
【図27】この発明に係る相補PWMモードにおける出力例を説明するための波形図である。
【図28】この発明に係るタイマにおけるアップダウンコントロール部の一実施例を示すブロック図である。
【図29】この発明に係るタイマにおけるアップダウンコントロール部の動作を説明するための状態遷移図である。
【図30】この発明に係るタイマにおけるアップダウンコントロール部の動作を説明するための概略波形図である。
【図31】上記アップダウンコントロール部におけるTA,TBのセット/リセット時のオペレーションの違いを説明するための概略波形図である。
【図32】上記アップダウンコントロール部におけるTA,TBのセットとUDの切り替えタイミングを説明するための波形図である。
【図33】上記アップダウンコントロール部におけるTA,TBのセットとUDの切り替えタイミングを説明するための波形図である。
【図34】上記アップダウンコントロール部におけるバッファ転送信号BTRの生成を説明するための概略波形図である。
【図35】上記アップダウンコントロール部におけるバッファ転送信号生成タイミングチャート図である。
【図36】この発明に係るサブカウンタ関係信号の生成を補足説明するための概略波形図である。
【図37】この発明に係るカウタにおけるカウンタ/レジスタ選択信号の生成を説明するための概略波形図である。
【図38】この発明に係る割り込みA/D変換スタートトリガのタイミングチャート図である。
【図39】この発明に係る相補PWM制御を説明するための構成図である。
【図40】この発明に係るアップダウンコントロール部の他の一実施例を示すブロック図である。
【図41】この発明に係るアップダウンコントロール部の更に他の一実施例を示すブロック図である。
【図42】この発明にかかるタイマBの相補PWMモードとデータトランスファコントローラDTCの動作の一例を説明するためのアドレスマップ図である。
【図43】この発明に係るタイマBの相補PWMモードとデータトランスファコントローラDTCの動作の他の例を説明するためのアドレスマップ図である。
【図44】この発明に係るタイマBの相補PWMモードとデータトランスファコントローラDTCの動作の他の例を説明するためのアドレスマップ図である。
【図45】この発明に係るタイマBのリード/ライト制御回路の一実施例を示すブロック図である。
【図46】この発明が適用されたシングルチップマイクロコンピュータを用いた制御システムの一実施例を示す概略ブロック図である。
【図47】この発明にかかるタイマ回路のチャンネル0とチャンネル1との接続例を説明するためのブロック図である。
【図48】図47の実施例の動作を説明するためのタイミング図である。
【図49】この発明に係る相補PWMモード3の場合のA/D変換器の動作タイミングを説明するためのタイミング図である。
【図50】この発明に係るA/D変換器の一実施例を示すブロック図である。
【図51】この発明に係るシングルチップマイクロコンピュータの動作の一例を説明するためのフローチャート図である。
【図52】この発明を説明するためのPWMの波形図である。
【図53】この発明に係るシングルチップマイクロコンピュータを用いた制御システムの他の一実施例を示す概略ブロック図である。
【図54】図53の制御システムにおけるタイマ出力のタイミング図である。
【符号の説明】
CPU…中央処理装置、RAM…ランダム・アクセス・メモリ、ROM…リード・オンリー・メモリ、SCI…シリアルコミュニケーションインターフェイス、ITU…タイマ、DTC…データ転送装置(データトランスファコントローラ)、CPG…クロック発生回路、IOP1〜8…入出力ポート、
TGR0A〜TGR4D…ジェネラルレジスタ、TIOC0A〜TIOC4D…入出力端子、TCLKA〜TCLKD…クロック入力、TCR(0〜5)…タイマコントロールレジスタ、TMDR(0〜5)タイマモードレジスタ、TIOR(0L〜5H)…タイマI/Oコントロールレジスタ、TCNT(0〜5)タイマカウンタ、TSTR…タイマスタートレジスタ、TYSR…タイマシンクロレジスタ、TIER3,4…タイマインタラプトイネーブルレジスタ、TSR3,4…タイマステータスレジスタ、TOER…タイマアウトプットマスタイネーブルレジスタ、TOCR…タイマアウトプットコントロールレジスタ、TGCR…タイマゲートコントロールレジスタ、TOSR…タイマ出力遮断データレジスタ、TCDR…タイマ周期データレジスタ、TDDR…タイマデッドタイムレジスタ、
ADDRA〜ADDRH…データレジスタ、ADCR,ADCSR…制御レジスタ、BIF…バッファ回路、MDB…モジュール内バス、DB…内部データバス、
Claims (15)
- マイクロプロセッサと上記マイクロプロセッサによって制御されるモータとを有する制御システムであって、
上記マイクロプロセッサは、
第1値を格納する第1レジスタと、
上記第1値より大きな第2値を格納する第2レジスタと、
上記第2値より大きな第3値を格納する第3レジスタと、
クロック信号を受け、上記クロック信号をカウントする事によって上記第1値と上記第3値との間をカウントアップ及びカウントダウン動作し、それに対応する計数値を発生する第1カウンタと、
上記クロック信号を受け、上記クロック信号をカウントする事によって上記第1値より小さい第4値と上記第2値との間をカウントアップ及びカウントダンウ動作し、それに対応する計数値を発生する第2カウンタと、
上記クロック信号を受け、上記クロック信号をカウントする事によって上記第1値と上記第4値との間と上記第3値と上記第2値との間とをカウントアップ及びカウントダウン動作し、それに対応する計数値を発生する第3カウンタと、
上記第4値と上記第3値との間の第5値を格納する第4レジスタと、
上記第1、上記第2及び上記第3カウンタに結合され、上記第1、上記第2及び上記第3カウンタのカウントアップ及びカウントダウン動作を制御する制御回路と、
比較回路とを含み、
上記第2値と上記第3値との差は、第6値とされ、
上記第1値と上記第4値との差は、上記第6値に対応され、
上記第1カウンタのカウント値と上記第2カウンタのカウント値との差は、上記第6値に対応され、
上記第1カウンタがカウントアップ動作を行っているとき、上記第2カウンタはカウントアップ動作を行うようにされており、
上記第1カウンタがカウントダウン動作を行っているとき、上記第2カウンタはカウントダウン動作を行うようにされており、
上記第3カウンタは、上記第1カウンタのカウント値が上記第2値と一致したとき、上記第3値からカウントダウン動作を行い、
上記第3カウンタは、上記第2カウンタのカウント値が上記第2値と一致したとき、上記第2値からカウントアップ動作を行い、
上記第3カウンタは、上記第2カウンタのカウント値が上記第1値と一致したとき、上記第4値からカウントアップ動作を行い、
上記第3カウンタは、上記第1カウンタのカウント値が上記第1値と一致したとき、上記第1値からカウントダウン動作を行い、
上記比較回路は、上記第5値が上記第1値と上記第2値との間にあるとき、上記第5値と上記第1及び第2カウンタのそれぞれのカウント値とを比較するようにされ、
上記比較回路は、上記第5値が上記第2値以上のとき、上記第5値を、カウントアップ動作を行っている上記第1及び第3カウンタのそれぞれのカウント値、又は、上記第5値とカウンドダウン動作を行っている上記第1及び第3カウンタのそれぞれのカウント値とを比較するようにされ、
上記比較回路は、上記第5値が上記第1値より小さいとき、上記第5値を、カウントダウン動作を行っている上記第2及び第3カウンタのそれぞれのカウント値、又は、カウントアップ動作を行っている上記第2及び第3カウンタのそれぞれのカウント値とを比較するようにされ、
上記レジスタに格納されている値は、上記第1カウンタの値が上記第2値に対応し、または、上記第2カウンタの値が第1値に対応したときにそれぞれ更新され、
それによって、相補ノンオーバーラップPMW信号を上記マイクロプロセッサから上記モータを駆動するために出力する制御システム。 - 請求項1において、
上記マイクロプロセッサは、さらに、上記比較回路の出力を受けるようにされた制御回路を含み、
上記制御回路は、上記相補ノンオーバーラップPMW信号の正相信号を生成する第1回路と、上記相補ノンオーバーラップPMW信号の逆相信号を生成する第2回路とを含み、
上記第1回路は、上記第5値が上記第1値より大きい期間において、上記第1カウンタがカウントアップ動作を行っているとき上記第5値に一致している上記第1カウンタのカウント値に応答して、上記正相信号を第1状態から第2状態へ変更させ、上記第1カウンタがカウントダウン動作を行っているとき上記第5値に一致している上記第1カウンタのカウント値に応答して、上記正相信号を上記第2状態から上記第1状態へ変更させ、
上記第1回路は、上記第5値が上記第1値より小さい期間において、上記第3カウンタがカウントアップ動作を行っているとき上記第5値に一致している上記第3カウンタのカウント値に応答して、上記正相信号を上記第1状態から上記第2状態へ変更させ、上記第3カウンタがカウントダウン動作を行っているとき上記第5値に一致している上記第3カウンタのカウント値に応答して、上記正相信号を上記第2状態から上記第1状態へ変更させ、
上記第2回路は、上記第5値が上記第2値より小さい期間において、上記第2カウンタがカウントアップ動作を行っているとき上記第5値に一致している上記第2カウンタのカウント値に応答して、上記逆相信号を第2状態から第1状態へ変更させ、上記第2カウンタがカウントダウン動作を行っているとき上記第5値に一致している上記第2カウンタのカウント値に応答して、上記逆相信号を上記第1状態から上記第2状態へ変更させ、
上記第2回路は、上記第5値が上記第2値より大きい期間において、上記第3カウンタがカウントアップ動作を行っているとき上記第5値に一致している上記第3カウンタのカウント値に応答して、上記正相信号を上記第1状態から上記第2状態へ変更させ、上記第3カウンタがカウントダウン動作を行っているとき上記第5値に一致している上記第3カウンタのカウント値に応答して、上記逆相信号を上記第2状態から上記第1状態へ変更させる制御システム。 - 請求項2において、
上記相補ノンオーバーラップPMW信号は、3相のPMW信号を含む制御システム。 - 請求項2において、
上記第4レジスタ内の上記第5値は、上記第2カウンタのカウント値が上記第4値と上記第5値との間の期間及び上記第1カウンタのカウント値が上記第2値と上記第3値との間の期間において、上記第1乃至第3カウンタのそれぞれのカウント値と比較される制御システム。 - 請求項2において、
上記マイクロプロセッサは、さらに、第5レジスタを含み、
上記第5レジスタは、上記第3カウンタがカウント動作を停止している期間の後、新データとして上記第4レジスタへ格納されるべき第7値を格納し、
上記第7値が上記第5レジスタに格納されたとき、上記第1、第2及び第3カウンタのそれぞれのカウント値は、上記第3カウンタがカウント動作を行っている期間の間、上記第7値と比較され、
上記第5値は、上記第1、第2及び第3カウンタのカウントアップ動作又はカウントダウン動作のいずれが一方に利用され、
上記第7値は、上記第1、第2及び第3カウンタのカウントアップ動作又はカウントダウン動作の他方に利用される制御システム。 - 半導体集積回路において、相補ノンオーバーラップPWM信号を形成する方法であって、
第1値と第3値との間を第1カウンタで計数する工程と、
上記第1値より小さい第4値と上記第1値より大きくかつ上記第3値より小さい第2値との間を第2カウンタで計数する工程と、
上記第2値と上記第3値との間及び上記第1値と上記第4値との間を第3カウンタで計数する工程と、
第5値を格納する工程と、
上記相補ノンオーバーラップPWM信号を発生する工程とを含み、
上記第3カウンタは、上記第1カウンタのカウント値が上記第2値に一致したとき、上記第3値からカウントダウンを行い、
上記研3カウンタは、上記第2カウンタのカウンと値が上記第2値に一致したとき、上記第2値からカウントアップを行い、
上記第3カウンタは、上記第2カウンタのカウント値が上記第1値に一致したとき、上記第4カウント値からカウントアップを行い、
上記第3カウンタは、上記第1カウンタのカウント値が上記第1値に一致したとき、上記第1値からカウントダウンを行い、
上記相補ノンオーバーラップPWM信号を発生する工程は、
上記第5値が上記第1値と上記第2値との間であるとき、上記第5値を、上記第1及び第2カウンタのそれぞれのカウント値と比較する工程と、
上記第5値が上記第2値より大きいとき、上記第5値を、カウントアップしている第1及び第3カウンタのそれぞれのカウント値又はカウントダウンしている第1及び第3カウンタのそれぞれのカウント値と比較する工程と、
上記第5値が上記第2値より小さいとき、上記第5値を、カウントダウンしている第2及び第3カウンタのそれぞれのカウント値又はカウントアップしている第2及び第3カウンタのそれぞれのカウント値と比較する工程とを含み、
上記レジスタに格納されている値は、カウントダウン動作をしている上記第1カウンタの値が第2値に対応し、または、カウントアップ動作をしている上記第2カウンタの値が第1値に対応した時に、それぞれ更新される、
相補ノンオーバーラップPWM信号を形成する方法。 - 請求項6において、
上記第5値は、中央処理装置によって、選択的に変更される相補ノンオーバーラップPWM信号を形成する方法。 - 請求項6において、
上記半導体集積回路は、シングルチップマイクロコンピュータを含む相補ノンオーパーラップPWM信号を形成する方法。 - 請求項6において、
上記相補ノンオーバーラップPWM信号は、モーターに供給される相補ノンオーバーラップPWM信号を形成する方法。 - 請求項9において、
上記モーターは、エアーコンデイショナ、冷凍機、ポンプ、又は、工作機械内に用いられる相補ノンオーバーラップPWM信号を形成する方法。 - 請求項6において、
上記第3カウンタは、上記第2値と上記第3値との間及び上記第1値と上記第4値との間を計数する1つのカウンタを含む相補ノンオーバーラップPWM信号を形成する方法。 - 請求項6において、
上記第5値は、上記相補ノンオーパーラップPWM信号のデューティサイクルに対応する相補ノンオーバーラップPWM信号を形成する方法。 - 請求項6において、
上記第1及び第2カウンタのカウント値の差は、上記相補ノンオーバーラップPWM信号のデッドタイムに対応する相補ノンオーバーラップPWM信号を形成する方法。 - 請求項6において、
上記第1カウンタがカウントアップするとき、上記第2カウンタはカウントアップし、
上記第1カウンタがカウントダウンするとき、上記第2カウンタはカウントダウンする相補ノンオーバーラップPWM信号を形成する方法。 - 請求項1において、
上記更新されるレジスタは、上記第4レジスタであり、
上記第1カウンタがカウントダウンするときに上記第2値に対応した場合、または、上記第2カウンタが上記第1値に対応した場合、上記第4レジスタを更新する制御システム。
Priority Applications (4)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP08592795A JP3687861B2 (ja) | 1995-03-20 | 1995-03-20 | 制御システム及び相補ノンオーバーラップpwm信号を形成する方法 |
TW084106527A TW463075B (en) | 1995-03-20 | 1995-06-26 | Control circuit for generating upper and lower dead time for frequency converter |
US08/614,715 US5933344A (en) | 1995-03-20 | 1996-03-13 | Microprocessor having timer circuit generating complementary non-overlapped PWM signals |
KR1019960007169A KR100389735B1 (ko) | 1995-03-20 | 1996-03-18 | 제어장치와 제어시스템 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP08592795A JP3687861B2 (ja) | 1995-03-20 | 1995-03-20 | 制御システム及び相補ノンオーバーラップpwm信号を形成する方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
JPH08263104A JPH08263104A (ja) | 1996-10-11 |
JP3687861B2 true JP3687861B2 (ja) | 2005-08-24 |
Family
ID=13872397
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP08592795A Expired - Fee Related JP3687861B2 (ja) | 1995-03-20 | 1995-03-20 | 制御システム及び相補ノンオーバーラップpwm信号を形成する方法 |
Country Status (4)
Country | Link |
---|---|
US (1) | US5933344A (ja) |
JP (1) | JP3687861B2 (ja) |
KR (1) | KR100389735B1 (ja) |
TW (1) | TW463075B (ja) |
Families Citing this family (29)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
EP0892500B1 (en) * | 1997-07-17 | 2003-02-26 | STMicroelectronics S.r.l. | System for increasing the definition in converting a digital datum in a PWM signal for driving a full-bridge output stage |
JP2001258269A (ja) * | 2000-03-15 | 2001-09-21 | Kawasaki Steel Corp | ソフトスイッチングdc−dcコンバータ |
CA2360652C (en) * | 2001-10-31 | 2005-08-02 | Global Thermoelectric Inc. | Transformerless two phase inverter |
TW556061B (en) * | 2002-04-30 | 2003-10-01 | Realtek Semiconductor Corp | Non-equal period timing method and device of timer |
DE10229129C1 (de) * | 2002-06-28 | 2003-12-11 | Advanced Micro Devices Inc | Debug-Schnittstelle für einen Ereigniszeitgeber |
CA2392663A1 (en) * | 2002-07-12 | 2004-01-12 | Dwayne Hayworth | Pivoting fifth wheel hitch trailer pin assembly |
DE10245839A1 (de) * | 2002-10-01 | 2004-04-15 | Hilti Ag | Batteriegespeister Wechselrichter |
JP2004133719A (ja) * | 2002-10-11 | 2004-04-30 | Renesas Technology Corp | マイクロコンピュータ |
US7892698B2 (en) * | 2003-07-18 | 2011-02-22 | Versa Power Systems, Ltd. | Electrically conductive fuel cell contact material |
JP3998624B2 (ja) | 2003-10-09 | 2007-10-31 | Necエレクトロニクス株式会社 | パルス幅変調波形生成方法及び装置 |
JP4181482B2 (ja) * | 2003-11-04 | 2008-11-12 | 株式会社日立製作所 | 電子制御装置 |
US7049771B2 (en) * | 2004-01-27 | 2006-05-23 | Nippon Yusoki Co., Ltd. | Multi-phase carrier signal generator and multi-phase carrier signal generation method |
US7049778B2 (en) * | 2004-02-09 | 2006-05-23 | Nippon Yusoki Co., Ltd. | Inverter control apparatus and inverter control method |
US7190568B2 (en) * | 2004-11-16 | 2007-03-13 | Versa Power Systems Ltd. | Electrically conductive fuel cell contact materials |
JP2008059191A (ja) * | 2006-08-30 | 2008-03-13 | Oki Electric Ind Co Ltd | マイクロコントローラとそのデバッグ方法 |
KR100861920B1 (ko) * | 2007-05-10 | 2008-10-09 | 삼성전자주식회사 | 비대칭형 펄스폭 변조 신호 발생기 및 그 방법 |
KR20090007021A (ko) * | 2007-07-13 | 2009-01-16 | 삼성전자주식회사 | 엔코더 장치 및 이 장치의 캘리브레이션 방법 |
US20100176855A1 (en) * | 2009-01-12 | 2010-07-15 | Huffman James D | Pulse width modulated circuitry for integrated devices |
IL203642A (en) * | 2010-02-01 | 2014-01-30 | Yesaiahu Redler | A system and method for optimizing electric current utilization in the control of multiplex motors, and a projectile device containing it |
JP5333422B2 (ja) | 2010-12-07 | 2013-11-06 | 株式会社デンソー | 電力変換装置 |
US8669759B2 (en) * | 2011-03-31 | 2014-03-11 | Infineon Technologies Ag | Omnipolar magnetic switches |
US8686767B1 (en) * | 2013-02-23 | 2014-04-01 | Texas Instruments Incorporated | Apparatus and method for a programmable timing in peak current mode controlled power converters |
JP6341795B2 (ja) | 2014-08-05 | 2018-06-13 | ルネサスエレクトロニクス株式会社 | マイクロコンピュータ及びマイクロコンピュータシステム |
JP6582394B2 (ja) * | 2014-11-11 | 2019-10-02 | 株式会社明電舎 | カウンタユニット |
US9933842B2 (en) * | 2016-04-15 | 2018-04-03 | Emerson Climate Technologies, Inc. | Microcontroller architecture for power factor correction converter |
CN105897117B (zh) * | 2016-05-20 | 2019-04-19 | 简式国际汽车设计(北京)有限公司 | 一种适用电动汽车的电机控制方法、装置及系统 |
CN109459924B (zh) * | 2018-12-24 | 2024-07-02 | 南京市同亮科技有限公司 | 一种汽车安全气囊控制装置 |
US11356238B1 (en) * | 2021-05-24 | 2022-06-07 | Texas Instruments Incorporated | Synchronization between devices for PWM waveforms |
EP4175155A1 (de) * | 2021-10-29 | 2023-05-03 | Siemens Aktiengesellschaft | Verfahren zum konfigurieren und steuern eines elektrischen konverters sowie konvertersteuerung und konverter |
Family Cites Families (12)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US4104629A (en) * | 1976-08-13 | 1978-08-01 | Sperry Rand Corporation | Marine radar interrogator-transponder target detection, identification, and range measurement system |
US4144447A (en) * | 1977-04-12 | 1979-03-13 | International Business Machines Corporation | Interval timer |
US5237264A (en) * | 1987-07-30 | 1993-08-17 | Lutron Electronics Co., Inc. | Remotely controllable power control system |
JPH0331546A (ja) * | 1989-06-27 | 1991-02-12 | Mitsubishi Motors Corp | 内燃機関の空燃比制御装置 |
US5614720A (en) * | 1990-06-22 | 1997-03-25 | Integrated Diagnostic Measurement Corporation | Mobile, multi-mode apparatus and method for nondestructively inspecting components of an operating system |
US5222009A (en) * | 1990-07-30 | 1993-06-22 | Eaton Corporation | Solid state overload relay |
US5132682A (en) * | 1990-09-12 | 1992-07-21 | Lectro Products, Inc. | Apparatus for controlling traffic lights |
US5148095A (en) * | 1991-05-30 | 1992-09-15 | Miller Ronald R | Permanent power pack for computer clock and battery backed memory |
JPH0537491A (ja) * | 1991-07-31 | 1993-02-12 | Clarion Co Ltd | スペクトラム拡散通信装置 |
WO1994001766A1 (en) * | 1992-07-14 | 1994-01-20 | Sierra Matrix, Inc. | Hands-free ultrasonic test view (hf-utv) |
US5592403A (en) * | 1993-03-11 | 1997-01-07 | Monolith Technologies Corporation | Digital-to-analog converter including integral digital audio filter |
US5479532A (en) * | 1993-03-31 | 1995-12-26 | Direct Data Systems | Apparatus for reading magnetic information from a document having a read head mounted on a circuit board portion permitting resilient deflection |
-
1995
- 1995-03-20 JP JP08592795A patent/JP3687861B2/ja not_active Expired - Fee Related
- 1995-06-26 TW TW084106527A patent/TW463075B/zh not_active IP Right Cessation
-
1996
- 1996-03-13 US US08/614,715 patent/US5933344A/en not_active Expired - Lifetime
- 1996-03-18 KR KR1019960007169A patent/KR100389735B1/ko not_active IP Right Cessation
Also Published As
Publication number | Publication date |
---|---|
JPH08263104A (ja) | 1996-10-11 |
KR960036270A (ko) | 1996-10-28 |
US5933344A (en) | 1999-08-03 |
KR100389735B1 (ko) | 2003-10-08 |
TW463075B (en) | 2001-11-11 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP3687861B2 (ja) | 制御システム及び相補ノンオーバーラップpwm信号を形成する方法 | |
JP3565613B2 (ja) | 半導体集積回路装置 | |
US7759884B2 (en) | Method and arrangement for commutating an electronically commutated motor | |
JP3897598B2 (ja) | インバータ制御用半導体装置 | |
JP2009539339A (ja) | 多相回転電気機器制御信号生成方法、装置、及び指示シーケンス | |
JP2004357450A (ja) | Pwm回路およびマイクロコントローラ | |
US5325341A (en) | Digital timer apparatus and method | |
JP4135132B2 (ja) | Pwm制御装置 | |
US6249096B1 (en) | Apparatus and method for determining commutation time of sensorless brushless direct current (BLDC) motor | |
US7536533B2 (en) | MCU based motor controller with pre-load register and DMA controller | |
JP2000209900A (ja) | ステッパモ―タ駆動装置用直流コマンド発生 | |
US5199052A (en) | Reload timer circuit | |
JP2773546B2 (ja) | パルス発生回路 | |
JP5521866B2 (ja) | モータ制御装置 | |
JP2818986B2 (ja) | モータコントロール回路内蔵マイクロコンピュータ | |
JPH08265156A (ja) | 半導体集積回路装置と制御システム | |
JP2903903B2 (ja) | マイクロコンピュータ | |
JP3622703B2 (ja) | パルス列生成方法とその装置およびこれを用いたモ−タ回転速度指令生成装置 | |
US10998846B2 (en) | Control system and control method | |
JP2898774B2 (ja) | パルス発生器 | |
JP3131975B2 (ja) | ディジタル三相pwm波形発生装置 | |
JPH07274584A (ja) | 無整流子直流電動機の駆動装置 | |
JP2618117B2 (ja) | リロードタイマ回路 | |
JP6687406B2 (ja) | モータの制御回路、それを用いたファン | |
JP2000180210A (ja) | エンコーダパルス発生装置 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20050315 |
|
A521 | Written amendment |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20050510 |
|
TRDD | Decision of grant or rejection written | ||
A01 | Written decision to grant a patent or to grant a registration (utility model) |
Free format text: JAPANESE INTERMEDIATE CODE: A01 Effective date: 20050602 |
|
A61 | First payment of annual fees (during grant procedure) |
Free format text: JAPANESE INTERMEDIATE CODE: A61 Effective date: 20050603 |
|
R150 | Certificate of patent or registration of utility model |
Free format text: JAPANESE INTERMEDIATE CODE: R150 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20080617 Year of fee payment: 3 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20090617 Year of fee payment: 4 |
|
LAPS | Cancellation because of no payment of annual fees |