WR-XシリーズにKO SERVO基板が新たに完成した。
WR-X KO SERVO
これは主にKONDOのRed Versionタイプのサーボをフルに制御するための基板で、独自サーボではなく市販サーボをそのまま使うためのもの。
無理に自分で作らなくてもまぁ市販のでも代用できないこともないかもしれないが、WR-Xシステムとして普通のサーボでいいときのためと、Red Version機能によりサーボ位置情報などを取得するために作ってみた。
この1枚で32個のサーボを制御できる。
昔ながらの6Vサーボにも最新のHV仕様の12Vサーボにも使用できる。
これの設計を始めてから実際に完成するまで、ほぼ丸一ヶ月かかった。
まぁVerilogで通常のPWM信号生成、Red Version用PWM信号生成、パルス幅キャプチャユニットなどを統合して、さらに30万ゲートのFPGAに16ms毎に32ch分の制御を入れるとなるとかなり工夫が必要で、まずはVerilogのプログラムに約2週間かかった。
30万ゲートFPGAに入ると分かったため、それで回路図を設計する。実部品を使ってブレッドボードで5万ゲートFPGAで小規模回路を実験的に組み、オシロスコープで波形を観察して回路決定。そして最終的な回路図を決定し、基板のアートワークで1週間。
基板と部品を発注して、基板が完成するまで1週間と、これだけ超ハイペースでやっても1枚の基板を作り上げるまでは1ヶ月くらいかかってしまう。
今回はかなりやりっぱなしでやってたが、これくらいのペースが限界だな。
ところで、今日研究室で秋月の安物オシロで波形を見て、一応完成したと思っていたのだが、とりあえずモニ巣でも確認してみるかと思い、この間買ったTektronixのオシロスコープで観察してみると・・・
Σ(・Θ・)こ、これは・・・!!
上の黄色い波形が途中で下に下がっているのが分かると思うが、その横に薄っすらと黄色がまっすぐの線も出てしまっている。
下の青い線も、一度下がるが、また上がってしまっている薄い線が見える。
これは本来あってはならない線なのである。
Tektronixのオシロスコープの場合、突発的ノイズも見つけることができるようになっているのだ。
普段は明るい色の黄色や青色の線の波形が出ているのだが、たま〜に突発的に暗い黄色や青色の波形が出てしまっているよ、ということを意味している。
やっぱし秋月の安物オシロではダメだなぁ〜、と思ったつちのこであった。どんなに頑張ってもこのノイズを見つけることはできなかったからね。
で、Verilogソースを見直し、おかしそうなところを修正して、突発的に波形が乱れることがあるバグを取り除くことができた。
バグ取り後、右側に薄っすらとした変な波形は見えない
ついでに、他の波形も見てみる。
つちのこ設計の20MHzクロック発振回路の出力波形を見てみる。
↑それなりに矩形波の形をしていて、問題なく発振できているのが良く分かる。秋月安物オシロでは非常に振幅の小さいSIN波にしか見えないが、P-Pで4.2Vの結構大きな振幅で発振してるのが分かる。
それでは次に、今までは見えなかった60MHzのクロック波形を見てみる。今回のは200MHzモデルなので問題なく見える。
↑はCPU基板から出ている60MHzの波形である。本来は矩形波であるが、上の部分は結構丸くなってしまっている。P-P 3.76Vと、本来の3.3Vを考えればまぁまぁな波形になっている。
次に、これがケーブルを通してWR-X KO SERVO基板のFPGAの入り口までいくとどうなるかを見てみると
↑なんと30cmもないケーブルを通ると、全く同じものがこんなことになってしまっている。
FPGAの入力は0〜3.3Vなのだが、これを見る限りP-Pは7.20Vにもなってしまっていて、-2V〜+5Vくらいまで振幅してしまっているのが分かる。
ん〜、こんな信号そのままFPGAに入れてしまって大丈夫なんだろうか・・・
FPGA内部には入力端子にVCCO側にダイオードが入っているので、この余分な電圧はVCCOに流れていると思われるが、それがまたFPGA内部の電源ラインのノイズになっている可能性が高い。
やはりクロックは邪魔でも1つの基板に1つ用意するようにした方が良いのかもしれない。
こんばんわ。自分も院生でFPGAを使ってPWM制御を学んでいるんですがどのようなプログラムか気になります。