LoginSignup
2
6

More than 5 years have passed since last update.

Raspberry Pi > SPI > SPIの有効化 (Raspbian Jessie) + SCLK(1MHz)を出力するまで / SPI1使用について

Last updated at Posted at 2017-02-07
動作環境
Raspberry Pi 2 Model B (以下RPi)
Raspbian Jessie
Tektronix TDS 2024C (200 MHz, 2GS/s)
$ cat /etc/debian_version 
8.0
$ cat /proc/version 
Linux version 4.1.7-v7+ (dc4@dc4-XPS13-9333) (gcc version 4.8.3 20140303 (prerelease) (crosstool-NG linaro-1.13.1+bzr2650 - Linaro GCC 2014.03) ) #817 SMP PREEMPT Sat Sep 19 15:32:00 BST 2015

関連 http://qiita.com/7of9/items/caa10591069cd3a33c76#comment-0055b13b4b492c07c62d

RPiにてSPIを使おうとした。

いくつかのページを参考にした。

@soramimi_jp さん
http://www.soramimi.jp/raspberrypi/spi/
上記を実行してみたが、SPIは有効にならなかった。

@masato さん
http://qiita.com/masato/items/f089a17b1c9329eb7d03
カーネルのバージョンが異なっていた。実施は保留としました。

pusuke0418’s diary by pusuke0418さん
http://poosyche.hatenablog.com/entry/2015/04/03/000355

なんやこれと思って調べていると、下記【参考】に記載した投稿を見つけた。どうやら仕組みが変わっていたらしい。
$ sudo raspi-config から、
"8 Advanced Options"→"A6 SPI"→以降の項目でそれぞれ"<はい>"と"<了解>"→再起動

で使えるようになった。ありがとうございます。

こちらの方法を実施しました。

設定

$ sudo raspi-config
8 Advanced Options
A6 SPI
Would you like the SPI interface to be enabled? にて Yes
The SPI interface is enabled にて Ok
Would you like the SPI kernel module to be loaded by default? にて Yes
SPI kernel module will now be loaded by default にて Ok
Finishを選択

modprobe: ERROR: could not insert 'spi_bcm2708': No such device

上記のメッセージが少し気になる。

再起動後

参考 http://www.soramimi.jp/raspberrypi/spi/

$ ls -la /dev/spidev0.*
crw-rw---- 1 root spi 153, 0 Feb  7 12:20 /dev/spidev0.0
crw-rw---- 1 root spi 153, 1 Feb  7 12:20 /dev/spidev0.1
$ dmesg | grep spi
[    2.767104] systemd[1]: Set hostname to <raspi_yo>.
[    4.981019] spi spi0.0: setting up native-CS0 as GPIO 8
[    4.982401] spi spi0.1: setting up native-CS1 as GPIO 7
$ lsmod | grep spi
spi_bcm2835             7248  0 

有効化されたようだ。
(dmesgの1つ目(systemd...)はSPIとは無関係)

spidevインストール

参考 https://hack-le.com/47361017-2/

$ sudo apt-get install python-spidev
Reading package lists... Done
Building dependency tree       
Reading state information... Done
E: Unable to locate package python-spidev
$ sudo apt-get update
$ sudo apt-get install python-spidev

サンプルコード

参考 http://www.100randomtasks.com/simple-spi-on-raspberry-pi

以下のように実装した。

spitest.py
import spidev
import time

usleep = lambda x : time.sleep(x/1000000.0)

spi = spidev.SpiDev()
spi.open(0, 0)
spi.max_speed_hz = 1000000

while True:
    resp = spi.xfer2([0x00])    
    print(resp[0])
    usleep(1.0)

spi.close()

SPI0 SCLK(#23)とGND(#39)にてオシロスコープ(Tektronix TDS 2024C)で波形を計測した。

F0002TEK.jpg

1MHzでSPI SCLKを出力できた。

SPI1の使用

以下にありますようにSPI1使用の設定が必要のようです。
https://www.raspberrypi.org/forums/viewtopic.php?f=82&t=167188

現在必要な機能はSPI0で確認できるため、SPI1使用は保留とします。

2
6
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
2
6