spidev - Connection to SPI device on Raspberry Pi hardware - MATLAB (original) (raw)

Connection to SPI device on Raspberry Pi hardware

Description

This object represents a connection from the MATLAB® software to the SPI device on the Raspberry Pi® hardware. To exchange data with the SPI device, use this object with the functions listed in Object Functions.

Creation

Syntax

Description

`myspidevice` = spidev([mypi](#buno%5F5i%5Fsep%5Fshared-mypi),`channel`) creates a connection, myspidevice, from the MATLAB software to the chip select pin, Channel, of the SPI device on the Raspberry Pi hardware.

example

Input Arguments

expand all

Connection to the Raspberry Pi hardware board, specified as a raspi object.

Properties

expand all

This property is read-only.

The SPI channel on the hardware for communication, specified as a character vector. This property is set by the channel input argument. It cannot be changed after object creation

Example: 'CE0'

Data Types: char

This property is read-only.

The mode of SPI communication used by the SPI bus, specified as a number between0 and 3. The mode is defined by clock polarity (CPOL) and phase (CPHA) values.

This property is set by the mode input argument. If not specified as an input argument, it takes the default value. It cannot be changed after object creation.

Example: 0

Data Types: double

This property is read-only.

The number of SPI bits per word, specified as a scalar.

Example: 8

Data Types: double

This property is read-only.

Speed of SPI communication (clock cycles) in Hertz, specified as a scalar. This property is set by the speed input argument. If not specified as an input argument, it takes the default value. It cannot be changed after object creation.

Example: 500000

Data Types: double

Object Functions

writeRead Write data to and read data from SPI device

Examples

collapse all

You can connect to and exchange data with an SPI device.

Create a connection from the MATLAB software to the Raspberry Pi board.

mypi =

raspi with properties:

     DeviceAddress: '192.168.1.101'              
              Port: 18734                         
         BoardName: 'Raspberry Pi 2 Model B'     
     AvailableLEDs: {'led0'}                      

AvailableDigitalPins: [4,5,6,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27] AvailableSPIChannels: {'CE0','CE1'}
AvailableI2CBuses: {'i2c-1'}
AvailableWebcams: {}
I2CBusSpeed: 100000

Supported peripherals

By default, SPI is enabled. If SPI is disabled, AvailableSPIChannels does not show any channels.

Enable SPI using the Hardware Setup screen and get the channels.

mypi.AvailableSPIChannels

ans =

1×2 cell array

{'CE0'}    {'CE1'}

Show the location of the SPI pins, GPIO 10 (SPI0_SDO), GPIO 9 (SPI0_SDI), and GPIO 11 (SPI0_SCLK), on the GPIO header.

After physically connecting your SPI device to the three SPI pins, connect to the SPI device.

myspidevice = spidev(mypi,'CE1',0)

myspidevice =

SPIdev with properties:

           Channel: CE1            
              Mode: 0               (0, 1, 2 or 3)
       BitsPerWord: 8               (only 8-bits per word is supported)
             Speed: 500000          (View available speeds)

Write data to, and read data from, the SPI device.

out = writeRead(myspidevice,[hex2dec('08') hex2dec('D4')])

If you are not using SPI, disable SPI using the Hardware Setup screen to make additional GPIO pins available.

Extended Capabilities

expand all