i2c

Объект Create I2C

Синтаксис

I = i2c('Vendor', BoardIndex, RemoteAddress)

Описание

I2C или Межинтегральная схема, является интерфейсом от чипа к чипу поддержка двухпроводной коммуникации. Поддержка I2C Instrument Control Toolbox™ позволяет вам открыть связи с отдельными микросхемами и считать и переписать связи с отдельными микросхемами с помощью или хост-адаптера Муравьеда или платы адаптера NI-845x.

I = i2c('Vendor', BoardIndex, RemoteAddress) создает объект i2c, сопоставленный с Vendor, BoardIndex и RemoteAddress. Vendor должен собираться или в 'aardvark', для использования с Общим адаптером Муравьеда Фазы, или к 'NI845x', для использования с платой адаптера NI-845x, использовать этот интерфейс. BoardIndex задает параметр плат оборудования и обычно является 0. RemoteAddress задает удаленный адрес оборудования. Обратите внимание на то, что, чтобы задать удаленный адрес 50 шестнадцатеричных чисел, необходимо использовать функцию hex2dec как показано в Примерах.

Первичные варианты использования включают функции fwrite и fread. Чтобы идентифицировать устройства I2C в Instrument Control Toolbox, используйте функцию instrhwinfo в интерфейсе I2C, названном i2c.

Можно использовать эти свойства с объектом i2c:

СвойствоОписание
BitRateДолжно быть положительное, ненулевое значение, заданное в kHz. Адаптер и микросхемы определяют уровень. Значением по умолчанию является 100 kHz и для Муравьеда и для адаптеров NI-845x.
TargetPowerМуравьед только. Может быть задан как none или both. Значение both означает приводить в действие обе строки, если поддержано. Значение none означает степень никакие строки и является значением по умолчанию.
PullupResistors

Может быть задан как none или both. Значение both позволяет 2k нагрузочным резисторам защитить оборудование в устройстве I2C, если поддержано. Это - значение по умолчанию.

Обратите внимание на то, что устройства могут отличаться по своему использованию усилий. Адаптер Муравьеда и NI-8452 имеют внутренние нагрузочные резисторы к линиям прямой связи обе линии шины к VDD и могут быть программно установлены. NI-8451 не имеет внутренних нагрузочных резисторов, которые могут быть программно установлены, и тем самым потребовать внешних усилий. Необходимо консультироваться документацией устройства, чтобы гарантировать, что правильные усилия использовались.

BoardSerialУникальный идентификатор ведущего коммуникационного устройства I2C.
VendorИспользуйте, чтобы создать объект i2c. Должен быть установлен в aardvark, для использования с адаптером Муравьеда или NI845x для использования с адаптером NI-845x.
BoardIndexИспользуйте, чтобы создать объект i2c. Задает параметр плат оборудования. Обычно устанавливайте на 0.
RemoteAddressИспользуйте, чтобы создать объект i2c. Задает удаленный адрес оборудования. Заданный как вектор символов, когда вы создаете объект i2c. Например, чтобы задать удаленный адрес 50 шестнадцатеричных чисел, используйте '50h'.

Примечание

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

Примеры

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

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

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

 instrhwinfo('i2c')
 instrhwinfo('i2c', 'Aardvark') 

Создайте объект i2c под названием I с помощью Vendor aardvark с BoardIndex 0 и RemoteAddress 50h. Обратите внимание на то, что, чтобы задать удаленный адрес 50 шестнадцатеричных чисел, необходимо использовать функцию hex2dec как показано.

I = i2c('aardvark',0,hex2dec('50'));

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

fopen(I);

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

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

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

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

fwrite(I,[8 'rld!']);

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

fwrite(I,0);

Считайте данные назад из чипа с помощью функции fread. Чип возвращает символы, которые он был отправлен.

char(fread(I,16))'

Отключите устройство I2C.

 fclose(I);

Вымойтесь путем очистки объекта.

 clear('I');

Пример NI-845x

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

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

 instrhwinfo('i2c')
 instrhwinfo('i2c', 'NI845x') 

Создайте объект i2c под названием i2cobj с помощью Vendor NI845x с BoardIndex 0 и RemoteAddress 53h.

i2cobj = i2c('NI845x', 0, '53h');

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

fopen(i2cobj)

Запишите в чип датчика. Необходимо считать документацию или таблицу данных чипа в порядке знать то, что удаленный адрес и другая информация о чипе. В этом случае реестр чипа может быть открыт путем отправки ему 0.

fwrite(i2cobj, 0)

Считайте данные назад из чипа с помощью функции fread. Путем отправки ему одного байта можно считать назад реестр ID устройства. В случае этого чипа реестр ID устройства только для чтения 229. Поэтому, именно это возвращен, когда вы отправляете байт.

fread(i2cobj, 1)

ans = 

   229

Отключите устройство I2C.

 fclose(i2cobj);

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

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

Представленный в R2012a