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 функционируйте как показано в Примерах.

Первичные варианты использования включают fread и fwrite функции. Чтобы идентифицировать устройства 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