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

Типичный рабочий процесс передачи данных через интерфейс SPI включает в себя обнаружение адаптера, подключение, коммуникацию и очистку. Обнаружение может быть выполнено только на уровне адаптера. Для использования NI-845x необходимо установить адаптер Total Phase Aardvark или плату 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 функция для записи фиктивных данных в устройство. The write функция очищает данные, возвращенные устройством. The 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. Список расширяется, и можно прокрутить, чтобы выбрать свойство или значение. Для получения информации об использовании этой расширенной функции заполнения клавишей Tab, смотрите Использование заполнения клавишей Tab для функций.