ZUMI32でHDD用のスピンドルモータを制御してみた。使用したモーターはジャンクのHDDから抽出したやつで電極が4つある。各電極間の電気抵抗を測ると1つの電極に対して他の3つの抵抗値が同じになるのでコイルはスター型の接続になっているようだ。
FPGAの出力でモーターのコイルを直接ドライブ出来ないので、Power FETを介してドライブした。ちょうど手持ちにSanKenのFKI10531というFETがあった。このFETはVGS(th)が2.0V (typ)なのでFPGAで制御するのに都合が良い。
3相モーターなので駆動は2つのコイルを同時にONにしその状態を順繰りに切り替えていく方式にした。CPUからの制御はタイマー割り込みを使用して割り込みハンドラ内で行うようにした。
何発のパルスでモーターが1回転するのか不明だったので割り込み周期を1秒にしてパルス数と回転の関係を見たところ12個のパルスでモーターが1回転することが判った。
市販のHDDの回転数は5400rpm〜7200rpm位のようだが、今回使用するモーターが載っていたHDDの回転数は不明だ。仮に5400rpmとすると1秒で 5400÷60 = 90 回転 (90Hz、11.1ms)となる。
このモーターを5400rpmで回すには 90Hz × 12 = 1080Hz 、ほぼ 1ms 周期でパルスを発生させる必要がある。つまり、割り込み周期は1msだ。
実際に、その周期でモーターを駆動してみると脱調して回らなかった。パルスモーターと同じように台形駆動(最初は低速で駆動し徐々に回転数を上げていく)が必要なようだ。
色々試してみたところ、パルス周期を30msecから初めて徐々に周期を短くしていくやり方で2.1msecまでは駆動できた。しかし、それ以下にすると脱調してしまう。
円板の有無でも変わるのかも知れない。
0 件のコメント:
コメントを投稿