15.PCD4511パルスモータ制御テストボード(バイポーラ)
2003/11/19 【電子回路編TOPに戻る】
今回は前回に引き続き、パルスモータ(ステッピングモータ)の制御用LSIを使ったテスト基板をご紹介します。ただし前回がユニポーラ型のステッピングモータを駆動するテスト基板だったのに対し、今回はバイポーラ型のステッピングモータです。ユニポーラとバイポーラとは、いったい何が違うのでしょう。今回はそのあたりから簡単にご説明して行きたいと思います。
15−1.バイポーラ型ステッピングモータとは
ユニポーラ型とバイポーラ型の違いを簡単に比較すると、以下のような表になります。(日本パルスモータ PF/PFCシリーズカタログより)
| 項 目 | ユニポーラ型 | バイポーラ型 | |
| 構 造 |
|
|
|
| モータ温度の上昇を同じとすると | 電 流 | 1 | 1/√2 |
| トルク | 1 | √2 | |
| 高速性能 | 1 | 0.5 | |
| 電 圧 | 1 | √2 | |
| トルクを同じとすると | 電 流 | 1 | 0.5 |
| 温度上昇 | 1 | 0.5 | |
| 高速性能 | 1 | 0.5 | |
| 電 圧 | 1 | 1 | |
ユニポーラ型は2組のコイルからそれぞれに中間タップが出ており、そこから電源を供給して右側に電流を流すか、左側に電流を流すかを所定のタイミングで切り替えます。つまり、コイルの半分は遊んでしまっています。なので、モーター本体に搭載しているコイルの重量に比べて、実際に出力に寄与できる割合が少ないと言えます。ただし、コイルの極性が決まっており、2つのスイッチング素子で片側のコイルを駆動させることが出来ることや、コイルの半分しか使わないためインダクタンス成分が少なく、高速性能が取れるなどの利点もあります。
ユニポーラ型のステッピングモータを駆動するための方法については、114.ステッピングモータを動かすのページをご覧下さい。
一方バイポーラ型はコイルに流す電流の向きを変化させることで励磁します。つまり、コイルをフルに使って駆動するため、ユニポーラに比べて効率の良い方式と言えます。比較の表を見て頂いても分かるとおり、少ない電流で大きなトルクを発生させ、温度の上昇も抑えることが可能です。ただし、コイルに流す電流の向きを変化させるために、片側のコイルを駆動するのに4つのスイッチング素子が必要だったり、コイルの全てを利用するためにインダクタンス成分が多く、高速性能を得にくいという短所もあります。
バイポーラ型ステッピングモータを駆動させるためには、各コイルに以下のような駆動電流を流します。

これは2−2相励磁の波形です。赤と青それぞれの中心線から上側がX→XとY→Yの方向に電流が流れ、下側が逆にX→XとY→Yの方向に電流が流れるとお考え下さい。そして、赤の波形と青の波形の位相関係が逆になれば、モータも逆向きに回転します。
ユニポーラ型の駆動波形に比べて、全てのタイミングで全てのコイルが励磁に関与しており、無駄の無い様子が覗えます。
では、具体的にはどのような駆動回路を用いるのでしょうか。実は、モータに流す電流の向きを正方向と逆方向に制御するための駆動回路は、以前ご紹介しています。4個のFETを用いたH型ブリッジドライバ回路です。H型ブリッジドライバ回路を内蔵したICも、TA727APやL6203などをご紹介してきましたが、今回はバイポーラ型ステッピングモータを駆動するためのICとして NP−2918(日本パルスモータ製)を利用します。また、励磁パターンを発生させるためのLSIとして、14.PCD4511パルスモータ制御テストボード(ユニポーラ)でもご紹介した、PCD4511(日本パルスモータ製)を再び利用します。
15−2.ドライバIC NP−2918
励磁パターン発生LSI PCD4511の詳細については、14.PCD4511パルスモータ制御テストボード(ユニポーラ)ページをご覧頂くとして、ここではドライバIC NP−2918について簡単にご紹介します。
![]() |
外観的にはユニポーラ型ドライバICのSLA7024Mと全く同じです。 以下の図はNP−2918の仕様書に記載されている内部等価回路図です。上部に2個ついているコイルが、ステッピングモータの励磁コイルです。Hブリッジドライバ回路が2組入ったもので、チョッパー方式です。 |

制御入力に対するコイル駆動動作は以下の通りです。Enable状態の時に、Phase端子の状態によってコイルに流れる電流の向きが変化します。この動作が2組入っている形です。
| Enable | Phase | OUTA | OUTB |
| L | H | H | L |
| L | L | L | H |
| H | X | Z | Z |
X = Don't Care
Z = High Impedance
周辺の抵抗やコンデンサの定数は以下のように決定します。
■駆動電流 Iout = Vref/(10 x Rs)
| 部品 | 参考値 | 選択範囲 |
| Rs | 1Ω(2W) | --- |
| Rc | 100Ω | --- |
| Cc | 1000pF | --- |
| Rt | 68KΩ | 20KΩ〜100KΩ |
| Ct | 470pF | 100pF〜1000pF |
参考値の定数では、Vref=5Vとするとコイルの駆動電流は500mAとなります。駆動電流を増減させたい場合にはRsの抵抗値かVrefの電圧値で加減することになります。
また、主な最大定格値は以下の通りです。
| 項 目 | 規 格 |
| モータ電源電圧 | 最大45V |
| 出力電流(パルス20μ以下) | 最大±1.75A |
| 出力電流(連続) | 最大±1.5A |
| ロジック電源電圧 | 最大7V |
| 出力エミッタ電圧 | 最大1.5V |
| 許容損失 | 4.5W(放熱フィンなし) |
| 動作温度範囲 | −20℃〜−85℃ |
15−3.テスト基板の概要
下の写真が今回製作した基板です。
|
部品面
|
ハンダ面
|
|
前回製作したユニポーラ用のテスト基板と外観も実装物もそっくりです。(^^;; ハンダ面に貼り付けてある表面実装のICが追加されたくらいで、ほとんど見分けがつきませんね。
以下に回路図をご紹介します。なお、この回路設計およびプリントパターン設計はEAGLEを利用していますので、101.EAGLEによる両面基板の設計のページなども併せてご覧下さい。
■EAGLE用プロジェクトファイル
今回ご紹介しているテスト基板のEAGLE用プロジェクトファイル Pulse_Driver2を公開しています。
ここをクリックするとダウンロードできます。Pulse_Driver2.exe (263KB) ファイルは自己解凍形式になっていますので、エクスプローラ上からダブルクリックして、解凍したいフォルダを指定するだけでOKです。

回路が見づらくてすみません。是非EAGLEを導入して頂き、直接ご覧頂ければと思います。そうすれば基板パターンも分かりますし。で、内容的にはほとんどがPCD4511のマニュアルに記載されている回路例に基づいています。また、NP-2918の周辺外付け抵抗やコンデンサ類も、基本的には推奨定数に従っています。ただし、Rsだけは0.68Ω(1W)として駆動電流を稼いでいます。以下に回路の説明をします。
1.外部CPUとの接続
図面左のコネクタCN1とCN2を外部CPUと接続します。マニュアルの接続例では、CPUのデータバスおよびアドレスバスに直結する事例となっていましたが、ここではCPUのPIOポートから制御することを前提としているため、双方向バスバッファや、アドレスデコーダ回路などを省略しています。バッファを設けていない分だけ、CPUとは最短で接続するように配慮が必要です。
2.OSC基準クロック
クロック周波数はPCD4511で推奨している4.915MHzを採用しています。
3.PCD4511 F/H、U/Bピンの設定
14.PCD4511パルスモータ制御テストボード(ユニポーラ)のページでご紹介していますが、F/HのピンをGNDに落とすことによって、2−2相励磁の動作、U/Bのピンを+5Vに接続することによってバイポーラの動作に設定しています。
4.外部制御用端子をピンヘッダに立ち上げ
+EL,-EL,+SD,-SD,ORG,STA,STPなどの外部制御端子は、プルアップ抵抗を介してピンヘッダに立ち上げています。これらの端子は内部でプルアップされているため、外でプルアップ抵抗は必要なかったかもしれません。
5.NP-2918 Vref端子周辺
R3,R4,C4の部品が付いている部分ですが、R3とR4の分圧比によってVrefの値を決定するためのものです。今回はR3をショートし、R4には1KΩを繋ぎ、ついでにC4に470p程度の積層セラミックコンデンサをつけることによってノイズ対策をしています。
6.汎用ロジック74LS32の役目
74LS32はORロジックが4個入った汎用ICです。今回はその表面実装タイプを利用しています。ORロジックの組み方はPCD4511のユーザーズマニュアルで紹介されている回路例の通りです。PHAI3(φ3)とPHAI4(φ4)のそれぞれの出力と、OTS出力をORしてNP-2918のENABLE端子に入力しています。OTS出力はソフトウエア上の設定で1か0に設定できる汎用BITです。これを使ってNP-2918のドライブ出力を強制的にOFF(ハイインピーダンス)にすることができる回路にしています。
ENABLE端子を0(Low)にしたままモータを停止させていると、コイルは通電状態のままなので高い保持力を持ったまま静止します。ENABLE端子を1(High)にすると、モータには通電しないため、フリーの状態で保持力がないまま停止状態となります。
ちなみに、φ3とφ4の出力は、ハーフステップドライブを行う1−2相励磁の時にはシーケンス上で1(High)の状態になりますが、ハイトルクを狙う2−2相励磁の場合には0(Low)状態を保ったまま変化しません。なので、2−2相励磁に絞った動作をさせるなら、74LS32のORロジックは不要で、OTS出力を直接NP-2918のENABLE端子2つに繋いでしまっても良いと思われます。(ためしてませんが...)
7.電源コネクタ
図面左下CN4は制御用の+5V電源コネクタ、図面右上CN5はモータ駆動用の電源コネクタです。モータ駆動用電源は一応+12Vを想定していますが、最大で+45Vまで接続が可能です。
8.ステッピングモータ接続コネクタ
図面右のCN3が、ステッピングモータを接続するためのコネクタです。ステッピングモータ駆動用に2組のコイルで4本の線が必要となっています。
15−4.プログラム npmstep2.c
駆動するためのH8用プログラムの基本は、115.PCD4511でステッピングモータ制御のページご紹介したユニポーラ用のプログラムと同じです。PCD4511が勝手にバイポーラ型のステッピングモータを動かしてくれます。ただし、上項でご紹介した通り、PCD4511のOTS出力を0(Low)に設定しないとNP-2918が動作してくれないので、そこだけ注意が必要です。
ここをクリックするとプログラムをダウンロードできます。npmstep2.c
今回は115.PCD4511でステッピングモータ制御のページでご紹介したプログラムをちょっと修正しただけなので、掲載と解説は省略させて頂きます。
内容的にはOTS出力を制御するための関数 pcd_ots( )を追加したのと、main関数内ではH8のPort2から入力した値によって、モータの回転速度が可変できるようにしています。プログラムの内容をご確認下さい。
実際にバイポーラ型のステッピングモータを動かしてみて、実用に耐えるだけのトルクが得られそうな気配を感じています。ギヤードモータを採用しますが、レスポンスや回転速度なども大丈夫そうです。もう少し試してみますが、近い将来ステッピングモータによるロボット作りができるかもしれません。(^^