Типичный рабочий процесс передачи данных через интерфейс SPI включает обнаружение адаптеров, подключение, связь и очистку. Обнаружение может быть выполнено только на уровне адаптера. Для использования адаптера Aardvark Total Phase или платы адаптера NI-845x необходимо установить spi интерфейс.
Передача данных по SPI с помощью Aardvark
В этом примере показано взаимодействие с микросхемой EEPROM на печатной плате с индексом платы 0 и с использованием порта 0.
Убедитесь, что адаптер Aardvark установлен для использования spi интерфейс.

Посмотрите на свойства адаптера.

Убедитесь, что установлен драйвер программного обеспечения Aardvark и aardvark.dll находится в пути MATLAB ®. Дополнительные сведения см. в разделе Требования и рекомендации по использованию интерфейса SPI.
Создание объекта SPI с именем S, используя следующие свойства:
% Vendor = aardvark
% BoardIndex = 0
% Port = 0
S = spi('aardvark', 0, 0);Для создания объекта необходимо указать эти три параметра.
Посмотрите на свойства объекта.

При создании spi , используются параметры связи по умолчанию, как показано здесь. Дополнительные сведения и список свойств см. в разделе Использование свойств объекта SPI.
Подключитесь к микросхеме.
connect(S);
Читайте и пишите на чип.
% Create a variable containing the data to write dataToWrite = [3 0 0 0]; % Write the binary data to the chip write(S, dataToWrite); % Create a variable that contains the number of values to read numData = 5; % Read the binary data from the chip data = read(S, numData);
Отключите SPI-устройство и очистите объект.
disconnect(S);
clear('S');Передача данных по SPI с помощью NI-845x
В этом примере показано взаимодействие с микросхемой EEPROM на печатной плате с индексом платы 0 и с использованием порта 0.
Убедитесь, что адаптер NI-845x установлен, чтобы можно было использовать spi интерфейс.

Посмотрите на свойства адаптера NI-845x.

Убедитесь, что установлен драйвер программного обеспечения NI-845x. Дополнительные сведения см. в разделе Требования и рекомендации по использованию интерфейса SPI.
Создание объекта SPI с именем s2, используя следующие свойства:
% Vendor = ni845x
% BoardIndex = 0
% Port = 0
s2 = spi('ni845x', 0, 0);Для создания объекта необходимо указать эти три параметра.
Посмотрите на свойства объекта.

При создании spi , используются параметры связи по умолчанию, как показано здесь. Дополнительные сведения и список свойств см. в разделе Использование свойств объекта SPI.
Подключитесь к микросхеме.
connect(s2);
Читайте и пишите на чип.
% Create a variable containing the data to write
dataToWrite = [3 0 0 0];
% Write the binary data to the chip
write(s2, dataToWrite);
% Create a variable that contains the number of values to read
numData = 5;
% Read the binary data from the chip
data = read(s2, numData);
ans =
0 0 0 0 0Отключите SPI-устройство и очистите объект.
disconnect(s2);
clear('s2');Функции SPI
Эти функции можно использовать с помощью spi объект.
Примечание
SPI является полнодуплексным протоколом связи, и данные должны быть записаны для считывания данных. Вы можете использовать read функция для записи фиктивных данных в устройство. write функция удаляет данные, возвращенные устройством. writeAndRead функция выполняет чтение и запись вместе.
| Функция | Цель |
|---|---|
instrhwinfo | Убедитесь, что адаптер Aardvark и/или NI-845x установлен.
Посмотрите на свойства адаптера.
|
spiinfo | Возвращает информацию об устройствах и отображает ее для каждого поставщика.
|
connect | Подключите объект SPI к устройству. Используйте следующий синтаксис:
|
read | Синхронное считывание двоичных данных с устройства. Для считывания данных сначала создайте переменную, например numData, чтобы указать размер считываемых данных. В этом случае создайте переменную для считывания 5 байт. Затем используйте read функция, как показано здесь, где spiObject - имя объекта. Этот процесс также показан на этапе 6 предыдущего примера. Точность данных UINT8.
Также можно использовать следующий синтаксис:
|
write | Синхронная запись двоичных данных на устройство. Для записи данных сначала создайте переменную, например dataToWrite. В этом случае создайте данные. [3 0 0 0]. Затем используйте write функция, как показано здесь, где spiObject - имя объекта. Этот процесс также показан на этапе 6 предыдущего примера. Точность записываемых данных является UINT8.
|
writeAndRead | Синхронно выполнять одновременное чтение и запись двоичных данных с устройством. В этом случае функция синхронно записывает данные, указанные переменной dataToWrite на устройство в двоичном формате, затем синхронно считывает с устройства и возвращает данные переменной data, как показано здесь, где spiObject - имя объекта. Точность записываемых и считываемых данных является UINT8.
|
disconnect | Отсоедините объект SPI от устройства. Используйте следующий синтаксис:
|
Примечание
Чтобы получить список опций, которые можно использовать для функции, нажмите клавишу Tab после ввода функции в командной строке MATLAB. Список расширяется, и можно выполнить прокрутку для выбора свойства или значения. Сведения об использовании этой расширенной функции завершения вкладки см. в разделе Использование функции завершения вкладки для функций.