いざ、モータアプリケーションの制御を開発するとなるとマイコンで開発しようと考えるエンジニアは多いのではないでしょうか?
しかし、マイコンで設計した場合、下記のような課題に直面します。
- 長期的に製品供給するアプリケーションなのにマイコンが生産中止
- モータを複数制御したいがマイコンのPWMなどペリフェラルが足りない
- モータ制御と通信処理を同時に動作したらパフォーマンスが足りなかった
など実際に開発の現場ではよく話を聞きます。
しかし、FPGAを採用することでこれらの問題を解決することが可能です。
FPGAを採用するメリット、デメリットも含めて解説します。
FPGAでモータ制御を行う3つの理由
[理由1] 処理速度がマイコンと比較して圧倒的に速い
一般的なマイコンは性能があがったとはいえ、μsecでの処理速度です。
FPGAではローエンド向けFPGAでもnsecでの処理が可能であり処理速度はマイコンと比較して圧倒的です。
FPGAはハードウェアで処理するため、モータ制御で必要なPWMなどの処理が得意です。
マイコンのソフトウェアでの処理速度と比較すると数倍〜100倍以上の差がでるからです。
[理由2] 複数のモータを同時に処理できる
産業機器、FAロボットなど、1つのアプリケーションで10個、20個のモータを制御しなければならい状況はどんどん増えています。
これらの処理を1個のマイコンで処理することはできるのでしょうか?10個のモータを同時に制御するなど不可能です。
そもそも、制御に必要なPWMが数十個搭載したマイコンは存在しません。
しかし、FPGAであれば数十個のPWMを搭載することは容易にできます。また、FPGA内部にCPUを搭載することもできるため、1個のFPGAで数十個のモータを制御することも可能です。
[理由3] 長期供給が可能
産業機器向けアプリケーションを供給しているメーカーの最大の悩みは生産中止です。
マイコンが生産中止になった場合、ほとんどの場合において、御社の製品の製造中止を意味します。
よほど、しっかりとした後継マイコンを供給してもらえない限り継続しての生産はできないでしょう。
Intel は ほとんどのFPGA を長期供給しています。製造開始から20年以上たっても市場に供給し続けている製品もあります。もし、万が一 FPGAが生産中止になったとしても、後継のFPGAに設計ソースを移植することが簡単にできます。
つまり、後継のFPGAで同じ機能が継続して利用できます。
そうはいっても、1個のモータ制御で十分という場合はマイコンで事足りますしFPGAを利用することのデメリットもあります。
FPGAを使うデメリットもあります
[デメリット1] 動作には複数電源が必要
一般的なFPGAではコア電源とI/0電源が分かれています。
例えばFPGAはコア電源が1.2Vに加えて、インターフェイス毎にI/O電源が必要です。
メモリや差動信号、LVCMOSなどインターフェイス毎に複数の電源が必要になります。
FPGAの電源周辺がマイコンと比較して設計が面倒というデメリットがあります。
しかし、Intelの最新デバイスMAX® 10シリーズは3.3V単一で動作するFPGAも販売されており、デメリットも解消されつつあります。
[デメリット2] コンフィグレーションROMが必要
一般的なFPGAはSRAMベースで設計されているため、電源を落とすと、FPGA内部の回路データは消えてしまいます。そのため、FPGAを立ち上げるたびに外部のROMからコンフィグレーションが必要です。
このことがFPGAが2チップ構成が必要になり、外部ROMがコストアップの原因にもなっています。
しかし、Intelの最新デバイスMAX® 10シリーズはFPGA内部にFlashメモリを搭載しておりワンチップでのFPGA動作を実現しています。このデメリットは解消されています。
[デメリット3] マイコンと比較して単価が高い
ひと昔前のFPGAは1個あたり、数千円〜数万円というのが相場でした。そのため、マイコンと比較すると数倍の値段がするということもよくありました。
しかし、現在はプロセスの微細化が進み、低価格帯のFPGAも普及がすすんでいます。購入数量にもよりますが、モータ制御に使えるFPGAが数ドルで買えるような状況になってきています。
以上のようにマイコンと比較してFPGAでモータ制御を実現するにはデメリットもあるものの、最新のIntel® FPGAデバイスではそのデメリットも解消されています。
複数のモータを制御が必要な高付加価値のアプリケーションの開発にはFPGAを採用するケースが増えています。
とはいえ、モータ制御をFPGAで ゼロから作って評価するのはかなり大変です
これはマイコンにも言えることですが、何も状態からモータ制御の回路をFPGAでいきなり開発するのはかなり大変です。
マイコンであれば、ペリフェラルに合わせてソフトを開発することもできますが、FPGAの場合はそのペリフェラルから開発するようなものです。
ですから、開発キットやリファレンスデザインなどを使ってFPGAを開発するのがもっともベストな方法です。
すぐに使えるサーボモータ開発キット「DE10 Lite」と「Servo Motor Kit」
「Servo Motor Kit」はTerasic社製のFPGA開発キットです。Intel® FPGAの最新デバイスMAX® 10が搭載した「DE10 Lite」とつなぎ合わせることですぐにサーボモータ制御の評価ができます。
「Servo Motor Kit」には最大24個のサーボモータを接続して同時に制御することができます。
また、サーボモータ制御に必要なリファレエレンスデザインも付属しているため動作確認後、このリファレンスデザインを元にすぐに開発が行えます。
開発キットには回路図面、部品リストも付属しているのでこの図面とリストを参考に基板設計も容易に行うことができます。
開発ツールは無償で使えます
この開発キット「DE10 Lite」には搭載されている、FPGAはIntelの無償開発ソフト「Quartus Prime ライト・エディション」で開発が行えます。
また、デバッグやプログラムの書き込みは開発キットに専用回路が実装されているため、PCと開発キットを付属のUSBケーブルでつなぐだけで開発が行えます。
アプリケーション例
- FAロボット
- 工作機器
- アクチュエーター

開発キット「DE10 Lite」「Servo Motor Kit」の詳細
FPGA開発キット「DE10 Lite」
メーカー名 | terasic |
型 名 | P0466 / DE10 Lite |
搭載FPGA |
|
Memory Device | 64MB SDRAM, x16 bits data bus |
Expansion Connectors |
|
Display | 4-bit Resistor VGA |
Switches/Buttons/ LEDs/7-Segment Display |
|
付属品一覧 |
|

ドーターカード「Servo Motor Kit」
メーカー名 | terasic |
型 名 | P0288 / Servo Motor Kit |
機能詳細 |
|
付属サーボモータ |
|
付属品一覧 |
|
