備忘録

スポンサーサイト

上記の広告は1ヶ月以上更新のないブログに表示されています。
新しい記事を書く事で広告が消せます。
  1. --/--/--(--) --:--:--|
  2. スポンサー広告

RaspberryPi SPI通信(シェルから動作確認?)

Raspberry PiでSPI通信
http://nanicananica.blog.fc2.com/blog-entry-19.html
Raspberry PiでSPI通信(とりあえず実動作)
http://nanicananica.blog.fc2.com/blog-entry-23.html
の続きです。

SPI通信なのですが、苦戦しています。
SPI通信はセンサと通っているみたいですが、データが流れてこない
初回以外、0x0しか戻ってこないです。

まぁここの調査は継続して続けていくのですが、
手軽にSPI通信の動作を確認するためのツール"spincl"を記録しておきます。

1.bcm2835ライブラリのダウンロード&インストール
 spinclは、bcm2835ライブラリというものを利用しています。
 このため、まずは事前にそっちをダウンロード&インストールします。
 手順は、通常と変わらないので、さくさくと書きます

 http://www.airspayce.com/mikem/bcm2835/このページの
 http://www.airspayce.com/mikem/bcm2835/bcm2835-1.25.tar.gz
 をダウンロードしてきて、いつもの流れです。

$ tar zxvf bcm2835-1.xx.tar.gz
$ cd bcm2835-1.xx
$ ./configure
$ make
$ sudo make check
$ sudo make install


2.spinclのダウンロード&インストール
 http://ipsolutionscorp.com/raspberry-pi-spi-utility/
 このページの下部よりspincl.tar.gzをダウンロードしてきます。

 こちらも、いつもの手順でビルドします。必要ならインストールしてください。
$ tar zxvf spincl.tar.gz
$ cd spincl
$ make


3.spinclの使い方
まぁヘルプなり、ホームページにでかでかと書いてありますが…
 Usage:
  spincl [options] len [xmit bytes]
 
 [option]には以下を指定します。
-i* : SPI開始時には -ib (biginのb)、通信停止時には、-ie (endのe)と指定します
   -m* : SPIモードの設定です。各種センサなどのデータシートを読んでください
      モード番号をそのままつけて -m0,-m1,-m2,-m3なんて形で指定します
   -c* : SPIの同期クロックのスピードを指定します。
      詳しくは、/usr/local/include/bcm2835.h の530行目くらいに記述がありますが、
      0~15の設定範囲で、125MHz~3.81KHzまでで可変できます。
      通信相手のスペックを見て指定してください
   -s* :SS信号を、RaspberryPiのCE0、CE1のどちらでやるかの指定です
      -s0:CE0、-s1:CE1、-s2:CE0&CE1、-s3:指定なし
   -p* :-p0で、Lowアクティブ、-p1でHighアクティブになります

 …ビットオーダーは今のところ、MSBFIRST固定のようです

 len [xmit bytes] は、Read/WriteのByte指定です。
 lenは最大32まで指定できて32ByteまでRead/Writeできます。

やたらとオプションをつけてやらないと動かないのは面倒ですが、
コマンドラインから手軽に呼び出せそうです。

ホームページの例ををのまま使うとすると
SPI通信開始、SPI設定はモード2、クロック15.625MHz、SSはCE0使用、CEはLowアクティブとで
3Byte読出しが以下です
$ sudo ./spincl -ib -m2 -c4 -s0 -p0 3
 >0x** 0x** 0x** <- 3byte分の受信データが戻されてきます

同様に2Byte送信は、送信Byte数を指定したあとに、送るデータを2Byte分直に書いてあげます
↓の例だと、2Byte 0xFF、0xFEを送信して、0xAB、0xCDを受信したという形です
$ sudo ./spincl -ib -m2 -c4 -s0 -p0 2 0xFF 0xFE
>0xAB 0xCD

スポンサーサイト

テーマ:プログラミング - ジャンル:コンピュータ

  1. 2013/05/14(火) 17:50:15|
  2. Raspberry Pi
  3. | トラックバック:0
  4. | コメント:0
<<今更ですが、 | ホーム | Raspberry PiでSPI通信(とりあえず実動作)>>

コメント

コメントの投稿


管理者にだけ表示を許可する

トラックバック

トラックバック URL
http://nanicananica.blog.fc2.com/tb.php/24-a270e356
この記事にトラックバックする(FC2ブログユーザー)
上記広告は1ヶ月以上更新のないブログに表示されています。新しい記事を書くことで広告を消せます。