かみやんの技術者ブログ

主にプログラムの話です

モータドライバ回路完成〜!(今度こそホント)

さて、前回、正転逆転はうまく動くけどPWMにするとうまく動かなかった回路ですが
PWMでもやっとうまく動きました。

ダメだった理由

  1. なんかモーレツにFETが熱くなるなーと思ってテスターでいろいろ調べていると、P-FETが1つ燃えていた。ドレイン-ソース間で抵抗を調べると、テスターのプローブを赤・黒を逆転させてもどちらも0Ω(普通は片側は絶縁になるべき)。これは燃えた証拠だ。という訳で予備で買っておいたP-FETに交換。
  2. 正転逆転はそれほど熱くならないが、PWMにすると熱くなる。おかしいな〜と思ってテスターでいろいろ調べると、P-FET側が、ゲートをOFFにしてもFETがOFFになっていなかった。テスターで抵抗を測っていて気付いた。この症状は、まさに、プルダウン抵抗がないためにFETの静電容量に電荷がたまって、たまった電荷が抜けないという症状。プルダウン抵抗忘れです。さっそく、EAGLEで書いたパターン図とは、ずれてしまうが抵抗を挿入。
  3. あれ?さっきまで正転逆転なら動いていたのに動かなくなったぞ?と思ってまたまたテスターで調べると、ハンダにより導通していた部分が絶縁になっていた。ハンダづけが甘いところがあった。ついでに怪しそうなところも再度ハンダをもった。
  4. その間、H8/3069のプログラムも何度も書き換えていたが、PWMで動かず。仕方がないのでマイコンの機能のPWM機能は使わずにソフトウェアでPWM信号を発行してみたところ、うまく動いた。あとはソフトウェアの問題か。
  5. モータをいちいち回して試験はつらいのでオシロスコープを使うことに。オシロは、秋月に売っていたUSBタイプの2chオシロ(これ)。USB Instruments社のStingray(スティングレイ:アカエイ)。3万円ぐらいだっけか。
  6. StingrayをUSBポートにつないで5分ぐらいすると、Vistaフリーズ。2回リブート。こりゃドライバの不具合だなということで、USB Instrumentsのホームページへ。ドライバをインストールして解決。CD-ROMについていたドライバは2〜3年前のなので不要ですね。
  7. その後PCが壊れて、PC引っ越し。引っ越し先のPCがグラフィックカードが弱くて、PCI-EXPRESSグラフィックカードを買うものの、なぜかPC側が変なPCI-EXPRESSソケットで刺さらず。そしてさらに別のPCに引っ越し。2日つぶしました。
  8. あとは、ソフトウェアの問題だけだとソースをにらめっこ。やっと不具合発見。PWM機能をONにするための設定ポートをたたくのだが、0xffff60番地をたたかないといけないのを0xfff60番地に書き込んでいた(fが1つ足りなかった)。

という訳で時間が、すごくかかりました。モータドライバ1つに。

オシロスコープ買ったよ!記念ということで、下記にソフトウェアで出力したPWMと、PWM機能で出力したPWMの図。ソフトウェアの方は、ビジーウェイトではなくTOPPERSのスリープを使っているせいか、ものすごく精度が悪くバラバラですね。


上図がソフトウェアのPWM。


上図が、H8/3069のPWM機能によるPWM信号。
ソフトウェア版の方が精度が悪い。さらに、時間のレンジを見るとわかるがソフトウェア版の方が周期が5倍ぐらい長い。