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

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

Пример муравьеда

Этот пример показывает, как связаться с чипом EEPROM на печатной плате, с адресом 50 шестнадцатеричных чисел и параметром плат 0, с помощью адаптера Муравьеда.

Связываться с чипом EEPROM:

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

    instrhwinfo('i2c')

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

    instrhwinfo('i2c', 'Aardvark')
    ans = 
    
              AdaptorDllName: [1x127 char]
           AdaptorDllVersion: 'Version 3.0.0'
                 AdaptorName: 'aardvark'
           InstalledBoardIds: 0
       ObjectConstructorName: 'i2c('aardvark', BoardIndex, RemoteAddress);'
               VendorDllName: 'aardvark.dll'
     VendorDriverDescription: 'Total Phase I2C Driver'
    

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

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

    % Vendor = aardvark
    % BoardIndex = 0
    % RemoteAddress = 50h
    
    eeprom = i2c('aardvark',0,'50h');

    Необходимо обеспечить эти три параметра, чтобы создать объект. Считайте документацию чипа в порядке знать, каков удаленный адрес.

    Совет

    Можно также видеть то, что удаленный адрес чипа путем сканирования для инструментов в инструменте Test & Measurement. В инструменте щелкните правой кнопкой по узлу I2C и выберите Scan for I2C adaptors. Любые микросхемы, найденные сканированием, перечислены в аппаратном дереве. Листинг включает удаленный адрес чипа.

  4. Соединитесь с чипом.

    fopen(eeprom);
  5. Запишите 'Hello World!' в EEPROM. Данные записаны постранично в I2C. Каждая страница содержит восемь байтов. Адрес страницы должен быть упомянут перед каждым байтом записанных данных.

    Первым байтом строки 'Hello World!' является 'Hello Wo'. Его адрес страницы 0.

    fwrite(eeprom,[0 'Hello Wo']);

    Вторым байтом строки 'Hello World!' является 'rld!'. Его адрес страницы равняется 8.

    fwrite(eeprom,[8 'rld!']);
  6. Считайте данные назад из чипа с помощью функции fread.

    Нуль должен быть записан в объект i2c, чтобы начать читать из первого байта первой страницы.

    fwrite(eeprom,0);
    char(fread(eeprom,16))'

    Чип возвращает символы, которые он был отправлен, как показано сюда.

  7. Вымойтесь путем удаления и очистки объекта.

    fclose(eeprom);
    delete(eeprom);
    clear('eeprom');

Пример NI-845x

Этот пример показывает, как связаться с чипом датчика Analog Devices® ADXL345 на печатной плате, с помощью адреса 53 шестнадцатеричных чисел и параметра плат 0 на адаптере NI-845x. В этом случае плата адаптера NI-845x включается в компьютер (через USB-порт), и печатная плата, содержащая чип датчика, соединяется с платой хост-адаптера по проводам. Обратите внимание на то, что схема имеет внешние усилия, когда адаптер NI-8451, используемый в этом примере, не имеет внутренних усилий.

Связываться с чипом датчика:

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

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

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

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

    % Vendor = NI845x
    % BoardIndex = 0
    % RemoteAddress = 53h
    
    i2cobj = i2c('NI845x', 0, '53h');

    Необходимо обеспечить эти три параметра, чтобы создать объект. Считайте документацию чипа в порядке знать, каков удаленный адрес.

    Совет

    Можно также видеть то, что удаленный адрес чипа путем сканирования для инструментов в инструменте Test & Measurement. В инструменте щелкните правой кнопкой по узлу I2C и выберите Scan for I2C adaptors. Любые микросхемы, найденные сканированием, перечислены в аппаратном дереве. Листинг включает удаленный адрес чипа.

  4. Соединитесь с чипом.

    fopen(i2cobj)
  5. Запишите в чип датчика. Считайте документацию или таблицу данных чипа в порядке знать то, что удаленный адрес и другая информация о чипе. Обычно производители чипа обеспечивают отдельное чтение и адреса записи. Платы адаптера только берут один адрес (адрес чтения) и обрабатывают преобразования в адреса записи и чтение.

    В этом случае регистром ID устройства чипа является в адресе 0, таким образом, необходимо записать, что 0 к чипу, указывающему на вас, хотел бы читать или записать в регистр.

    fwrite(i2cobj, 0)
  6. Считайте данные назад из регистра ID устройства чипа с помощью функции fread. Чтение 1 байта данных возвращает реестр ID устройства. В случае этого чипа значение регистра ID устройства только для чтения 229. Поэтому, именно это возвращен, когда вы отправляете байт.

    fread(i2cobj, 1)
    
    ans = 
    
       229
  7. Вымойтесь путем удаления и очистки объекта.

    fclose(i2cobj);
    delete(i2cobj);
    clear('i2cobj');

Другая функциональность

Можно использовать эти функции с объектом i2c.

ФункцияЦель
fopenОбъект интерфейса Connect оснастить.
freadСчитайте двоичные данные из инструмента.
fwriteЗапишите двоичные данные в инструмент.
methodsИмена и описания функций, которые могут использоваться с объектами i2c.
fcloseОтключите интерфейсный объект от инструмента.
recordДанные записи и информация о событии к файлу.
propinfoОтобразите инструментальную информацию о свойстве объекта.

Для получения дополнительной информации об этих функциях, см. документацию функций.

Примечание

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