Типичный рабочий процесс включает открытие адаптера, связь, коммуникацию и очистку. Открытие может быть сделано только на уровне адаптера. У вас должны быть или Общий хост-адаптер Муравьеда Фазы или плата адаптера NI-845x, установленная, чтобы использовать i2c
интерфейс.
Пример муравьеда
В этом примере показано, как связаться с чипом EEPROM на печатной плате, с адресом 50 шестнадцатеричных чисел и параметром плат 0, с помощью адаптера Муравьеда.
Связываться с чипом EEPROM:
Убедитесь, что адаптер Муравьеда установлен так, чтобы можно было использовать i2c
интерфейс.
instrhwinfo('i2c')
Посмотрите на свойства адаптера.
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 и Инструкции.
Создайте объект I2C под названием eeprom
, использование этих свойств:
% Vendor = aardvark % BoardIndex = 0 % RemoteAddress = 50h eeprom = i2c('aardvark',0,'50h');
Необходимо обеспечить эти три параметра, чтобы создать объект. Считайте документацию чипа для того, чтобы знать, каков удаленный адрес.
Можно также видеть то, что удаленный адрес чипа путем сканирования для инструментов в инструменте Test & Measurement. В инструменте щелкните правой кнопкой по узлу I2C и выберите Scan for I2C adaptors. Любые микросхемы, найденные сканированием, перечислены в аппаратном дереве. Листинг включает удаленный адрес чипа.
Свяжите с чипом.
fopen(eeprom);
Запишите 'Hello World!'
к EEPROM. Данные записаны постранично в I2C. Каждая страница содержит восемь байтов. Адрес страницы должен быть упомянут перед каждым байтом записанных данных.
Первый байт строки 'Hello World!'
'Hello Wo'
. Его адрес страницы 0.
fwrite(eeprom,[0 'Hello Wo']);
Второй байт строки 'Hello World!'
'rld!'
. Его адрес страницы равняется 8.
fwrite(eeprom,[8 'rld!']);
Считайте данные назад из чипа с помощью fread
функция.
Нуль должен быть записан в i2c
объект, чтобы начать читать из первого байта первой страницы.
fwrite(eeprom,0);
char(fread(eeprom,16))'
Чип возвращает символы, которые он был отправлен, как показано сюда.
Вымойтесь путем удаления и очистки объекта.
fclose(eeprom); delete(eeprom); clear('eeprom');
Пример NI-845x
В этом примере показано, как связаться с чипом датчика Analog Devices® ADXL345 на печатной плате, с помощью адреса 53 шестнадцатеричных чисел и параметра плат 0 на адаптере NI-845x. В этом случае плата адаптера NI-845x включается в компьютер (через USB-порт), и печатная плата, содержащая чип датчика, соединяется с платой хост-адаптера по проводам. Обратите внимание на то, что схема имеет внешние усилия, когда адаптер NI-8451, используемый в этом примере, не имеет внутренних усилий.
Связываться с чипом датчика:
Убедитесь, что адаптер NI-845x установлен так, чтобы можно было использовать i2c
интерфейс.
Посмотрите на свойства адаптера NI-845x.
Убедитесь, что вам установили программный драйвер NI-845x. Для получения дополнительной информации смотрите Требования Использования Интерфейса I2C и Инструкции.
Создайте объект I2C под названием i2cobj
, использование этих свойств:
% Vendor = NI845x % BoardIndex = 0 % RemoteAddress = 53h i2cobj = i2c('NI845x', 0, '53h');
Необходимо обеспечить эти три параметра, чтобы создать объект. Считайте документацию чипа для того, чтобы знать, каков удаленный адрес.
Можно также видеть то, что удаленный адрес чипа путем сканирования для инструментов в инструменте Test & Measurement. В инструменте щелкните правой кнопкой по узлу I2C и выберите Scan for I2C adaptors. Любые микросхемы, найденные сканированием, перечислены в аппаратном дереве. Листинг включает удаленный адрес чипа.
Свяжите с чипом.
fopen(i2cobj)
Запишите в чип датчика. Считайте документацию или таблицу данных чипа для того, чтобы знать то, что удаленный адрес и другая информация о чипе. Обычно производители чипа обеспечивают отдельное чтение и адреса записи. Платы адаптера только берут один адрес (адрес чтения) и обрабатывают преобразования в адреса записи и чтение.
В этом случае регистром ID устройства чипа является в адресе 0
, таким образом, необходимо записать, что 0 к чипу, указывающему на вас, хотел бы читать или записать в регистр.
fwrite(i2cobj, 0)
Считайте данные назад из регистра ID устройства чипа с помощью fread
функция. Чтение 1 байта данных возвращает реестр ID устройства. В случае этого чипа значение регистра ID устройства только для чтения 229. Поэтому, именно это возвращен, когда вы отправляете байт.
fread(i2cobj, 1) ans = 229
Вымойтесь путем удаления и очистки объекта.
fclose(i2cobj); delete(i2cobj); clear('i2cobj');
Другая функциональность
Можно использовать эти функции с i2c
объект.
Функция | Цель |
---|---|
fopen | Объект интерфейса Connect оснастить. |
fread | Считайте двоичные данные из инструмента. |
fwrite | Запишите двоичные данные в инструмент. |
methods | Имена и описания функций, которые могут использоваться с i2c объекты. |
fclose | Отключите интерфейсный объект от инструмента. |
record | Данные записи и информация о событии к файлу. |
propinfo | Отобразите инструментальную информацию о свойстве объекта. |
Для получения дополнительной информации об этих функциях, см. документацию функций.
Чтобы получить список опций, можно использовать на функции, нажать клавишу Tab после ввода функции на командной строке MATLAB®. Список расширяется, и можно прокрутить, чтобы выбрать свойство или значение. Для получения информации об использовании этой функции завершения вкладки "Дополнительно" смотрите Используя Заполнение клавишей Tab для Функций.