概要
PCL6240-B(ブレイクアウトボード)とPCを接続し、SPI通信でのモーション制御を行います。
制御アプリケーション(PCアプリ)は、PCL6240のレジスタ値の書き換えとコマンドを実行するだけの簡易的なものを作成しました。
制御アプリケーション(PCアプリ)は、PCL6240のレジスタ値の書き換えとコマンドを実行するだけの簡易的なものを作成しました。
接続イメージ

ハードウェアの接続は、[PC] – [USB] – [SPI変換モジュール] – [PCL6240-B]という構成になっており、
[SPI変換モジュール] と[PCL6240-B]はブレッドボード上で配線接続しています。
ブレッドボード

PCL6240-Bの各端子の処理については、「パルスコントロールLSI PCL6240 取扱説明書」内の「4.3 端子一覧表」「4.4.1 SPI-Bus接続」を参考に行います。
ハードウェア
| 名称 | 用途 | 入手元 |
|---|---|---|
| PC (Windows 11 pro) | アプリケーション作成 実行 |
- |
| ブレッドボードEIC-102BJ | 基板接続用 | 秋月電子通商 |
| FT232HL ハイスピードUSBシリアル変換モジュール |
PCの信号をSPI通信に変換 | 秋月電子通商 |
| PCL6240-B | パルスコントロール | マブチモーターNPM |
ダウンロード
※ダウンロードにはお客様情報の入力をお願いします。
動作概要
今回は、2パターンの動作をするように、設定値を計算して書き込みます。
実験に用いる動作条件と、それを満たす設定値は以下の通りです。
なお、動作軸はU軸のみの一軸制御にしています。
各設定値は「パルスコントロールLSI PCL6240 取扱説明書」内の「5.5.1 速度制御レジスタ」「5.5.2 位置制御レジスタ」「5.5.3 環境設定レジスタ」を参考に計算します。
実験に用いる動作条件と、それを満たす設定値は以下の通りです。
| 動作条件 | ||
|---|---|---|
| 直線加減速動作① | 直線加減速動作② | |
| 移動量[パルス] | 1500 | 1000 |
| 移動方向 | CW | CW |
| スタート速度[pps] | 10 | 100 |
| 最高速度[pps] | 1000 | 800 |
| 加速時間[s] | 0.5 | 0.75 |
| 減速時間[s] | 1.0 | 0.5 |
| レジスタ等 | 設定値 | |
| PRMV | 1500 | 1000 |
| PRFL | 10 | 100 |
| PRFH | 1000 | 800 |
| PRUR | 4963 | 10531 |
| PRDR | 9928 | 7020 |
| PRMG | 299 | 299 |
| PRDP | 504 | 224 |
| PRMD(16進数) | 2h | 2h |
| スタートコマンド(16進数) | 53h | 53h |
なお、動作軸はU軸のみの一軸制御にしています。
各設定値は「パルスコントロールLSI PCL6240 取扱説明書」内の「5.5.1 速度制御レジスタ」「5.5.2 位置制御レジスタ」「5.5.3 環境設定レジスタ」を参考に計算します。
計算例:直線加減速動作①のPRUR
パルスコントロールLSI PCL6240 取扱説明書」内、「5.5.1.3 RUR(PRUR):加速レート」の式を参照します。
基準クロック周波数 f_CLK=9830400[Hz] とし、動作条件より加速時間TU=0.5[s]、計算値よりRFL=10、RFH=1000になるので、
$$ \text{RUR} = \frac{f_{\text{CLK}} \, [\text{Hz}] \times \text{TU} \, [\text{s}]}{\text{RFH} - \text{RFL}} - 1 $$ $$ = \frac{9830400 \times 0.5}{1000 - 10} - 1 $$ $$ \fallingdotseq 4963 $$
と計算できます。レジスタの設定値は整数のため、小数点以下を切り捨ててPRUR=4963として設定します。
基準クロック周波数 f_CLK=9830400[Hz] とし、動作条件より加速時間TU=0.5[s]、計算値よりRFL=10、RFH=1000になるので、
$$ \text{RUR} = \frac{f_{\text{CLK}} \, [\text{Hz}] \times \text{TU} \, [\text{s}]}{\text{RFH} - \text{RFL}} - 1 $$ $$ = \frac{9830400 \times 0.5}{1000 - 10} - 1 $$ $$ \fallingdotseq 4963 $$
と計算できます。レジスタの設定値は整数のため、小数点以下を切り捨ててPRUR=4963として設定します。
出力波形
設定値をレジスタに書き込み、動作をさせた際の出力波形は以下のようになります。
簡易的なアプリケーションではありますが、任意のレジスタ値の書き込みとパルスコントロールを実行できることが確認できます。

簡易的なアプリケーションではありますが、任意のレジスタ値の書き込みとパルスコントロールを実行できることが確認できます。

ソフトウェアサンプル
| Form1.cs | フォームアプリケーションの動作を記載。 |
| Form1.Designer.cs | デザイナー上でのUI変更に基づく自動生成コード。 レイアウトやプロパティなど。 |
| accessPCL6240.cs | レジスタやステータスの書き込み、読み出し動作など。 |
| clsFTDI.cs | USB-シリアル変換の動作を記載。 |
アプリケーション使用例

各レジスタ値は、「Form1.cs」の中に以下のように記述されています。
この値を変化させることで、上記の「1000」「1500」と書いてあるボタンを選択した際に書き込まれるレジスタ値を書き換えることができます。

また、「任意」ボタンを選択することで、アプリケーション上のテキストボックスに値を入力できるようになります。
なお、PRMDには16進数で値を入力してください。数値入力後に、「反映」ボタンを押下することでレジスタに書き込まれます。
