PCL6046で円弧補間を実行する(ソフトウェアサンプル)

概要

パラレルバス制御製品であるPCL6046もしくはPCL6045BLを安価なCPUで制御します。
CPUには、Raspberry Pi財団のRP2040を搭載した開発基板「Raspberry Pi PICO」※1を使用します。
RP2040は非常に安価であるにも関わらず、近年のCPUの機能から削除されることの多いパラレルバス機能の組み込みが可能であるという特徴を持っています※2
安価なCPUであっても、PCL6046もしくはPCL6045BLのもつ高度なモーション制御を簡単に取り込むことが可能です。

※1 Raspberry Pi は Raspberry Pi Ltd の商標です 。“Raspberry Pi is a trademark of Raspberry Pi Ltd”
※2 RP2040の特徴的な機能であるプログラマブルI/Oを利用し、パラレルアクセスを実行しています。

要件/開発環境

ソフトウェア

開発は、OSとしてWindows10 Pro を使用

ARM GCC Compiler コンパイラ
CMake ビルド自動化ツール
Visual Studio Code エディタ
Build Tools for Visual Studio ビルドツール
Python 3.9 Pythonの実行環境
Git for Windows GitHubからSDKをダウンロードするツール

各ツール類の入手先やインストール手順に関しては、この資料での解説は省略します。

ハードウェア

Raspberry Pi Pico ボード (秋月電子通商)
PCL6046ピッチ変換基板
(PCL6045BLピッチ変換基板でも可)
(日本パルスモーター)
(日本パルスモーター)
AD1431 (ドライバ)
 (TB67S249FTGドライバモジュール」でも可)
(日本パルスモーター)
(秋月電子通商)
PFC30-24V4 (ステッピングモーター)
(バイポーラ駆動なら他社製品でも可)
(日本パルスモーター)

動作概要

Raspberry Pi PICOからPCL6046を制御し、真円を描く動作を1回行います。

接続情報

この回路を、G9006評価ボード「EV-G9006-1」のCN2へ接続します。 電源は「EV-G9006-1」のUSB端子から5Vを供給してください。
また「EV-G9006-1」のジャンパー「JP02」の1、2、3番ピンのすべてをショートさせてください。
これでUSB端子からの5Vが、CN2の3、4番ピンに供給されます。

ソフトウェアサンプル

ファイル構成

main.c メインとなる動作のシーケンスを記載。
main.h 各種レジスタの定数を記載。
pcl_access.c パラレルバスアクセス関数を記載。
pcl_access.h パラレルバスアクセス関数の宣言を記載。
PCLのアドレス、書き込みデータを分割する際に使用する構造体を定義。
parallel_bus_module.pio パラレルバスアクセスの機能を記載。
CmakeLists.txt コンパイルの定義。
pico_sdk_import.cmake コンパイルの定義。
stdafx.c Raspberry Pi PICO用のソース。
stdafx.h Raspberry Pi PICO用のソース。

資料