備忘録

スポンサーサイト

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

Raspberry PiでSPI通信

I2Cの動作確認をしたいけど、I2C通信用のデバイスが一切ないことに気づく・・・
週末に買うことにして、今日はI2Cを飛ばしてSPI通信へ

いつもとおりのインチキ翻訳です。
http://projects.drogon.net/raspberry-pi/wiringpi/spi-library/

SPI Library


wiringPiは、ラズベリーパイのオンボードSPIインタフェースをより簡単に使えるようにするライブラリを含んでいます。

最初に、gpioユーティリティにてSPIドライバをカーネルにロードする必要があります

gpio load spi

もし4KBより大きいバッファが必要なときは、コマンドラインで設定してください。サイズはKBで指定

gpio load spi 100

この場合100KBのバッファがあてがわれます
(規定値は殆どアプリケーションでは十分なバッファサイズですが、スルーすべきでないです)

SPIライブラリを使用するには、プログラムに以下が必要です

#include <wiringPiSPI.h>


使える関数


・int wiringPiSPISetup (int channel, int speed) ;
これはチャンネルを初期化するためのものです。(Piは0と1の2チャンネルを持っています)
speedパラメータは、INT型で500,000~32,000,000の範囲をとり、SPIのクロックスピード(単位はHz)を表します。

戻り値は、Linuxのデバイスのための、ファイル ディスクリプタです。
-1はエラーです。
エラーが起きたら、グローバル変数の標準errnoを見て分析して下さい

・int wiringPiSPIDataRW (int channel, unsigned char *data, int len) ;
これらより、選択されたSPIを通じて、Readとwriteが同時に実行されます。
バッファ内にあったデータは、SPIバスから戻ってくるデータによって上書きされます。

プログラムはいつものように、-lwiringPi でリンクされる必要があります

ヘルパーライブラリの中にすべてがあります。
systemコールのread(),write()によっても、SPIを使用した単純な読み書きができます。
シフトレジスタに連続したデータを送るときは、標準write()を使ったほうが良いかもしれません。
また、RGBの3つセットのデータでLED表示をさせる場合も、標準のwrite()を使ったほうが良いでしょう。
AD変換やDA変換のような処理は、読み書きを平行して行う必要があります。

スポンサーサイト

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

  1. 2013/05/09(木) 21:57:46|
  2. Raspberry Pi
  3. | トラックバック:0
  4. | コメント:0
<<RaspberryPiから、Arudinoを制御 Doragon Remote Control版 | ホーム | ツールなどなど>>

コメント

コメントの投稿


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

トラックバック

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