- - PR -
今回は前回記事「モータ制御に欠かせない技術“PWM”って何?」の続きとなります。前回説明したPWM制御を利用して実際にモータを回すにはどうするのか、プログラムと併せて解説します。一部前回の内容と重複する部分がありますがご容赦ください。
PWMの式の確認
まずはPWMにおけるデューティ比の式を再確認しておきましょう。

デューティ比とは周期的なパルス波を出したときの周期とパルス幅の比でした。私たちが実際にモータを制御する際には、周期とデューティ比を先に決めておき、マイコンから任意のパルス幅を出力させるという使い方をします。
DCモータの何を制御するのか
本連載ではPWM制御を用いてDCモータとサーボモータを制御しますが、まずはDCモータから動かしていきたいと思います。簡単にDCモータの仕組みに触れておきましょう。DCモータは外側に固定された磁石と、軸を中心に回転するコイルで構成されています。磁石の間には磁界が発生しており、磁界の中でコイルに電流を流すことで力が発生します(図1)。
![]() |
| 図1 DCモータの仕組みイメージ |
DCモータはこの力(いわゆるフレミングの法則)によって回転するモータです。そのほかの構成要素としてブラシや整流子がありますが、プログラムを作成するうえではあまり重要ではありませんので、ここでは割愛します。
今回はDCモータの以下の点を制御します。
- 回転速度
- 回転方向
- ブレーキ
回転速度は、前回も書いたとおりDCモータに与えるパルス波の長短で調節します。デューティ比が1(100%)に近づくほどモータに電圧が切れ目なく与えられることとなり、最高速度に近づきます。
回転方向はモータ端子のプラス/マイナス極性を逆にすることで逆転できます。つまり2本あるDCモータの端子のどちらにパルス波を与えるかで決定するわけですが、この切り替えはステッピングモータ制御でも使用したPLD注1の助けを借りています。
| 注1:PLDについては第8回「ステッピングモータの仕組みと制御のコツ」を参照してください。 |
最後のブレーキですが、これはPWM制御というよりは後述するモータ用のドライバICの助けを借りています。
ターゲットボードとDCモータの接続
ターゲットボード(仕様は第6回を参照)とDCモータは、図2のように接続されています。
![]() |
| 図2 H8/3048F-ONEからDCモータまでの接続イメージ |
H8マイコンとDCモータの間にはPLDとモータ用のドライバICがあります。H8マイコンから制御信号を出力して、PLDがモータを動かすための信号パターンに変換するやり方は、ステッピングモータの構成と似ています。ただし、今回はH8マイコンのITU注2機能を使うので、ステッピングモータよりはプログラムが若干複雑になります。
| 注2:ITUについては第9回「モータ制御に欠かせない技術“PWM”って何?」を参照してください。 |
H8マイコンからはDC_EN、DC_CW、DC_PWM、DC_BRKがPLDに接続されています。DC_PWM(TIOCA3、4。詳細は後述)はITUのチャネル3、4のPWM波を出力するための信号となります。各信号の意味は表1のとおりです。
信号名 |
意味 |
| DC_EN | DCモータ制御のEnable信号です。この信号がLowの間、DCモータの制御を許可します |
| DC_CW | DCモータの回転方向を制御します。LowとHighを切り替えるたびに回転方向が逆転します |
| DC_PWM | H8マイコンのPWM波出力です |
| DC_BRK | DCモータのブレーキ信号です。Highを出力している間、DCモータにブレーキが掛かります |
| 表1 H8マイコンから出ている制御信号名と意味 | |
PLDからドライバICには2本の信号が出力されています(P_OUT0、1)。この信号のHigh/LowはH8マイコンからの制御信号によってPLD内部で決定されます。先ほど簡単に触れましたが、回転速度、回転方向、ブレーキを実際に制御しているのはこのドライバICになります。H8マイコンからの制御信号はPLDでドライバIC用の制御信号に変換され、それをドライバICが受けることでDCモータを思ったとおりに制御しています。
上記の信号の流れを見ると随分と回りくどいことをしているように思えますが、これにはH8マイコンの信号上の理由があります。
1つ目の理由は、DCモータの回転方向を選択するためです。PWM制御はH8マイコンのITUを使うわけですが、ITUをPWMモードに設定すると、TIOCA端子(ポート端子と兼用。モードにより用途を選択できる)と呼ばれる端子が自動的にPWM波の出力端子として設定されます。この1本の出力端子でモータの回転方向を切り替えるために、DC_CW信号とPLDを使ってドライバICの入力端子のどちらにPWM波を与えるかを決定する仕組みを設けています。
2つ目は、DCモータの仕組みに理由があります。H8マイコンの設定によってはTIOCBという端子(これもポート端子と兼用)もPWM出力信号として使用できますが、TIOCB3はPB1として、TIOCB4はPB3としてDCモータのブレーキ用信号として使用しています。また、TIOCA、TIOCBを同時にPWM波の出力端子として使用したとしても、PWM波を与えるのはDCモータの2本の端子のうちどちらか一方になるので、PWM波は同時に2つも必要ない、ともいえます。
以上を要約すると、
- PWM波をDCモータ端子のどちらに与えるかを決定するためにPLDを間に挟む必要がある
- やろうと思えば1チャネルにつきPWM波を2つ同時に出せるが、DCモータの仕組みとして2つ同時に出すことに意味がない
となります。これを踏まえて、H8マイコンからドライバICまでの信号の流れとHigh/Lowの組み合わせをまとめると、表2のようになります。
|
||||||||||||||||||||||||||||||
| 表2 H8/3048F-ONEからDCモータまでの信号の組み合わせ | ||||||||||||||||||||||||||||||
関連記事 半導体/エレクトロニクス
- 連載:イチから作って丸ごと学ぶ! H8マイコン道
- 特集:組み込みシステムに吹く“仮想化”の風
- 連載:組み込みマルチコア進化論(連載中)
- 連載:必修! FPGAタイミング解析の基礎(全5回)
- 連載:−ザ・組み込み−ソフトウェアのハードウェア化(連載中)
- 連載:S08ではじめるマイコン制御プログラミング(全6回)
- 連載:マイコン制御基礎の次(連載中)
- 連載:マイコン制御基礎の基礎(全10回)
- 連載:マイコン制御基礎以前(全10回)
- 連載:H8で学ぶマイコン開発入門(全13回)
- 連載:触って学ぼう FPGA開発入門(全6回)
- 連載:FPGA開発テクニック、チューニングの心得(全6回)
- 特集:いまさら聞けない FPGA入門
- 連載:バラして納得! 電子部品入門(全18回)
- 連載:完全マスター! 電子回路ドリル III(全14回)
- 連載:完全マスター! 電子回路ドリル II(全25回)
- 連載:完全マスター! 電子回路ドリル(全25回)
- 目指せ! 電子回路マスターへの道
- 目指せ! 電子回路マスターへの道 Part2
- 分かっておきたい、IP活用の落とし穴
組み込み開発フォーラム 新着記事
- フルスクラッチの“Hello World”を動かしてみよう(2011/3/31)
- FlexRayプロトコルの概要(その2)(2011/3/29)
- JASA、東北地域に拠点を置く会員企業を支援(2011/3/25)
- NEC、震災の影響を受けた4拠点の生産再開を発表(2011/3/23)
- 内部ブロック図の基礎と共通要素(2011/3/22)
- インテル、被災地におけるITインフラの復旧を支援(2011/3/22)
- Facts on AUTOSAR/AUTOSAR導入の現実(2011/3/18)
- 計測器・震災被害ホットラインを開設、テクトロニクス(2011/3/18)
- ZMP、地震の揺れを多角的に計測するアプリ無償配布(2011/3/16)
- メンター、3Dテレビ・マルチメディア検証プラットフォーム(2011/3/16)
- 【番外編】タチの良い計測値、悪い計測値とは?(2011/3/15)
- tarファイルシステムをAndroidに組み込む!!(2011/3/10)
















