[Raspberry Pi 4][C++] pigpioを使ってSPIでモータを制御するときは、必ず最初にCS用のPINをHIGH(又はLOW)にすべし。

概要

pigpioを使ってSPIでモータを制御するときは、必ず最初にCS用のPINをHIGH(又はLOW)にすべし。

動作確認環境

Raspberry Pi 4
g++ (Raspbian 8.3.0-6+rpi1) 8.3.0
某モータドライバ, AZ用 EL用

詳細

pigpioを使ってSPIでモータを制御するとき、ピンのイン・アウト、プルアップの設定だけだと不十分。だった。。。。

AZ駆動用、EL駆動用に某モータ1台ずつ、計2台をMISO、MOSI共通でCSを切り替えながら制御していた。

EL駆動中にプログラムをKillして、再び最初からプログラムを走らせると、AZ駆動用モータドライバからのSPIのレスポンスが「FF FF FF FF FF FF FF FF FF FF FF FF」のみとなった。

波形をしらべてみると、起動時に本来HIGHであるはずのEL用のCSがLOWとなっていた。どうやらELモータの駆動を途中でKillしてしまったため、ELモータドライバ側でLOWに張り付いていた模様。

CSピンは、ちゃんとHIGH(SPIがアクティブLOWのとき)に初期化すべし。という教訓を得た。

item: None

$tagSerchWord

// PHPのテストをしています。 //

C++Raspberry Pi 4教訓
Yoshi1123をフォローする
Invisible Works

コメント

タイトルとURLをコピーしました