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