exponenta event banner

Передача данных через интерфейс SPI

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

Передача данных по SPI с помощью Aardvark

В этом примере показано взаимодействие с микросхемой EEPROM на печатной плате с индексом платы 0 и с использованием порта 0.

  1. Убедитесь, что адаптер Aardvark установлен для использования spi интерфейс.

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

    Убедитесь, что установлен драйвер программного обеспечения Aardvark и aardvark.dll находится в пути MATLAB ®. Дополнительные сведения см. в разделе Требования и рекомендации по использованию интерфейса SPI.

  3. Создание объекта SPI с именем S, используя следующие свойства:

    % Vendor = aardvark
    % BoardIndex = 0
    % Port = 0
    
    S = spi('aardvark', 0, 0);

    Для создания объекта необходимо указать эти три параметра.

  4. Посмотрите на свойства объекта.

    При создании spi , используются параметры связи по умолчанию, как показано здесь. Дополнительные сведения и список свойств см. в разделе Использование свойств объекта SPI.

  5. Подключитесь к микросхеме.

    connect(S);
  6. Читайте и пишите на чип.

    % 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);
  7. Отключите SPI-устройство и очистите объект.

    disconnect(S); 
    clear('S');

Передача данных по SPI с помощью NI-845x

В этом примере показано взаимодействие с микросхемой EEPROM на печатной плате с индексом платы 0 и с использованием порта 0.

  1. Убедитесь, что адаптер NI-845x установлен, чтобы можно было использовать spi интерфейс.

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

    Убедитесь, что установлен драйвер программного обеспечения NI-845x. Дополнительные сведения см. в разделе Требования и рекомендации по использованию интерфейса SPI.

  3. Создание объекта SPI с именем s2, используя следующие свойства:

    % Vendor = ni845x
    % BoardIndex = 0
    % Port = 0
    
    s2 = spi('ni845x', 0, 0);

    Для создания объекта необходимо указать эти три параметра.

  4. Посмотрите на свойства объекта.

    При создании spi , используются параметры связи по умолчанию, как показано здесь. Дополнительные сведения и список свойств см. в разделе Использование свойств объекта SPI.

  5. Подключитесь к микросхеме.

    connect(s2);
  6. Читайте и пишите на чип.

    % 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
  7. Отключите SPI-устройство и очистите объект.

    disconnect(s2); 
    clear('s2');

Функции SPI

Эти функции можно использовать с помощью spi объект.

Примечание

SPI является полнодуплексным протоколом связи, и данные должны быть записаны для считывания данных. Вы можете использовать read функция для записи фиктивных данных в устройство. write функция удаляет данные, возвращенные устройством. writeAndRead функция выполняет чтение и запись вместе.

ФункцияЦель
instrhwinfoУбедитесь, что адаптер Aardvark и/или NI-845x установлен.

instrhwinfo('spi')

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

instrhwinfo('spi', 'Aardvark')

instrhwinfo('spi', 'ni845x')

spiinfoВозвращает информацию об устройствах и отображает ее для каждого поставщика.

info = spiinfo()

connectПодключите объект SPI к устройству. Используйте следующий синтаксис:

connect(spiObject);

readСинхронное считывание двоичных данных с устройства. Для считывания данных сначала создайте переменную, например numData, чтобы указать размер считываемых данных. В этом случае создайте переменную для считывания 5 байт. Затем используйте read функция, как показано здесь, где spiObject - имя объекта. Этот процесс также показан на этапе 6 предыдущего примера. Точность данных UINT8.

numData = 5;

read(spiObject, numData);

Также можно использовать следующий синтаксис:

A = read(spiObject, size)

writeСинхронная запись двоичных данных на устройство. Для записи данных сначала создайте переменную, например dataToWrite. В этом случае создайте данные. [3 0 0 0]. Затем используйте write функция, как показано здесь, где spiObject - имя объекта. Этот процесс также показан на этапе 6 предыдущего примера. Точность записываемых данных является UINT8.

dataToWrite = [3 0 0 0];

write(spiObject, dataToWrite);

writeAndReadСинхронно выполнять одновременное чтение и запись двоичных данных с устройством. В этом случае функция синхронно записывает данные, указанные переменной dataToWrite на устройство в двоичном формате, затем синхронно считывает с устройства и возвращает данные переменной data, как показано здесь, где spiObject - имя объекта. Точность записываемых и считываемых данных является UINT8.

dataToWrite = [3 0 0 0];

data = writeAndRead(spiObject, dataToWrite)

disconnectОтсоедините объект SPI от устройства. Используйте следующий синтаксис:

disconnect(spiObject);

Примечание

Чтобы получить список опций, которые можно использовать для функции, нажмите клавишу Tab после ввода функции в командной строке MATLAB. Список расширяется, и можно выполнить прокрутку для выбора свойства или значения. Сведения об использовании этой расширенной функции завершения вкладки см. в разделе Использование функции завершения вкладки для функций.