2010年3月21日日曜日

スピンドルモーターコントローラーをつくろうとしたが

R/C用のサーボに出力する信号と同じ信号を出力して、スピンドルモーターを回転させるためのコントローラーを作ろうと、簡単な回路図をおこした。

そして、ちゃんと動くかどうか、ブレッドボードに仮組みをしてみた。

予備のPIC16F648Aが1つあったので、これにプログラムを書き込んで試してみた。
しかし、いつものように動かない。おかしいなとテスターで調べていたら、PICを逆向きにつけていた。ああ、あんということだろうか。このあと、PICはプログラムの書き込みができなくなってしまった。

センサーレスブラシレスDCモーターコントローラー用のPICを外して試作をする。
はじめ、なんとなく信号がでていたのを確認できたのだが、プログラムを修正していくうちに、信号はでなくなるし、原因がどんどん分からなくなっていった。プログラムをなんども書き直してみた。どうしても動かないので単純にLEDを点滅させるものまでつくってみたが、これすら動かない。

どうしたことだろう。いよいよ徳切れか。

ひょっとしたら、このチップも書き込みはできているようだが、どこかが壊れているかもしれない。そう思って、別のチップに変更することにした。PIC16F648Aはもうないので、dsPIC33FJ32GP202-I/SPをつかうことに。

扱いにくいアセンブラから、C言語に。回路図も書き直して、ブレッドボードに配線を行った。さすがにピン数が18から28に増え、8bitから16bitになったこともあり、外付けの配線などが増えてくる。

一番初めはLEDの点灯回路から。しかし、これすら動かない。配線の間違いなどをいくつか修正。しかし、まだ点灯しない。MPLABからPickit2経由でデバッグモード動作させようと設定してみた。しかし以下のようなエラーが出て先に進まない。
Programming Target (2010/03/21 18:37:37)
PKWarn0003: Unexpected device ID: Please verify that a dsPIC33FJ32GP202 is correctly installed in the application. (Expected ID = 0xF0D0000, ID Read = 0x0)
Erasing Target
Programming Program Memory (0x0 - 0x37F)
PE Error: Using ICSP
Verifying Program Memory (0x0 - 0x37F)
PE Error: Using ICSP
PK2Error0027: Failed verify (Address = 0x0 - Expected Value 0x40200 - Value Read 0x0)
PICkit 2 Ready
ネットで調べたら、ブレッドボードじゃ動かないよというような英語のメッセージを見つけた。

そうか、簡単に済ませようとやってきたが、こういうデリケートなチップはブレッドボードを使うべきじゃないのか。

うーん、こんな簡単な回路を作りたいだけなのに、どうしてこうなんだろう。まるまる2日棒に振ってしまった。

次なる手は、すでに完成している三相信号発生器のPIC24Fのソフトを変更して試してみるか。これならすでに回路ができているから、信号線だけ取り出せばよい。もちろんソフトウェアは作らなければならないが。
それで確認ができたら、ちゃんとしたボードをつくることにしよう。

やらなければならないことが、山ほどあるのに、なんでこんなところで時間食っているんだろう。やっぱり徳がなくなってきたのかもしれない。困ったことだ。

0 件のコメント:

コメントを投稿