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)を使用するときの手順や、モータの回転速度を計測するときのポイントなどが含まれますので、是非最後までご覧ください。
用意するもの
- Sitara AM437x 開発キット (TI社 TMDSIDK437X)
- JTAGエミュレータ(TI社 TMDSEMU200-UE)
- ブラシレスDCモータ(Anaheim Automation社 BLY171D-24V-400)
- エンコーダ (HAIDENHAIN社 ROQ437)
- ブラケット(HAIDENHAIN社)
- カプラ(HAIDENHAIN社)
- パソコン(Tera Term、TI社 Code Composer Studio version 7.1.0.00015)
実際のハードウェア構成は以下の通りです。
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
その後、コマンドプロンプトを開き、以下のように実行してください。
新しいProjectを作成します。
>cd C:\ti\PRU-ICSS-Industrial_Drives_01.00.00.00\examples\motor_control\projects
>projectCreate.bat AM437x arm motor_control
"Done!" が表示されれば成功です。完了まではすこし時間がかかるかもしれません。
Software Setup ~CCSのセットアップ~
先ほど作成したProjectを実際に動かしてみます。
まずは、CCSを起動させて、先ほどバッチファイル内で指定したWorkspaceのフォルダを入力して、OKをクリックします。
CCSが立ち上がると、"motor_control_AM437x_arm" というProjectがあると思います。そちらをActiveにした後、ビルドボタン をクリックします。
次に、Target Configuration Fileを作成します。
CCS上で、File → New → Target Configuration Fileと選択し ます。
Target Configuration を図のように設定します。使用するJTAGエミュレータは任意です。
今回は、TMDSEMU200-U=XDS2xx を使用します。最後にSaveして完了です。
先ほど作成したProjectを実際に動かしてみます。
CCS上から、View → Target Configurationを選択するとTarget Configuration Windowが出てきます。そこで、先ほど作成したTarget Configurationファイルを右クリックし、Launch Selected Configuration をクリックします。
"Texas Instruments XDS2xx USB Debug Probe_0/CortexA9"を右クリックして、Connect Targetを選択します。
次に、Run → Load → Load Programから、先ほどBuildしたout ファイルをロードします。
ロードが完了すると、以下のような画面になり、PCが、main関数の先頭で、止まっています。
これでセットアップは完了です。
実際にモータを動かしてみよう!
準備も整ったところで、実際にモータを動かしてみます。
Tera Termを立ち上げて、設定を行います。ボーレートは、115200、データは8bit、パリティはなしで設定します。
Tera Termの設定が終わったら、CCS上で、Runボタンをクリックします。
RUNさせると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を押します。すると次のように表示されます。
reference speed in rpm = モータの回転速度 (rpm = rotations per minutes) について、入力を求められています。
モータのスペックでは0-4000RPMまで動作可能のようですが、この環境で確認した限りでは、500-3000RPMぐらいまで動作させることができました。あくまで、ソフトウェアの作り込みによって値は変わりますが、今回使用しているTI社提供のソフトウェアでは、3000RPMを超えるとFaultが発生しました。
ここでは、RPM=1000と入力し、Enterを押します。
reference position in angle = モータの回転角度 について、入力を求められています。
今回は速度を制御するので回転角度はあまり意味がありません。任意の値で問題ありませんが、ここでは100と入力し、Enterを押します。
すると、モータがきれいに動作しました。
モータが回転している状態で、"press enter to configure…" と表示されるので、Enterを押してみました。
Tera Term上には以下のように表示され、Enterを押した際のspeed(回転速度)と、position(回転時の位置情報)が表示されます。
ちなみに、RPM値にマイナスの値を入れると、逆回転しました。
プロセッサで簡単モータ制御!
Sitara シリーズ AM437xを用いて、モータ制御を実現するまでの手順をご紹介しましたが、いかがでしたでしょうか。
本記事でご紹介したSitaraプロセッサや産業用イーサネットに関するTI社の製品について詳細な情報をお求めの方は、是非こちらからお問い合わせください。
お問い合わせはこちら
関連情報
おすすめ記事/資料はこちら
産業用プロセッサでスマート工場を実現!Sitara AM437x
産業用イーサネット規格にマルチ対応!ASICやFPGA不要のプロセッサ
フレーズに応答する音声認識デモを作ってみよう
専門知識不要!複雑な画像処理が行えるライブラリ"OpenCV"とは?
OpenCV対応のARMプロセッサで人物検知をしよう
マイコンとはここが違う!デジタル信号処理に特化したDSPとは?
商品の購入はこちら
メーカーサイト/その他関連リンクはこちら
製品
AM437x
TPS65218 AM335x/AM437x ARM® Cortex™-A8/A9 SOC 用パワー・マネージメント
評価ボード、ツール
TMDSIDK437X
TMDSEMU200-U
ソフトウェア開発キット
PROCESSOR-SDK-RTOS-AM437X
PRU-ICSS-INDUSTRIAL-DRIVES