Texas Instruments社(以下TI社)のSitaraプロセッサシリーズは、Arm® Cortex® -Aコア内蔵のフレキシブルなペリフェラルを搭載したラインナップとして、主に産業用通信・FA関連のアプリケーション向けに提供されています。製品の詳細は別の記事でご紹介をしています。

Sitaraプロセッサシリーズの紹介
産業用イーサネット規格にマルチ対応!ASICやFPGA不要のプロセッサ

Sitaraプロセッサ AM437xの紹介
産業用プロセッサでスマート工場を実現!Sitara™ AM437x

今回は、Sitaraプロセッサシリーズ の中でも、AM437xの開発キットを用いて、ブラシレスDCモータとエンコーダを動作させるデモの様子をご紹介します。TI社が提供しているソフトウェア(Processor SDK RTOS、PRU-ICSS-INDUSTRIAL-DRIVES)を使用するときの手順や、モータの回転速度を計測するときのポイントなどが含まれますので、是非最後までご覧ください。

用意するもの


実際のハードウェア構成は以下の通りです。

Article header library 126357 pic01  1
デモ環境の構成

Software Setup ~projectを作成する~

ソフトウェアですが、下記をダウンロード後、インストールしました。それぞれのバージョンも記載しますので参考にしてください。

PRU-ICSS-INDUSTRIAL-DRIVES (version 1.00.02)
http://www.tij.co.jp/tool/jp/PRU-ICSS-Industrial-SW

PROCESSOR-SDK-RTOS-AM437X (version 03.03.00.04)
http://www.tij.co.jp/tool/jp/PROCESSOR-SDK-AM437X

次に、以下のパスにあるバッチファイルをテキストエディタで開くと、CCSのインストール先やWorkspace先などを自由に編集することができます。任意のパスに編集ができたら、ファイルをSaveします。

パス : C:\ti\PRU-ICSS-Industrial_Drives_01.00.00.00\examples\motor_control\projects
ファイル名 : projectCreate.bat

Article header library 126357 pic02  1
バッチファイルの編集箇所

その後、コマンドプロンプトを開き、以下のように実行してください。
新しいProjectを作成します。

>cd C:\ti\PRU-ICSS-Industrial_Drives_01.00.00.00\examples\motor_control\projects
>projectCreate.bat AM437x arm motor_control

"Done!" が表示されれば成功です。完了まではすこし時間がかかるかもしれません。

Article header library 126357 pic03  1
"Done!" を確認

Software Setup ~CCSのセットアップ~

先ほど作成したProjectを実際に動かしてみます。
まずは、CCSを起動させて、先ほどバッチファイル内で指定したWorkspaceのフォルダを入力して、OKをクリックします。

Article header library 126357 pic04  1
Workspaceの起動

CCSが立ち上がると、"motor_control_AM437x_arm" というProjectがあると思います。そちらをActiveにした後、ビルドボタン をクリックします。

Article header library 126357 pic05  1
ProjectをActiveにし、ビルド実行

次に、Target Configuration Fileを作成します。
CCS上で、File → New → Target Configuration Fileと選択し ます。

Article header library 126357 pic06  1
Target Configuration Fileを作成

Target Configuration を図のように設定します。使用するJTAGエミュレータは任意です。
今回は、TMDSEMU200-U=XDS2xx を使用します。最後にSaveして完了です。

Article header library 126357 pic07  1
Target Configurationの設定

先ほど作成したProjectを実際に動かしてみます。
CCS上から、View → Target Configurationを選択するとTarget Configuration Windowが出てきます。そこで、先ほど作成したTarget Configurationファイルを右クリックし、Launch Selected Configuration をクリックします。

Article header library 126357 pic08  1
Target Configuration Windowでの操作

"Texas Instruments XDS2xx USB Debug Probe_0/CortexA9"を右クリックして、Connect Targetを選択します。

Article header library 126357 pic09  1
Targetと接続

次に、Run → Load → Load Programから、先ほどBuildしたout ファイルをロードします。

Article header library 126357 pic10  1
out ファイルのロード

ロードが完了すると、以下のような画面になり、PCが、main関数の先頭で、止まっています。
これでセットアップは完了です。

Article header library 126357 pic11  1
ロード完了後のCCS画面表示

実際にモータを動かしてみよう!

準備も整ったところで、実際にモータを動かしてみます。
Tera Termを立ち上げて、設定を行います。ボーレートは、115200、データは8bit、パリティはなしで設定します。

Article header library 126357 pic12  1
Tera termの設定内容

Tera Termの設定が終わったら、CCS上で、Runボタンをクリックします。

Article header library 126357 pic13  1
Runをクリック

RUNさせるとTera Term上にいくつか表示され、Enterを2回入力すると、以下のように表示されます。

Article header library 126357 pic14  1
Tera Termの表示(Enterを2回入力後)

ここでTera Termに表示されている単語の意味について説明します。

lsw (Loop Switch) = モータの制御方法 について、選択を求められています。各選択肢の意味は以下の通りです。

0 - off : モータ制御OFF
1 - open speed loop / position control : モータ制御ON、モータの運転状況をフィードバックしない
2 - closed speed loop / position control : モータ制御ON、モータの運転状況をフィードバックする

今回は lsw=2 と入力し、Enterを押します。すると次のように表示されます。

Article header library 126357 pic15  1
Tera Termの表示(lsw=2を入力後)

reference speed in rpm = モータの回転速度 (rpm = rotations per minutes) について、入力を求められています。

モータのスペックでは0-4000RPMまで動作可能のようですが、この環境で確認した限りでは、500-3000RPMぐらいまで動作させることができました。あくまで、ソフトウェアの作り込みによって値は変わりますが、今回使用しているTI社提供のソフトウェアでは、3000RPMを超えるとFaultが発生しました。

ここでは、RPM=1000と入力し、Enterを押します。

reference position in angle = モータの回転角度 について、入力を求められています。

今回は速度を制御するので回転角度はあまり意味がありません。任意の値で問題ありませんが、ここでは100と入力し、Enterを押します。

すると、モータがきれいに動作しました。

Article header library 126357 pic16  1
回転しているモータの様子

モータが回転している状態で、"press enter to configure…" と表示されるので、Enterを押してみました。
Tera Term上には以下のように表示され、Enterを押した際のspeed(回転速度)と、position(回転時の位置情報)が表示されます。

Article header library 126357 pic17  1
Tera Termの表示(モータ回転中)

ちなみに、RPM値にマイナスの値を入れると、逆回転しました。

プロセッサで簡単モータ制御!

Sitara シリーズ AM437xを用いて、モータ制御を実現するまでの手順をご紹介しましたが、いかがでしたでしょうか。

本記事でご紹介したSitaraプロセッサや産業用イーサネットに関するTI社の製品について詳細な情報をお求めの方は、是非こちらからお問い合わせください。

お問い合わせはこちら

関連情報

おすすめ記事/資料はこちら

産業用プロセッサでスマート工場を実現!Sitara AM437x
産業用イーサネット規格にマルチ対応!ASICやFPGA不要のプロセッサ
フレーズに応答する音声認識デモを作ってみよう
専門知識不要!複雑な画像処理が行えるライブラリ"OpenCV"とは?
OpenCV対応のARMプロセッサで人物検知をしよう
マイコンとはここが違う!デジタル信号処理に特化したDSPとは?

商品の購入はこちら

TMDSIDK437X

メーカーサイト/その他関連リンクはこちら

製品
AM437x
TPS65218 AM335x/AM437x ARM® Cortex™-A8/A9 SOC 用パワー・マネージメント

評価ボード、ツール
TMDSIDK437X
TMDSEMU200-U

ソフトウェア開発キット
PROCESSOR-SDK-RTOS-AM437X
PRU-ICSS-INDUSTRIAL-DRIVES