目次
  1. はじめに:C2000とは何か
  2. C28xコア・CLA・TMU
  3. モーター制御を支える周辺機能
  4. ePWMで三相PWMを生成
  5. eQEP・高速ADCで電流と位置を検出
  6. FOC(ベクトル制御)の制御ループ
  7. 開発環境とライブラリ
  8. よくあるトラブルと対策
  9. まとめ

はじめに:C2000とは何か

C2000(TMS320F28xx)は、Texas Instrumentsのリアルタイム制御専用マイコンファミリです。Piccolo(F2802x/F2803x/F2806x)やDelfino(F2837x/F2838x)といったシリーズがあり、モーター駆動・インバータ・デジタル電源・EV充電器・太陽光パワコンなど、高速・高精度な制御が要求される分野で世界的に使われています。

汎用マイコンとの最大の違いは「制御ループをキャリア周期ごとに確実に回すための周辺と演算器」が一体設計されている点です。PWM生成・電流検出・位置検出・保護・制御演算が緊密に同期し、数十kHzのスイッチング周波数でも余裕を持って電流制御を実行できます。本記事では、C2000でモーターを回すための要素を入門者向けに整理します。

弊社での活用実績

テクノスフィアでは、モーター制御・パワーエレクトロニクス分野の 組込み受託開発 に対応しています。汎用マイコン(RX / STM32)での制御から、C2000による高性能FOCまで、要件に応じた設計をご提案します。

C28xコア・CLA・TMU

C2000の演算リソースは、制御に最適化された3つの要素で構成されます。

要素役割
C28x コア32bitのメインCPU。FPU搭載品は浮動小数点制御演算が高速
CLA(Control Law Accelerator)制御演算専用のコプロセッサ。メインCPUと並列に制御ループを実行し、応答性を確保
TMU(Trigonometric Math Unit)sin/cos/atan等を高速化。FOCの座標変換を大幅に高速化

FOCではクラーク変換・パーク変換で三角関数を多用するため、TMUの有無が制御周期の余裕に直結します。重い電流制御ループをCLAにオフロードし、メインCPUは通信やシーケンス管理に専念させる、という分担も定石です。

モーター制御を支える周辺機能

周辺役割
ePWMデッドタイム付き相補PWM。三相インバータのゲート駆動信号を生成
eCAP入力キャプチャ。パルス周期・速度の測定
eQEP直交エンコーダのカウント。回転位置・速度を取得
ADC高速逐次比較ADC。PWMに同期して相電流をサンプリング
CMPSS内蔵コンパレータ。過電流を検出してPWMを即トリップ(保護)
SDFMΔΣ変調器インターフェース。絶縁電流センシングに対応

これらが相互に同期している点がC2000の真価です。ePWMがADCの変換開始をトリガし、変換完了でCLAの制御ループ割り込みを起動、CMPSSが異常時にePWMを即時遮断する——この一連の流れがハードウェアで連携します。

ePWMで三相PWMを生成

三相インバータでは、上下アームの短絡を防ぐデッドタイム付きの相補PWMが必須です。ePWMはこれをハードウェアで生成します。3つのePWMモジュール(U/V/W相)を同期させ、中央揃え(アップダウンカウント)でキャリアを作るのが一般的です。

// ePWM1 を 20kHz 中央揃え、デッドタイム付きで設定(概念コード)
EPwm1Regs.TBPRD = PWM_PERIOD;                 // キャリア周期(20kHz)
EPwm1Regs.TBCTL.bit.CTRMODE = TB_COUNT_UPDOWN; // 中央揃え
// コンペアでデューティを設定(FOCの出力電圧指令から計算)
EPwm1Regs.CMPA.bit.CMPA = duty_u;
// デッドバンド(上下アーム短絡防止)
EPwm1Regs.DBCTL.bit.OUT_MODE = DB_FULL_ENABLE;
EPwm1Regs.DBRED = DEADTIME_COUNT;             // 立上り遅延
EPwm1Regs.DBFED = DEADTIME_COUNT;             // 立下り遅延
// ADC変換開始をePWMからトリガ(電流を谷で取得)
EPwm1Regs.ETSEL.bit.SOCAEN = 1;
EPwm1Regs.ETSEL.bit.SOCASEL = ET_CTR_PRD;
デッドタイムは安全の要

デッドタイムが不足すると上下アームが瞬間的に同時オンし、貫通電流でパワー素子が破壊されます。ゲートドライバとパワー素子の特性に合わせて十分なデッドタイムを設定し、必ず低電圧・電流制限下で検証してください。

eQEP・高速ADCで電流と位置を検出

FOCには「相電流」と「回転子位置」の正確な検出が不可欠です。

  • 相電流:シャント抵抗やホール式電流センサーの出力を、ePWMに同期したタイミング(キャリアの谷など)でADCサンプリングします。スイッチングノイズを避けるタイミング設計が精度の鍵です。
  • 回転子位置:エンコーダを使う場合はeQEPで直交パルスをカウントし、位置・速度を得ます。センサーレス制御では、相電流・電圧から位置を推定(オブザーバ)します。

ADCはePWMトリガで自動起動し、変換完了割り込みで制御ループを起動するのが定石です。これにより「PWM周期ごとに必ず最新電流で制御演算する」リアルタイム性が保証されます。

FOC(ベクトル制御)の制御ループ

FOC(Field Oriented Control)は、三相電流を回転座標系のd軸(磁束方向)・q軸(トルク方向)に変換して独立制御する方式です。トルクリプルが小さく高効率で、PMSM/BLDCの高性能駆動の標準手法です。1制御周期の流れは次のとおりです。

FOC 1周期の処理フロー
  1. 電流取得:ADCで相電流 Iu, Iv, Iw を取得
  2. クラーク変換:3相 → 静止2軸 (Iα, Iβ)
  3. パーク変換:静止2軸 → 回転2軸 (Id, Iq)(位置θを使用)
  4. 電流PI制御:Id, Iq を指令値に追従させる
  5. 逆パーク変換:回転2軸 → 静止2軸の電圧指令 (Vα, Vβ)
  6. SVPWM:空間ベクトルPWMで各相デューティを算出
  7. ePWM更新:CMPA/CMPBにデューティを反映

この一連の演算を、TMU(三角関数)とCLA(並列実行)で加速します。速度制御を行う場合は、電流ループの外側に速度PIループを重ねるカスケード構成にします。C2000Wareのモーター制御ライブラリやリファレンスデザインを土台にすると、ゼロから書くより安全かつ短期に立ち上げられます。

開発環境とライブラリ

要素内容
統合開発環境Code Composer Studio(CCS)
ドライバ・サンプルC2000Ware(周辺ドライバ・サンプル・ライブラリ集)
周辺設定SysConfig(GUIで端子・周辺を設定しコード生成)
数学ライブラリIQmath(固定小数点)/ FPU・CLA math ライブラリ
評価ボードLaunchPad(LAUNCHXL-F28xx)/ controlCARD + モータ用ブースタパック

初めてC2000でモーターを回す場合は、TIのモーター制御リファレンスデザイン(評価キット+サンプルプロジェクト)から始めるのが安全です。動く状態を基準に、自分のモーター・インバータに合わせてパラメータを調整していくアプローチが、トラブルを最小化します。

よくあるトラブルと対策

症状主な原因対策
モーターが回らない・脱調する位置θのずれ・電流位相のずれエンコーダ原点・極対数・電流センサーの符号/ゲインを確認。オープンループ起動から検証
パワー素子が発熱・破損デッドタイム不足・貫通電流デッドタイムを十分に。必ず低電圧・電流制限で段階的に検証
電流値にノイズが乗るADCサンプリングタイミングがスイッチングと重なるキャリアの谷でサンプリング。配線・グランド設計を見直す
制御ループが間に合わない演算負荷過大・CLA未活用重い演算をCLAへオフロード。TMUで三角関数を高速化。固定小数点化も検討
過電流で頻繁にトリップCMPSSしきい値・PIゲイン不適保護しきい値とPIゲインを再調整。電流リミットを段階的に上げる
安全に関する注意

モーター・インバータの開発は高電圧・大電流を扱い、感電・発火・部品破損のリスクがあります。必ず適切な保護(電流制限電源、ヒューズ、絶縁、保護メガネ等)のもとで、低電圧から段階的に検証してください。

まとめ

この記事のまとめ

  • C2000(TMS320F28xx)はモーター制御・デジタル電源向けのリアルタイム制御専用マイコン
  • ePWM(デッドタイム付き相補PWM)・eQEP(エンコーダ)・PWM同期高速ADC・CMPSS(保護)が緊密に連携する
  • C28xコア+CLA(制御コプロセッサ)+TMU(三角関数)で制御ループを高速・並列に回す
  • FOCはクラーク/パーク変換でdq軸に分離し、電流PI→逆変換→SVPWMでモーターを駆動する
  • 開発はCCS+C2000Ware。リファレンスデザインを土台にすると安全に立ち上げられる

C2000を使ったモーター制御・インバータ・デジタル電源の開発でお困りのことがあれば、テクノスフィアにお気軽にご相談ください。FOCのPoC、既存制御の高性能化、汎用マイコンからの移行までご相談を承ります。

/この内容の受託開発・PoC相談はこちら\

C2000・モーター制御の受託開発

BLDC/PMSMのFOC制御、インバータ、デジタル電源の設計・PoC・量産化をテクノスフィアが対応します。汎用マイコンからC2000への高性能化移行もご相談ください。

よくある質問(FAQ)

C2000はなぜモーター制御に向いていますか?

デッドタイム付き相補PWMのePWM、エンコーダをカウントするeQEP、PWM同期の高速ADC、過電流を即遮断するCMPSS、制御演算を並列実行するCLA、三角関数を高速化するTMUが揃い、キャリア周期ごとの電流制御ループを確実に回せるためです。

FOC(ベクトル制御)とは何ですか?

三相電流をd軸(磁束)・q軸(トルク)に座標変換して独立制御する方式です。クラーク/パーク変換でdq軸に変換し、電流PI制御後に逆変換とSVPWMで相電圧を生成します。トルクリプルが小さく高効率で、PMSM/BLDCの高性能駆動に使われます。

開発環境は何を使いますか?

Code Composer Studio(CCS)とC2000Ware(ドライバ・サンプル・ライブラリ)が標準です。周辺はSysConfigでGUI設定でき、FOCには数学ライブラリ(IQmath/CLAmath)やモーター制御ライブラリを利用できます。

STM32・RXのモーター制御とどう違いますか?

STM32(G4等)や RX(RX66T等)も制御可能ですが、C2000はCLA・TMU・同期ADCなどリアルタイム制御特化のアーキで高速・高精度・多軸/高キャリア制御やデジタル電源に優位です。UIや通信も兼ねるなら汎用MCU、制御性能最優先ならC2000という選び方です。

次に読む|マイコン記事