MCUによる制御

今、述べましたように、超音波モーターの動作は、材料や形状、大きさなどに大きく依存します。特に、圧電素子へ印加する電位の値や+と-の電圧の位相差はモーター一個一個につき、微妙に調整する必要があります。そのためには、分解能が高い(より細かく調整できる)矩形波電圧を出力する回路が必要となります。東芝は、高分解能PPG(Programmable Pulse Generator)出力をマイクロコントローラーに組み込むことにより、この超音波モーター制御のように、出力電圧の微細な調整が必要な用途に最適なソリューションを提供しています(TX03シリーズのM340グループ)。

高分解能PPG (Programmable Pulse Generator) 出力

高分解能PPG出力はマイクロコントローラーに内蔵されたタイマーを使った矩形波出力です。周期とデューティーを高分解能(最小6.25nsの分解能)で調整することができます。矩形波のリーディング・エッジ(前縁)とトレーリング・エッジ(後縁)は、それぞれ、立ち上がり・立下り、または、立下り・立ち上がり、のいずれをも選ぶことができます。

短形波の最初のエッジがリーディング・エッジで、最後のエッジがトレーリング・エッジです。
このエッジは、立ち上がりエッジの場合もあれば、立ち下がりエッジの場合もあります。

まずはタイマーの動作を説明します。
タイマー出力の周期を決めるレジスターCP0、リーディング・エッジ、および、トレーリング・エッジのタイミングを決定するレジスター、CP1、および、CP2が用意されています。
これらとは別に、フリーランのカウンターがあります。このカウンターはリセットで値が「0」となり、クロックが1つ来るたびにインクリメントします。カウンターの出力値はCP0、CP1、および、CP2のレジスター値と比較されます。

カウンターが「0」から一つ一つクロックを数えていき、最初に CP1 の値と一致しますと、出力用の矩形波のリーディング・エッジを作ります。このエッジは立ち上がり、または、立下りのいずれも設定できますが、今は、立ち上がりエッジに設定されているとします。すると、高分解能PPG出力A0はもともと「0」出力でしたが、このリーディング・エッジのタイミングで「1」に変化し、そのまま「1」となります。
カウンターはクロックを数えて行き、次に、CP2の値と等しくなったとき、トレーリング・エッジのタイミングですので、高分解能PPG出力A0は立ち下り、「0」となります。
カウンターはそのままインクリメントを続け、CP0と等しい値に達します。すると、カウンターはリセットされます。リセットされた後、その次のクロックからまたインクリメントを開始します。
以上により、CP0の値の周期を持ち、CP1の値で「1」に、CP2の値で「0」となる矩形波が得られます。
このとき、フリーラン・カウンターをインクリメントさせるクロックの最小周期が6.25nsであり、これが最小の分解能となります。

リーディング・エッジとトレーリング・エッジでの波形の変化を、立下り・立ち上がりに設定した場合は、最初、フリーラン・カウンターがリセットされた時点で高分解能PPG出力A0は「1」になり、リーディング・エッジのタイミングで「0」、さらに、トレーリング・エッジのタイミングで「1」に戻ります。

タイマー動作の図
タイマー動作

次に、いよいよ連動モードの説明をします。
この連動モードが東芝の「高分解能PPG出力」にある大変優れた機能です。

連動モード

東芝のマイクロコントローラーには、高分解能PPG出力を持つタイマーが2ユニット用意されています。つまり、周期とデューティーの組み合わせが、それぞれまったく異なる2つの矩形波を、異なる端子から出力できます。
2つのタイマーを連動させて高分解能PPG出力を作ることができます。この場合、2つのタイマーの周期は同一となります。もちろん、デューティーは個別に設定できます。この連動モードでは2つの高分解能PPG出力、A0、B0から出力される矩形波の位相差を、必要な値に設定できます。位相差は最小6.25nsの高分解能が可能です。

連動モードの動作を説明します。
今度はタイマーが2種類ありますので、それらを区別するために、最初のタイマーをタイマー0、他のタイマーをタイマー1と呼ぶことにします。タイマー0の周期を決めるレジスターCP00 、リーディング・エッジのタイミングを決めるレジスターCP01、および、トレーリング・エッジのタイミングを決めるCP02の役割は、それぞれ、単独のタイマー動作のときとまったく同じです。リーディング・エッジ、および、トレーリング・エッジでの、立ち上がり・立下り、もしくは、立下り・立ち上がり、の選択も同様にできます。一方、タイマー1の周期レジスターCP10の値は無視されます。これは、タイマー0とタイマー1を等しい周期で動作させたいため、タイマー0のCP00で周期を決定させるからです。タイマー1とタイマー0は同じ周波数のクロックでインクリメントさせます。そうしないと「連動」できません。
ただし、タイマー1のリーディング・エッジ、および、トレーリング・エッジのタイミングを決定するレジスターCP11、および、CP12は単独のタイマーと同じように設定できます。リーディング、または、トレーリングのエッジ・タイミングで、立ち上がり・立下り、もしくは、立下り・立ち上がり、の選択もできます。これはタイマー0の立ち上がり、立下りの設定とは関係なく、独立に行うことができます。

連動モードの図
連動モード

さて、この連動モードでの特徴は、タイマー1のリセットのタイミングを決める新規のレジスターCP05が登場することです。タイマー0のカウンターがインクリメントを繰り返し行い、CP05の値と一致すると、そのタイミングでタイマー1のカウンターをリセットします。さて、こうすると、高分解能PPG出力A0、B0からはどのような波形が出力されるでしょうか。簡単な例を見てみましょう。各レジスターの値が、

CP01 = CP11 < CP02 = CP12 < CP00、CP05 < CP01

という場合を考えてみましょう。ただし、リーディング・エッジとトレーリング・エッジでは、高分解能PPG出力A0、および、出力B0は共に、立ち上がり、および、立下りの動作をするとします。そうしますと、上の式の場合では、出力A0の波形と出力B0の波形は、同じ周期、同じデューティーで、CP05の値の分だけ位相がずれているという例となります。
順を追って動作を見てみましょう。

(1) フリーラン・カウンターはタイマー0、1ともに少し前から動作しているとします。タイマー0のカウンターの値がCP00の値と等しくなり、カウンターがリセットしたところから始めます。このときタイマー1のカウンターにはある値(後でその値がわかります)が入っています。

(2) 2つのカウンターは同時にインクリメントして行き、タイマー0のカウンターの値がCP05の値と一致したとき、タイマー1のカウンターがリセットされます。

(3) 次に、タイマー0の値がCP01の値と等しくなり、出力A0は「0」から「1」に立ち上がります。このとき、出力B0は「0」のままで変化しません。

(4) 次に、タイマー1のカウンターの値がCP11の値と等しくなり、出力B0は「0」から「1」に立ち上がります。出力A0は「1」のままで変化しません。

(5) タイマー0のカウンターの値がCP02の値と等しくなり、出力A0は立下り、「0」なります。

(6) タイマー1のカウンターの値がCP12の値と等しくなると、出力B0は立下り、「0」となります。

(7) さらにインクリメントが進み、タイマー0のカウンターの値がCP00の値に一致しますと、タイマー0のカウンターはリセットされます。このとき、タイマー1のカウンターの値は(C00-C05)となります。

これで、(1)に戻りました。この後、(7)までを繰り返します。

連動モード(プラスの位相差)の図
連動モード(プラスの位相差)

この連動モードで重要なのはCP05の値です。上の動作からわかりますが、タイマー1のカウンターの値は、タイマー0のカウンターの値よりもCP05の値だけ少ない値となります。つまり、CP05の分だけ出力B0は出力A0よりも「遅く」なります。このCP05の値を変えると、その値の分だけ出力A0と出力B0の間の位相が変わります。この位相の差の分解能は、最小6.25nsの高分解能となります。
この連動モードで、もし、出力B0を出力A0よりも「早く」したい、つまり、出力A0と出力B0の位相差をマイナスにしたいときは、タイマー0で作られる矩形波を出力B0へ、タイマー1で作られる矩形波を出力A0へ伝えます。タイマーはそのままにして、出力だけを入れ替えるわけです。こうすると、CP05の値だけ出力B0が出力A0よりも進みます。

連動モード(マイナスの位相差)の図
連動モード(マイナスの位相差)

このようにして、プラス、および、マイナスの位相差を付けることができ、その分解能は最小6.25nsという高分解能が実現できます。
なお、2つの信号の位相差の設定値は、±90°程度が実用的な値です。ただし、原理的には±180°までの値が設定可能です。

説明が長くなりましたが、高分解能PPG出力の連動モードの仕組みがわかったと思います。
案外、簡単な構造ですね。それでは、マイクロコントローラーによる超音波モーター制御のデモをご覧ください。

マイクロコントローラーによる超音波モーター制御ボード
マイクロコントローラーによる超音波モーター制御ボード

ご検討の方へ

技術的なお問い合わせ

お問い合わせ

お問い合わせ

よくあるお問い合わせ

FAQ