Передача данных по интерфейсу 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 для Функций.