Объект 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 | Может быть задан как Обратите внимание на то, что устройства могут отличаться по своему использованию усилий. Адаптер Муравьеда и 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');