Contents
Intro
We already learnt how to use Raspberry Pi with GPIB interface to communicate with lab instruments. How about using SPI port, to talk with external SPI devices, such as ADC/DAC chips?
Software setup
- Comment blacklist spi-bcm2708 to enable SPI in /etc/modprobe.d/raspi-blacklist.conf
- Make sure your SPI port is visible in lsmod
root@tin:/etc/modprobe.d# lsmod Module Size Used by i2c_dev 6970 0 spidev 6533 0 i2c_bcm2708 5306 0 spi_bcm2708 6578 0
- Make folder and install python-spi library
root@tin:/home# mkdir python-spi root@tin:/home# cd python-spi root@tin:/home/python-spi# wget https://github.com/doceme/py-spidev/archive/master.zip --2015-11-24 08:24:53-- https://github.com/doceme/py-spidev/archive/master.zip Resolving github.com (github.com)... 192.30.252.129 Connecting to github.com (github.com)|192.30.252.129|:443... connected. HTTP request sent, awaiting response... 302 Found Location: https://codeload.github.com/doceme/py-spidev/zip/master [following] --2015-11-24 08:24:59-- https://codeload.github.com/doceme/py-spidev/zip/master Resolving codeload.github.com (codeload.github.com)... 192.30.252.146 Connecting to codeload.github.com (codeload.github.com)|192.30.252.146|:443... connected. HTTP request sent, awaiting response... 200 OK Length: 21177 (21K) [application/zip] Saving to: `master.zip' 100%[=========================================================>] 21,177 93.9K/s in 0.2s
- Now we can unpack it and install
root@tin:/home/python-spi# unzip master.zip ... root@tin:/home/python-spi# cd py-spidev-master/ root@tin:/home/python-spi/py-spidev-master# python setup.py install running install running build running build_ext building 'spidev' extension .... running install_egg_info Writing /usr/local/lib/python2.7/dist-packages/spidev-3.0.egg-info
Example Python program
Let’s create simple test python app:
import spidev import time spi = spidev.SpiDev() spi.open(0,0) while True: resp = spi.xfer2([0xDE]) print resp[0] time.sleep(1)
Correct output should be
root@tin:/repo/spitest# python ./spitest.py SPI Test tool 0 0 0
Created: Nov. 24, 2015, 8:41 a.m.
Modified: Nov. 24, 2015, 8:56 a.m.
Modified: Nov. 24, 2015, 8:56 a.m.