Serial Peripheral Interface (SPI) is a synchronous serial data link standard that operates in full duplex mode. It is commonly used in the test and measurement field. Common uses include communicating with micro controllers, EEPROMs, A2D devices, embedded controllers, etc.
Instrument Control Toolbox™ SPI support lets you open connections
with individual chips and to read and write over the connections to
individual chips using an Aardvark or NI-845x host adaptor. The primary
uses for the spi
interface involve the write
, read
,
and writeAndRead
functions for synchronously reading
and writing binary data.
You need to have either a Total Phase Aardvark host adaptor
or an NI-845x adaptor board installed to use the spi
interface.
The SPI interface is supported on these platforms when used with the Aardvark host adaptor:
Linux® — Red Hat® Enterprise Linux 4 and 5 with kernel 2.6, and possibly SUSE® and Ubuntu distributions.
Microsoft® Windows® 64-bit
Note
For R2018b and R2018a, you cannot use the Aardvark adaptor for I2C or SPI interfaces on the macOS platform. You can still use it on Windows and Linux. For releases prior to R2018a, you can use it on all three platforms, including the Mac.
The SPI interface is supported on these platforms when used with the NI-845x host adaptor:
Microsoft Windows 64-bit
You need either a Total Phase Aardvark host adaptor or an NI-845x
adaptor board installed to use the spi
interface.
The following sections describe requirements for each option.
Aardvark-specific Requirements
To use the SPI interface with the Aardvark adaptor, download the Hardware Support Package to obtain the latest driver, if you do not already have the driver installed. If you already have the latest driver installed, you do not need to download this Support Package.
If you do not have the Aardvark driver installed, see Install the Total Phase Aardvark I2C/SPI Interface Support Package to install it.
Install the Aardvark Software API and Shared Library appropriate for your operating system.
The aardvark.dll
file that comes with the
Total Phase Aardvark adaptor board must be available in one of these
locations for use on Windows platforms:
Location where MATLAB® was started from (bin folder)
MATLAB current folder (PWD)
Windows folder C:\winnt
or C:\windows
Folders listed in the path environment variable
For use on Linux platforms, the aardvark.so
file
that comes with the Total Phase Aardvark adaptor board must be in
your MATLAB path.
NI-845x-specific Requirements
To use the SPI interface with the NI-845x adaptor, download the hardware support package to obtain the latest driver, if you do not already have the driver installed. If you already have the latest driver installed, you do not need to download this support package.
If you do not have the NI-845x driver installed, see Install the NI-845x I2C/SPI Interface Support Package to install it.
Make sure that you have the correct instrument driver installed for your device. Refer to your device’s documentation and the vendor’s web site.
Make sure your device is supported in Instrument Control Toolbox. See Is My Hardware Supported?.
You must have a Total Phase Aardvark host adaptor or an NI-845x adaptor board installed to use the SPI interface. Install the appropriate support package if you have not already. See Adaptor Requirements.
Make sure that your SPI adaptor board is plugged into the computer
running MATLAB. You can verify that you have one of the adaptors
installed by using the instrhwinfo
function with
the spi
interface name.
If you do not see either aardvark
or ni845x
listed,
you need to install one of the support packages or install the driver
directly from the vendor.
Make sure that Instrument Control Toolbox recognizes
your device, by using the instrhwinfo
function
with the spi
interface name, and your adaptor name,
either aardvark
or ni845x
. For
example:
You will need the information displayed to create the spi
object.
If your device is not displayed, check the previous steps.
Make sure you can create the spi
object.
You must provide three arguments to create the object. BoardIndex
and Port
are
both usually 0
, and Vendor
is
either 'aardvark'
or 'ni845x'
.
This example uses a SPI object called S
that communicates
to an EEPROM chip. Create the object using the BoardIndex
and Port
numbers,
which are 0
in both cases.
% Vendor = aardvark % BoardIndex = 0 % Port = 0 S = spi('aardvark', 0, 0);
If you do not get an error, the object was created
successfully. To verify, you can look at the object properties, using
the name you assigned to the object, S
in this
case.
Make sure you can connect to the device, using the connect
function
with the object name.
connect(S);
If you do not get an error, the connection was made successfully. If you do get an error, follow the steps in the error message and/or check the previous steps listed here.
When you have connected, you can communicate with your device. See Transmitting Data Over the SPI Interface for an example of reading and writing to a chip.