Передача данных по интерфейсу SPI

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

Передайте данные по SPI Используя муравьеда

Этот пример показывает, как связаться с чипом EEPROM на печатной плате с параметром плат 0 и порт использования 0.

  1. Гарантируйте, что адаптер Муравьеда установлен так, чтобы можно было использовать интерфейс spi.

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

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

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

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

    Необходимо обеспечить эти три параметра, чтобы создать объект.

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

    Когда вы создаете объект spi, коммуникационные настройки по умолчанию используются, как показано здесь. Чтобы изменить любую из этих настроек, смотрите Using Properties на Объекте 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, коммуникационные настройки по умолчанию используются, как показано здесь. Чтобы изменить любую из этих настроек, смотрите Using Properties на Объекте 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Проверяйте, что адаптер Муравьеда и/или 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. Список расширяется, и можно прокрутить, чтобы выбрать свойство или значение. Для получения информации об использовании этой функции завершения вкладки "Дополнительно" смотрите Используя Заполнение клавишей Tab для Функций.